LPC1114のDIPを極秘裏に入手
悪い人がオランダから密輸してきたLPC1114FN28/102がやってきました。
ES品だそうです。うひょひょ
ピンアサインは以下のとおりです。
- DIPで28pin
- SPIが1つになった
- RAMが4kに減った
- AVDD,AGNDとアナログ電源が分離できるようになった
WAKEUP端子が追加された(通常はプルアップ)すみません、間違いでした。48pinにもWAKEUPあります
が大きな相違点ではないかと思います。Flashは32kと変わりません。
■eXodusinoブートローダの対応
せっかくなので、eXodusinoのブートローダを移植してみました。RAMが4kに減ったものの、リンカスクリプトを修正して移植に成功しました。
ブートローダも含めこちらにアップしました。
http://github.com/lynxeyed-atsu/eXodusino/
ブートローダはプロジェクトフォルダ直下の
Bootloader_DIP28_.axf
をLPCXpressoボードなどSWDが使えるハードで書き込んで使用して下さい。
なお、LPCXpresso 4.2以降のIDEを使用して下さい
このブートローダを一旦書き込んでしまえば、Flash MagicやLPCXpressoを使わなくてもLPC1114FN28/102マイコンのシリアル端子*1でプログラムの書き込みが出来ます。透過モードのXBeeやUSB-シリアルケーブルで書き込みが出来ます。
なお、テスト用のバイナリを
Release/exodusino_sample1_DIP_28_.bin
に用意しました。
バイナリ書き込みにはTeraTermなどのシリアルコンソールを使います。
具体的な方法はこちらを参照して下さい。
書き込みに成功すると、ターミナルエミュレータへ1秒ごとにカウントアップを送信します。
■eXodusinoとして使う場合の設定
ここからはeXodusinoのユーザアプリケーションの開発するにあたっての注意点です。
eXodusinoライブラリはLPC1114F/301,LPC1114L/302のみに対応しているため、RAMの少ないLPC1114FN28/102に対応するには設定をし直す必要があります。
eXodusinoブートローダはフラッシュメモリの始めの4kByte、RAMの32byteを占有してしまいます。この領域を潰さないようにバイナリを書き込む必要があります。*2
通常はリンカスクリプトをガリガリ書き換えるのですが、LPCXpresso IDEの力を借りるとちょっとした設定だけで済みます。
◇MCU Settings
LPCXpresso IDEの左側、
Project Explorer→exodusinoフォルダを右クリック→ Property→C/C++ Build → MCU Settings → LPC1114FN/102
◇リンカスクリプトの設定
次に、RAMが4kBなので、[eXosusinoプロジェクトトップ]/Release/eXodusino_Release_mem.ldを以下の図のように書き換えます。LPC1114F/301のRAMの部分2行分をコメントアウトして、LPC1114FN28/102の部分の2行分のコメントアウトを外せばいいだけです。
◇クロックの設定
最後に、eXodusinoは12MHzの外部クロックでの動作が前提となっています。内蔵クロックで動かしたい場合は、[eXosusinoプロジェクトトップ]/src/core/system_LPC11xx.cppの128,134行目をコメントアウト、129,135行目のコメントアウトを外します。
これで、Project->Cleanすると、一旦クリーンした後にバイナリを作ってくれるはず。
exodusino.binをシリアルコンソール越しに書き込んで成功。