2012年1月29日日曜日

[ARM]LPC1343をUSBドライブ認識させバイナリを書き込む方法

前回はUART通信によるFlashMagicを用いての書き換えを試したが、
今回のターゲットはLPC1343なのでCortex-M3プロセッサなので
USBドライブとして、認識させコピー&ペーストでバイナリを書き換えようと思う。

今回のメリットとして、
・LPCLinkとターゲットを切断しなくて良い
・Linuxだけでなんとかなる(FlashMagicを用いないため)
・USBシリアル通信モジュールを買わなくても良い

などの作業の簡略化ができる。



注意事項
・3.3Vの電源が必要(3.3V用レギュレータを使用可)
・USB_VBUSを(5V)"H"にプルアップする
・USB_DPを(3.3V)"H"にプルアップする
・PIO0_1を(0V)"L"にプルダウンする

用意するもの
・抵抗 33Ω*2 、 1.5kΩ*1
・miniUSB端子(USB端子でも可)*1

今回もブレットボードとブレットボードワイヤーを用いた。

書き込みの際、 
バイナリファイル(bin)を書き込むため、
プロジェクトのプロパティ>C/C++ビルド>設定>ビルド・ステップ
>ビルド後のステップ「コマンド:」に

 

arm-none-eabi-objcopy -O binary ${BuildArtifactFileName} ${BuildArtifactFileBaseName}.bin ;

一文足す必要がある。

認識すると、"CRP DISABLD"というリムーバルディスクが検出されます。
されたものに出力されたバイナリファイルを書き込めば完了するハズ...

取り外す際、書き込み途中でないか、アンマウントしたか等、確認が必要。

今回、通常のファンクションに戻すため、LPCXpressoのサンプルプログラムを使用し、
CMSIS_2.0を用いた「LPCX1343_cmsis2_blinky」のhexファイルで上書きを実行した。

結果、無事ターゲットを復活させることが出来た。


参考文献
LPCXpresso LPC1343: using the on-chip USB stack
LPCXPRESSO (LPC1343) USB BOOTLOADER DENEMESİ

2 件のコメント:

  1. 330Ωでも行けた、
    認識までちょっと時間がかかった。

    返信削除
  2. コメントありがとうございます。
    あまり抵抗が大きいと信号損失が大きくなると思っていたのですが、購入する前に手元にある抵抗で試してみても良いかもしれませんね

    返信削除