2022年1月12日(水) 21:20
まず、走行用ブラシレスモーターの方から制御プログラムに手を入れる。
このプログラムは、既にかなり複雑になっている。Sタンク搭載のマイコンの中で、最も複雑と言って良い。最後のタイマーを0.1秒に設定し、SPI受信が0.1秒以上途切れたら検出できるようにする。これで、すべてのタイマーを使い切ることになる。
SPI受信ルーチン内でタイマーカウンターを0クリアし、タイマー割り込みが発生したらSPIが途切れている。
ところがここで、SPI受信ルーチンなるものが存在しないことに気付く。SPI受信がソフトウェアならば存在するが、ハードウェア受信していた。
そこでSPI受信割り込みを使おうとしたが、MCCが対応していない、と警告発生。ならばDMA転送終了割り込みか?

設定してから、無関係なADCを開く。案の定 CSCNA が disabled になっているので、enabled
に変更する。
MCCを開き直すとADCの設定が勝手に変わるとんでもないバグがあるので、常にチェックせねばならない。disabled
に変わっていることに気付かず作業を進めると、ADC値が取得できない症状に陥る。
その後いちおう、SPI受信できない場合に走行用モーターが停止することを確認。ただし、SPI受信できる場合にはモーターが動くことも確認せねばならないため、いったん保留。問題の、三端子レギュレーター過熱問題に戻る。
原因究明が余りに困難であるため、作り直した方が早い!との結論を出す。受信部基板に不完全短絡が存在する可能性が高く、基板丸ごと新造してしまおう。
旧基板を外すだけでも、また Jetson Nano を取り外さねばならない。
この戦車は、分解がパズルの領域に達しつつある。
受信部基板はパターン面をオートウエルドでコーティング済みであるため、原因調査の手段が極めて限られる。部品の流用も困難。だから当然ながら、正常動作することを確認後にコーティングする。
今回は、正常動作すると判断した後で、不具合が発覚したのだ。
新造基板は、正常動作の実績をもっと十分に積むまでコーティングしちゃいけない。
ガラスエポキシを使ったら、切断が想像以上に大変だった。無理すると割れるし。
written by higashino [Sタンク 1/16] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]
Generated by MySketch GE 1.4.1
Remodelling origin is MySketch 2.7.4