contents

DWM200805基板

内蔵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構築準備

  • 2009年03月28日(土)

これまでの準備状況。

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

とりあえず、作れたので、焼いてみた。

ファームの更新, again

  • 2009年03月26日(木)

昔の自分(イベント準備で、色々と)に聞きながら、作業する。

やった!! Firm戻せたよ(;-;)

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....は生えるみたい。

Last modified: 2009-04-06
Post-it: New Post-it (help)

Text color: [_][_][_][_]

Background: [_][_][_][_][_][_]

Draw Line:

x: y: