2010年12月31日

STBee_3

とりあえず PCのコンソールからの入力を読み取り事と コンソールに表示をすることが出来るようになった。 momocoからの移植を考えて極力互換性があるようにしたつもりだが 今後の移植で出来不出来がすぐにわかるはず。

Eclipseの使い方も少しづつわかってきた感じ。
参考書と同じ環境で作業をするとわかりやすい事も多いな。
momocoへの逆移植などを考えるとJDEの環境の方が簡単そうであるが。
DFUも復旧出来るようになったので新品のCPUでも同じように作業が出来るように出来るはず。
、、、DFUの中身は見れないので外部クロックをつけないとダメか、、 となるとDFUを使わないか外部クロックをつけるか またそこに話が行くのか、、

----------------------------------------------------------------------------
試しにボードからMAPを表示させてみた。
ところが Eclipseのターミナル上では文字化けをしてしまい全く判読できず。
@ @ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
„¬„a„±„a„±„a„±„a„±„a„±„a„±„a„±„a„±„a„±„a„±„a„±„a„±„a„±„a„±„a„±„a„-
な感じ。
ソースの表示VIEWでは
xputs("    0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15\r\n");
xputs(" ┏━┳━┳━┳━┳━┳━┳━┳━┳━┳━┳━┳━┳━┳━┳━┳━┓\r\n");
な感じで問題なし。
いろいろ書かれている方法も試したけど かえってソースの表示の方が文字化けをするだけで変化なし。
ここまで書いてふと もしかすると文字の送り方の方が問題なのかも、、と思ったり。
posted by momoco at 01:16| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2010年12月30日

STBee_2 VCP認識

VCP認識できた。
マイコン徹底入門の情報交換に似たような症状についての書き込みがありそこを見ながら修正をしてとうとう認識するようになった。
また一歩前進。

---------------------------------------------------------------------------
インストール中のエラーのメッセージはよくある事のようだ。
 http://miqn.net/node/187
makefileの設定をこのページの通りにして(FT2232_JTAG はDFUに変更)みると認識をするようになった。 キーを打ち込むとechoが返って来ているのでちゃんとつながっている。
あとは ソフトで数値データの受け渡しと文字列の受け渡しを出来るようにするのが 手順なのだな、、
仮想ポートを使わなくてもシリアルで通信できるみたいだが アダプタを手に入れるのが簡単なようなのでそちらは連休明けにトライだな。
まずは仮想ポートの扱いの方を。基本はJSDのボードと同じで出来るはず。 復習にちょうど良いかも。



posted by momoco at 01:40| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2010年12月29日

STBee_1

STBeeにJDEのモニタを書き込むのがうまく行かないので基本に立ち返るつもりで参考書の通りにトライをすることにした。 DFUを書き換えてしまっているのでその復旧から。 多少引っかかりながらもST-Link経由でDFUの書き込みに成功した。 LEDがチカチカし始めたのでOKだろう。
しかしUSB経由でのサンプルプログラムの書き込みはうまく行かない。
例によってこの道も関所があった。 ここら辺を乗り越えないとSTMを使った板マウス(マイコンボードとも言う)を扱えないので 避けて通るわけにはいかないのだが。

----------------------------------------------------------------------------
同じ手順(のつもり)で別のPCにEclipseをインストールして書き込みをすると、ちゃんとUSB経由でサンプルを書き込めるようになった(みたい)。
LEDのチカチカが変わったのでOKなのだと思う。
次のサンプルはシリアルを使うので VCPをインストールしなさいとあった。
でインストールすると なにやらエラーメッセージが。
VCP-ERROR.bmp
でそのままインストールを終了させ、サンプルを書き込み リセットすると
新しいデバイスが認識されるはずが、、されない。 デバイスマネージャにCOMポートも現れない。
なので もちろんターミナルも接続できない。 この できない できない 連鎖はVCPのインストール中のエラーが起点に違いない(と思う)。
さて、次は どうする。
posted by momoco at 21:55| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2010年12月28日

内部発振回路

マウスの構成を考えて楽をする為にSTM32の内部発振回路にトライ。
どこのボードもそうだろうが 外部クロックを使うのが標準になっている。
なので どこをいじれば良いのかを調べる。 あまりメジャーな使い方でないのか以外に情報が少ない。 ずばり書かれているのは見つからず。 手探りで。
・内部発振器では8MHzだが 1/2になって供給されるらしい。
・PLLを作る低倍率は16倍まで
・なので内部の発振回路を使うと64MHz動作までしかできない(らしい)
p52-hw_config.cの中の
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_6);
を RCC_PLLConfig(RCC_PLLSource_HSI_Div2, RCC_PLLMul_16); にしてみる。
ところが うまくいかない。
そこからまた、参考書を調べると、、クロックツリーと言う図がある。 USBCLKの所が48MHzとなっている。
他は72MHz(Max)とかMaxがついているのに 48MHzで決め打ちになっている。
USBプリスケーラは 1/1.5 もしくは 1 しか選べないらしい。 そこら辺から推測をすると 72MHzを1/1.5にして48MHzにするか 48MHzをそのまま48MHzで使うかしか手がないのかも。
さっそく RCC_PLLConfig(RCC_PLLSource_HSI_Div2, RCC_PLLMul_12); として
RCC_USBCLKConfig(RCC_USBCLKSource_PLLCLK_1Div5);->RCC_USBCLKConfig(RCC_USBCLKSource_PLLCLK_Div1);にしてみる。
これで 動き始めた。 もちろんLEDの点滅が遅くなったが。

さて マウスにする時にどうするかだが
・48MHzにする、これでもmomocoの40MHzよりは2割はやい
・8MHzの外部クロックを用意する
・72MHzにしてUSBを使わない通信を採用する、こちらはさらに勉強が増えるな。


そこで ふとSTBeeの事を思いついた。
STBeeの外部クロックは12MHz。 8MHzの勉強中のボードとは違う。
他の違いは LEDのポート、Push SWのポート など それらを修正して 再トライ。
でも ダメだった。
JTAG経由でモニタを書き込めた気だったのだが
wrote 22596 byte from file mon_stm32f103-p52.mot in 1.265625s (17.435184 kb/s)
target state: halted
target halted due to breakpoint, current mode: Handler HardFault
xPSR: 0x61000003 pc: 0x08000e54 msp: 0x0200f9e0

wroteとあるので書き込みがうまくいったと思っていたが JSDのボードにちゃんと書き込めた時と最後のメッセージが違う。


wrote 22388 byte from file mon_stm32f103-p52.mot in 1.250000s (17.490625 kb/s) target state:halted
target halted due to breakpoint, current mode: Thread
xPSR: 0x01000000 pc: 0x0800502c msp: 0x20004800
Info : JTAG tap: stm32.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)
Info : JTAG tap: stm32.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)

current mode: の後が違う
posted by momoco at 20:58| Comment(2) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2010年12月27日

ラジコンサーボはOK

ラジコンのサーボがちゃんとコントロール出来なかったのは単純にGNDがつながっていなかっただけだった。 つないだらちゃんと動くようになった。 サーボの種類に依るのだろうが結構動きが緩慢な印象。 マウスを見慣れたせいか。

JDEのモニタをSTBeeに移植しようとトライしたがあえなく失敗。
JTAGで書き込めたが 書き込んだつもりのモニタは動作していない。
書き込みが出来た(接続できた)だけでも進歩と考えよう。
posted by momoco at 23:53| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2010年12月26日

少し進展

少しだけ進展

ブレッドボードがひどい事になっていたので少し整理。
載せてある機能は
・基板上のLEDの扱い
・PUSH SWの取り込み
・ロータリーDIP SWの取り込み
・(可変抵抗で作ったサンプル電圧の)AD値取り込み
・ジャイロの取り込みX2(LY3200ALH、LY330ALH)
・エンコーダの取り込み(回転量、回転速度)
・PWM出力とその相補出力(デッドタイム込)

マイコン本体の扱いでは 外付けのメモリ、ログを取るのに使えるものが欲しい
それが出来ると 大体の必要な事のテストが出来た事になる。
まだ、最初の所が判らないのでCPUを変えるのはまだまだ。


回路面では最近のトレンドのシンプルな構成を試しておきたい.


-------------------------------------------------------------------------
シンプルな回路で思い立って ミニモーターのエンコーダの供給電圧を3.3Vにしてみた。
これで動けば5V耐性PINでなくても分圧しなくて良いし 5V系が少なくなる。
ジャイロもLY3XXならば3.3Vなので残るのは、、無いのかも。なるほど、、
エンコーダのデータシートでは 4.5V以上になっているけど。
試してみると一見問題なく動いている。 デジタルだし読み飛ばしとかはないだろうな。
大丈夫なのか?

--------------------------------------------------------------------------
マウスには関係が無いのだけど PWMの練習ついでにラジコンのサーボをコントロールしてみる。
ラジコンもやらないのになぜかサーボが転がっていたので。
20ms幅の周期で 約1500μsのパルスを送って中立を出すつもりが サーボがぶるぶる振動している。ラジコンをやらないので本当の動作を知らないけどこれじゃ以上だろう。 さて、一つ何かやると必ず壁にぶつかる。 必要が無いとは言え気になるので何とかしたいな。
posted by momoco at 21:09| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2010年12月24日

STBee

JSDのARMボードで練習中なのだが STBeeも同じ様に使えるようにしたい。
ROM、RAMのサイズ共に大きくて こちらなら momocoのソフトがそのまま入るはず。
JDEのモニタを入れる事が出来るか、まだまだ 仕掛けが理解できてないので ちょっと先かな。
posted by momoco at 23:36| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2010年12月23日

ジャイロ

少し前にDigi-Keyでジャイロを注文した。
が、間違って評価用のボードを注文してしまった。
のだが、、試してみるのにはかえって好都合だった。

ADが使えるようになったのでテストしてみる。
安定しないようなのはもっとちゃんと接続をしないとダメなのか。
これは週末のテストだな。
荷物3.JPG
posted by momoco at 23:50| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

AD

今日のSTM32
実験用の操作性を改良しながら 次のAD変換にトライ。
設定をして(例によって少し回り道をしたものの)可変抵抗で分圧したサンプルの電圧を読み取り。
値は出るものの 全然安定していない。 読み取る毎に値が大きく違う。
サンプルがおかしいのか 処理がおかしいのか。
また、悩まなくては。

--------------------------------------------------------------
すぐに解決 サンプルがおかしかっただけ。
参考書のAD変換には連続変換とかDMAでの転送とか 色々サンプルがあるが練習したのはシングルモード。 今までのやり方なら これが出来ればOKのはず。 最近の外乱光の影響のソフト処理をすると待ち時間は少ない方が良いのか。 そうなると連続変換モードの必要性も出てくるのかもしれない。
まぁ、今日の所は一つ前進と言う事で、作業終了。
posted by momoco at 00:01| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2010年12月21日

今日(昨日)の成果

日が変わってしまったけど なんとかエンコーダの読み取りに成功した。
出来てしまうとなるほどと言う感じ。

1つのエンコーダで1つのタイマを使うとすると後の事に足りるのか? モーターを動かして確認をしないと どんな機能をどの位使うのか イメージがつかめてない。 ドライバの直接コントロールは可能なのだろうか? 

でも次はセンサー系かな。
posted by momoco at 00:54| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2010年12月19日

momocoネタもそろそろネタ切れ

駆動ユニット5.JPG 駆動ユニット2.JPG
ファンユニットを外した内側。
アルミのベースブラケットが左右に1つづつ。一応軽量化の為にネジ部以外は削ってある。
このブラケットの外側にはやはりアルミのブラケットに取り付けられたモーターが取りついている。
上にはファンユニットが取りつく。ファンユニットは左右のベースブラケットをつなぐストラットバーを兼ねて全体の剛性を上げている。

----------------------------------------------------------------------------

今日のSTM
エンコーダーの取り込みはまだ成功していない。参考本とは違う環境で作業をしているので 多少は細工をしないとサンプルが動かせない。 で本当は多少のはずなんだけど まだ勝手がつかめずに手探りの為 一度で動かない。 今回も同様に苦戦中。

TIM3のカウンタの値を覗く方法が? 徹底入門ではカウンタモードを使いつつ数えるのは割り込みを使っているみたいだ、(そう思えるのだが) カウンタに数えさせて中身を読めば良いと思うのだが何か理由があるのだろうか? マウスの場合高速でエンコーダを使うので割り込み処理は無しにしたい。
posted by momoco at 18:18| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2010年12月17日

ギヤ部

駆動ユニット3.JPG
グリスケース
ギヤのグリースを保持する為にBOX構造にしている。 迷路をグリスで汚さない為、ギヤに埃を吸着させない為にむき出しだとグリスを塗布する事に躊躇する。ただドライ状態では伝達の効率も悪いし、磨耗もちょっと心配。 なのでギヤBOXを作った。 ホイールの内側とセットで 大体覆い隠すようになっている。少し重量的には不利だけどこだわりってことで。

-------------------------------------------------------------------------
今日のSTMも時間とれずで進展はなし。
posted by momoco at 23:51| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2010年12月16日

ホイール

wheel2.JPG wheel3.JPG
 
ホイール加工機.JPG ホイール加工機1.JPG

今年のホイールは1ピース。
両フランジを作るため去年は2ピースにして2枚あわせでフランジを作っていた。軽量化の為に一体削りだしに挑戦。 基本の形状はいつもの様にminiCNCで加工。 旋盤は無いので 田宮の減速ギヤ付のモーターを利用して加工用の治具を作った。 ホイールをセットしてプロクソンのフライスでフランジのつばを残して削り取る。回転加工なので芯出しも正確に出来て一石二鳥。

----------------------------------------------------------------------------

今日のSTM
進捗はなし。 次はエンコーダの取り込みに挑戦するつもり。
posted by momoco at 22:32| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2010年12月15日

情けない間違い

うまく動いたみたい。

もう一度MAPファイルの部分
------------------------------------------------------
1か所目は 自分の処理を書いた方
.text 0x0800713c 0x338 ./objs/stm32f10x_it.o
0x0800713c NMIException
0x08007148 HardFaultException
0x08007150 MemManageException
0x08007158 BusFaultException
0x08007160 UsageFaultException
0x08007168 DebugMonitor
0x08007174 SVCHandler
0x08007180 PendSVC
0x0800718c SysTickHandler

2か所目は Defaultの方らしい
.text.Default_Handler
0x0800a8e0 0x2 ./objs/startup_stm32f10x_md_mon.o
0x0800a8e0 DebugMon_Handler
0x0800a8e0 HardFault_Handler
0x0800a8e0 SysTick_Handler
------------------------------------------------------

よく見ると SysTickHandler と SysTick_Handler で _ が違う。

結構最初の段階で 参考本ではすべて SysTick_Handlerとなっているので
そこも弄ってテストをしてみたつもりだったが その時には変化がないと
思っていた。 他のミスで反応をしてなかったのかも。
改めて _ を追加してみると MAPファイルには SysTick_Handlerが
一か所だけになり ちゃんと動作をしているみたい。

いろいろ見ていて
LONG(DEFINED(SysTickHandler)?ABSOLUTE(SysTickHandler|1):ABSOLUTE(NoDef_Handler|1))
PROVIDE ( SysTickHandler = 0 ) ;
こう言った 「_ 」無しのSysTickHandlerと言うつづりがあるのでそれで良いのか?と
勝手に納得をしていた。

サンプルの中に準備されていた void SysTickHandler(void){}は本当に使うときには
SysTick_Handlerに直して使って、、と言う事だったのかもしれない。

今 うまく動いているように見えるのが また間違いだったって事の無いことを祈ろう、、、。

W谷さん お騒がせしました。 この騒ぎで あっちこっちを見て回り それはそれで勉強に
なった気もしています。 ありがとうございました。

---------------------------------------------------------------------------
makefileのテンプレートをいじくって.binファイルも出せました。
posted by momoco at 22:45| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

バイナリ

バイナリ?って事で .HEXをダウンロードしたソフトで開いて見ました。
手さぐりなので これで良いのか?も判りませんが(初めてのことだらけだなぁ)。
0D0A3A31 ってこと? 全く違う値??
バイナリ?.bmp
posted by momoco at 00:24| Comment(3) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2010年12月14日

スカート残骸

スカート4.JPG
スカートの残骸いろいろ
渋谷のハンズで 切り売りをしている薄いシートを片っ端から1mづつカットしてもらって購入。 採用したのは 成形性が良くて 成型後にそれなりに剛性があり形状を保てたもの。 材質はメモしていなかったので忘れた。 次に買う機会があったら切れ端を持っていかないと。
購入した材料で スカートを成型。 「アキレス」と書いてあった素材は全く成型出来ず。 それ以外では 熱に弱すぎて穴が開いたりしたのもあった。

---------------------------------------------------------------------------
W谷さん コメントありがとうございます。
こちらの方で状況を、、

NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);
NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);
のような文が見つかりましたが 自分の力ではどうなっているのだか理解できず、、。

SysTickHandlerを探してみると、、、
LONG(DEFINED(SysTickHandler)?ABSOLUTE(SysTickHandler|1):ABSOLUTE(NoDef_Handler|1))
PROVIDE ( SysTickHandler = 0 ) ;
が見つかりました。 それもなんだかわからず、、。
と言う事でもう一回.mapをよく見ると
2か所にSystickHandlerがあるましたが それで良いものか?
本当はdefaultの方が出てこなくなるんじゃないのか、付け焼刃な知識なので自信はないんですが
1か所目は 自分の処理を書いた方
.text 0x0800713c 0x338 ./objs/stm32f10x_it.o
0x0800713c NMIException
0x08007148 HardFaultException
0x08007150 MemManageException
0x08007158 BusFaultException
0x08007160 UsageFaultException
0x08007168 DebugMonitor
0x08007174 SVCHandler
0x08007180 PendSVC
0x0800718c SysTickHandler

2か所目は Defaultの方らしい
.text.Default_Handler
0x0800a8e0 0x2 ./objs/startup_stm32f10x_md_mon.o
0x0800a8e0 DebugMon_Handler
0x0800a8e0 HardFault_Handler
0x0800a8e0 SysTick_Handler

もしかして こちらの方に飛んでいるとかなのだろうか?




posted by momoco at 22:48| Comment(1) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2010年12月13日

09スカート

今年のスカート
スカート1.JPG スカート2.JPG スカート3.JPG
断面図でもあったとおり 今回のスカートは2重構造。 スカートとしての機能だけなら 別に2重にする必要は無いのだが 薄い素材でそれ自体弱々しいので形状保持とバックアップをかねて POM削りだしのスカートのフレームがある。

-----------------------------------------------------------------------

依然SysTickが扱えない。
SysTick_Config(XXXX);の返値は0で正常に処理されたはず。
その後の while(1)の中で puts("Z");を実行すると XXXXが大きいとたくさん、XXXXが小さいと少しのZが返ってきた後に止まってしまう。 と言う事は最初の割り込みが実行されると止まってしまうようだ。 SysTickHandler();の中にputs("W");を入れておいてもWは表示されない。
つまり 割り込みの前か直後に おかしくなっているらしい。
いろいろ弄って変化を見ているけど手がかりがつかめない。さて、次は何をしようか?

posted by momoco at 22:39| Comment(1) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2010年12月12日

スカート

吸引のもう一つの要はスカート。
去年まではドアシールを利用したゴム製だったが今年は樹脂のフィルム(材料は何だか不明)製。

まずは去年までのスカート構造
断面カット1.jpg
ハンズで黒の形状の様な断面を持つシールを購入。
赤の線でカットしてスカート用の断面にする。
旧スカート断面.jpg
そこまでが 07モデル。 さらに青線でカットをする(スライスが難しくて専用の治具を作って加工)と08モデル。 若干だがスカートの高さを抑えられる。 スカートはゴム製なので迷路との摺動部にはテフロンテープ(緑の線)が貼ってある。

07スカート.JPG
元の素材がまっすぐなので8ピースに分けて貼り付け したのが上の写真。

スカートとして そんなに悪くはなかったのだが 
・出来合いの利用なので高さが自由にならない。
・結構重い
・各ピース間の隙間からの漏れが気になる
・ゴムの折り返し部のカット位置が非常に重要で厚いとゴムがうまくしなって迷路に密着をしない。
など 不満はあった。

----------------------------------------------------------------------------

今日(まで)のSTM
PCからのデータ入力を受け取れる様になった。 チューニング時にパラメータ変更等に必要。
ロータリーDIP SW、 PUSH SWの入力も出来た。
LEDの点灯/消灯もOK。
難しいことはないはずなのだが 色々な所でつまづきまだその程度しか進んでいない。

--------------------------------------------

一番簡単そうなシステムタイマの練習。
SysTick_Configだけを設定すればSysTick_Handlerの割り込みが入るはず(?)なのだが、例によってちゃんと動かない。 他に設定するものはなさそうなんだが。
posted by momoco at 17:00| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2010年12月11日

再トライ

昨日の動画は先週撮影したもの。 出来が良くなかったし今日も良い天気だったので再トライ。

ファンのマークの幅を広くしてみた。 少しは良くなったけどもっと明るさがないとダメだな。
posted by momoco at 21:28| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2010年12月10日

回転数

1000fpsの威力を使って回転数の実測をトライ。 1フレーム=1回転で60000rpmなので さすがにそんなことは無いはずなので 1フレームで回転する角度から 回転数を計算する。 
超高速だと光量が必要だった。 FANに書いたマークやビスが見えない。90度の扇形にでも塗りつぶさないとダメか? 一応屋外の日向で撮影はしているのだが。 かろうじて見える影だと3コマ位で同じところにカゲが戻ってくるようだ。と言うことは約20000rpmと言う事でよいのだろうか。
モーターのスペックから見ると 2セルで20000回転強、1.2Aならば それほどおかしい結果ではなさそうだ。


------------------------------------------------------------------------------

今日のSTM進捗
PCからの 文字列を受け取れるようになった(みたい)。
数値データに変換も出来た(みたい)。
これで次のステップへ進めるか。
posted by momoco at 23:13| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。