電子工作

74HCU04, 74HC04 を使って水晶振動子とセラロック(R)を振動させてみた

ブレッドボード上で発振回路を組んでPDS5022S 25 MHz 100 MS/sデジタルオシロでみてみました。プローブは60 MHz。(ブレッドボードはこのようなアナログな回路には良くないけれど。)電源は~3.3 V

74HCU04の1回路を負性抵抗として使った。その出力を74HCU04のもう1回路通したところの出力をキャプチャしました。(本来なら最終段は74HC04などのバッファ入り(74HCU04 3回路分)のNOTを入れるべきですが。)左からコンデンサ内蔵のセラロック4 MHz, 8 MHz, 10 MHz

室温は18 degC。どれも公称値より1%弱低い。クロックが早いほどなまる。オーバーシュートするけどこんなものなんでしょうか。

次のは2回路ともバッファ入りで。74HC04 セラロック10 MHz

次のは水晶振動子, 22 pF, 74HCU04。左から12 MHz, 24 MHz, 24 MHz(Timeスケール違い)

なまる。デジタル回路への入力だと、一回シュミットトリガに入れないと誤動作しそうなHD74HCU04を使っていますが、仕様書を見るとoutput fall, rise timeが typ 8 ns@4.5 V, 21 ns@2 V だそうです。24 MHz ~ 1/40 ns(rise + fallで)ですから、矩形波にならないのは74HCシリーズを使っていると仕方がないのかも。74ACや74VHCシリーズはそれよりも早いのでそのほうが良さそうです。でも入手性がよくないので、高い周波数の場合は、おとなしく発振器を買ったほうが良さそうと思った。あとは4000シリーズは遅いので、オーバートーン発振させたくない低い周波数の振動子に良いらしい。
一番右側の図をみると、2 MHzくらいの振動が重層しています..。うなりだとすると、26とか22 MHzとか。これは違うか。24*1/3 = 8 MHzならわかるのだけども。

22pF, 74HC04, 24 MHz

74HC04だとでこぼこ

aitendoのTFT液晶モジュールにCPLDを使って動画を表示する

MAX II CPLD(EPM570T100C5)を使って、SDカードに保存した無圧縮動画を液晶ZY-FGD1442701V1, ST7735に表示しました。CPLD内部クロック5.5 MHzを使って、19 fpsとなりました。SDカードSPIモードのクロックは25 MHzまで上げられますから、fpsをもっと上げることも可能と思われます。(追記 24 MHzで80 fpsでした。)SDカードの読み込み遅延を最小限とするために、SDカードアソシエーション推奨のSD Formatterでフォーマットして、マルチブロックリードで連続して読み込んでいます。液晶の方はパラレルライトなので、この程度の速度では液晶がスピードのボトルネックにはなりません。

マルチブロックリード中にCMD0を送ったところ、リセットされなかったのですが、そういうものなのでしょうか。読み込み終了処理は面倒だったので、CMD0を送る前にリードストップのCMD12を送って、リセットを行うことにしました。

f:id:beiz23:20140215192455j:image:w360
f:id:beiz23:20140215201029j:image:w260f:id:beiz23:20140215200953j:image:w260
カタハネopを表示。公式mpegをVirtualDubModなどを使って連番BMPにした後、スクリプトで無圧縮バイナリに変換。十分ぬめぬめ動きました。一晩中動画再生をさせてみましたが朝でも安定して再生していました。あたりまえか。

f:id:beiz23:20140215215231j:image:w360

verilog HDLコードなどはこちら。500 LE。エラー処理は適当で、とりあえず動くレベルですが。

続きを読む

CPLDで、SDカード(Ver.1)とSPIモードで通信(初期化まで)

以前はFT245RLを使って、PCのUSBコネクタ経由でSDカードとSPIモードで通信しました。今度は、CPLDを使って、SDカード(Ver.1)とSPIモードで通信してみました。初期化までを行いました。
いまいちVerilogの書き方とか、順序回路のタイミングなどがわかっていないので、効率がとても悪そう。functionを使わずなんでもalwaysで書いてるので、ラッチができていそう。でも今回は、回路がCPLDに納まって、かつ動けば良いという方針で行きます。


無事通信出来ました。CMD0 -> CMD1 -> CMD1

verilog HDLコードはこちら。170 LE

続きを読む