
NDロードスター用のオリジナルメーターを製作しています。
作ったメーターがPCのUSB電源だとcan-bus信号を受信するのに、他電源では信号を受信しなくなる問題を調査しています。
原因が不明のため、ネットで色々調べました。
sparkfunの技術支援ページで過去のQ&Aを調べてみると、can-busシールドとSAMDマイコンで通信出来ない、という質問に、メーカーからの解答がレベルシフターを付けるように指示していました。
あれ?そういえば、、、。
can-busシールドのcan受信チップは5V駆動で、Red Board turboのマイコンSAMD21は3.3V駆動です。SPI通信用の4端子と受信割り込みのDI端子に電圧差を吸収するレベルシフターを付けていませんでした。
素人のため、すっかり回路の電圧差の事を忘れていたけど、これが原因なのかな?
とはいえ既に上下亀の子基板にして、3Vのマイコン端子に対しCANチップから5Vをかけた事になるので、マイコン端子が壊れている可能性もあります。ダメ元ですが電圧差を吸収しつつ双方向に信号をやり取りできる双方向レベルシフタ基板を購入しました。
3段目の亀の子基板にレベルシフタを装着し、配線しました。付ける予定の無かった箇所に無理やり斜めに装着。3段目基板が素子で一杯になってしまいました。
また、基板の上下間端子のうちcan関連で接続されている不要な入出力端子はカットしました。
マイコンArduino、Red Board turboですが、段々と魔改造されてきたなぁ。
車両に持ち込み、NDのシフト前USBポートからDCコネクタで電源を取ります。
最初は通信しませんでしたが、DC-DCスイッチングレギュレータが無い場合だとうまく通信出来ました。
原因が判明して一安心。うーむ、電圧差が原因だったとは、、、。
仮設で設置し、配線を繋いだ状態で少し車を走らせてみましたが、ゾロ引きで繋いだSPI配線へのノイズの影響なのかワイパーが動くと一瞬止まったり、走行中にフリーズを何回かしました。
これは常用は無理の予感がします。ノイズ対策が色々必要そうです。
当初予定であった、メーターフードにHUD風メーターを設置し、USB電源で電源を取り、走行しながらイメージしたメーター表示ができたので、これをVer.1として一応完成としました。マイコン初心者にしては頑張れたかな。
今までの経験を元にVer.2メーターを作ってみようと思います。
作ったVer.1のプログラムはgithubに載せておきました。
似たようなメーターを作ってみたい、ロードスター乗りの方は、自由にプログラムを改変して使って下さい。
https://github.com/nisika/mazda_skyactiv_mx-5_can/blob/master/mainprogram%231.ino
Posted at 2020/07/27 20:55:01 | |
トラックバック(0)