イカ醤油ポッポ焼き -> LPC812

  • 3
    いいね
  • 0
    コメント

久しぶりにmbedの記事。2016/6が最後なので、半年振りですね。
この半年間、mbedを使っていなかったわけではないのですが(汗

経緯

導電織物を皆さんに使ってもらおう!ということで、Textile Sensor KitというArduinoやmbedに接続して、導電織物のタッチ状態を取れるキットを販売していました。(キットの詳細はgithubのドキュメントを参照)

キット内容物は、導電織物(左)とセンサー基板(中)で、mbed(右)はご自身で用意してくださいって感じで。
image.png

「マイコンボードを別途用意するの?良く分からないんだけど。」という言葉がチラホラとあり...

マイコンの選定

珍しく気が向いたので基板を作ることに。
マイコンは、高性能で小型なLPC800シリーズにしようと思いましたが、結構ランナップがありますね。
image.png

どれにしようか迷う...

mbedオンラインコンパイラが対応している(と思われる)ものを確認します。
mbed platformをざっと見ると、
image.pngimage.pngimage.png
があります。
ということは、LPC812, LPC824。

LPC812はマルツで購入できそうなので、

  • LPC812のSSOP20を採用。
  • ちょっと性能不足になったときはLPC824のSSOP20に換装。

ってことで、

LPC812を採用!!!

ISP! ISP!

でもオイちょっと待て。ARMマイコンのライター持っていなかった。orz
ググってみるとLPC-Link使ったり、FTDI+FlashMagicだったり、様々な方法があるみたい。
そんな中で、異色なライターがっ。

image.png

見てしまった以上、使わないと使ってみなければクマの人に(ry

「イカ醤油ポッポ焼き」とは?

詳しくは公式を見てください。
一言でいうと、
「(パソコンに書き込み用のソフトウェアを入れることなく)binファイルをマイコンのフラッシュへ書き込むソフトウェア。」
です。
image.png

プログラムの書き込み

さぁー、書こう。と思ったら、公式にLPC812 SSOP20の結線方法が載っていないではありませんか(!)
image.png

確認不足でした。
そ、そうですよね...人に頼ってばかりではいけません。ちゃんと自分で考えないと。

んー...
んー...

この図の「connection to DIP8」を見ると、mbed LPC1768側は、

  • p25 ISP_enable#
  • p26 RESET#
  • p27 UART RX
  • p28 UART TX

接続しているLPC810のピン番号は、
image.png

  • 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に、こんな記述が。
image.png

ん?

image.png

Table 6とは?

image.png

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