2014/03/01

[電子工作]LPCXpresso LPC1768 評価ボードに書き込めない

,

概要

LPCXpresso LPC1768 評価ボードに書き込めなくなりました。
 症状としては、LPCXpressoでProjectをBuild後、[Debug 'periph_blinky' [Debug]]ボタンを押しても、以下の様になって書き込めません。
LPCXpresso評価ボードに書き込む際エラーが出る、LPCXpress IDEのスクリーンショット
エラーログです。
//一番上に出てくるダイアログ
02: Failed on connect
  02: Failed on connect
  Cannot find selected MEM-AP (check target power)
  Emu(0): Conn&Reset. Was: None. DpID: 2BA01477. Info: HID64HS12

//二番目に出てくるダイアログ
Error in final launch sequence
  Failed to execute MI command:
-target-select extended-remote | crt_emu_cm3_nxp -msg-port=61865 -g -mi -2 -pLPC1769 -vendor=NXP -e0 -wire=hid
Error message from debugger back end:
Remote communication error.  Target disconnected.: No error.
  Remote communication error.  Target disconnected.: No error.

//LPCXpressoのConsole
LPCXpresso Debug Driver v6.0 (Sep 10 2013 00:02:23 - crt_emu_cm3_nxp build 1208)
Looked for chip XML file in D:/nxp/LPCXpresso_6.0.2_151/lpcxpresso/bin/LPC1769.xml
Looked for vendor directory XML file in D:/nxp/LPCXpresso_6.0.2_151/lpcxpresso/bin/nxp_directory.xml
Found generic directory XML file in D:/nxp/LPCXpresso_6.0.2_151/lpcxpresso/bin/crt_directory.xml
Failed on connect: Em(01). Cannot find selected MEM-AP (check target power)
Conn&Reset. Was: None. DpID: 2BA01477. Info: HID64HS12

環境は
IDE : LPCXpresso v6.0.2 [Build 151]
OS : Windows 8
LPCXpresso 評価ボード : LPC-Link取り外しておらず、USBハブを通じてケーブルで接続

そもそもなんでFailedになるのか

そもそもMEM-APってなんだよ?と云う話ですが。
Memory Access Port (MEM-AP), which is designed for connection to memory bus system with address and data controls.
詳細はADIv5とかの長いPDFを読まないと分からないんですが、Cortex-M*コアをデバッグする際の、メモリにアクセスする部分が、LPC-Linkから見つからないよといった感じでしょうか…。

 因みに、エラーメッセージで検索すると、code_redのFAQページが出てきます。
DebugErrors - ** Code Red Support Site ** 
どうやら、TIのLM Flash Programmerというツールを使って、Flashを"mass erase"するみたいです。ただ、LPCXpresso評価ボードについての話じゃないようなので、ちょっと正しいのか疑問です。

 このFAQによれば、
One thing that can happen is that certain code configurations can make it difficult (or impossible) for the debugger to communicate over JTAG or SWD. Things like programming JTAG/SWD signals to GPIO, or the setting the system clock to an invalid or out-of-spec value. Since the debugger takes some time to connect and a little bit of code always gets run when connecting, it becomes a race to connect before the bad code gets (http://support.code-red-tech.com/CodeRedWiki/DebugErrorsから引用)  
だそうです。つまり、プログラムのせいでJTAG/SWDのポート機能を書き換えてしまったとか、内部クロックの設定を間違えたのが原因の1つみたいです。

 あまり他にこのエラーになった方はいないようですが、LPCWareを見てみると、こんな投稿がありました。
Code enters DeepSleep, now I can't connect debugger | www.LPCware.com
GPIO経由でFlashMagicを使うみたいですね。

 で、実際にやろうとして眠気に負けました。おやすみなさい。
14/3/18 書き込んでBlinkyまで確認しました。

LPC-Link部分とLPCXpresso部分は分離しなくても良い…?

LPCXpresso LPC1768の回路図を見たところ、次のように書かれていました。
http://laboratorios.fi.uba.ar/lse/tools/2012-ide/LPCXpressoLPC1768revA.pdfより。
"Bridge wires can be cut on pcb by removing solder paste"、つまり、小さく乗ってる半田を吸い取り線などで外せば、LPC-LinkのJTAGとの接続が切れるみたいです。切っちゃったよ!
既に切り離されたLPCXpresso…

FlashMagicで書き込む

1)公式サイトからFlashMagicをDLし、インストールします。
2)Serial to USBか何かを用意し、そのポート番号(COM **とか)をチェックします。
 ISPモードでUART経由で書き込むので、PCにシリアルポートが無い場合は、FT232などVirtual COM機能を持ったICでUART→USB変換をします。私は秋月のFT232モジュールを使いました。
3)

0 コメント to “[電子工作]LPCXpresso LPC1768 評価ボードに書き込めない”

コメントを投稿