STM32F103C8T6ボードから始める方法は?


10

私はここ数年、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を含め、必要なものがすべて含まれていると思いますが、これはたまたまハードウェアに実装されているので、非常に優れています。

私はこれに従って私のツールチェーン+ IDEを設定しました:

このチップのドキュメントは、私がダウンロードしたいくつかのPDFに散在していることがわかりました。

私はSTM32F10x標準周辺機器ライブラリもダウンロードしましたが、それにより、新しいSTM32CubeF1を入手するよう勧められました。

最後に、Joseph Yiuによる「The ARM Cortex-M3の決定的なガイド」も入手しました。これは、ボードが到着するのを待っているときに読んでいます。

私の質問は:

  1. 控えめに言っても、私はドキュメントに少し圧倒されており、すべてを手に入れたかどうかさえわかりません。たとえば、データシートとリファレンスマニュアルには、直交エンコードされた入力が可能な3つのタイマーがチップにあると記載されています。しかし、タイマーを制御するレジスターのドキュメントが上記のPDFのどこにも見つかりません。何が欠けていますか?

  2. (古い?)標準ペリフェラルライブラリ、または(新しい?)キューブのものを使用する必要がありますか?違いは何ですか?どちらのライブラリでも、レジスタを直接操作する必要がなく、推奨される方法であることを理解しています。私は正しいですか?

  3. ライブラリのドキュメントはどこにありますか(埋め込まれたdoxygenのコメントに加えて、これはすばらしいのですが、検索可能なhtml / pdfが必要です)。

  4. 私はツールチェーンとしてEclipse + GCC ARM + OpenOCDを選択しました。これは、コードサイズやその他の制限なしに3つのメインOSで実行できる唯一のオプションだと考えているためです。他にオプションはありますか?


2
リファレンスマニュアルの324ページに、TIM1およびTIM8を使用したエンコーダインターフェイスの詳細が記載されています。
Leon Heller

1
Embedded Systems-Shape The World ARM-Cortex-M3 をお勧めしますが、それはTIからのものです。また、私はEclipse + GCC ARM + OpenOCDをubuntu用に構成することができました。
Mahendra Gunawardena

1
ARM-gccソリューションは一般に非常に安定しており、最も移植性の高いオプションです。強調は、Makefileまたはビルド自動化によって駆動されるビルドを対象とする傾向があるため、既存の組織ソフトウェア開発プラクティスとの統合は優れています。編集し、実験的ビルドを推進するIDE(ある場合)は、はるかに個人的な決定になりがちであり、必ずしもそれに向けられたツール開発の努力がそれほど多くないとは限りません。個人的に、私が対処しなければならない最後のことは、それを操作するためだけにIDEを変更することを想定しているターゲット/ツールチェーンです。
Chris Stratton、2015

回答:


6
  1. データシートに関して言えば、実際には分割されています。「リファレンスマニュアル」は、MCU全体の操作方法、構成、および詳細な考慮事項についての複雑な説明です。一方、「データシート」は、MCU機能、ピン配置、パッケージなどの簡単な説明にすぎません。すべてのSTM32ライン(F1、2 ... 7)「STM32F7xxxx MCUハードウェア開発の開始」に関する非常に役立つドキュメントもあります。カスタムボードを設計する場合は、多くの情報を提供します。AVRと比較して、レジスタの説明は、特定の章の主な説明とは少し異なる場合があります。

  2. STM32CubeMXはライブラリではなく、STの便利なプログラムです。ピン配置、構成、システムクロックなどを設定し、最後にコードとプロジェクト全体を生成できます。プロジェクトは、Eclipse(System Workbench for STM32)用に特別に生成でき、このプロジェクトをインポートするだけで準備完了です。新しいライブラリはHAL(「ハードウェアアブストラクションレイヤー」)であり、それを使用してみてください。それは新しいことであり、インターネットで例を見つけるのが難しいこともありますが、古いテクノロジーを生徒に教えないでください。HALは使い勝手がよく、ドキュメントもあるので、こちらの方がいいと思います。

  3. どの図書館?とにかくそれらをグーグルすることは問題ではないと私は思います。

  4. 1つのOS(Windowsなど)のみを使用したい場合でも、Eclipse(AC6 = STM32のシステムワークベンチ)が-最良のオプションだと思います。たとえば、KeilのuVision 5がありますが、それは本当にひどいIDEです。IDEが提供するほとんどの機能(屈折、クリックアンドサーチ、適切なエラーチェック、参照の検索など)が不足しています。つまり、全体的に見て、Eclipseは、STM32のIDEに適した唯一の選択肢です。


3
実際には、外部コンパイラを駆動するために作成できるIDEのほぼすべてを使用できます。
Chris Stratton、2015
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.