CAN on BulePill

2017年7月28日更新

STM32duinoを使い込んでゆこうと作業している過程でSTM32ファミリーの一部はCAN通信用のバス通信をサポートしていることがわかりました。BulePillは対象品でpinマップで示されています。

AVRでは、AT90CAN32/64/128といったCAN通信可能でAVRコア搭載のチップはありますが、Arduinoでは使えないようです。
Arduinoで使うにはCANシールドを装備するのが一般のようで、ライブラリも用意されています。CANシールドにはMCP2551 CANトランシーバ搭載のMCP2515 CANバスコントローラが使われているようです。

一般にCAN-BUSではDSUB9pを使います。OBDではOBDカプラという専用コネクタが使われます。変換ケーブルも一般化されているようです。


BluePillでCANを使うにはライブラリをインストールするだけでよいようです。
OLIMEXINO-STM32というUNOライクの専用モジュールがあり、MCUはSTM32F103RBT6です。https://www.stm32duino.com/viewtopic.php?f=2&t=873 を参照して開発環境を構築しろとあります。
このスレッドですが、今まさしく更新されているところです。
BluePill自体に搭載されているCAN通信部をSTM32duinoで使うためのライブラリが現状用意されておらず、OLIMEXINO-STM32ではSTM32duinoで使用するコードではなくMAPLEIDE用であることが判っています。上記フォーラムでも、このコードをSTM32duinoに移植するのはなかなか難しいようです。
フォーラムでも示されていますが、MCP2515モジュールを用意し、SPI通信すればSTM32duino下でCAN通信ができていることは明解です。MCP2515モジュールは単純なものもあります。

CAN-Busに接続するにはBluePillと直接接続できないことがわかりました。BluePillからはCANTX/CANRXの信号が出ていますが、これをCANBus-H/Lに変換しないといけません。代表的な石はMCP2551です。このことを考えるとコスト次第です。MCP2515モジュールとMCP2551モジュールを一緒に扱っているお店が見つからないのですが、MCP2515モジュールの方がリーズナブルのような気がしますので、敢えてSTM32のCANTX/RXを利用する意味合いはなさそうです。


戯言(nonsense)に戻る


問い合わせ頁の表示


免責事項

本ソフトウエアは、あなたに対して何も保証しません。本ソフトウエアの関係者(他の利用者も含む)は、あなたに対して一切責任を負いません。
あなたが、本ソフトウエアを利用(コンパイル後の再利用など全てを含む)する場合は、自己責任で行う必要があります。

本ソフトウエアの著作権はToolsBoxに帰属します。
本ソフトウエアをご利用の結果生じた損害について、ToolsBoxは一切責任を負いません。
ToolsBoxはコンテンツとして提供する全ての文章、画像等について、内容の合法性・正確性・安全性等、において最善の注意をし、作成していますが、保証するものではありません。
ToolsBoxはリンクをしている外部サイトについては、何ら保証しません。
ToolsBoxは事前の予告無く、本ソフトウエアの開発・提供を中止する可能性があります。

商標・登録商標

Microsoft、Windows、WindowsNTは米国Microsoft Corporationの米国およびその他の国における登録商標です。
Windows Vista、Windows XPは、米国Microsoft Corporation.の商品名称です。
LabVIEW、National Instruments、NI、ni.comはNational Instrumentsの登録商標です。
I2Cは、NXP Semiconductors社の登録商標です。
その他の企業名ならびに製品名は、それぞれの会社の商標もしくは登録商標です。
すべての商標および登録商標は、それぞれの所有者に帰属します。