LPCScrypt(最近リリースされたLink2やLPCXpressoV2/V3系ボードのファームを焼くためのツール)で最新のCMSIS-DAPファームを書き込んだら、PCから認識しなくなって、困って、解決しますた。
原因は、CMSIS-DAPファームのバージョンアップに合わせて、PCのドライバも更新していなかったためです。
ドライバを更新してない時の症状は、デバイスマネージャーにCMSIS-DAPデバッガが表示されず、シリアルポートの「LPC-LinkⅡ UCom Port」のみが表示されます。
LPCXpresso最新版(v7.8.0_426)にもLPCScryptと同じCMSIS-DAPファームが入っているので、LPCXpressoでも同様の現象が発生するかもしれません。(JP1刺さずUSBブートでCMSIS-DAPファーム利用する場合など)
インストールを行う前に古いドライバを削除しておくことをオススメします。
ドライバのインストーラはLPCXpresso v7.8.0_426に同梱されています。
デフォルトのままインストールされているなら、インストーラのパスは
"C:\nxp\LPCXpresso_7.8.0_426\Drivers\lpc_driver_installer.exe"になります。
インストールが成功し、CMSIS-DAPファームを焼いた状態でLink2を接続すると以下の画像のように認識されて正常に動作します。
2015年7月8日水曜日
2015年7月7日火曜日
mbed AutoTransferバージョンアップしました(v1.03)
mbedAutoTransferの説明ページを作りました。
初めての方はこちらを御覧ください。
http://kinomuku129.blogspot.jp/p/mbedauto.html
今回のバージョンアップで、11Ux系への対応として「イレースモード」を追加しました。
11U系はバイナリ転送前に、ドライブ内の「firmware.bin」を消去する必要があるため、そのための機能です。
イレースモードを有効にすると、バイナリ転送前にドライブ内のすべての.binファイルを削除します。
ダウンロードはこちらからどうぞ
https://developer.mbed.org/users/nameless129/notebook/mbed-autotransfer-tool/
初めての方はこちらを御覧ください。
http://kinomuku129.blogspot.jp/p/mbedauto.html
今回のバージョンアップで、11Ux系への対応として「イレースモード」を追加しました。
11U系はバイナリ転送前に、ドライブ内の「firmware.bin」を消去する必要があるため、そのための機能です。
イレースモードを有効にすると、バイナリ転送前にドライブ内のすべての.binファイルを削除します。
ダウンロードはこちらからどうぞ
https://developer.mbed.org/users/nameless129/notebook/mbed-autotransfer-tool/
2015年7月4日土曜日
D&DでCMSIS-DAPデバッガから書き込みを行うバッチファイル
昨日に引き続きバッチファイルネタです(;´∀`)
バッチファイルにD&Dでbinファイルをぶち込むとCMSIS-DAPデバッガを通じてターゲットに書き込みが行えます。
https://developer.mbed.org/users/kazu_zamasu/notebook/USE-to-IRC-on-mbedlib/
ざますさんのノートブックにredlinkへ引数としてバイナリを渡して書き込む方法があったので
それをバッチファイル化しました。
ざますさんのと少し違うのはLPC-Link2をredlink化せず、CMSIS-DAPデバッガのまま使うことです。
CMSIS-DAPデバッガのまま書き込めたので省略しました。
(LPC-Link2のCMSIS-DAPデバッガ化はLPCScryptを使ってください)
手持ちのNXPチップのmbed4種(LPC1768,LPC11U68,LPC1114,LPC824)対応のバッチファイルを作りました。
mbedとしてPCにUSBで接続してる時も使えます(CMSIS-DAPデバッガとしても認識されてるため。USBストレージあるからあまり意味ないけど)
LPC-Link2をCMSIS-DAPデバッガとして動作させている時に同様に使うことができます。
これで非mbedなボードでSWD書き込みが捗ります。今まではCoFlash使ってたけど、824とか対応してなかったんですよね。。。
batファイル3行目のLPCXpressoインストールパスを修正してから使ってください。現状では最新のLPCXpresso v7.8.0_426のパスになっています。
D&Dでbinファイルをbatファイルに放り込むと書き込んでくれます。書き込み後はリセットがかかり、焼いたバイナリが走り出します。
バッチファイルにD&Dでbinファイルをぶち込むとCMSIS-DAPデバッガを通じてターゲットに書き込みが行えます。
https://developer.mbed.org/users/kazu_zamasu/notebook/USE-to-IRC-on-mbedlib/
ざますさんのノートブックにredlinkへ引数としてバイナリを渡して書き込む方法があったので
それをバッチファイル化しました。
ざますさんのと少し違うのはLPC-Link2をredlink化せず、CMSIS-DAPデバッガのまま使うことです。
CMSIS-DAPデバッガのまま書き込めたので省略しました。
(LPC-Link2のCMSIS-DAPデバッガ化はLPCScryptを使ってください)
手持ちのNXPチップのmbed4種(LPC1768,LPC11U68,LPC1114,LPC824)対応のバッチファイルを作りました。
mbedとしてPCにUSBで接続してる時も使えます(CMSIS-DAPデバッガとしても認識されてるため。USBストレージあるからあまり意味ないけど)
LPC-Link2をCMSIS-DAPデバッガとして動作させている時に同様に使うことができます。
これで非mbedなボードでSWD書き込みが捗ります。今まではCoFlash使ってたけど、824とか対応してなかったんですよね。。。
batファイル3行目のLPCXpressoインストールパスを修正してから使ってください。現状では最新のLPCXpresso v7.8.0_426のパスになっています。
D&Dでbinファイルをbatファイルに放り込むと書き込んでくれます。書き込み後はリセットがかかり、焼いたバイナリが走り出します。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@echo off | |
REM ↓の1行を環境に合わせて変更してください | |
set LPCXPRESSO_DIR=C:\nxp\LPCXpresso_7.8.0_426\lpcxpresso | |
set REDLINK=%LPCXPRESSO_DIR%\bin\crt_emu_cm_redlink.exe | |
set TARGET=LPC1114FN/102 | |
set FLASH_DRIVER=%LPCXPRESSO_DIR%\bin\Flash\LPC11_12_13_32K_4K.cfx | |
%REDLINK% -flash-load-exec %1 -g -2 -vendor=NXP -p%TARGET% -flash-driver=%FLASH_DRIVER% |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@echo off | |
REM ↓の1行を環境に合わせて変更してください | |
set LPCXPRESSO_DIR=C:\nxp\LPCXpresso_7.8.0_426\lpcxpresso | |
set REDLINK=%LPCXPRESSO_DIR%\bin\crt_emu_cm_redlink.exe | |
set TARGET=LPC11E68 | |
set FLASH_DRIVER=%LPCXPRESSO_DIR%\bin\Flash\LPC11U6x_256K.cfx | |
%REDLINK% -flash-load-exec %1 -g -2 -vendor=NXP -p%TARGET% -flash-driver=%FLASH_DRIVER% |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@echo off | |
REM ↓の1行を環境に合わせて変更してください | |
set LPCXPRESSO_DIR=C:\nxp\LPCXpresso_7.8.0_426\lpcxpresso | |
set REDLINK=%LPCXPRESSO_DIR%\bin\crt_emu_cm_redlink.exe | |
set TARGET=LPC1768 | |
set FLASH_DRIVER=%LPCXPRESSO_DIR%\bin\Flash\LPC175x_6x_512.cfx | |
%REDLINK% -flash-load-exec %1 -g -2 -vendor=NXP -p%TARGET% -flash-driver=%FLASH_DRIVER% |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@echo off | |
REM ↓の1行を環境に合わせて変更してください | |
set LPCXPRESSO_DIR=C:\nxp\LPCXpresso_7.8.0_426\lpcxpresso | |
set REDLINK=%LPCXPRESSO_DIR%\bin\crt_emu_cm_redlink.exe | |
set TARGET=LPC824 | |
set FLASH_DRIVER=%LPCXPRESSO_DIR%\bin\Flash\LPC800_32.cfx | |
%REDLINK% -flash-load-exec %1 -g -2 -vendor=NXP -p%TARGET% -flash-driver=%FLASH_DRIVER% |
2015年7月3日金曜日
D&Dでbinファイルをhexファイルに変換するバッチファイル
LPCXpresso内のobjcopy.exeを利用して変換するバッチファイルを書きますた。
D&Dでbinファイルを放り込むと同じフォルダに同名のhexファイルが生成されます。
LPCXpressoが必要です。
3行目は適宜LPCXpressoがインストールされてるフォルダに変更してください。
D&Dでbinファイルを放り込むと同じフォルダに同名のhexファイルが生成されます。
LPCXpressoが必要です。
3行目は適宜LPCXpressoがインストールされてるフォルダに変更してください。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@echo off | |
REM ↓の1行を環境に合わせて変更してください | |
set LPCXPRESSO_DIR=C:\nxp\LPCXpresso_7.8.0_426\lpcxpresso | |
set TOOL_PATH=\tools\arm-none-eabi\bin\objcopy.exe -I binary -O ihex | |
set OBJCOPY_PATH=%LPCXPRESSO_DIR%%TOOL_PATH% | |
set OUTPUT_FILENAME=%~fn1.hex | |
REM example↓ | |
REM "C:\nxp\LPCXpresso_7.8.0_426\lpcxpresso\tools\arm-none-eabi\bin\objcopy.exe" -I binary -O ihex "F:\UserLibrary\Desktop\mbed_blinky_LPC11U68.bin" "F:\UserLibrary\Desktop\mbed_blinky_LPC11U68.hex" | |
%OBJCOPY_PATH% %1 %OUTPUT_FILENAME% |
2015年7月1日水曜日
EFM32 Giant Geckoを触ってみた
ちょっと触らせて頂く機会があったのでいろいろやってみました。
下側のmicroUSBポートはUSBHost/Device用で、左下の電源選択のスライドスイッチをDBG、左側のminiUSBポートに刺すことで電源が入ります。
初期のファームはタッチセンサのデモ。触れると数値が変化します。
環境構築から。
いきなりオンラインIDEでソース書いてバイナリ作ってD&D、かと思いきや初期状態ではできないのでファームウェアをバージョンアップする必要がありました。
そのために純正IDEの「Simplicity Studio」をダウンロードします。アップデータのダウンロードやらでそこそこ時間かかりました。詳細は↓
https://developer.mbed.org/teams/SiliconLabs/wiki/Silicon-Labs-Firmware
で、mbed化もできたところで色々試してみました。
まずはLチカ。これは難なく作成できました。ついでに拙作の「mbed AutoTransfer」も試しましたが、うまく動いてくれました。
ちなみにLEDですがGPIOのPE2,PE3に当たっています。ヘッダにも出ている上、UART1とも被っているので要注意です。というか他のポートでもよかったのでは。。。
次にLCD。サンプル見ればーと思いきや、
この通り書いても動かないんですが(´・ω・`)
他のサンプルソース見て対処しますた。
その他光センサも乗っかってたので、これの値をADで読むのかなーと思いきや普通のポートだったりしたので、それをGPIOで読んだり。
LCセンサはうまく使えなかったのでスルーしたり。。。
PCとシリアル通信させてみたり。これが一番悩まされました。
mbedとして見えてるドライブの中のReadMeの中身が↓
ふむ、デフォルトのCOMポートは1115200bpsで固定されてるのね、と。
そしてシリアル通信テストのmbedソフトをボーレート指定せず書いてみるも、PCに通信が来ない。
もしかしてと思い、mbedソフトのボーレートを115200bpsに指定してみるも何も表示されない。
丁度ヘッダにもピンが出ているのでそこをUSB-UARTで覗いてみれば表示される。
ジャンパ飛ばさないといけないのかと色々調べてみると・・・
https://developer.mbed.org/teams/SiliconLabs/wiki/Using-stdio-on-Silicon-Labs-platforms
ヘッダが出ているPE0とPE1とJ-LinkのUARTが共有になっているので、
J-Linkのチップ保護のためのEnable信号(PF7)・・・ということかなあ。。。
PCと通信させるときはPF7をHにしてからにしましょう。
あとmbedのボーレート指定も115200bpsで。これ以外はmbedチップが通せんぼします。
LCDのパーツがいろいろあったので表示させてみたり。
最後に、mbedチップのバージョンアップ来ませんかね。。。バイナリ転送するたびにシリアル再接続しないといけないし、ボーレートも固定だし、正直、易しくないボードだなあと思いました。
ただボタン電池1コで駆動するのは、小さい機器への組み込みに魅力的ですね。
Simplicity Studioを使ってサンプルを書き込んでみたりしましたが、LPCXpresssoと同じくmsys-1.0問題(勝手に呼んでる)が発生しました。
msys\1.0\bin\make.exe: *** Couldn't reserve space for cygwin's heap, Win32 error 0
↑のメッセージがLPCXpressoでも見たので同じように改善版をダウンロード↓
http://www.support.code-red-tech.com/CodeRedWiki/VirtualAllocPointerNull
置き換えすることで解消しました。
最後になんだかんだ試したソースを置いておきます。
参考になれば幸いです。
https://developer.mbed.org/users/nameless129/code/blinky_EFM32_Giant/
参考資料など
EFM32GG-STK3700 Giant Gecko スターター・キット・ユーザ・ガイド
http://www.silabs.com/Support%20Documents/TechnicalDocs/efm32gg-stk3700-ug.pdf
アプリケーションノート一覧
http://www.silabs.com/products/mcu/Pages/32-bit-mcu-application-notes.aspx
回路図
http://www.silabs.com/Support%20Documents/TechnicalDocs/BRD2200A_A03.pdf
![]() |
青マーカーが付いているように見えますが、保護フィルムです。剥がしません。 |
下側のmicroUSBポートはUSBHost/Device用で、左下の電源選択のスライドスイッチをDBG、左側のminiUSBポートに刺すことで電源が入ります。
初期のファームはタッチセンサのデモ。触れると数値が変化します。
環境構築から。
いきなりオンラインIDEでソース書いてバイナリ作ってD&D、かと思いきや初期状態ではできないのでファームウェアをバージョンアップする必要がありました。
そのために純正IDEの「Simplicity Studio」をダウンロードします。アップデータのダウンロードやらでそこそこ時間かかりました。詳細は↓
https://developer.mbed.org/teams/SiliconLabs/wiki/Silicon-Labs-Firmware
で、mbed化もできたところで色々試してみました。
まずはLチカ。これは難なく作成できました。ついでに拙作の「mbed AutoTransfer」も試しましたが、うまく動いてくれました。
ちなみにLEDですがGPIOのPE2,PE3に当たっています。ヘッダにも出ている上、UART1とも被っているので要注意です。というか他のポートでもよかったのでは。。。
次にLCD。サンプル見ればーと思いきや、
この通り書いても動かないんですが(´・ω・`)
他のサンプルソース見て対処しますた。
その他光センサも乗っかってたので、これの値をADで読むのかなーと思いきや普通のポートだったりしたので、それをGPIOで読んだり。
![]() |
テスタの値は光センサの出力電圧 |
![]() |
光センサの電圧が高くなったので、読んでるGPIOもH判定、それに合わせて液晶下の右側LEDを点灯させてます |
LCセンサはうまく使えなかったのでスルーしたり。。。
PCとシリアル通信させてみたり。これが一番悩まされました。
mbedとして見えてるドライブの中のReadMeの中身が↓
Silicon Labs J-Link MSD volume.ほうほう、hexだけでなく、mot、bin、までとはなんでもござれっすなあと思った次の段。
Copying a binary file here will flash it to the MCU.
Supported binary file formats:
- Intel Hex (.hex)
- Motorola s-records (.mot)
- Binary (.bin/.par/.crd)
Known limitations:
- Virtual COM port speed is currently fixed at 115200 bps
- Using other kit functionality such as energy profiling or debugger while flashing is not supported.
Workaround: Pause any energy profiling and disconnect any connected debug sessions before flashing.
ふむ、デフォルトのCOMポートは1115200bpsで固定されてるのね、と。
そしてシリアル通信テストのmbedソフトをボーレート指定せず書いてみるも、PCに通信が来ない。
もしかしてと思い、mbedソフトのボーレートを115200bpsに指定してみるも何も表示されない。
丁度ヘッダにもピンが出ているのでそこをUSB-UARTで覗いてみれば表示される。
ジャンパ飛ばさないといけないのかと色々調べてみると・・・
https://developer.mbed.org/teams/SiliconLabs/wiki/Using-stdio-on-Silicon-Labs-platforms
Board Controller Enable Signal
えぇー・・・('A`;)ヘッダが出ているPE0とPE1とJ-LinkのUARTが共有になっているので、
J-Linkのチップ保護のためのEnable信号(PF7)・・・ということかなあ。。。
PCと通信させるときはPF7をHにしてからにしましょう。
あとmbedのボーレート指定も115200bpsで。これ以外はmbedチップが通せんぼします。
LCDのパーツがいろいろあったので表示させてみたり。
最後に、mbedチップのバージョンアップ来ませんかね。。。バイナリ転送するたびにシリアル再接続しないといけないし、ボーレートも固定だし、正直、易しくないボードだなあと思いました。
ただボタン電池1コで駆動するのは、小さい機器への組み込みに魅力的ですね。
Simplicity Studioを使ってサンプルを書き込んでみたりしましたが、LPCXpresssoと同じくmsys-1.0問題(勝手に呼んでる)が発生しました。
msys\1.0\bin\make.exe: *** Couldn't reserve space for cygwin's heap, Win32 error 0
↑のメッセージがLPCXpressoでも見たので同じように改善版をダウンロード↓
http://www.support.code-red-tech.com/CodeRedWiki/VirtualAllocPointerNull
置き換えすることで解消しました。
最後になんだかんだ試したソースを置いておきます。
参考になれば幸いです。
https://developer.mbed.org/users/nameless129/code/blinky_EFM32_Giant/
参考資料など
EFM32GG-STK3700 Giant Gecko スターター・キット・ユーザ・ガイド
http://www.silabs.com/Support%20Documents/TechnicalDocs/efm32gg-stk3700-ug.pdf
アプリケーションノート一覧
http://www.silabs.com/products/mcu/Pages/32-bit-mcu-application-notes.aspx
回路図
http://www.silabs.com/Support%20Documents/TechnicalDocs/BRD2200A_A03.pdf
登録:
投稿
(
Atom
)