[1]
[2]
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
パソコンを新しくしたので、stm32の開発環境も新しく入れ直しちゅう。
半年前にも苦労したが、今やってもやっぱり苦労する。この半年でネット上にだいぶ情報が増えたような感じはするんだけどね。
で、なんとか、新しくプロジェクトを作ってそれをビルドして、ってところは出来たんだけど、以前の環境のときのプロジェクトがビルド出来ない。なんでじゃーー
今回初めてやってみたこととして、ARM-USB-OCDを買って、OpenOCDというものを使ってみた。
こちらもインストールにかなり苦労した。なにやら、バージョンが0.1.0と0.2.0があって?0.1.0は配布終了で?0.2.0はソースの配布のみで?懇切丁寧な解説サイトもあったのだけれど、それでもなにやってるのかわからんちんで。
結局、ARM-USB-OCDのCDに入ってた0.1.0を入れました。
そんなこんなで、なんとかLEDチカチカをステップ実行できました。やった。結構感動。
ただ、この複雑な開発環境を自分が常用出来る気がしない・・・
GCC-Developer-Liteがなつかしい・・・コンパクトでシンプルで素敵なシステムだ・・・
それに、JTAGというやつは、それのためだけに(nRESET端子は除いて)5本も端子を消費する。ちょっとこれをマウスとかに組み込んで使うのは難しいかなぁ。という、自分がこれを使わない理由を作っておく・・・
最後に参考文献を書いときます。
http://homepage3.nifty.com/zus/ARM_M3_Dev_Flame.html
http://www.kimura-lab.net/wiki/index.php/Category:STM32
http://www.teamknox.com/RoboLog03/RoboLog03j.html
http://www.s-m-l.org/dev/ezarm7.html
DWM2008年5月号、6月号
半年前にも苦労したが、今やってもやっぱり苦労する。この半年でネット上にだいぶ情報が増えたような感じはするんだけどね。
で、なんとか、新しくプロジェクトを作ってそれをビルドして、ってところは出来たんだけど、以前の環境のときのプロジェクトがビルド出来ない。なんでじゃーー
今回初めてやってみたこととして、ARM-USB-OCDを買って、OpenOCDというものを使ってみた。
こちらもインストールにかなり苦労した。なにやら、バージョンが0.1.0と0.2.0があって?0.1.0は配布終了で?0.2.0はソースの配布のみで?懇切丁寧な解説サイトもあったのだけれど、それでもなにやってるのかわからんちんで。
結局、ARM-USB-OCDのCDに入ってた0.1.0を入れました。
そんなこんなで、なんとかLEDチカチカをステップ実行できました。やった。結構感動。
ただ、この複雑な開発環境を自分が常用出来る気がしない・・・
GCC-Developer-Liteがなつかしい・・・コンパクトでシンプルで素敵なシステムだ・・・
それに、JTAGというやつは、それのためだけに(nRESET端子は除いて)5本も端子を消費する。ちょっとこれをマウスとかに組み込んで使うのは難しいかなぁ。という、自分がこれを使わない理由を作っておく・・・
最後に参考文献を書いときます。
http://homepage3.nifty.com/zus/ARM_M3_Dev_Flame.html
http://www.kimura-lab.net/wiki/index.php/Category:STM32
http://www.teamknox.com/RoboLog03/RoboLog03j.html
http://www.s-m-l.org/dev/ezarm7.html
DWM2008年5月号、6月号
最近ARMの勉強を始めた.
STM32F103T8とか素敵デバイスだと思うが,まだ良く分からない.ちょっとピン数がカツカツすぎかな.ひとつのピンへの機能割り当ての重複が多く,ADC入力とタイマー関連の入出力がかぶってたりする.たぶん.
DWM6月号などを参考に,eclipseとgccで環境を構築して,サンプルプログラムをビルドするところまで出来た.ターゲット基板(DWM5月号の付録)への書き込みはまだ.
いままでのH8の開発はgcc developer liteにおまかせ状態だったから,このちゃんとした(?)gccの開発環境では何をすればいいのか分からないことだらけ.メモリ管理とかリンカとか意識したこと無かった.プログラムの基本的なところが分かっていない.
ターゲットCPUをちょっと変更するのにも,サンプルから何を変えれば良いのやら.メモリ容量を決めてるっぽいところをいじるだけで良いのかな.
最初はおとなしくKEIL社かIAR社の開発ツールを使って勉強したほうが良いかもしれない.それか,H8 + eclipse + gccで勉強とか.
JTAGはとりあえず置いといて,UARTかUSBで書き込みする予定.ゆくゆくはJTAGでデバッグとかもやってみたい.
ところで,USBでの開発って,USBで書き込みするためのバイナリ変換が必要とかで,返ってめんどくさそう.それともこれもeclipseから簡単に呼び出せたりするのかな.
そういえば,NiosII IDEってeclipseをベースに作られていたことに,最近初めて気付いた.プロジェクトの管理がしにくい印象があるのだけれど,きっと自分の使い方が悪いのだろう.
STM32F103T8とか素敵デバイスだと思うが,まだ良く分からない.ちょっとピン数がカツカツすぎかな.ひとつのピンへの機能割り当ての重複が多く,ADC入力とタイマー関連の入出力がかぶってたりする.たぶん.
DWM6月号などを参考に,eclipseとgccで環境を構築して,サンプルプログラムをビルドするところまで出来た.ターゲット基板(DWM5月号の付録)への書き込みはまだ.
いままでのH8の開発はgcc developer liteにおまかせ状態だったから,このちゃんとした(?)gccの開発環境では何をすればいいのか分からないことだらけ.メモリ管理とかリンカとか意識したこと無かった.プログラムの基本的なところが分かっていない.
ターゲットCPUをちょっと変更するのにも,サンプルから何を変えれば良いのやら.メモリ容量を決めてるっぽいところをいじるだけで良いのかな.
最初はおとなしくKEIL社かIAR社の開発ツールを使って勉強したほうが良いかもしれない.それか,H8 + eclipse + gccで勉強とか.
JTAGはとりあえず置いといて,UARTかUSBで書き込みする予定.ゆくゆくはJTAGでデバッグとかもやってみたい.
ところで,USBでの開発って,USBで書き込みするためのバイナリ変換が必要とかで,返ってめんどくさそう.それともこれもeclipseから簡単に呼び出せたりするのかな.
そういえば,NiosII IDEってeclipseをベースに作られていたことに,最近初めて気付いた.プロジェクトの管理がしにくい印象があるのだけれど,きっと自分の使い方が悪いのだろう.
メールで質問を受けまして,私信なんですけどこっちのブログで回答しますね.
質問は大体,「ぷーちん太郎のモータ駆動のPWM周波数は電気的時定数の倍って言うけど,5倍以上が良いらしい・・・そこんとこどうなの?」って感じの内容でした.
まず,ぷーちん太郎のモータ(1319T-006SR)の電気的時定数は,L/R = 130u/8.26 = 15.7us です.そして,PWM周波数は129kHzです.15.7us→63.7kHzなのでPWM周波数はモータの電気的時定数の倍ちょっとですね.ちなみに,129kHzというのは,33MHzで動作しているCPLDで分解能8bitのPWMを生成しているので,33MHz/256 = 129kHzという理由からです.
で,5倍の話なんですが,5倍とか10倍とかにするのが良いというのはどこかで読んだんですけど,最低どれぐらいの周波数が必要なのかはちょっと私は分かりません.確かに,PWM周波数はできる限り高くしたほうが良いとは思います.ただ,マイコンやモータドライバの都合でそれは制限されてしまうので,どこまでも高く,というわけにはいきません.
ちなみに,ロボマガ45号の中島さんの記事では,電気的時定数24.7usのモータ(1331T006SR)を50kHzで駆動しているとあります.これだと1.24倍ですね.私も2倍ちょっとで駆動していて,特にモータもドライバも熱くならないので,これぐらいでも「まぁいいか」という認識です.
これはコアドモータでもコアレスモータでも同じだと思います.ただ,コアレスモータの方が電気的時定数は小さくなる傾向があるので,十分な速さでのPWM駆動はより厳しくなってきます.もし,十分な周波数のPWMを実現できないのなら,ご指摘の通り,モータに直列にコイルを挿入して,モータの見た目のインダクタンスを大きくしてやるという方法があります.PWM周波数低すぎで熱くなった誉やマクソンをこの方法でドライブできたという話を何回か聞いたことがあります(私は試したことありません).
こんなので回答になるでしょうか?
質問は大体,「ぷーちん太郎のモータ駆動のPWM周波数は電気的時定数の倍って言うけど,5倍以上が良いらしい・・・そこんとこどうなの?」って感じの内容でした.
まず,ぷーちん太郎のモータ(1319T-006SR)の電気的時定数は,L/R = 130u/8.26 = 15.7us です.そして,PWM周波数は129kHzです.15.7us→63.7kHzなのでPWM周波数はモータの電気的時定数の倍ちょっとですね.ちなみに,129kHzというのは,33MHzで動作しているCPLDで分解能8bitのPWMを生成しているので,33MHz/256 = 129kHzという理由からです.
で,5倍の話なんですが,5倍とか10倍とかにするのが良いというのはどこかで読んだんですけど,最低どれぐらいの周波数が必要なのかはちょっと私は分かりません.確かに,PWM周波数はできる限り高くしたほうが良いとは思います.ただ,マイコンやモータドライバの都合でそれは制限されてしまうので,どこまでも高く,というわけにはいきません.
ちなみに,ロボマガ45号の中島さんの記事では,電気的時定数24.7usのモータ(1331T006SR)を50kHzで駆動しているとあります.これだと1.24倍ですね.私も2倍ちょっとで駆動していて,特にモータもドライバも熱くならないので,これぐらいでも「まぁいいか」という認識です.
これはコアドモータでもコアレスモータでも同じだと思います.ただ,コアレスモータの方が電気的時定数は小さくなる傾向があるので,十分な速さでのPWM駆動はより厳しくなってきます.もし,十分な周波数のPWMを実現できないのなら,ご指摘の通り,モータに直列にコイルを挿入して,モータの見た目のインダクタンスを大きくしてやるという方法があります.PWM周波数低すぎで熱くなった誉やマクソンをこの方法でドライブできたという話を何回か聞いたことがあります(私は試したことありません).
こんなので回答になるでしょうか?