STM32 Nucleo Baord STM32F401の備忘録

こんばんは、Operaです。
珍しく覚書きのようなことを書こうかと思います。書くネタは激安mbed互換マイコンボードのNucleo Boardの話です。まずはちょちょっとイントロ的なメリットの説明でも。

・mbed互換であること
mbedというのはまあググればいくらでも出てきますが超お手軽マイコン開発環境みたいなもんです。面倒な設定など一切なしで即プログラムを書けます。奥も深いので小難しい制御なんかもできちゃいます。ちなみに読み方はエムベッドではなくエンベッドです、間違えるとこわ~いおじさんに怒られるので注意しましょう。

・安価であること
mbedであるという挙げましたが、本家mbedは値が張ってなかなか手が届きません。僕としてはマイコンボードに4kほどが消えてしまうのは非常に痛いと思います。ですが、Nucleo Boardなら天下の秋月電子でたったの1.5k。Arduinoと比較しても半分ぐらいと超お得です。

・ピンが多いこと
ゲジゲジと使えるI/Oがたくさん出ています。各種モジュールも多いので使いやすいです。

・処理性能が高いこと
天下の32bitマイコンなので処理性能が高く、メモリの容量も大きいのでわりかし自由度が高いです。

・Arduinoとピン配置が互換であること
Arduinoとピン配置が互換ということは、世の中に溢れているArduinoシールドを使うことができちゃうのです。Arduino用のライブラリの中身をmbed用に書き換えることでArduino用のモジュールをそのまま使うこともできるのではないでしょうか。

まあパッと出てくるのはこんなんですかね、ただコイツには問題点があって日本での情報が少ないわけですね。まあ英語読めって話なんですがデータシート読んでいるうちにいくつか気づいたのでそれをメモしておこうと思います。無論、たかが個人ブログであるので情報の信憑性はほぼ0%ですので話半分ぐらいでお願いします。

まず、使えるようにドライバーなんかを入れましょう。やり方はST社のHPにあるGetting started with ARM® mbed™ IDEなんていう動画で音声付きで解説されているのでそっちを...まあ英語なんですけどね。
内容を要約すると、ドライバーを入れてねって話。実際ドライバーを入れないとプログラムの書き込みはできるけどシリアル通信ができなくって面倒くさいので入れましょう。
製品ページの下に「STSW-LINK008」なんてソフトウェアがあるのでそれをダウンロードしてインストールすればOKです。XPを使っている危機管理意識の0の方はXP用のドライバーであるSTSW-LINK009をインストールしてください。

折角ドライバーを入れたので、その苦労を無駄にしないためにシリアル通信のテストプログラムでも書いてみましょう。そのためにまずはmbed.orgでアカウントを作って、オンラインコンパイラを使えるようにします。そこら辺は空気を読んで適当にやってください。
シリアル通信のプログラムの場合、そこら辺に転がってるmbedのプログラムだと恐らく
#include "mbed.h"
Serial pc(USBTX, USBRX);

int main(){
pc.printf("Hello, World!!");
}
なんて書かれてると思いますが、NucleoにはUSBTXなんてピンはないのでSERIAL_TX, SERIAL_RXに書き換えましょう。つまり正しいプログラムは
line 2 : Serial pc(USBTX, USBRX); → Serial pc(SERIAL_TX, SERIAL_RX);
てなわけですね。これでパソコンにHello, World!!の文字が送れるようになります。デフォの速度は9600bpsなのでシリアル通信の受信ソフト、まあTeraTerm辺りがおすすめですけどソフト側でもその速度に設定してくださいな。

んで、最後に実はこれが重要なんですけど使えるピンと使えないピンの話です。なんとなくサイトの方に書いてあるピン配置だと全部使える雰囲気がありますがところがどっこいそんなことはなくって色々と理由があって使えなくなってるんですわ。ジャンプで仕切られていて、マイコンの接続されていないピンはこちらです。

マイコンと接続されていないピン一覧
PA_2
PA_3 PCとのシリアル通信に使われている
PA_13
PA_14 プログラムの書き込みに使われている。実はマイコンとピンは接続されているが、使うなとハードウェアデータシートp37に書いてある
PC_14
PC_15 RTCモジュール用のクロックに使われている
PH_0
PH_1 クロック用クリスタルのために開けられている
こんなもんですかね。ココらへんのピンが行けると思って設計に組み込むと痛い目にあいます(あった)。
現状僕がわかっていることはこの程度です。あとは各Nucleo Boardのデータシートを読んだり、自分のボードに乗っているSTM32Fシリーズのマイコン単体のデータシートを見るだとかするといいと思います。
なんか備忘録書いてたら想像以上にメモ書きになってしまって人に伝える文章にはなってませんね。最低限の情報は書いてあるかと思うのであとは他のサイトさんから情報を補完したりしてなんとかしてNucleo Boardを使ってあげてください。
では、今日はこのへんで。
関連記事
スポンサーサイト

コメントの投稿

非公開コメント

USB通信

USBTX, USBRXは使えますよ。
デバッグケーブルがそのまま通信ケーブルになります。
コントロールパネルのデバイスマネージャーに「STLink Vertual COMport」ができているはずなので、そのポートをPCのソフトを設定すればOKです。
プロフィール

おぺら

Author:おぺら
強電から弱電まで狭く浅くやっています。
強電:コイルガン(充電&発射部)、テスラコイル
弱電:コイルガン(制御)、鉄道模型版PRC&CTC、マルチコプター

最新記事
カレンダー
04 | 2017/05 | 06
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -
検索フォーム
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
訪問者数
リンク
ブロとも申請フォーム

この人とブロともになる