Up STM32 作成: 2026-09-09
更新: 2026-09-21

4足歩行ロボット自律型コンピュータハードウェアMCUSTM32

    STM32とは
    STマイクロエレクトロニクスが開発した
    32ビット・フラッシュ・マイクロコントローラ・ファミリ

STM32F汎用モデル
コスパのバランスが良い
家電,産業機器,教育用途
STM32L低消費電力モデルIoTデバイス,ウェアラブル,ポータブル機器
STM32H高性能モデル高速演算,AI処理,リアルタイム制御
STM32G汎用+高性能+低消費電力のバランス型次世代家電,産業機器,エッジデバイス
STM32WBワイヤレス通信内蔵モデルIoTデバイス,スマートホーム製品
STM32MP1Cortex-AとCortex-Mを統合(Linux対応)高度なアプリケーション,AI,GUIデバイス


    ここでは STM32 を,MCU の例として取り上げる。

    理由:
      1ms周期のモータ制御が可能
      I2C / UART / SPI / ADC / PWM (タイマ) が豊富
      SRAM が十分
      HAL が使いやすい
      CubeIDE が標準的
      ST-LINK で書き込みが簡単
      ROS2 と相性が良い(UART通信)


    STM32 と SBC の接続は,UART, PWM。
    そして MCU と終端機器の接続は,
      モータドライバ IC : PWM, GPIO
      IMU   : I2C
      接地センサ : UART / I2C / ADC(種類による)
      カメラ   : 不可(SBC に直結)

    STM32 は「センサ集約用 MCU」として設計されているので,以上の接続なら余裕がある:
      PWM には,TIM チャネルを使う
      I2C は,2本 (SCL, SDA) で複数デバイスを接続できる
      ADC は複数チャネルがある
      UART も複数ポートがある
      GPIO も豊富


    メモリも,上の接続に余裕で足りる。

    STM32 の SRAM は:
      64KB〜512KB(機種による)
    一方,
      IMU:14 バイト
      電流センサ:2〜4 バイト
      接地センサ:数十バイト
      カメラ:MCU には接続しない(SBC 側)
      合計 : 数百バイト〜数キロバイト程度。


      ペリフェラル用 途
      GPIOLEDやスイッチ制御
      UART/I2C/SPI通信プロトコル(センサー,外部機器)
      ADC/DACセンサー値の取得,アナログ信号の出力
      PWM/タイマーモーター制御,タイミング制御
      USB/Ethernet外部デバイス接続,ネットワーク通信
      DMA高速なデータ転送


    仕様 (例):
    ボードの動作電圧範囲 (VIN) – 7V から 15V の範囲
    MCU 動作電圧範囲 (VDD) – 1.7V から 3.6V の範囲
    SRAM – 96 KB。
    フラッシュ メモリ – 512KB
    GPIO ピン – 50。
    ADC – 12 ビット、16 チャンネル。
    タイマー – 16 ビット (6)、32 ビット (2)。
    ウォッチドッグ タイマー – 2.
    RTC – 内蔵の 32kHz で調整済み。
    SPI コミュニケーション – 3.
    I2C 通信 – 3.
    USART/UART 通信 – 4.
    オンボード デバッガ – はい、JTAG とシリアル ワイヤ。






  • AF (Alternate function mode)
    ポートの機能は,AF によって割り当てる。
    よって,「○用のピンは△個」 のようには言えない。

    STM32F303RETx LQFP64 (64ピン) の場合:
     P*ピンは
       PA0 〜15
       PB0 〜15
       PC0 〜15
       PD2
       PF0,1

    以下,AF で TIM になるピンを数えてみる

     TIM1
        PA6〜12, PA14, PA15,
        PB0, PB1, PB4, PB8, PB12〜15,
        PC0〜4, PC13
        PE7〜15
     TIM2
        PA0〜3, PA5, PA9, PA10, PA15
        PB3, PB10, PB11)
        PD3, PD4, PD6, PD7
     TIM3
        PA4, PA6, PA7
        PB0, PB1, PB3, PB4, PB5, PB7
        PC6〜9,
        PD2,
        PE2〜5
     TIM4
       PA8, PA11, PA12, PA13,
       PB3, PB6, PB7, PB8, PB9,
       PD12, PD13, PD14, PD15,
       PE0,
       PF6
     TIM8
       PA0, PA6, PA7, PA10, PA14, PA15,
       PB0, PB1, PB3〜9,
       PC6〜12
       PD1, PD2
     TIM15
       PA1, PA2, PA3, PA9,
       PB14, PB15,
       PC5
     TIM16
       PA6, PA12, PA13,
       PB4, PB5, PB6, PB8,
       PE0
     TIM17
       PA7, PA10
       PB5, PB7, PB9,
       PE1
     TIM20
       PE0〜6
       PF2〜5, PF7〜15
       PG0〜5,
       PH0, PH1

    よって,STM32F303RETx LQFP64 で TIM ピンとして使えるポートは:
       TIM1
        PA6〜12, PA14, PA15,
        PB0, PB1, PB4, PB8, PB12〜15,
        PC0〜4, PC13
     TIM2
        PA0〜3, PA5, PA9, PA10, PA15
        PB3, PB10, PB11)
     TIM3
        PA4, PA6, PA7
        PB0, PB1, PB3, PB4, PB5, PB7
        PC6〜9,
        PD2,
     TIM4
       PA8, PA11, PA12, PA13,
       PB3, PB6, PB7, PB8, PB9,
     TIM8
       PA0, PA6, PA7, PA10, PA14, PA15,
       PB0, PB1, PB3〜9,
       PC6〜12
     TIM15
       PA1, PA2, PA3, PA9,
       PB14, PB15,
       PC5
     TIM16
       PA6, PA12, PA13,
       PB4, PB5, PB6, PB8,
     TIM17
       PA7, PA10
       PB5, PB7, PB9,

    重複を除くと,
     TIM1
        PA6〜12, PA14, PA15,
        PB0, PB1, PB4, PB8, PB12〜15,
        PC0〜4, PC13
     TIM2
        PA0〜3, PA5
        PB3, PB10, PB11)
     TIM3
        PA4,
        PB5, PB7
        PC6〜9,
        PD2,
     TIM4
       PA13,
       PB6, PB9,
     TIM8
       PC10〜12
     TIM15
       PC5

    TIM になるポートは,
      PA : 0 〜 15
      PB : 0, 1, 3〜 15
      PC : 0〜13
      PD : 2