Tang Primer 25KのSoMはとても小さく,装置にFPGAを組み込むときにとても使いやすい.以前,Tang Nano 9Kで作ったBLDCドライバ・ボードをTang Primer 25Kを使って小さめに作ってみた(あまり縮んでいないけど).

 さらにカート用のスピードメータを作るため,ドライバ・ボードから回転数などの情報をCANで送信する機能もFPGAに実装した.

バージョン1.不具合多発に付き更新した
作るシステムの全体構成

 ベースとして,インバータ・キット2を使う.このキットは,インバータ・ボードとNUCLEOマイコンボードの2枚構成である.

 インバータ・ボードには,3相のHブリッジ(ゲートドライバ込み)とMOSFETが搭載されており,制御はNUCLEOマイコンボードで行なう構成となっている.

 制御部分をTang Primer 25Kにしたいので,NUCLEOボードを外す.

 そして,NUCLEOボードのコネクタにTang Primer 25Kを挿すために,専用の変換基板を作る.

インバータ・キット2

 作った変換基板.この基板にADCのIC(MCP3008)も載っている.電源(24V)から5Vを作るために,DCDCコンバータ(BP5293-50)も載せた.

 左上はCANバス接続用のRJ45ジャック.ツイストペア線としてLANケーブルを使う.その右隣のSOP8はCANトランシーバ.

 左下に,トグルスイッチを搭載.右側は,モータ出力のON/OFFに割り当てた(テスト時に使う). 左側は,Reserved.

 ボード右下には,DIPスイッチのパターンも用意した.

 ビットストリームの書き込みは4ピン・ヘッダを通してJTAGで行う(要FT-2232)

SoMを外した状態の専用変換基板
専用の変換基板をかませて,Tang Primer 25KのSoMをインバータ・ボードに接続した

●CANによるデータ送信機能

▲BLDCのコントローラ+CANコントローラをFPGAに実装

 BLDCを制御しているので,FPGA内部ではモータ回転数を常に把握できている.この情報をCANパケットに載せて,CANバスに送信する.今回は,Interface誌の別冊付録「GOWIN Vol.4」を参考にして,CANコントローラはFPGA内にRTLで実装し,CANトランスミッタ(TJA1441)はハードウェアで専用変換基板上に実装した.

▲受信側はラズパイ+AGL

 受信側には,ラズベリー・パイで動くAutomotive Grade Linuxを使う.受信したCAN情報に応じて,画面にスピードメータを描画する機能も受け持つ.ラズベリー・パイはCANバスに直接繋げられないので,CAN HAT(Waveshare)などを使う.

 バーション2の基板では,いらぬトラブル回避のため,CANトランシーバは直接基板に実装するように変更した.

バージョン2基板

コメントを残す