← PoC一覧

マイコン・イベント駆動ファームウェア

個人PoC / 実装・動作経験あり / 記録整理中

GPIO割込み、タイマによるデバウンス、ADC連続変換、UART出力、__WFIを組み合わせたMSPM0のファームウェアの動作検証。

課題と目的

MSPM0の周辺機能を個別に動かすだけでなく、入力イベントの検知とADCのサンプリングを共存させる実装に取り組みました。GPIO、タイマ、ADC、UARTを組み合わせ、MCUが入力を受けて処理する一連の流れを確認することが目的です。

24V DI PoCでは回路からMCUまでの接続を扱い、このページではファームウェアと周辺機能の制御を中心にまとめます。割込み・デバウンスの経験には重複があり、別々の製品開発実績として数えるものではありません。

実装構成

PA25 / 立下りエッジGPIO割込みTimerG / デバウンスイベントカウント / UART
PA24 / ADC入力ADC12 / 連続変換GPIO割込みとの共存

実際に取り組んだこと

GPIO割込みとタイマによるデバウンス

PA25の立下りエッジをGPIO割込みで検知し、TimerGを使ったデバウンス処理を実装しました。イベント数をUARTで表示し、入力イベントをファームウェアで受け取る動作を確認しました。

TimerGの設定値、判定までの時間、割込み中に次の入力が入った場合の処理は、ソースコードと対応付けて追記します。

ADC12の連続サンプリング

PA24を使ったADC12の連続変換を動かし、GPIO割込みとの共存も試しました。タイマ、ADC、IRQを組み合わせた周辺機能制御の経験として整理します。

ADCのクロック、サンプリング条件、結果の取得方法、タイマとADCの具体的な接続関係は未整理です。タイマによるADCトリガやDMA利用は、この記録からは確認できません。

__WFIによるイベント待機

__WFIを使うイベント駆動の実装に取り組みました。待機からイベント処理へ移るファームウェアの構成を扱った経験として記載し、消費電流の削減量や応答時間は実測してから評価します。

現在の結果と追加する証拠

機能経験済みの内容追記する記録
GPIO割込みPA25 / 立下りエッジ検知MCU型番、配線、割込み設定、入力条件
TimerGデバウンス処理クロック、設定時間、短いパルスへの挙動
UARTイベントカウント表示通信速度、出力ログ、入力数と検知数の比較
ADC12PA24 / 連続変換 / GPIO割込みとの共存入力電圧、サンプリング条件、取得データ
__WFIイベント駆動の待機処理待機・復帰のソース、電流と応答時間の測定

このPoCで扱った範囲

  • GPIOの立下りエッジ割込みとTimerGによるデバウンス
  • UARTを使ったイベントカウントの可視化
  • ADC12の連続変換とGPIO割込みの共存
  • __WFIを含むイベント駆動ファームウェア

経験の紹介文

個人PoCとして、MSPM0のPA25 GPIO割込み、TimerGデバウンス、UARTイベントカウント、__WFIを実装しました。PA24のADC12連続変換とGPIO割込みの共存にも取り組んでいます。

記載は本人の実装・動作経験に基づく下書きです。ソースと測定記録は未添付で、サンプリング速度、ADC精度、消費電流、割込み応答時間の定量評価は未整理です。