LPC1114

ARM

LPC1114FN28(DIPタイプ)

トラ技増刊【2枚入り】LPC1114 MARY基板を使ってみる。 (予定稿)

  • LPC1114はCortex-M0だ。M3より低消費電力らしいが、命令セット等はどの程度違うのだろうか?
    • ここを見る限り、M3に割り算器が付いていることと、あとはハードウェア上の割り切り方の違いっぽい。M0のほうはFPGAマクロとしての提供が主力だったような気もする。
    • M0のほうはM3にくらべてゲート数がかなり少ない。性能も少し落ちるようだ。

http://toragi.cqpub.co.jp/Portals/0/support/2011/ARM_M0/pic1s.png

CQ出版社:MARY特設サイト


Flash書き込みソフトについて

  • LPC1114はUSBを内蔵しない。
  • さらに言うとクロック48MHz/Flash 32kB/ SRAM 8kB しかない。
  • でもBOOT ROMは16kBもある。シリアル(UART)ブートではボーレートを自動認識するし、CANインターフェースによるブートモードもある。BOOT ROM内にはISP(In System Programming)/IAP(In Application Programmingつまり自己書き換え)サポートのルーチンが含まれているようだ。
  • LPC2388のときと同じようにシリアル(UART)ブートの書き込みツールにFlashMagicを使え、とあるが
  • FlashMagicはまっぴらごめんだ。

ChanさんのlpcspをMARY対応させている人がいるので、ありがたく使わせていただく。


  • そっかー、teratermなど普通の無手順ttyはDTRをアサートするのでリセットかかりっぱなしになるなぁ・・・。


LPC1114のブートモードについて

BOOTスイッチが無いなぁ・・・と思ってマニュアルを摘み読み


RESET後のBOOTシーケンスとしては

  • (1)大前提として、WATCHDOGがEnableになっていたり、CRP3/NO_ISPモードのときはBOOTモードにならずに即座にユーザーコードを実行する。
    • ただし、ユーザーコードが正しく書き込まれていない(リセットベクタのチェックサムが合わない)場合はその限りで無い。
  • (2)PIO0_1=LOWかつPIO0_3=LOWのときはC_CANからブートする。
  • (3)PIO0_1=LOWかつPIO0_3=HIGHのときはUARTからブートする。
  • (4)PIO0_1=HIGHで、ユーザーコードが正しく書き込まれているなら、ユーザーコードを実行する。


ちなみにPIO0_1はCP2104のRTS出力(OC)とつながっている。
PIO0_0(RESET)は基板上の押しボタンスイッチと、CP2104のDTR出力(OC)の両方に繋がっている。


PIO0_3(CAN BOOTセレクト)はMARYの他の基板へと繋がるようなので、他の基板からのLOW信号が来ているとUARTブートではなくCANブートになる可能性がある。


もちろん、CP2104側から、RESET(=DTR)とBOOT(=RTS)を同時アサートしない(ブートローダーを起こさない)なら無問題。



コンパイラ(開発環境)は?

  • CQ.zipを開いてみたけれど、コンパイラが見つからない。
  • あれ?LPCXpressoを入れろって?
  • まさか、あのEclipseじゃないよね。
  • って、やっぱりそのまんまじゃん。

なんだそれー、がっくりじゃないか。おれGUI嫌いなんだ。

  • GUIが嫌いというよりはEclipse嫌いかな。VisualStudioも嫌いだが・・・。とにかく重い奴はだめだ。
  • マシンとか液晶解像度が非力なだけなんだけど。
  • DOS窓とLinuxコンソールとgccとmakeと秀丸(か、適当な軽いエディタ)があればそれで満足。




続きを読む・・・