mbedとかLPCXPresso1768版とか超楽しそうスね(涙目)


TFT-LCD Shieldの開発に当たって、ねむいさんもついにArduinoを購入しました!
最初はEtherpodのプラットフォームだけで動かすことしか考えてませんでしたが、
HP200LX持ってないのにmorphyone作ろうとして盛大にコけたどこぞのぺ○野郎のこと
が頭よぎったので、ちゃんとArduinoを理解してライブラリも作れるようになるために
購入しました…。まぁSTM32ですでにできたことをAVRに移すだけですから驚くほど
簡・・・た…

ごめんもう白旗上げていいかな…(※xmegaの二の舞)
ところでxmegaで思い出しましたがxmegaでFatFS(のMSPI)をDMA化出来たという話を
全く聞きません。情報もってる人がいたら教えてください…

20120907追:
xmegaでFatFsのDMA化できるじゃない!





さて、前フリはこれくらいにしといて本題に入りますが、Cortex-M3の系統の
ARMマイコン、LPC1768を使用したハイエンドかつ安価な評価ボードがいくつか
出ています。
mbedやLPCXpresso(LPC1768版)等がそれに当たりますが、ねむいさんはそれの
どれにも手をつけず、taobaoで液晶買った時についでに中華LPC1768ボードを
買っていたのでした!!
↑のLPCXpresso1768版出るなんて知ってたら買ってなかったのですが…
くやしい…でも…
過ぎたことは仕方ないので私も通電してみることにしました。


↑KeilのMCB1700互換なミニボードだそうです。周辺が全くない代わりに
 ほぼすべてのI/Oが外部に引き出されています。


↑即LPC1769に交換ッッ!!1!LPC1768を凌駕する120MHzで動きますッ!
 恐らく私が日本国内で初めてLPC1769を動かした女になるでしょう(多分)
R&D dailyの綿谷氏がとうの昔にされていましたorz生意気言ってごめんなさいッ
マイクロマウスの開発されている方たちはなんとうか本当に格が違いますね…

さて、基本の'き'であるLED点滅から始めてみたいと思いますが、上述のとおり
MCB1700互換なので、NxPのサイトにある、
"LPC17xx CMSIS-Compliant Standard Peripheral Firmware Driver Library (GNU, Keil, IAR)"
というExample付きのCMSISライブラリがそっくりそのまま使えます。

GNU用のExampleはこれまたCodeSourceryの使用を前提にされていて、
ねむいさん的にも好都合です。手順に従い、程なくバイナリを生成出来ました。


バイナリの書き込みはもちろんJTAGKey2Clone+OpenOCDから行います。
LPC17xx系統の対応状況は現在JTAG接続のみです。NxP製のARMマイコン特有の
CheckSumValidationに注意してスクリプトファイルを作り、JTAG接続にて書き
込みました。書き込みの過程はこんな感じです。

> "C:/Devz/AVR/WinAVR/utils/bin/make.exe" program
openocd -f C:/Devz/ARM/OCD/daemon.cfg -f C:/Devz/ARM/OCD/tcl/interface/jtagkey2.cfg -f C:/Devz/ARM/OCD/tcl/target/lpc1769_rclk_flash.cfg -c "mt_flash main.elf"
Open On-Chip Debugger 0.5.0-dev-00450-g450aaad (2010-07-22-09:39)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.berlios.de/doc/doxygen/bugs.html
Info : only one transport option; autoselect 'jtag'
adapter_nsrst_delay: 200
jtag_ntrst_delay: 200
none srst_pulls_trst
500 kHz
Info : device: 6 "2232H"
Info : deviceID: 67358712
Info : SerialNumber: 22222222A
Info : Description: Amontec JTAGkey-2 A
Info : max TCK change to: 30000 kHz
Info : clock speed 500 kHz
Info : JTAG tap: lpc1769.cpu tap/device found: 0x4ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x4)
Info : lpc1769.cpu: hardware has 6 breakpoints, 4 watchpoints
RCLK - adaptive
Info : JTAG tap: lpc1769.cpu tap/device found: 0x4ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x4)
target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x1fff0080 msp: 0x10001ffc
flash 'lpc2000' found at 0x00000000
auto erase enabled
wrote 8192 bytes from file main.elf in 1.328142s (6.023 KiB/s)
verified 4968 bytes in 0.531257s (9.132 KiB/s)
requesting target halt and executing a soft reset
target state: halted
target halted due to breakpoint, current mode: Thread
xPSR: 0x01000000 pc: 0x000000e0 msp: 0x10007fe0
shutdown command invoked


現状LPC17xx系のアーキテクチャのすべてを理解はしていないのでLPC2388
みたく高速書き込み/ベリファイはまだ出来ませんが、そちらも使い込むに
つれ対応していきます。


↑LED点滅プログラムが動いてるところ。

↑JTAGkey2Clone+OpenOCD+Insightでのデバッグも自在です。

↑NxP提供のCMSISのExampleはLPC1768向けになっており、
 それをそのままビルドしているので,動作周波数はまだ100MHzです。


まぁつかみはこんな感じでしょうか。私が行った最初のとっかかりのプログラムを
自分用環境に移植したものをこちらに。OpenOCDのスクリプトファイルはこちらに
置いておきます。ご利用は自己責任で〜


おまけ


じっと見てたら気づいたけど何かに似てる…



Go to top of page