
NDロードスター用のメーターを製作しています。
やっと本番用のArduinoマイコンとcan-busシールドでテストプログラムが動きました。
原因はマイコンのピンの初期設定で、SPI通信に使うピンが積層基板間用のD11〜13ではなく、6ピン外部出力に割り付いていたためでした。(ATSAMD21、又はARM Cortex M0+というCPUを使っているマイコンはそうなっている奴が多いみたい)
ピンの割り付けが違うのが原因だということは結構前に気付いていたのですが、対策を「SPI通信のピンを新たに追加するパターン」で進めたのが失敗でした。
can-busシールドなどを動かすためのライブラリ群はマイコンArduino初代シリーズのUNOを基準に作られており、SPI通信を新たに追加するパターンは、そのままでは対応していないため、何をやってもエラーに。(ライブラリ等をいじれば動くんでしょうけど、自分にはよく分からず)
結局SPI通信のピンの初期設定を、6ピン外部出力からD11〜13を使用するように置き換える事で、can-busシールドが動くようになりました。(初期設定用のライブラリ、variant.hの中身を書き換え。タイトル写真)
絵を表示するのでメモリが大きくて処理速度が速くて新しいマイコンにしとけば大丈夫だろうと、ノリでRED Board Turboにしたのですが、マイコン初心者には難解な落とし穴にハマってしまいました。
あと、車内持ち込みをするために、マイコンの専用ケースを購入してあったのですが、基本シリーズのUNOの基板2枚用のためかsparkfun製の基板2枚では上手く入りません。積層にした基板2枚がピッタリ入るようにケースの加工を行いました。
ケースにぶつかるスイッチの位置に穴を空けたり、コネクタが当たる部分をニッパーで切ったりカッターで削ったりで、カスタムしたケース完成。加工時に結構傷ついてしまったけど、完成したら車内の見えない所に隠すので良しとしました。
ケーブル類をまとめ、透過型OLEDもテスト時に持ち運びしやすいようにケースの上に仮設で貼り付けました。
追記:この後、I2C延長チップや3V回路と5V回路を接続するためのレベシフタを装着しています。
これで前準備が全て終わりました。やっとNDロードスター用の回転数メーターのプログラムが作れるようになりました。次からは本格的にプログラム製作していきます。
Posted at 2020/05/03 08:04:10 | |
トラックバック(0)