« 印紙税廃止論 | トップページ | H20年度春:情報処理技術者試験の結果(合格したよ) »

2008年6月16日 (月)

DCモータが回り始めたYo!

先日の日記かみやんさんからコメントをいただきまして、気を取り直して土日はDCモータ制御実験を進めました。そして今日初めてDCモータが回りました。

モータ制御実験用プログラムは、PCからモータイネーブル、正逆転、速度増減といったコマンドをシリアル通信を介して受け付け、RS-550モータを回すというシンプルなものです。なので、やっていることはSH2の内蔵周辺回路のうち、MTU2を使ったPWM波生成とSCI1を使ったシリアル通信だけ。もちろんポートの上げ下げもやりますが。

シリアル通信。昨年 SH7125用に書いたものをSH7149用に移植したのですが、昨日はなぜこれが動かないのかわからず、SH2プログラミング関連本やハードウェアマニュアルなどを何度も読み返してSCIの設定に間違いがないことを確認しました。でも実は間違っていたのはSCIの設定ではなく、「SCI1のTxD, RxDのピンアサイン」でした。これで送信はOK。でも受信に関してはまだNG。 割り込みマスクの設定が抜けていたため、受信割り込みがかかっていませんでした。そこで set_imask を追加して受信もOK。

と行きたいところだったのですが、まだ穴がありました。それは受信バッファ用に作っておいたFIFOに関するところで、受信用FIFOを読み出している間に受信割り込みがかかると、読みだし位置、書きこみ位置がずれてしまうというもの。これについては、受信バッファを読み出す処理の前に割り込み禁止を、読みだした後に割り込み許可を入れることで解決しました。

去年はSH7149上に REALi_SHを積んでいて、アルファプロジェクトのAP_SIOというライブラリでシリアル通信を行っていたのでさほど苦労しませんでした。いやそれはうそ。AP_SIOはSH7149をサポートしていなかったので移植するのにちょっと時間かかりました。

そんな感じで、PWM制御でDCモータの加減速、正逆転までできるようになりました。ロボットを開発する上でモータが回り始めるまでが最も時間がかかるところだと考えていますので、これからは急に開発が進むんじゃないかと思います。

« 印紙税廃止論 | トップページ | H20年度春:情報処理技術者試験の結果(合格したよ) »

コメント

紹介ありがとうございます。
私の方は、まだSCIとかやったことないです。
あとSH71xx系も触ったことなくてちょっと気になります。(そもそもマイコンプログラミングを初めてやったのが2か月ぐらい前なので)

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/167990/41547779

この記事へのトラックバック一覧です: DCモータが回り始めたYo!:

« 印紙税廃止論 | トップページ | H20年度春:情報処理技術者試験の結果(合格したよ) »

最近の写真