contents
DWM200805基板
Design Wave Magazineの2008年5月号付録のCortex-M3(ARM)基板で遊んでいるページ。
内蔵LEDのON,OFFができた!!
- 2009年04月06日(月)
2009/05/13追記: 実は、以下のパッチでは、LEDのONやOFFをすると加速度系の入力が止まります。 で、今修正すべく格闘中です。
h*, l*で、内蔵LEDのON,OFFができるようにファームを変えてみた。
- main.c
--- main.c.org 2009-04-06 19:36:08.000000000 +0900 +++ main.c 2009-04-06 19:36:08.000000000 +0900 @@ -54,6 +54,19 @@ sendFlg = 0; mode = 'A'; } + // LED on and off + else if(memcmp(buffer_out, "h*", 2) == 0) + { + To_USB_Send_Data("h*"); + sendFlg = 1; + mode = 'H'; + } + else if(memcmp(buffer_out, "l*", 2) == 0) + { + To_USB_Send_Data("l*"); + sendFlg = 1; + mode = 'L'; + } // Q* -- reset else if(memcmp(buffer_out, "Q*", 2) == 0) { @@ -127,6 +140,20 @@ switch( mode ) { + case 'H': + if(sendFlg > 0) + { + delay(CNT_DELAY); + Led_RW_ON(); + } + break; + case 'L': + if(sendFlg > 0) + { + delay(CNT_DELAY); + Led_RW_OFF(); + } + break; case 'G': if(sendFlg > 0) {
- hw_config.c
--- hw_config.c.org 2009-04-06 19:32:53.000000000 +0900 +++ hw_config.c 2009-04-06 19:32:53.000000000 +0900 @@ -332,7 +332,8 @@ *******************************************************************************/ void Led_RW_ON(void) { - GPIO_SetBits(GPIOC, GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9); +/* GPIO_SetBits(GPIOC, GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9); */ + GPIO_WriteBit(GPIOC,GPIO_Pin_6,Bit_SET); } /******************************************************************************* @@ -344,7 +345,8 @@ *******************************************************************************/ void Led_RW_OFF(void) { - GPIO_ResetBits(GPIOC, GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9); +/* GPIO_ResetBits(GPIOC, GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9); */ + GPIO_WriteBit(GPIOC,GPIO_Pin_6,Bit_RESET); } /*******************************************************************************
Gainer firmware構築準備
Keilの環境
- Keilの環境試用ライセンスがexpireしとるし…
Build target 'BOOT_FLASH' compiling hw_config.c... hw_config.c: Error: C9932E: This Evaluation Version has expired. Please contact your supplier. Target not created
- なんか、USBLibとFWLibのファイルが軒並み見つかってないし…
新規インストールしても、ライセンスexpireしてる…
IARで作る
とりあえず、ライセンスを入手する。
プロジェクトファイルは、以下を使う。
- DWM200805\articles\0805_a02\Acc3_V5_gainer\project\EWARM\VirtualCOMPort.eww
とりあえず、buildすると、以下のような感じ。
Building configuration: VirtualCOMPort - Debug Updating build tree... 48 file(s) deleted. Updating build tree... cortexm3_macro.s hw_config.c Fatal Error[Pe005]: could not open source file C:\Documents and Settings\mutoh\デスクトップ\DWM200805\articles\0805_a02\Acc3_V5_gainer\include\stm32f10x_it.h 21 "stm32f10x_lib.h" Error while running C/C++ Compiler main.c Fatal Error[Pe005]: could not open source file C:\Documents and Settings\mutoh\デスクトップ\DWM200805\articles\0805_a02\Acc3_V5_gainer\source\main.c 17 "stm32f10x_lib.h" Error while running C/C++ Compiler stm32f10x_adc.c Fatal Error[Pe005]: could not open source file "C:\ Documents and Settings\mutoh\デスクトップ\DWM200805\ FWLib\library\src\stm32f10x_adc.c" Error while running C/C++ Compiler stm32f10x_dma.c Fatal Error[Pe005]: could not open source file "C:\ Documents and Settings\mutoh\デスクトップ\DWM200805\ FWLib\library\src\stm32f10x_dma.c" Error while running C/C++ Compiler stm32f10x_flash.c Fatal Error[Pe005]: could not open source file "C:\ Documents and Settings\mutoh\デスクトップ\DWM200805\ FWLib\library\src\stm32f10x_flash.c" Error while running C/C++ Compiler stm32f10x_gpio.c Fatal Error[Pe005]: could not open source file "C:\ Documents and Settings\mutoh\デスクトップ\DWM200805\ FWLib\library\src\stm32f10x_gpio.c" Error while running C/C++ Compiler stm32f10x_it.c Fatal Error[Pe005]: could not open source file C:\Documents and Settings\mutoh\デスクトップ\DWM200805\articles\0805_a02\Acc3_V5_gainer\include\stm32f10x_it.h 21 "stm32f10x_lib.h" Error while running C/C++ Compiler stm32f10x_lib.c Fatal Error[Pe005]: could not open source file "C:\ Documents and Settings\mutoh\デスクトップ\DWM200805\ FWLib\library\src\stm32f10x_lib.c" Error while running C/C++ Compiler stm32f10x_nvic.c Fatal Error[Pe005]: could not open source file "C:\ Documents and Settings\mutoh\デスクトップ\DWM200805\ FWLib\library\src\stm32f10x_nvic.c" Error while running C/C++ Compiler stm32f10x_rcc.c Fatal Error[Pe005]: could not open source file "C:\ Documents and Settings\mutoh\デスクトップ\DWM200805\ FWLib\library\src\stm32f10x_rcc.c" Error while running C/C++ Compiler stm32f10x_usart.c Fatal Error[Pe005]: could not open source file "C:\ Documents and Settings\mutoh\デスクトップ\DWM200805\ FWLib\library\src\stm32f10x_usart.c" Error while running C/C++ Compiler stm32f10x_vector.c Fatal Error[Pe005]: could not open source file C:\Documents and Settings\mutoh\デスクトップ\DWM200805\articles\0805_a02\Acc3_V5_gainer\project\EWARM\stm32f10x_vector.c 19 "stm32f10x_lib.h" Error while running C/C++ Compiler usb_core.c Fatal Error[Pe005]: could not open source file "C:\ Documents and Settings\mutoh\デスクトップ\DWM200805\ articles\library\src\usb_core.c" Error while running C/C++ Compiler usb_desc.c Fatal Error[Pe005]: could not open source file "usb_lib.h" C:\Documents and Settings\mutoh\デスクトップ\DWM200805\articles\0805_a02\Acc3_V5_gainer\source\usb_desc.c 17 Error while running C/C++ Compiler usb_endp.c Fatal Error[Pe005]: could not open source file "usb_lib.h" C:\Documents and Settings\mutoh\デスクトップ\DWM200805\articles\0805_a02\Acc3_V5_gainer\source\usb_endp.c 17 Error while running C/C++ Compiler usb_init.c Fatal Error[Pe005]: could not open source file "C:\ Documents and Settings\mutoh\デスクトップ\DWM200805\ articles\library\src\usb_init.c" Error while running C/C++ Compiler usb_int.c Fatal Error[Pe005]: could not open source file "C:\ Documents and Settings\mutoh\デスクトップ\DWM200805\ articles\library\src\usb_int.c" Error while running C/C++ Compiler usb_istr.c Fatal Error[Pe005]: could not open source file "usb_lib.h" C:\Documents and Settings\mutoh\デスクトップ\DWM200805\articles\0805_a02\Acc3_V5_gainer\source\usb_istr.c 17 Error while running C/C++ Compiler usb_mem.c Fatal Error[Pe005]: could not open source file "C:\ Documents and Settings\mutoh\デスクトップ\DWM200805\ articles\library\src\usb_mem.c" Error while running C/C++ Compiler usb_prop.c Fatal Error[Pe005]: could not open source file "usb_lib.h" C:\Documents and Settings\mutoh\デスクトップ\DWM200805\articles\0805_a02\Acc3_V5_gainer\source\usb_prop.c 17 Error while running C/C++ Compiler usb_pwr.c Fatal Error[Pe005]: could not open source file C:\Documents and Settings\mutoh\デスクトップ\DWM200805\articles\0805_a02\Acc3_V5_gainer\source\usb_pwr.c 17 "stm32f10x_lib.h" Error while running C/C++ Compiler usb_regs.c Fatal Error[Pe005]: could not open source file "C:\ Documents and Settings\mutoh\デスクトップ\DWM200805\ articles\library\src\usb_regs.c" Error while running C/C++ Compiler Total number of errors: 22 Total number of warnings: 0
なんか、オプションがぜんぜん違うし。
とりあえず、例題から
うーん、説明どおりで作れんぞ。
- DWM200805\articles\0805_a08\Blink
勘弁してくれ。
オプションの違いは、ファイルなどが読み取り専用だと極端に少なくなるようだ。
まあ、先に既にコンパイルされているファーム使って、書き込みを試すか。
DFUでの書き込み
まあ、これは説明どおりで大丈夫。
ちゃんと、Blink動作した。
Gainer firmware, again
で、Gainerのfirmwareも、Cの設定のPreprocessorでincludeパスをちゃんと設定して、必要なライブラリを追加して、それでもコンパイルできないCファイルを消したらできた。
- 追加したinclude path
- DWM200805\soft\ST\STM32F10xxxのサンプル・プログラムおよびマニュアル\STM32F10xFWLib\FWLib\library\inc
- DWM200805\soft\ST\USB関連のサンプル・プログラムおよびマニュアル\STM32F10xUSBLib\USBLib\library\inc
- 追加したlibraryファイル
- DWM200805\soft\ST\USB関連のサンプル・プログラムおよびマニュアル\STM32F10xUSBLib\{FW,USB}Lib\library\src\*.c
とりあえず、作れたので、焼いてみた。
DFUの書き込みテスト
- 2009年01月25日(日)
umassを書き込んだけど、SDフォーマットするかといわれる。 これは、他のSDの口で読み込むと、VFATとして読めるんだけどなぁ。
FreeBSDに刺す。
Jan 25 16:53:02 fuji kernel: umass0: <STMicroelectronics STM32F10x:USB Mass Storage, class 0/0, rev 2.00/1.00, addr 5> on uhub1 Jan 25 16:53:02 fuji kernel: umass0: SCSI over Bulk-Only; quirks = 0x0000 Jan 25 16:53:02 fuji kernel: umass0:0:0:-1: Attached to scbus0 Jan 25 16:53:02 fuji root: Unknown USB device: vendor 0x0483 product 0x5720 bus uhub1 Jan 25 16:53:03 fuji kernel: da0 at umass-sim0 bus 0 target 0 lun 0 Jan 25 16:53:03 fuji kernel: da0: <STM STR Flash Disk 1.0> Removable Direct Access SCSI-2 device Jan 25 16:53:03 fuji kernel: da0: 1.000MB/s transfers Jan 25 16:53:03 fuji kernel: da0: 0MB (16 1 byte sectors: 64H 32S/T 0C)
明らかにda0のサイズがおかしい。
うお、抜くとkernel panicしたよ。
K*BUG勉強会
- 2009年01月24日(土)
いつものAvantiの本屋で、DWM2008-05を追加購入。
K*BUG勉強会
K*BUG勉強会 (こんな感じ)で、 /FreeBSD/Serial2008.htmlを発表した。
Gainer firmware
- 2009年01月12日(月)
http://hp.vector.co.jp/authors/VA000177/html/2008-05.html のソースがどこだったか、忘れてた。
- (c:/DMW0805/DMW0805/)articles/0805_a02/Acc3_V5_gainer/source/
- main.c
- hw_config.c
しかし、cuの-h(localecho?)って使えるの?
イベント準備で、色々と
- 2008年09月27日(土)
本日のumodem
以下の件について。
fuji% sudo cu -s 38400 -l /dev/cuaU0 cu: unsupported speed 38400
ucom0: <STMicroelectronics STM32 Virtual COM Port, class 2/0, rev 2.00/1.00, addr 4> on uhub1 ucom0: iclass 2/2 ucom0: data interface 1, has no CM over data, has no break ucom0: status change notification available umodem_modem: onoff=1 umodem_modem: onoff=1 umodem_modem: onoff=1 umodem_modem: onoff=1 umodem_open: sc=0xc505ee00 umodem_param: sc=0xc505ee00 umodem_set_line_coding: rate=38400 fmt=0 parity=0 bits=8 umodem_set_line_coding: failed, err=STALLED umodem_param: err=STALLED umodem_modem: onoff=0 umodem_modem: onoff=1 umodem_close: sc=0xc505ee00
send-pr調べる
われながら、どうも順番が逆の気がする…
多分、こいつらだな。
- send-pr:usb/91546
- send-pr:usb/117185
こいつら当てても、やっぱりスピード関連でダメ。
もう一度、6.4R
とりあえず、例のチェック部分だけをコメントアウトしたumodem.cを使ってみる。
うーん、こいつだと動作するんだよなぁ。
ucom0: STMicroelectronics STM32 Virtual COM Port, rev 2.00/1.00, addr 2, iclass 2/2 ucom0: data interface 1, has no CM over data, has no break ucom0: status change notification available umodem_modem: onoff=1 umodem_modem: onoff=1 umodem_modem: onoff=1 umodem_modem: onoff=1 umodem_open: sc=0xc71c9e00 umodem_param: sc=0xc71c9e00 umodem_set_line_coding: rate=38400 fmt=0 parity=0 bits=8
Flashのバックアップ
基本的に FT232RLでCQ-STARMのFlashROMをリカバリー(1) に従って作業する。
http://www.st.com/mcu/familiesdocs-110.html#Software%20-%20PC のSTM32F101xx and STM32F103xx Flash loader demonstrator: Contains the Demo GUI, Command line and header source files をインストールする。
- um0462.zip
- 13916.pdf
で、こいつにもシリアルないので、URS-03使う。
結線は以下を参考にする。
- RS-232
- J2[26] (STARM::UART1_RX) <--> RS232 [3] (TxD)
- J2[27] (STARM::UART1_TX) <--> RS232 [2] (RxD)
で、一回失敗して、Windowsをblue screenでぶち殺す。
多分、シリアルのレベルが違うのが問題の気がする。
うーん、どうするかなぁ。
シリアル経由でのLa Foneraファームウェアインストール参考に、以前Fonera用に買ってあったMAX232使ってレベルコンバータ作った。
で、成功!!
これで、ファーム変えても大丈夫かな。
リンク集
SDスロットのハンダ付け
- 2008年09月17日(水)
SDスロットなどのハンダ付けをする。
@FreeBSD 6.4Rあたり
- 2008年09月10日(水)
DWM2008/05のは以下のような感じ。
ugen0: <STMicroelectronics STM32 Virtual COM Port, class 2/0, rev 2.00/1.00, addr 3> on uhub0
Macでも使えんの?
- 2008年09月09日(火)
以下を参考に…
おお、10.3.9でも大丈夫だわ。 何見てたんだろ(;-;)
うーん、dmesgや/var/log/system.logには出ないけども、/dev/cu.modem....は生えるみたい。