今回はベースボードの動作確認について書きたいと思います.ベースボードには路面状況検知用マイコン(PIC18F8490)と駆動部制御用マイコン(PIC18F25K80)があり,前者とメインマイコン(RX62N)とはI2C,後者とメインマイコンとはCAN(Controller Area Network)で接続されています.まず,この通信が行えるか確認しました.
さらに,路面状況検知用マイコンでは,TKM-Hの底面に取り付けられた25個の赤外線センサにより,路面にある黒白の有無を検知し,メインマイコンへそのセンシング情報を伝えます.加えて,センシング状況を表示する25個のLEDを点灯/消灯します.
駆動部制御用マイコンでは,モータを駆動させるための2個のモータドライバ,回転数および回転スピードを検知するための2個のフォトインタラプタが備わっています.加えて,バックライト,ブレーキランプ,ウィンカに見立てたLED(テールライト)を2セット備えています.
以上の関係を下の図でまとめておきます.
路面状況検知用マイコン
メインマイコンと路面状況検知用マイコンにはI2Cで接続されていますが,この2つのマイコンの電源レベルが前者が3.3[V],後者が5[V}と異なりますのでレベル変換をしなければなりません.このため,I2Cの仕様書にも書かれているように,nMOS-FETを下の回路のように接続します.左側にあるSDA/3V3とSCL/3V3がメインマイコンに接続されており,右側にあるSDA/5VとSCL/5Vが路面状況検知用マイコンに接続されています.なお,SDA/3V3とSCL/3V3には3.3[kΩ]でそれぞれプルアップしてあることを省略してあります.このような回路構成で,レベルの異なるマイコン間でI2Cが行えました.
赤外線センサおよび路面状況確認用LEDについても特に問題なく動作してくれました.少しはまりかかったこととして,赤外線センサからの信号を入力するマイコンの端子がCCP(Capture Compair PWM)と共用になっていたため,入力することができなかったということが挙げられます.そこで,CCPの機能を停止させることで問題を解決しました.
駆動部制御用マイコン
CANでは,大きく分けて1[Mbps]までの速度が出せるHigh Speed CANと125[kpbs]までの速度まで出せるLow Speed CANの2種類があります.今回,TKM-HではHigh Speed CANを実装してあります.この場合,終端抵抗として120[Ω]を用います.下の図はCANのトランシーバと終端抵抗を表した図です.左側にあるR81が終端抵抗で,右側にあるCT1がトランシーバです.左側にあるCANHとCANLは差動信号になっており,これらがトランシーバを経てCANRXとCANTXになります.CANRXとCANTXは駆動部制御用マイコンと接続されます.
さて,駆動部制御用マイコンには2個のモータドライバ,2個のフォトインタラプタ,そして2セットのテールライトが接続されています.
1個のモータドライバにはPWM信号MOTと正転逆転を制御するINが入力されます.PWM信号をマイコンから出力するにはCCP(Capture Compair PWM)端子を使いました.
フォトインタラプタからはモータのスピードを得ることができるため,こちらもCCP端子を使ってインプットキャプチャしました.以前作成したTKM-2では,ホイールの回転軸の回転数を得るような仕様にしてしまったため,フォトインタラプタからなまりきった信号しか得られず,結果として正確な回転数が得られなかったという経験を生かし,今回はモータ軸の回転数を得られるようにしました.このため,かなりシャープな信号が得られるようになり,正確な回転数が得られるようになりました.