1.マイコンを使うための第1歩
・セミナで使うマイコンの構成
・クラウド・ベースのプログラム開発環境Mbed
・「Lチカ」のプログラム
・MbedライブラリとC++とクラス
・printfとターミナル・ソフト
2.GPIO出力によるマルチカラーLEDの駆動回路とプログラミング
・GPIO出力部の電気的特性
・外付けマルチカラーLEDの点灯/消灯のプログラム
・GPIOのレジスタに対する直接の書き込み/読み出しの方法
3.GPIO入力回路とプログラミング
・GPIO入力部の電気的特性
・外付けスイッチを利用するプログラミング
4.シリアル・インターフェース(I
2C)の使い方とセンサ,表示器のプログラミング
・I
2C方式とSPI方式の比較
・MBED_ASSRTによるデバッグ
・I
2C利用の温度センサのプログラミング
・I
2C利用のLCDキャラクタ表示器のプログラミング
5.割込み処理とタイマのプログラミング
・割込み処理プログラミングの基礎
・割り込み処理で使うCMSIS(Arm社Cortex Mソフトウェア規格)の関数
・内蔵タイマを使うタイマ割込みのプログラミング
・割込み優先順位と多重割込み
6.タイマ割込みによるステッピング・モータ駆動
・動作中のタイマ周期の変更方法
・ステッピング・モータ駆動のプログラム
7.アナログ信号入出力のプログラミング
・A-D変換器を効率よく使うためのプログラミング
・Mbedライブラリを使わないMbedプログラミング
・ポーリング方式と割り込み方式のプログラミング
・高速(標本化間隔:1μs)A-D/D-A変換のプログラミング
●セミナで使用したキットがお持ち帰りできます!
マイコン・ボードに接続したインターフェース回路
※ 写真をクリックすると拡大できます2.GPIO出力によるマルチカラーLEDの駆動回路の学習例
この回路では,緑(G)と青(B)を十分な明るさで点灯させるため,LEDのアノード側の電源をマイコンに供給している3.3 Vではなく,5 Vにしています.Mbedのオフィシャル・ライブラリでGPIOを出力ポートとして使う場合,この出力は必ずプッシュプル状態になり,オープン・ドレインの状態には指定できません.そのため,この回路では赤(R)のLEDを完全には消灯できず,薄明るく光ってしまいます.この状態を下記の動画で示します.
GPIOポートのオープン・ドレイン状態の有無によるLED点滅動作赤(R)のLEDを完全に消灯するためには,GPIOの出力をオープン・ドレインの状態に設定する必要があります.しかし,Mbedのオフィシャル・ライブラリでは対応できないため,以下のようにGPIOをコントロールするレジスタに直接に書き込む必要があります.
*(uint32_t *)0x40020004 |= 1 << 10;
このほかに,定義済みのシンボルを使って書くこともできます.
5.割込み処理とタイマのプログラミングの学習例
マイコン内蔵タイマのカウントアップと他のレジスタとの関係を調べている様子7.アナログ信号入出力のプログラミングの学習例
標本化間隔を1μsに設定してA-D変換器で標本化した100kHzの正弦波をそのままD-A変換器から出力している様子(オシロスコープは32回の平均を行うモードに設定)
※ 画像をクリックすると拡大できます
●対象聴講者
・マイコンを使ってみたいが,ハードルが高いと思っている方.
・マイコンのペリフェラルを使うプログラムをC++で簡単に作りたいと思っている方.
・Mbedライブラリでは提供されていない機能を使って,ペリフェラルを使うプログラムを作りたい方.
・Mbedではペリフェラルを自由に使えないと思い,他のプログラム開発環境に乗り換えを検討している方.
・ペリフェラルを使う自作のライブラリをC++のクラスとして作りたい方.
●講演の目標
・マイコンの基本的なプログラムをつくれるようになること.
・ペリフェラルの機能の中で,Mbedライブラリでは直接サポートされていない機能を使えるようになること.
・Mbedライブラリではサポートされていないマイコン内蔵のペリフェラルを使えるようになること.(たとえば,Nucleo-F446は多数のタイマを内蔵しているがMbedライブラリは一部のタイマしか使っておらず,多くのタイマが遊んでいるので,それらを有効に使えるようになること.)
・ペリフェラルを使う自作のライブラリをC++のクラスとして作れるようになること.
●参考文献
・三上 直樹; Mbedを使った電子工作プログラミング,工学社,2020年.