110円のARM Cortex-M0(LPC1114)で遊ぶ | たけおか ぼちぼち日記

たけおか ぼちぼち日記

思いついたらメモ

世間で 110円の ARM が騒がれていた。
この夏に、生まれて初めて、京都寺町のマルツに行って、なんだか変なテンションで 110円の ARM, LPC1114FN28 を買ってしまった。
でかい28ピン・パッケージが、UV-PROMとか 8228(8080用のバスドライバLSI)を思い出して、懐かしい。
安心できるね。(^^)

LPC1114FN28 の諸元は、
● ARM Cortex-M0搭載 低消費・高性能32-bitマイコン
● 50MHz クロックスピード (最大)
● Flash:32KB
● RAM:4KB
● RCオシレータ: 12MHz, 1%精度
ということで、Z80世代からすると、超絶に速い 1chip マイコン。
(PIC32 MIPSコアも楽しいが)


開発環境を全部Linux(IDEは一切無し)にして、
LEDチカチカ, UART が動いた。
ついでに、BASICインタープリタも動いた… (マルチスレッド版は、RAMの使い方を調整すべき)
(2013/SEP/07 追記: マルチスレッド Tiny BASICも動作した。とても安定している)

たけおか ぼちぼち日記-LPC1114 ボード

たけおか ぼちぼち日記-BASIC稼働中

$たけおか ぼちぼち日記-回路図8013AUG14 (訂正版)
(回路図にケアレスミス(電源まわりの接続ピンがずれていた)があったので、2013/SEP/19更新)



コンパイラは、
https://launchpad.net/gcc-arm-embedded/
から得た。
(他のコンパイラだと、ランタイム・ルーチンに、Cortex-M0用の除算ルーチンが入ってなかったりして困った)


LPC1114 への書き込みは、シリアル・ポートで行える。
pin15: RXD
pin16: TXD
となっている。(わたくしは、いつもどおり、 FT232の秋月基板 を接続した)

LPC1114 内蔵ROMへの書き込みシーケンスの起動は、
pin24をGNDに落としながら、RESETする。

書き込みプログラムは、「lpc21isp」を使用。

http://sourceforge.net/projects/lpc21isp/


lpc21ispは、簡単に make できる。バイナリができたら、

# lpc21isp -hex 対象hexファイル /dev/ttyUSB0 115200 12000

てな感じで書き込める。
ROMへの書き込みが終わったら、RESETをする方が安心です。


UART 9600bps で、エコー(小文字 <-> 大文字 入れ替え加工) するプログラムを大公開。www
一文字受け取るたびに、LEDのON/OFFが反転します。
lpc1114-led2-take.tgz.130905b

スタック・ポインタは、例外ベクタの近所に初期値を書いておくと、自動的にロードされる。
LPC11xx_handlers.c と lpc1xxx/linkscript.ld の __stack_end を参照。


クロックは、LPC1114 内臓の発信器を使用。
電源もいつもの通り、 FT232の秋月基板 から 3.3V を頂いている。
RESETまわりには、チャタリング除去も、パワーオン・リセットも無い。書き込みと実験ができればいいのだ。

基板を小さく作ったので、在来線の電車の中でも書き込み&Goができて、とても楽しい (^^;

RAMが4KBなのは、アホなことをするには、なかなか厳しいが、USB I/Fとか入っていないので、まぁ、こんなものか…
でも、BASICインタープリタは動くので、整数電卓には使える。(そんなもの要らないwww)



LPC1114などで、再利用可能なコードを提供してくれている、素晴らしいサイト。
ライセンスは、BSD ! \(^^)/

microBuilder.eu
http://www.microbuilder.eu/Projects/LPC1114ReferenceDesign/LPC1114CodeBase.aspx