hiro yamamoto works

マイコンハード、ソフトを作ったりしています。
お家や現場のお困りごと解決に!
内容利用は自己責任でお願いします。

CANバスモジュールを使ってデータ送受信する(RP2040使用を断念)

2023-10-21 16:30:54 | マイコンハードウェア

RP2040マイコンを使ってCANバスでデータの送受信テストをしてきましたが、
不可解な現象に悩まされていました。残念ながら私のスキルでは解決できず、
XIAO SAMDへ変更することにしました。

こんなことが起こります。
ID毎に1つのデータを割り当てて、6個のデータ(6個のID)を送った時、
特定の1個のIDが消失してしまう。

うまくいかなかったやつの 構成・仕様(参考)
SPI接続CANバスモジュール(送信、受信各1個)
(コントローラ:MCP2515、トランシーバ:TJA1050)
マイクロコントローラ:AE-RP2040(送信、受信各1個)
送受信データ:6個(データ毎に1つづつIDを割り当て)
データログ&HTTPサーバ:ESP32
動作概要
複数のデータそれぞれにID番号を割り当てて
送信側:数値をばらしてバイト配列に入れて送る。
受信側:バイト配列を組み立ててもとの数値へ戻す。

難点(RP2040が悪いわけではありません!)
・ArduinoUNO、ESP32で動いていたライブラリがRP2040で動かない。
・RP2040マイコンに完全対応したCANコントローラのライブラリが見つからなかった。
(2023年9月時点)
・Adafruitの MCP2515ライブラリで制約があるが動く( RP2040非対応を自己責任で使う)
 制約について
 送信データの1バイトに入る数値
 0x00〜0xFF(B11111111)のはずが、最上位bitが使えず0x00〜0x7F(B1111111)
 送信8バイトをフルに使うことはないので使えると判断した。
 ところがさらに進めていくと、不可解現象”特定IDの消失”で悩まされる。

作業が進んだら投稿します。



最新の画像もっと見る

コメントを投稿