「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ



CPLDを使わずにカラービデオの表示がしたい!
そんな妄想に相変わらず囚われています。

で、この間思いついたアイデアを試してみるために、
ちょっとしたテストプログラムを組んで実験。

といっても、AVRstudioのタイマー
シミュレーション機能にはFastPWMにバグが
残っていることがすでに判っているので、
シミュレータ上で確認出来るのは文法程度だな。
1クロック単位の精度で動作確認を行うためには、
実機とロジアナを使うしか無さそう。

それに、fuseビットの内容もシミュレーション時
には反映できない(はず)ので、これも実機で
動作確認せざるを得ませんね。


というわけで、以前負電源を作るときに使った
http://picavr.uunyan.com/experiment_nega.html
このPIC16F629とプログラムを使って、100Khzの
クロック源として使うことに。この程度なら
以前作ったネコロジーAVRでも1クロック単位で
動作確認が出来るはず。

TINY2313を100Khzで動かして、ckout端子や
PWM出力端子の出力内容を、入力クロック信号と
見比べてみるということをしてみます。

で、以下がやってみた結果。


一番上(0番)が入力されたクロック信号。
その下(1番)がPWM出力端子(OC0B)。
その下の下(3番)がckout端子。
2番はOC0Aですが、出力は常時LOW。

TIMER0をFastPWM(モード7)で
使い、OCR0Aを「1」、OCR0Bを「0」
に設定することで、FastPWMのTOP値を
「1」にしています。つまり、1クロック毎に
0と1を交合に出力させるわけです。

このようにしておいて、PD5を上位ビット、
PD2を下位ビットと解釈することで、2ビットの
カウンタとして動くことになるはずです。

この2ビットカウンタが、
http://picavr.uunyan.com/vhdl_composite.html
このVHDL上でも出てきたサブキャリアの
タイミング制御用カウンタに相当するわけです。
14.3Mhzの1クロック毎にカウンタが
1増えていけばいいのですが…


実験の結果、難点が2つほど。

1点は、カウンタの数値がダウンカウンタ
(3→2→1→0)になっちゃう。逆だなぁ…
ビットを反転すればアップカウンタに出来る
ことは出来るんだけど、ビット反転するには
外付け部品が…

もう1点は、よく考えたらこの半分の速度で
動かしたかったんだよなぁってこと。致命傷。
しかもCPUコアは元の速度で動かしたいので、
クリスタルの速度を単に半分にするって訳には
いかないんですよね…。


これを何とかするとしたら、タイマーを2つ
(TIMER0とTIMER2とか)使って
各タイマーの周期を1:2にしておけばなんとか
なりそうなんだけど…貴重なタイマーを2つも
使っちゃうのはいかがなものだろう…

一方、ckout端子の出力を74HC161や
163のようなシンクロカウンタICに繋いじゃう
と簡単に解決できるんだけど、外付け部品が増える
のもなぁ…

なかなかむずかしいなぁ。

とりあえず、買い置きの74HC161で
逃げちゃおうかな…




コメント ( 2 )