Top
HIDaspx
DownLoad
HIDasp高速化
制作
AVR関係
AVR_Monit
AVR_term
W32_term
HIDmon88
HIDtester
usbRS232
Arduino2313
デジタルテスター
ATmega88生活
KeyBoardマニア
KeyBoardマニアII
Arduino400
PICライター
ARMライター
赤外線リモコン
ARM
STM32ブートローダー
STM8S-Discovery改造
STM8S-OpenOCDライター
LPCXpresso
LPC用ブートローダー
NXP用LPCUSB
NXP用ブートローダー
MARY基板
LPC1114FN28
OpenOCD JTAGアダプター
OpenOCDビルド方法
arm-gccビルド方法
mapleIDEの改造
libmapleで仮想COM
PIC32
PIC32MX
Pinguinoで遊ぼう
ブートローダーを作る
シリアルブートローダー
USB仮想シリアル
USBカスタムデバイス
USB簡易モニター
USBオシロスコープ
USBホスト
PIC32でBluetooth
USBAudio
USBStudy
VGA出力に挑戦
BASICを動かす
WinUSB
勝手に改蔵*PIC32
PIC18F
HIDブートローダー
AVR/PIC両用ライター
ARMライター
usb汎用クラス
usbシリアル変換
usbキーボード変換
sdccを使いこなす
mcc18を使いこなす
HIDmon-2550
HIDmon-14K50
PICmonitor
試行錯誤の記録
UBWを試す
旧HIDboot
PIC18F2550試用記
PIC18F4550試用記
その他マイコン
NEC78K
RX62N
SH2A
H8
FM3
XPからubuntuに乗り換え
Android
Xen-hypervisor
Windows8カスタマイズ
開発日記
2015-04
ノウハウ
AVRUSB_Tips
HIDasp情報
汎用USB-IO
・
リンク
フリースペース
ゲストブック
旧コンテンツ
WinVista
インターフェース考
最新の20件
2022-07-25
2008-10
HIDasp高速化
H8/3048F
AutoTicketLinkName
2021-12-11
FormattingRules
2021-12-08
PukiWiki/1.4/Manual/Plugin/O-R
PukiWiki/1.4/Manual/Plugin/L-N
PukiWiki/1.4/Manual/Plugin/V-Z
PukiWiki/1.4/Manual/Plugin/A-D
PukiWiki/1.4/Manual/Plugin/E-G
PukiWiki/1.4/Manual/Plugin/S-U
PukiWiki/1.4/Manual/Plugin/H-K
2020-02-23
YukiWiki
PHP
PukiWiki
WikiWikiWeb
2018-12-19
SandBox
InterWiki
2015-05-07
2015-04
2015-05-02
MenuBar
編集
差分
lpc-armon の編集
-- 雛形とするページ --
(no template pages)
[[ARM]] [[LPCXpresso]] ---- *■ 概要 [#q1a8f865] -これは、[[LPCXpresso]]用の HIDクラス・ブートローダー 兼 簡易モニターです。 -CQ出版のTRZ1010N付録基板でも同様に使用できます。 ~ このブートローダーを使用することによって、以下のようなことが出来るようになります。 -Cortex-M3用のプログラム開発。 -内部メモリーやI/Oポートの確認、変更。 -http://psp.dip.jp/web/jpg/ARM/1343a.jpg ~ **TRZ1010Nのコネクタ配置 [#i7b0c2ac] -間違いがあればご指摘ください。 P3: OPAMP入力用 |1|2|3|4|5|6| |3.3V|GND|A-D Ch6 in|A-D Ch7 in| AGND(1.25V)|OUT1| ~ P4: 未解析 OPAMPとRTCへの接続用??? |GND|1|2|GND| |+3.3V|3|4|+3.3V| |PIO1-11(AD7)|5|6|OPAMP OUT3| |PIO1-4 (AD5)|7|8|RTC nINT| |PIO2-3|9|10|PIO1-2| |PIO3-1|11|12|OPAMP AGND(1.25V)| |PIO3-0|13|14|-| |PIO2-11(SCK)|15|16|RTC SCL| |PIO1-10(AD6)|17|18|OPAMP OUT4| |PIO0-9 (MOSI)|19|20|RTC SDI| |PIO0-8 (MISO)|21|22|RTC SDO| |PIO2-2 |23|24|-| |PIO2-10|25|26|-| |PIO2-9|27|28|-| |PIO2-5|29|30|-| |PIO2-4|31|32|TOUCH SWITCH OUT| |PIO1-9|33|34|OPAMP PIN1| |PIO0-2 (SSEL)|35|36|RTC CE| |PIO0-6|37|38|-| |+3.3V|39|40|RTC Vdd| ~ P2: JTAG??? |+3.3V|1|2|PIO0-1(TMS)| |GND|3|4|PIO0-10(SWCLK)| |GND|5|6|PIO1-1(TDO)| |-|7|8|PIO0-11(TDI)| |GND|9|10|GND| -LPC1343にはJTAGデバッグ機能は含まれていないはずなので・・・もしかしたらTAP専用??? ~ P1: SWDデバッグ? |1|2|3|4|5|6|7|8| |+3.3V|PIO1-3(SWDIO)|PIO0-10(SWCLK)|PIO0-9(MOSI)|-|PIO0-0(nRESET)|-|GND| ~ P5: 温度センサーへの接続PIN |+3.3V|1|2|LM75B A2| |PIO0-4(SCL)|3|4|LM75B SCL| |PIO0-5(SDA)|5|6|LM75B SDA| |PIO2-1|7|8|PIO2-8| |PIO2-7|9|10|PIO1-8| ~ P6: USART? |PIO2-0(DTR)|1|2|PIO2-6| |PIO3-3|3|4|PIO1-7(TxD)| |PIO1-6(RxD)|5|6|PIO1-5(RTS)| |PIO3-2|7|8|+3.3V| |GND|9|10|GND| ~ K1: 2-3間ショートでブートローダー(Windowsからは仮想Diskになる) |1|-| |2|PIO0-1(BOOT SELECT)| |3|GND| -2-3間オープンでユーザープログラムの実行 ~ K2: 2-3間ショートでLDO禁止??? |1|-| |2|LDOレギュレータのCE| |3|GND| -デフォルトは全オープン ~ http://psp.dip.jp/web/jpg/ARM/lpc1343_lqfp48.png ---- *ダウンロード。 [#j7f9d56a] |種別|ファイル|対応基板| |LPC-1343ブートローダー |[[lpc-armon.zip:http://psp.dip.jp/web/upload.cgi/LPC/lpc-armon.zip]]|LPCXpresso/TRZ-1010N| *アプリケーション・サンプルソース [#ze0682f1] |種別|ファイル|対応基板| |LPC1343版 仮想COMサンプル|[[lpc-sample.zip:http://psp.dip.jp/web/upload.cgi/LPC/lpc-sample.zip]]|LPCXpresso(LPC1343)、他| 2011-01-15: 仮想COMサンプルがUSBデバイス登録失敗するバグを直しました。 --これは、PROD_ID=0003 だったところをHIDデバイスと被るために0004に変更したつもりが、変更に失敗して正しいディスクリプタを生成出来ていなかった問題です。 --オリジナルのサンプルソースでは0003ですが正常動作していました。0004に書き変えるときに2byte->1byteにしてしまいエンバグさせていました。 ---- *■ 現在のステータス [#e841ab9d] - ・コンパイラ "CodeSourcery G++ Lite" にて、ビルドは通ります。 - ・通電すると、LEDが点灯します。 - ・HIDクラスとしてPCから認識されます。 - ・host/armon.exe を起動すると、メモリーダンプなどが実行できます。 - ・host/armboot.exe を起動すると、HEXファイルをFlashに書き込むことが出来ます。 - ・host/ディレクトリをLinuxでビルドすればLinux上でも同じことが出来るようになっています。 -- Linux上では、CodeSourceryでない、普通のarm用クロスgccでファームウェアをビルドできます。 --参考:[[ARMクロスコンパイラ構築(Linux)>2010-04#b817f226]] STM32版では、ブートジャンパーあるいはUSERスイッチによって、電源ON直後にブートローダーになるかアプリケーションを起動するかを切り替えることができますが、 -LPC1343版では、今のところブートジャンパーのピン割り当てがありませんので、電源ON直後はブートローダーモードになります。 ~ -アプリケーションを書き込んで起動するには C:> host\armboot.exe -r main-2000.hex -を実行します。 -一度書き込み済みのアプリケーションを起動するには C:> host\armboot.exe -r もしくは C:> host\armon.exe ARM> boot 2000 ARM> q -を実行します。 *■ 使い方 [#mf681012] - (1)LPC1343のUSBブート機能を利用して、firmware/firmware.bin を書き込みます。(USBマスストレージで出現するCRP DISABLEDというドライブ名のドライブのルートにあるfirmware.binに上書きすればOKです。) - (2)USBでPCと接続するとLEDが点灯します。 - (3)host/armon.exe を起動して接続できれば成功です。メモリーダンプ('d') と、メモリー書き換え('ew')が出来ます。 - (4)host/armboot.exe -r firmware/main-2000.hex を実行すると、0000_2000番地に アプリケーションとしてのHIDmonを書き込んで実行します。 - (5)アプリケーション側(0000_2000番地で動作するバージョン)の動作中はLEDが 1秒周期で点滅を行うことで動作の区別をつけるようにしました。 - (6)ブートローダーに制御を戻すには、 C:> host\armon.exe ARM> boot 0 ARM> q --を実行します。 --もしくはUSBケーブルを一旦抜いて挿しなおします。 - (7)アプリケーションの再度書き換えを実行するときにはブートローダーモードに制御を戻す必要がありますが、アプリケーションがmain-2000.hexと同等の機能を持つものであれば、armboot.exeは自動的にブートローダーを再起動したのち、アプリケーション部分の書き込みを実行することが出来ます。 *■ userコマンドについて [#yfeeb3ac] ARM> user ~~~~ - というコマンドを実行すると、usercmd.c に記述されたユーザールーチン を起動することが出来ます。 - 現在は、簡単な _user_puts のテストが出来るようになっています。 - printfを呼び出すようにusercmd.cを変更することも出来ますが、LPC1343のFLASH容量をすこしオーバーするため、書き込んで実行することが出来ません。 (なんらかの容量節減を行う必要があります) *■ ToDo [#fac94c8b] 未実装項目 - ・ブートジャンパーによるアプリケーションモードへの切り替え 実装完了項目 - ・高速化 - ・runコマンドが変. - ・bootコマンド欲しい. - ・(Application modeで)printが欲しい. - ・armboot -r オプション. - ・USB disconnect - ・他の基板への移植(CQ-STARM,STBeeなど) - ・逆アセンブラがPIC18Fのまま. *■ 補足 [#b8d0f280] -(1) armboot.exeは '-r'オプション指定により、アプリケーションの自動起動が出来るようになりました。 -(2) armon.exe の boot コマンドを用いることで、互いに相手側のファームウェアを再起動することが出来るようになりました。 --例: BOOTLOADERからAPPLICATION側に切り替える。 ARM> boot 2000 ARM> q --例: APPLICATION側からBOOTLOADERに切り替える。 ARM> boot 0 ARM> q -(3)互いに、相手側のファームウェアを更新することが可能です。 -- b.bat ・・・ BOOTLOADERからAPPLICATION側のファームを書き換えるバッチファイル。 -- bb.bat ・・・ APPLICATION側からBOOTLOADERのファームを書き換えるバッチファイル。 -- BOOTLOADER側の書き換えに失敗した(ファームウェアをバグらせてしまった)場合は、%%外部のJTAGライターが再度必要になります。%% ---LPC1343の場合はBOOTROMに戻せばUSBマスストレージが出現しますので簡単にファーム書き戻しが可能です。
タイムスタンプを変更しない
[[ARM]] [[LPCXpresso]] ---- *■ 概要 [#q1a8f865] -これは、[[LPCXpresso]]用の HIDクラス・ブートローダー 兼 簡易モニターです。 -CQ出版のTRZ1010N付録基板でも同様に使用できます。 ~ このブートローダーを使用することによって、以下のようなことが出来るようになります。 -Cortex-M3用のプログラム開発。 -内部メモリーやI/Oポートの確認、変更。 -http://psp.dip.jp/web/jpg/ARM/1343a.jpg ~ **TRZ1010Nのコネクタ配置 [#i7b0c2ac] -間違いがあればご指摘ください。 P3: OPAMP入力用 |1|2|3|4|5|6| |3.3V|GND|A-D Ch6 in|A-D Ch7 in| AGND(1.25V)|OUT1| ~ P4: 未解析 OPAMPとRTCへの接続用??? |GND|1|2|GND| |+3.3V|3|4|+3.3V| |PIO1-11(AD7)|5|6|OPAMP OUT3| |PIO1-4 (AD5)|7|8|RTC nINT| |PIO2-3|9|10|PIO1-2| |PIO3-1|11|12|OPAMP AGND(1.25V)| |PIO3-0|13|14|-| |PIO2-11(SCK)|15|16|RTC SCL| |PIO1-10(AD6)|17|18|OPAMP OUT4| |PIO0-9 (MOSI)|19|20|RTC SDI| |PIO0-8 (MISO)|21|22|RTC SDO| |PIO2-2 |23|24|-| |PIO2-10|25|26|-| |PIO2-9|27|28|-| |PIO2-5|29|30|-| |PIO2-4|31|32|TOUCH SWITCH OUT| |PIO1-9|33|34|OPAMP PIN1| |PIO0-2 (SSEL)|35|36|RTC CE| |PIO0-6|37|38|-| |+3.3V|39|40|RTC Vdd| ~ P2: JTAG??? |+3.3V|1|2|PIO0-1(TMS)| |GND|3|4|PIO0-10(SWCLK)| |GND|5|6|PIO1-1(TDO)| |-|7|8|PIO0-11(TDI)| |GND|9|10|GND| -LPC1343にはJTAGデバッグ機能は含まれていないはずなので・・・もしかしたらTAP専用??? ~ P1: SWDデバッグ? |1|2|3|4|5|6|7|8| |+3.3V|PIO1-3(SWDIO)|PIO0-10(SWCLK)|PIO0-9(MOSI)|-|PIO0-0(nRESET)|-|GND| ~ P5: 温度センサーへの接続PIN |+3.3V|1|2|LM75B A2| |PIO0-4(SCL)|3|4|LM75B SCL| |PIO0-5(SDA)|5|6|LM75B SDA| |PIO2-1|7|8|PIO2-8| |PIO2-7|9|10|PIO1-8| ~ P6: USART? |PIO2-0(DTR)|1|2|PIO2-6| |PIO3-3|3|4|PIO1-7(TxD)| |PIO1-6(RxD)|5|6|PIO1-5(RTS)| |PIO3-2|7|8|+3.3V| |GND|9|10|GND| ~ K1: 2-3間ショートでブートローダー(Windowsからは仮想Diskになる) |1|-| |2|PIO0-1(BOOT SELECT)| |3|GND| -2-3間オープンでユーザープログラムの実行 ~ K2: 2-3間ショートでLDO禁止??? |1|-| |2|LDOレギュレータのCE| |3|GND| -デフォルトは全オープン ~ http://psp.dip.jp/web/jpg/ARM/lpc1343_lqfp48.png ---- *ダウンロード。 [#j7f9d56a] |種別|ファイル|対応基板| |LPC-1343ブートローダー |[[lpc-armon.zip:http://psp.dip.jp/web/upload.cgi/LPC/lpc-armon.zip]]|LPCXpresso/TRZ-1010N| *アプリケーション・サンプルソース [#ze0682f1] |種別|ファイル|対応基板| |LPC1343版 仮想COMサンプル|[[lpc-sample.zip:http://psp.dip.jp/web/upload.cgi/LPC/lpc-sample.zip]]|LPCXpresso(LPC1343)、他| 2011-01-15: 仮想COMサンプルがUSBデバイス登録失敗するバグを直しました。 --これは、PROD_ID=0003 だったところをHIDデバイスと被るために0004に変更したつもりが、変更に失敗して正しいディスクリプタを生成出来ていなかった問題です。 --オリジナルのサンプルソースでは0003ですが正常動作していました。0004に書き変えるときに2byte->1byteにしてしまいエンバグさせていました。 ---- *■ 現在のステータス [#e841ab9d] - ・コンパイラ "CodeSourcery G++ Lite" にて、ビルドは通ります。 - ・通電すると、LEDが点灯します。 - ・HIDクラスとしてPCから認識されます。 - ・host/armon.exe を起動すると、メモリーダンプなどが実行できます。 - ・host/armboot.exe を起動すると、HEXファイルをFlashに書き込むことが出来ます。 - ・host/ディレクトリをLinuxでビルドすればLinux上でも同じことが出来るようになっています。 -- Linux上では、CodeSourceryでない、普通のarm用クロスgccでファームウェアをビルドできます。 --参考:[[ARMクロスコンパイラ構築(Linux)>2010-04#b817f226]] STM32版では、ブートジャンパーあるいはUSERスイッチによって、電源ON直後にブートローダーになるかアプリケーションを起動するかを切り替えることができますが、 -LPC1343版では、今のところブートジャンパーのピン割り当てがありませんので、電源ON直後はブートローダーモードになります。 ~ -アプリケーションを書き込んで起動するには C:> host\armboot.exe -r main-2000.hex -を実行します。 -一度書き込み済みのアプリケーションを起動するには C:> host\armboot.exe -r もしくは C:> host\armon.exe ARM> boot 2000 ARM> q -を実行します。 *■ 使い方 [#mf681012] - (1)LPC1343のUSBブート機能を利用して、firmware/firmware.bin を書き込みます。(USBマスストレージで出現するCRP DISABLEDというドライブ名のドライブのルートにあるfirmware.binに上書きすればOKです。) - (2)USBでPCと接続するとLEDが点灯します。 - (3)host/armon.exe を起動して接続できれば成功です。メモリーダンプ('d') と、メモリー書き換え('ew')が出来ます。 - (4)host/armboot.exe -r firmware/main-2000.hex を実行すると、0000_2000番地に アプリケーションとしてのHIDmonを書き込んで実行します。 - (5)アプリケーション側(0000_2000番地で動作するバージョン)の動作中はLEDが 1秒周期で点滅を行うことで動作の区別をつけるようにしました。 - (6)ブートローダーに制御を戻すには、 C:> host\armon.exe ARM> boot 0 ARM> q --を実行します。 --もしくはUSBケーブルを一旦抜いて挿しなおします。 - (7)アプリケーションの再度書き換えを実行するときにはブートローダーモードに制御を戻す必要がありますが、アプリケーションがmain-2000.hexと同等の機能を持つものであれば、armboot.exeは自動的にブートローダーを再起動したのち、アプリケーション部分の書き込みを実行することが出来ます。 *■ userコマンドについて [#yfeeb3ac] ARM> user ~~~~ - というコマンドを実行すると、usercmd.c に記述されたユーザールーチン を起動することが出来ます。 - 現在は、簡単な _user_puts のテストが出来るようになっています。 - printfを呼び出すようにusercmd.cを変更することも出来ますが、LPC1343のFLASH容量をすこしオーバーするため、書き込んで実行することが出来ません。 (なんらかの容量節減を行う必要があります) *■ ToDo [#fac94c8b] 未実装項目 - ・ブートジャンパーによるアプリケーションモードへの切り替え 実装完了項目 - ・高速化 - ・runコマンドが変. - ・bootコマンド欲しい. - ・(Application modeで)printが欲しい. - ・armboot -r オプション. - ・USB disconnect - ・他の基板への移植(CQ-STARM,STBeeなど) - ・逆アセンブラがPIC18Fのまま. *■ 補足 [#b8d0f280] -(1) armboot.exeは '-r'オプション指定により、アプリケーションの自動起動が出来るようになりました。 -(2) armon.exe の boot コマンドを用いることで、互いに相手側のファームウェアを再起動することが出来るようになりました。 --例: BOOTLOADERからAPPLICATION側に切り替える。 ARM> boot 2000 ARM> q --例: APPLICATION側からBOOTLOADERに切り替える。 ARM> boot 0 ARM> q -(3)互いに、相手側のファームウェアを更新することが可能です。 -- b.bat ・・・ BOOTLOADERからAPPLICATION側のファームを書き換えるバッチファイル。 -- bb.bat ・・・ APPLICATION側からBOOTLOADERのファームを書き換えるバッチファイル。 -- BOOTLOADER側の書き換えに失敗した(ファームウェアをバグらせてしまった)場合は、%%外部のJTAGライターが再度必要になります。%% ---LPC1343の場合はBOOTROMに戻せばUSBマスストレージが出現しますので簡単にファーム書き戻しが可能です。
テキスト整形のルールを表示する
ログインまたはアカウント作成