久しぶりにmbedの記事。2016/6が最後なので、半年振りですね。
この半年間、mbedを使っていなかったわけではないのですが(汗
#経緯
導電織物を皆さんに使ってもらおう!ということで、Textile Sensor KitというArduinoやmbedに接続して、導電織物のタッチ状態を取れるキットを販売していました。(キットの詳細はgithubのドキュメントを参照)
キット内容物は、導電織物(左)とセンサー基板(中)で、mbed(右)はご自身で用意してくださいって感じで。
「マイコンボードを別途用意するの?良く分からないんだけど。」という言葉がチラホラとあり...
#マイコンの選定
珍しく気が向いたので基板を作ることに。
マイコンは、高性能で小型なLPC800シリーズにしようと思いましたが、結構ランナップがありますね。
どれにしようか迷う...
mbedオンラインコンパイラが対応している(と思われる)ものを確認します。
mbed platformをざっと見ると、
があります。
ということは、LPC812, LPC824。
LPC812はマルツで購入できそうなので、
- LPC812のSSOP20を採用。
- ちょっと性能不足になったときはLPC824のSSOP20に換装。
ってことで、
LPC812を採用!!!
#ISP! ISP!
でもオイちょっと待て。ARMマイコンのライター持っていなかった。orz
ググってみるとLPC-Link使ったり、FTDI+FlashMagicだったり、様々な方法があるみたい。
そんな中で、異色なライターがっ。
見てしまった以上、使わないと使ってみなければクマの人に(ry
#「イカ醤油ポッポ焼き」とは?
詳しくは公式を見てください。
一言でいうと、
「(パソコンに書き込み用のソフトウェアを入れることなく)binファイルをマイコンのフラッシュへ書き込むソフトウェア。」
です。
#プログラムの書き込み
さぁー、書こう。と思ったら、公式にLPC812 SSOP20の結線方法が載っていないではありませんか(!)
確認不足でした。
そ、そうですよね...人に頼ってばかりではいけません。ちゃんと自分で考えないと。
んー...
んー...
この図の「connection to DIP8」を見ると、mbed LPC1768側は、
- p25 ISP_enable#
- p26 RESET#
- p27 UART RX
- p28 UART TX
- 5 ISP_enable#
- 1 RESET#
- 2 UART RX
- 8 UART TX
LPC81xデータシートのPin description tableにDIP8とSSOP20のピン番号対応が書いてあります。
DIP8ピン番号 | SSOP20ピン番号 | 意味 |
---|---|---|
5 | 12 | ISP_enable# |
1 | 4 | RESET# |
2 | 5 | UART RX |
8 | 19 | UART TX |
というわけで、次のとおり結線しました。
mbed LPC1768 | SSOP20ピン番号 | 意味 |
---|---|---|
p25 | 12 | ISP_enable# |
p26 | 4 | RESET# |
p27 | 5 | UART RX |
p28 | 19 | UART TX |
結果...書き込みできずorz
なぜだ。
悶々とする日々...
LPC81xデータシートを何度も見直していたら、Pin description tableに、こんな記述が。
ん?
Table 6とは?
ISP_enable#をPin12(PIO0_1)からPin3(PIO0_12)に変更したところ、書き込みできた (^O^)/
#教訓
- データシートはバイブル。ちゃんと読もう。
- 読むデータシートは最新のものを。
- マイコン内のブートローダーバージョンに注意。
mbed LPC1768 | SSOP20ピン番号 | 意味 |
---|---|---|
p25 | 12(1A,2A) or 3(4C-) | ISP_enable# |
p26 | 4 | RESET# |
p27 | 5 | UART RX |
p28 | 19 | UART TX |