本連載は、自動車などで利用されているCANというネットワークをPICやAVRなどのマイコンで使ってみようというものです。最近流行の言葉、"Yes, we can!"ではありませんが、専用コントローラを使うと、わりと簡単にCANを利用することができます。
次の写真は、試作した2種類のCANノード基板です。CANコントローラにマイクロチップ社のMCP2515、CANトランシーバにMCP2551を使っています。これらの基板ではPICを制御にを使っていますが、SPIで通信できれば、AVRやH8など各種CPUでも制御可能です。
続きを読む "CANコントローラ MCP2515の使い方(1)
CANの概要" »
今回は、CANコントローラ MCP2515の機能について、ポイントとなる点を中心に説明します。
続きを読む "CANコントローラ MCP2515の使い方(2)
MPC2515の概要" »
今回は、MCP2515のレジスタ構成の概要、送受信の概要を説明します。レジスタはたくさんありますが、整理してみると、それほど複雑ではありません。
続きを読む "CANコントローラ MCP2515の使い方(3)
MCP2515のレジスタ構成" »
今回は、MCP2515を使うために必要なSPIコマンドについて説明します。SPI通信はソフトウェアで制御するため、コマンドの内容を理解すれば、PIC以外のCPUやコンパイラでも応用可能です。
続きを読む "CANコントローラ MCP2515の使い方(4)
SPIコマンドについて" »
今回から、筆者が作成したMCP2515制御用のドライバ関数、マクロを説明します。最初にSPIで使用する汎用I/Oポートの初期化部分を説明します。この部分がCPUに依存する部分です。
続きを読む "CANコントローラ MCP2515の使い方(5)
ドライバ関数、マクロの説明(1)" »
今回は、前回定義したSPIポートのアクセス用マクロを使った、実際のドライバ・ルーチンの一部を説明します。もちろん、PIC、AVR共用のコードです。
続きを読む "CANコントローラ MCP2515の使い方(6)
ドライバ関数、マクロの説明(2)" »
今回は、実際に制御ソフトウェアから呼び出すことになる、マクロや関数について概要を説明します。利用頻度が高いと思われる機能はマクロ化してありますが、それでは対応できない場合もあるでしょうから、その場合はプリミティブ関数(レジスタを直接操作するような関数)を使うことになります。また、実際はあまり使わないというようなものもあるかもしれません。
続きを読む "CANコントローラ MCP2515の使い方(7)
ドライバ関数、マクロの説明(3)" »
今回は、前回までに掲載してきたCANドライバ関数やマクロを実際に使った送受信のコードを具体的に説明します。
続きを読む "CANコントローラ MCP2515の使い方(8)
送/受信処理のプログラミング" »
今回は、二つのノード間で交互に通信するという、評価用のプログラムについて説明します。また、各ノードのCCS-Cのプロジェクト・フォルダ一式も掲載します。
次の写真は、デバッグ、評価用に製作したもので、五つのノード基板がトレイの上に混載されています。
続きを読む "CANコントローラ MCP2515の使い方(9)
評価用ノードのプログラム" »
今回は、市販品のCANデバイスとしてNI社のUSB-8473sという機材を借用できることになったため、このデバイスについて簡単に紹介します。次の写真はUSB-8473s本体です。
続きを読む "CANコントローラ MCP2515の使い方(10)
NI社 USB-8473s" »