[2012/03/02]印刷<<<411412413414415416417418419>>>415/421動作も確認できたところで、いよいよ実際のインプリメンテーションに向けて作業を始める事にする。410回にも軽く触れたのだが、やりたいことはWattMeterのデータをもっと高精度に取得することだ。Arduinoと同じことが出来るのをまずは目標としたい(将来的にはI2Cあたりで液晶をつけるとかも考えているが、それはとりあえず動いてからということで)。値をPCに転送ということになる。最初の2つはまぁそれほど問題はなさそうだ。ADCに関してはサンプルもいくつかあるため、これを見ながら何とかできそうだし、計算はもうアルゴリズムと処理速度の問題だけである。間に合わなければFPUあるいはDSPを使うことになり、最悪アセンブラのお世話になる可能性はあるが、今のところはそこまでしなくても行けそうな気がしている。問題は最後の、どうやって転送するかである。Port)を構築するあたりがある。(1)は、STM32F2ベースのSTM32F207VGで利用できる方法である。STM32F207VGは、STM32F4-Discoveryに搭載されているSTM32F407VGと非常に似たハードウェア構成をとっており、最大の違いはCPUコアがCortex-M3かCortex-M4か、というあたりである。このSTM32F207VGには、評価ボード上で利用できるVCP用のライブラリと、これをホスト(PC)側で扱うためのデバイスドライバが用意されている。STM32F207VG用のVCPのライブラリを使ってSTM32F407VG上でVCPのFirmwareが動作すれば、そのまま接続して普通に通信が出来る。(2)はもう少し正攻法である。Classを使うためのライブラリが標準で用意される。Classを使うと仮想的にCOMポートが利用できる。Classを利用して通信を行っている。よさそうに見えるのだが、実はちょっとWindows環境では懸念がある。Transferを利用する。Speed)では許されていないことだ。2.0以降でも問題はない。このため、しばしばベンダーはusbser.sysを使わずにこのあたりを対策した独自ドライバを配布していたりする。DriverをWindows用に提供しているのはこのためだろう。STM32F4をリセットすると、ポートの接続がリセットされるという問題もある。7の環境の場合、この問題が多かったusbser.sysに代えてUSB8023.sysという新しいドライバが提供されているので、これを一応試してみる価値はあるかな?と考えている。1/16]ホビーもっと見るページトップ。