6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CAN通信用ICにチャレンジ(とりあえずハード側まで 2017-12-18)

Posted at

この記事は高知工科大 Advent Calendar 2017の18日目の記事です。

はじめに

takamasavvv です。
突然ですが、一身上の都合でCAN通信を始めることになりました。
まだ完全には実装できていないので、今回はハードウェアだけやったよ日記を書きます。

CANって?

CANのプロトコルについてはここ を参照しています。
CANは、車載機器等に使われる、信頼性が大変高いプロトコルです。
データの信頼性を挙げるための様々な工夫がされており、データが落ちたことの検知は確実にできるようです。
細かい説明は上のリンクにあるので割愛します。

どうやるのか?

今回はCANコントローラーのMCP2515とCANトランシーバーのMCP2561を使用しました。
この2つでマイコンからSPIでCANを制御できるようになります。
構成としては以下のようになります。
sys.PNG

で、実際にブレッドボードに組んだのが以下のようになります。
bb_ana.JPG

このボードでとりあえずの動作試験をやります。
使ったマイコンはPSoC5LPのCY5888LTI-LP097です。
動作確認としては、MCP2515の設定用レジスタの一つであるCANCTRLというレジスタを読み、初期値になっているかどうかを確認します。

動作確認用プログラム(クソ)

信号の確認のためにシグナルアナライザー(ブレッドボード写真左)を使っています。
以下がシグナルアナライザーの信号です。
wav.PNG

上がMOSI側、下がMISO側です。
MOSIではマイコンがしっかりMCP2515にレジスタの読み込み命令を出していますね。それに対してMISOはレジスタ内部の値である135(dec)を返しています。
動作モードビットはコンフィグレーションモードに設定しているので、135(dec)=10000111(bin)が帰ってきたのは正常といえます。

ということで、ハードウェアは完成したっぽいです。

完成ついでに、基板を書きました。
print.JPG
(写真は後輩がはんだ付けしてくれたもの)
なかなか小さくまとめられました。やったね!

課題

  • どうやらクロック周りの部品設定が悪いのか、通信速度が遅い。要改善
  • 通信ソフトウェアをちゃんと実装するのが本番だよねー
  • ここまでするならPSoC搭載のCANモジュールでもいいのでは?

最後に

こんな感じで中途半端な状態で終わるのもなんなので、開発が進み次第、ここに追記していきます。
なので完成はもう少し待ってください。

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?