以下の内容はhttps://lipoyang.hatenablog.com/entry/2025/10/17/193815より取得しました。


メモ:M5StackのUnit BLDC Driverの内部を調査

Arduinoライブラリのサンプルスケッチ

  • pwm.ino : オープンループ制御、方向とPWMデューティ(0-2047)を指定
  • rpm.ino : クローズドループ制御、方向と回転数(RPM)を指定
  • i2c_addr_modify.ino : I2Cアドレス変更用

マイコンとモータドライバの接続 (マイコンからみた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/その他 : 自動生成されたソースファイル



以上の内容はhttps://lipoyang.hatenablog.com/entry/2025/10/17/193815より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14