月別アーカイブ: 2008年4月

付録基板を使ってみる

デザインウエーブ、インタフェースの付録にCPU基板がついていました。
今回も両方とも買ってしまいました。完全に付録もくてきですね。

インタフェース:FR60
部品セットを買って取り付けベースボードにリセットSWを取り付けました。
フラッシュROMの書き込み時のリセットはある程度長めにSW押さないと駄目みたい。
雑誌に載っている各プログラムを書き込んで動作しました。
脳トレのプログラムはプロジェクトファイルが無くて作りましたが、かなり面倒でした。
gccも対応していないしいまいちかな。

デザインウエーブ:STM32
こちらはARMコアですが、cortex3Mなので普通のgccだと駄目で、-mcpuでcortex-3mの指定が
できるバージョンが必要です。ベースボードにシリアルのレベル変換のICとJTAGのコネクタと
bootの選択のジャンパーをのせました。付録基板にもRTCクロックとSDコネクタを乗せました。
SDコネクタは、大須のタケイ無線の無印の安いのです。あまる2ピンは挿入SWのようです。
とりあえず書き込んであるプログラムをdfuとシリアルからバックアップを取って、
USBマスストレージのプログラムを書き込みました。携帯のミニSDは読めなかったけど、
2GのSDは普通によめました。

USBの各プログラムをdfu対応に修正しました。
hw_config.c
// NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);
  NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x3000);//DFU 0x08003000
あとは開発ツール毎に
EWARM(ツールのバージョンが違うので)
stm32f10x_vector.c
//void __program_start( void );
void __iar_program_start( void );
ベクタテーブルの名前も変更します。
//#pragma location = “INTVEC”
#pragma location = “.intvec”
このあとの__program_startを__iar_program_startに変更(2010.3.17追加)
Project->Options->Linker
->OutputConvert Generate additional output/motorola/Override default .srec->.S19
->config F:\RIDE\STM32F10x_FLASH_dfu.icf
icfは雑誌のサンプルでOKでした。

RIDE
F:\Program Files\Raisonance\Ride\scripts\GNUTools.js
file2.Write (” RAM (xrw) : ORIGIN = 0x20000000, LENGTH = ” + STM3_RAMSize + “K\n”);
//file2.Write (” FLASH (rx) : ORIGIN = 0x8000000, LENGTH = ” + STM3_FlashSize + “K\n”);
file2.Write (” FLASH (rx) : ORIGIN = 0x8003000, LENGTH = ” + STM3_FlashSize + “K\n”);

Keil
Project->Options
->Output Create HEX File
->Target IROM1 0x8003000
->Linker R/OBase 0x8003000
この修正で3つともdfuで書き込んで動作しました。dfuに変換するのに変換プログラムを一々起動するのは面倒なのでコマンドラインのツールがほしいですね。作ればよいだけですが、どこかに有りそうで作る気がしません。
VCOMはUART1と通信します。
Audioは、TIM4-CH3にPWMで出ますが、LPF,AMPはつけてません。
Joyは、UP=PD.08,DOWN=PD.14,LEFT=PE.01,RIGHIT=PE.00でまだSWはつけてないです。

あとcygwin環境でarm-2007q3-53-arm-none-eabiをコンパイルして、
Makefileを書いてコンパイルする環境も作りました。
STM32F10xFWLib\FWLib\examplesの各サンプルをmakeできました。
でも環境としては、ATMELのSAM7のようにスタートアップルーチンや
リンクスクリプトを提供してくれるほうがうれしいのですが。

keilのサンプルのdhryは、ver2でサイズがでかくてサイズ制限にかかるので、
ver.1.1で測定すると54DMIPSでした。データシートの性能がでてないです。
V850の時よりはましですが。SAM7Sは公称性能が出ていたので測定方法は問題ないはずです。

シリアルからは、FlashLoderでプログラムのR/Wができます。雑誌には、dfuを壊すとJTAG-ICEが
必要と有りますが、UART1から復帰できます。

OpenOCDが対応しているようで、ちゃんと認識します。
F:openOCDre591_ft2232only>openocd.exe -f stm32.cfg
Open On-Chip Debugger 1.0 (2008-04-18-20:32) svn:591
$URL: http://svn.berlios.de/svnroot/repos/openocd/trunk/src/openocd.c $
Info: options.c:50 configuration_output_handler(): Open On-Chip Debugger 1.0(2008-04-18-20:32) svn:591
Info: options.c:50 configuration_output_handler(): jtag_speed: 10, 10
Info: jtag.c:1376 jtag_examine_chain(): JTAG device found: 0x3ba00477 (Manufacturer: 0x23b, Part: 0xba00, Version: 0x3)
Info: jtag.c:1376 jtag_examine_chain(): JTAG device found: 0x16410041 (Manufacturer: 0x020, Part: 0x6410, Version: 0x1)
Info: jtag.c:1376 jtag_examine_chain(): JTAG device found: 0x3ba00477 (Manufacturer: 0x23b, Part: 0xba00, Version: 0x3)
Info: jtag.c:1376 jtag_examine_chain(): JTAG device found: 0x16410041 (Manufacturer: 0x020, Part: 0x6410, Version: 0x1)

FR-60より面白いですね。
昨日から6日まで休みなので何か作りたいな。