私はここ数年、8ビットAVR MCUを使用して、生徒と一緒にラインフォロワーロボットを構築しています。オドメトリやセンサーフュージョンなど、CPUを多用する機能を追加したいので、ARM Cortex-M3にステップアップしたいと思います。
要件は次のとおりです。
- 8つのアナログ入力、
- 4つのPWM出力、
- I 2 C、
- 2つの直交エンコーダ入力、
- シリアルI / O、
- ロボットに物理的にアクセスせずにワイヤレスで自己プログラミング。
- マルチプラットフォームツールチェーン+ IDE(OS X、Linux、Windows)。
これまでに行った手順は次のとおりです。
このSTM32F103C8ベースのボードを使用しています。このMCUには、ソフトウェアで実装する予定の2 x QEIを含め、必要なものがすべて含まれていると思いますが、これはたまたまハードウェアに実装されているので、非常に優れています。
- ボードhttp://eud.dx.com/product/high-quality-cortex-m3-stm32-stm32f103c8t6-development-board-w-swd-interface-844380789
- プログラマーhttp://eud.dx.com/product/st-link-v2-programmer-emulator-mini-stlink-downloader-for-stm8-stm32-mcu-development-board-844380733
私はこれに従って私のツールチェーン+ IDEを設定しました:
このチップのドキュメントは、私がダウンロードしたいくつかのPDFに散在していることがわかりました。
- STM32F103x8データシートhttp://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/CD00161566.pdf
- リファレンスマニュアルhttp://www.st.com/st-web-ui/static/active/en/resource/technical/document/reference_manual/CD00171190.pdf
- AN2606(メモリブートモード)、PM0075(フラッシュプログラミングマニュアル)、AN3155(シリアルブートローダープロトコル)のような他のいくつかのドキュメント。これはおそらく将来必要になるでしょう。
私はSTM32F10x標準周辺機器ライブラリもダウンロードしましたが、それにより、新しいSTM32CubeF1を入手するよう勧められました。
- http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1743/LN1939/PF257890
- http://www.st.com/web/en/catalog/tools/PF260820
最後に、Joseph Yiuによる「The ARM Cortex-M3の決定的なガイド」も入手しました。これは、ボードが到着するのを待っているときに読んでいます。
私の質問は:
控えめに言っても、私はドキュメントに少し圧倒されており、すべてを手に入れたかどうかさえわかりません。たとえば、データシートとリファレンスマニュアルには、直交エンコードされた入力が可能な3つのタイマーがチップにあると記載されています。しかし、タイマーを制御するレジスターのドキュメントが上記のPDFのどこにも見つかりません。何が欠けていますか?
(古い?)標準ペリフェラルライブラリ、または(新しい?)キューブのものを使用する必要がありますか?違いは何ですか?どちらのライブラリでも、レジスタを直接操作する必要がなく、推奨される方法であることを理解しています。私は正しいですか?
ライブラリのドキュメントはどこにありますか(埋め込まれたdoxygenのコメントに加えて、これはすばらしいのですが、検索可能なhtml / pdfが必要です)。
私はツールチェーンとしてEclipse + GCC ARM + OpenOCDを選択しました。これは、コードサイズやその他の制限なしに3つのメインOSで実行できる唯一のオプションだと考えているためです。他にオプションはありますか?