*STM32のメモ [#m3e55f33]
**STM32について [#v460511b]
STM32とは、STマイクロエレクトロニクス社が製造するARM Cortex M3アーキテクチャに基づいた32bitマイクロコントローラの事です。小型、安価、3.3V系低消費電力ながらコード密度に優れたThumb2命令を実装し非常に高速に動作します。

**入手可能なARM Cortex M3ボード [#qac76fc9]
ARM Cortex M3を実装したマイクロコントローラ、及び実装ボードは各社から出ています。
-STBee
-STBee mini

このWikiではこれらの評価、実装済みボードから量産化され供給に安定性があるStrawberry Linux社のSTBee、及び小型版のSTBee Miniに焦点を当てて、メモを残していこうと思います。このSTBeeシリーズに採用されているマイクロコントローラがSTM32シリーズです。
Strawberry Linux社単独の情報で開発を行うのは非常に困難ですが、STM32シリーズには無償で豊富なファームウェア関数群が用意されています。また詳細な開発環境の構築方法の解説本、サイトが存在します。これらSTBeeシリーズも、その情報を活用できます。しかしながら本格的な開発を行おうと思うと、マイコン素人には敷居が高いのも事実で、検索を掛けてサクっと関数の利用法が出てくる状態でもありません。そこで、

+ハードウェアに関しては十分な知識がある(電子工作は普通に出来る)
+C言語に関しては基本的な知識があるが、本格的な開発はしたことが無い

管理人が32bitマイコン開発に挑戦し、疑問に思ったこと失敗したことをメモしていきます。

管理人はハードウェア開発業務が本業ですので普通にオシロやロジアナやらは普通に駆使してデバッグしますので視点はハード屋がチャレンジする組み込みソフト開発です。ソフト屋視点で見るとプッな点が多々あるかと思いますが、その場合は指摘して頂けると幸いです。

**STBee [#qeef33e6]
#ref("STBee.jpg")
***CPU [#s69b3c86]
STM32F103VET6&br;
12MHz×6倍で72MHz動作が基本です。
***Flash [#cc0babae]
512KB
***SRAM [#jc2cce17]
64KB
***RTC [#oe3b8f0c]
RTC用32.768KHzクリスタルが付属。バックアップ用電池の接続端子も出ているためバックアップレジスタ・RTCレジスタを使用したプログラムが組めます。STBeeMiniでは工夫が必要です。
***JTAG [#j3ce7f7c]
安価なST-LINKを使ったデバッグが出来ます。引き出し済みなのでヘッダーピンをつけるだけ。
***I2C [#md71d5de]
最大2ch
***SPI [#u7dfffa5]
最大3ch
***USART [#m16c21b7]
最大5ch。内USART1はピンヘッダをつけられます。
***GPIO [#gc26c83a]
PORTA-Ex16で最大80本。5Vトレラント機能が一部端子を除いてあります。出力レベルは3.3Vです。
***タイマー [#od40528e]
高機能タイマが2個、汎用タイマが8個使えます。このWikiで使っている開発環境でdelay関数を使うとTIM2は使えません。
***ADC [#saadbbfd]
12bit精度、最短変換時間1us。基準電圧は3.3Vです。分解能約0.8mV。
***DAC [#qaefb66d]
12bit精度
***その他 [#y1870985]
-CAN
**STBeeMini [#t5ace4c2]
#ref("STBeeMini.jpg")
***CPU [#k5b616e7]
STM32F103CBT6
***Flash [#v026e1f0]
128KB
***SRAM [#t1a57056]
20KB
***RTC [#z74b0a48]
機能としてはありますが専用クリスタルは無いのでクロック配分に工夫が必要だと思います。バックアップ用電池の接続端子も別口で出ているためバックアップレジスタ・RTCレジスタを使用したプログラムは工夫が必要です。
***JTAG [#d4f5de9a]
ピン数が少ないため標準では利用出来ません。工夫すれば可能とのこと。
***I2C [#w346f5ff]
最大1ch
***SPI [#c08abf60]
最大2h
***USART [#e9ca1513]
最大2ch。
***GPIO [#a16b0e47]
PORTA-Bx2で最大32本。5Vトレラント機能が一部端子を除いてあります。出力レベルは3.3Vです。
タイマー
高機能タイマが1個、汎用タイマが3個使えます。このWikiで使っている開発環境でdelay関数を使うとTIM2は使えません。
***ADC [#z38538a8]
12bit精度、最短変換時間1us。基準電圧は3.3Vです。分解能約0.8mV。
***DAC [#v6daa956]
12bit精度

**関数 [#ze4b9547]
-[[ファームウェア関数一覧]]
-[[ユーザ関数一覧]]
-[[独自関数一覧]]

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS