10 years, 1 month ago.

LPC4088でサンプルプログラムすら動かなくなってしまいました。助けてください。

fail.txtが出現してから、プログラムが動かなくなった。 mio氏の方法(http://mbed.org/users/mio/notebook/ea-lpc4088-mbeds-swd-error-and-recovery/ )を試してみたけれど、色々やっている間に病状は悪化し、HDKすら見えなくなった。 今、USBでPCにつなぐと、何もボタンを押してない(配線もつないでない状態)のに、ISPモードに入る。

http://www.nxp-lpc.com/development.html#3 こちらの方法も試したが、全く直る気配がない。

他にも方法があるんでしょうかね・・・?

posted by Toyomasa Watarai 02 Apr 2014

こちらで試してみたところ、ISP モードに設定した LPC4088 に FlashMagic で正常に書き込み処理が出来ました。

私が試した手順は以下になります(外付けの回路は使用していません)。

1. ISP モードの設定

  • J6 のマイクロ USB 端子にケーブルを接続する(この時点でPCと接続はしない)
  • ボード上の USER ボタンを押しながら、USB ケーブルで PC に接続する
  • MBED ドライブがマウントされたら、USER ボタンを放す

2. FlashMagic の設定

  • デバイスマネージャで、COM ポート(mbed Serial Port)の番号を確認する
  • FlashMagic を起動し、正しい COM ポートを設定する
  • 各パラメータを設定し、Start ボタンで書き込む
  • 書き込みが終了すると、ステータスバーに Finished と表示されるので、ボード上のリセットボタンを押す

FlashMagic は、以下のように設定しました。

/media/uploads/MACRUM/flashmagic.jpg

また、念のため書き込んだ HEX ファイルも添付します。

/media/uploads/MACRUM/blinky_lpc4088.hex

posted by Toyomasa Watarai 02 Apr 2014

なおりました。ありがとうございました。

あらかじめp23とGNDをつないでおき、Resetを押して、ispモードに入れます。 Windowsにて、USBとMbedをつなぎ、FlashMagicでシリアルで認識されているMbedを指定して、プログラムを書き込んだら、なんとか直りました。

設定はBaudRateを9600、オシレーターを10Mhzで行いました。

外部でUSB→シリアル変換とか、する必要が無かったです。 SWD

posted by jack haifun 17 Apr 2014

2 Answers

10 years, 1 month ago.

こんにちは。

未確認なのですが、こちらのinterface firmwareを更新されてみては如何でしょうか? https://mbed.org/users/embeddedartists/notebook/lpc4088-updating-the-cmsis-dap-interface/

ご回答ありがとうございます。

この方法を試したところ、HDKは見えるようになったのですが、"fail.txt"に「SWD ERROR」と記入されていて、プログラムが全く動きません。

現状

・"fail.txt"に「SWD ERROR」と記入されており、プログラムが走らない。(mio氏の方法をとったが、治らなかった)

・自動でISPモードに入る誤作動は回復(ファームウェアを更新したら治った。)

・PC環境はwin7、もしくはubuntu。

SWD ERRORについて、他にも情報があれば、よろしくお願いします。

posted by jack haifun 10 Mar 2014

SWD ERROR が発生する要因としては、HDK interface 側から target (LPC4088) を正しく制御できていない場合に発生します。 これは、例えば物理的に信号が接続されていなかったり、target 側のSWDポートがSWD用途では無くGPIO出力やその他のモードに切り替わっていたりする場合です。 target側のflash上のプログラムで、このようなモードに設定されてしまっている場合は、HDK側から制御を行うことは出来ません。

ですので、この場合はmio氏の方法が有効だと思うのですが、Flash Magicで書き込まれるプログラムは単純な「LED 点滅サンプル」で間違いないでしょか? 例えば、書き込まれるプログラム内で、SWDポートをDigitalOut等に設定している場合は、HDKから認識されなくなる可能性がありますのでご確認下さい。

posted by Toyomasa Watarai 11 Mar 2014

返答ありがとうございます。 返事が遅れてすみません。

書き込むプログラムは、サンプルプログラムを直接コンパイルしたものなので、問題はないと思います。 配線にあまり自信がないので、一応接続した順序を書いておきます。

電源は、USBからとり、USBのデータ通信は行っていません。 通信はUSB→シリアル(RS232C)変換→mbedです。 RS232Cとmbedは以下のようにないでみました。

RS232C_mbed

RxD(2)_Rx(p41)

TxD(3)_Tx(42)

GND(5)_GND

RTS(7) CTS(8)←RS232Cどうしでつないでいます

これ以外に接続するものがあるんでしょうか?

posted by jack haifun 17 Mar 2014

mioさんの説明によると、

Quote:

そこで、適当なプログラム(LED 点滅サンプル)をオンラインコンパイラで作成後、 User-SW で ISP モードにしてmbed serial port 経由で FlashMagic を使って書き込んでみたところ、 なぜか mbed drive の "SWD ERROR" は解消し、HDK 経由での書き込みが正常に動作するようになりました。

となっているので、ISPモードにした後にUSB経由で接続されているmbedのシリアルポートの番号をデバイスマネージャ等で確認し、FlashMagicでそのポート番号を指定して書き込むという方法だと思います(USB-シリアル変換はHDK側で行われているので)。なので、外付けの変換回路は不要だと思います。

外付けの回路で行う場合は、TxD(送信)はRx(受信)に接続する必要があると思います。

posted by Toyomasa Watarai 20 Mar 2014

毎度ありがとうございます。

FlashMagicで書き込もうとしたところ、「fail autobaud」と出てきて、書き込めませんでした。シリアル通信できていることは確認済みですので、多分回路は間違ってません。(TxDなどは、ちゃんと通信できる状態に配線しなおしました。)FlashMagicの通信設定もいろいろいじりましたが、やはり「fail autobaud」と出てきます。

FlashMagicの最初の画面以外に何か必要な変更箇所でもあるのでしょうか?

posted by jack haifun 21 Mar 2014
10 years ago.

Mooと申します。

>fail.txtが出現してから、プログラムが動かなくなった。

同じ状態になりました。

自分の場合はLPC4088のJTAG\SWDコネクタにULINK2を繋いで動かしたら回復しました。

なおりました。ありがとうございました。

ispモードに入れ、PCとMbedをUSBでつなぎ、PCで認識されているMbedをFlashMagicで指定して、プログラムを書き込んだら、なんとか直りました。

posted by jack haifun 17 Apr 2014