STM32とは、STマイクロエレクトロニクス社が製造するARM Cortex M3アーキテクチャに基づいた32bitマイクロコントローラの事です。小型、安価、3.3V系低消費電力ながらコード密度に優れたThumb2命令を実装し非常に高速に動作します。
ARM Cortex M3を実装したマイクロコントローラ、及び実装ボードは各社から出ています。
このWikiではこれらの評価、実装済みボードから量産化され供給に安定性があるStrawberry Linux社のSTBee、及び小型版のSTBee Miniに焦点を当てて、メモを残していこうと思います。このSTBeeシリーズに採用されているマイクロコントローラがSTM32シリーズです。 Strawberry Linux社単独の情報で開発を行うのは非常に困難ですが、STM32シリーズには無償で豊富なファームウェア関数群が用意されています。また詳細な開発環境の構築方法の解説本、サイトが存在します。これらSTBeeシリーズも、その情報を活用できます。しかしながら本格的な開発を行おうと思うと、マイコン素人には敷居が高いのも事実で、検索を掛けてサクっと関数の利用法が出てくる状態でもありません。そこで、
管理人が32bitマイコン開発に挑戦し、疑問に思ったこと失敗したことをメモしていきます。
管理人はハードウェア開発業務が本業ですので普通にオシロやロジアナやらは普通に駆使してデバッグしますので視点はハード屋がチャレンジする組み込みソフト開発です。ソフト屋視点で見るとプッな点が多々あるかと思いますが、その場合は指摘して頂けると幸いです。
STM32F103VET6
12MHz×6倍で72MHz動作が基本です。
512KB
64KB
RTC用32.768KHzクリスタルが付属。バックアップ用電池の接続端子も出ているためバックアップレジスタ・RTCレジスタを使用したプログラムが組めます。STBeeMiniでは工夫が必要です。
安価なST-LINKを使ったデバッグが出来ます。引き出し済みなのでヘッダーピンをつけるだけ。
最大2ch
最大3ch
最大5ch。内USART1はピンヘッダをつけられます。
PORTA-Ex16で最大80本。5Vトレラント機能が一部端子を除いてあります。出力レベルは3.3Vです。
高機能タイマが2個、汎用タイマが8個使えます。このWikiで使っている開発環境でdelay関数を使うとTIM2は使えません。
12bit精度、最短変換時間1us。基準電圧は3.3Vです。分解能約0.8mV。
12bit精度
STM32F103CBT6
128KB
20KB
機能としてはありますが専用クリスタルは無いのでクロック配分に工夫が必要だと思います。バックアップ用電池の接続端子も別口で出ているためバックアップレジスタ・RTCレジスタを使用したプログラムは工夫が必要です。
ピン数が少ないため標準では利用出来ません。工夫すれば可能とのこと。
最大1ch
最大2h
最大2ch。
PORTA-Bx2で最大32本。5Vトレラント機能が一部端子を除いてあります。出力レベルは3.3Vです。 タイマー 高機能タイマが1個、汎用タイマが3個使えます。このWikiで使っている開発環境でdelay関数を使うとTIM2は使えません。
12bit精度、最短変換時間1us。基準電圧は3.3Vです。分解能約0.8mV。
12bit精度