2011年7月26日火曜日

CAN IPのDEBUG 9

自作CAN IPの実機動作確認の為の準備を進めている。
先日はSpartan3E (XC3S250E)用のRTLを作成したが、
Resourceにまだ空きがあるのでTimerを2つに増やし且つPWM出力もできるように変更した。
PWMの設定要素としては周期とDuty比があるが、
このTimerの場合は周期をTW registerに、Duty比をDUTY registerに設定する。
DUTY registerの設定値は8bit固定小数形式で小数点はbit7-bit6間にある。
つまり設定したい値をduty[%]とすると、設定値DUTY = 128 * duty[%] / 100
Timer用counterは32bitで今回の実装では50MHzで動作させるつもりなので、
周期は最大でおよそ85.9秒まで設定できる。

下図は1周期の設定を100にして、dutyを10%づつ変化させたsimulationの結果だ。



下図はdutyとしてsin(x)の値を入れた場合だ。
(つまり、設定値DUTY = 128*(50+50*sin(x))/100とした場合)


このPWMのDUTYをCAN I/F経由で設定するようにしてLEDの調光やDC MOTOR
の制御等の実験が出来るんじゃないかなと考えている。

合成結果だがNumber of occupied Slicesが97%になった。


通信相手だがInterface誌2011年5月号付属のRXマイコンがCANを内蔵している
ことが判ったのでこれを使うことを考えている。

0 件のコメント:

コメントを投稿

自作CPUで遊ぶ 25

まだ制御ソフトが完成していないので今まではスピンドルを移動するために一々簡単なプログラムを書いて移動させていたのだが、非常に面倒なのでCNCペンダント的なものを作ることにした。 右側の縦に2つ並んでいるスイッチ...