概要
- m5-docs : Unit BLDC Driver (英文)
- m5-docs : Unit BLDC Driver (和文)
- マイコン : STM32G030F6P6
- モータドライバIC : DRV11873PWPR
- I/F : I2C, プロトコル → Unit_BLDC_I2C_Protocol.pdf
- 回路図 : Sch_bldc_driver_V1.3.pdf
- Arduinoライブラリ : GitHub - m5stack/M5Unit-BLDC
- ユニットのファームウェア(STM32G030F6P6用) : M5Unit-BLDC-Driver-Internal-FW
Arduinoライブラリのサンプルスケッチ
マイコンとモータドライバの接続 (マイコンからみたI/O)
- PWM (O) : 回転速度指令 ( PWMパルス )
- FR (O) : 回転方向指令 ( L=正転, H=反転 )
- FS (O) : モータ設定 ( L = 低速, H = 高速 )
- FG (I) : 回転数を示す※ (Duty=50%のパルス, オープンドレイン出力 )
- RD (I) : ロック保護を示す ( L = 正常, H = ロック保護, オープンドレイン出力 )
※ RPM = (FG[Hz]×60) / 極対数
モータドライバICの仕様
- 3相BLDCモータ 150度通電制御
- 電源電圧 5V~16V
- 出力電流 ~1.5A(連続), ~2.0A(ピーク)
- 5V LDO出力あり (出力電流 ~20mA)
- UVLO (低電圧誤動作防止機能)
- PWM入力 7~100 kHz
- PWMのVih = 2.7V, FRとFSのVih = 2.3V
- FGとRDはオープンドレイン
- 0.65mmピッチ 16ピン PowerPAD HTSSOPパッケージ
- PowerPadはGNDに接続
ファームウェアの概要
- code/MDK-ARM/ : ARM Keil MDKのプロジェクトファイル等
- code/UnitBLDC.ioc : STM32CubeMXでのコード生成の設定ファイル
- code/Core/Inc : ヘッダ類
- code/Core/Src/main.c : メインのソースファイル
- pid_ctrl_pos_t : PID制御用構造体
- main() : メイン関数
- init_pid() : PID制御の初期化 → PIDInit()
- speed_pid() : 速度のPID制御 → PIDCompute()
- i2c1_receive_callback() : I2C受信コールバック
- code/Core/Src/pid_controller.c : PID制御のソースファイル
- PIDInit() : PID制御の初期化
- PIDCompute() : PID制御の計算
- code/Core/Src/flash.c : データFLASHメモリアクセス処理のソースファイル
- code/Core/Src/i2c_ex.c : I2C送信処理のソースファイル
- code/Core/Src/その他 : 自動生成されたソースファイル