'*************************************************** '* VARIABLE DECLARATION '*************************************************** Dim Tcntus As Integer Dim Tcntms As Integer Dim Tcnts As Integer Dim Ddscmd As Byte Dim Freqdata As Long Dim Freqdds As Long Dim Freqdlt As Long Dim Freqstep As Long Dim Freqdisp As Long Dim Difenc As Long Dim Enc As Byte Dim Encold As Byte Dim Enccnt As Integer Dim Enccntold As Integer Dim S As Integer Dim Rit As Integer
私もカウンター付きのディップメーターを作りたいのですが、カウンターがLCDのものが有りません。貴局の制作したものはキットですか。既製品?それともフル自作?ですか。
かっては秋月のキットで何台か作りましたが皆LEDです、今はカウンターLCDがありません。ディップメーターには不都合ですね電源の都合でHI、、、。
なにかFBアドバイスがあったら
お願いします。
いつも拝見させてもらってます。
このディップメーターの回路図には、バリコンが無いのですが?
あるとすればポリバリコンですか?
伊藤様
こちらのページに"PSoC"を使った周波数カウンタがあります。
http://homepage2.nifty.com/y-daisan/html/B61231-1.html
参考までにどうぞ
レスが遅くなって申し訳ありません。
先週からWの方に出張しておりました。
ご質問への回答ですが、このディップメーターの周波数カウンタはマイコンのプログラムを含めフル自作です。
このサイトからURLが消えてしまっているのですが、下記URLをご参照ください。
LEDは秋葉原の秋月で販売されている3桁の7SegLEDを使用しています。
ダイナミックスキャンにしていますので、ディップメータでの使用でしたら、電池でも何とか使えてます。
http://jn3xby-avr.sblo.jp/category/228019-1.html
この周波数カウンタは、DC受信機用として作って組み込んでいただいたOMさんもいらっしゃいます。(再現性あり :-) )
LCDのものは入力アンプが若干違いますが、
http://jn3xby-avr.sblo.jp/category/111302-1.html
にもあります。(ご参考まで)
回路図にバリコンが無い?!
本当ですね! 申し訳ありません。
長い間気づいていませんでした。
実機では、コイルと並列に2連ポりバリを使用しています。
ご指摘大変ありがとうございます。
近い内に修正しておきます (^^;
いつも拝見させてもらってます。
3桁の表示機ですが秋月の型番で
C-533SRでしょうか通販コードI-00649
教えていただけると助かります
もう一点
AC393の12番ピンはオープンにしておくので
しょうか?
GNDに接続する必要は?
宜しくお願いいたします
阿部
ご訪問いただきありがとうございます。
ご質問のLEDですが、C-533SRです。
秋月で購入したものです。
AC393の12番端子ですが、ご指摘の通りですね!
回路図と自分が作った基板は、GND接続を忘れています。
実機のディップメータを確認したら、基板で忘れていたところを半田でGNDに接続していました。
ご指摘ありがとうございます。
やっぱりオシロで見ていたら
分周回路の出力出なかったもので
LEDはジャンクBoxにあるものを使ったら
表示がおかしかったのでひょっとしたら
コモンが違うのかなーと思っていました
また製作記事参考にさせていただいて
いろいろ勉強させていただいたく
思っています
AVRとAD9834の通信ですが
秋月のDDSと同じ要領でいいのでしょうか?
宜しくお願いいたします
AD9834の制御ですが、データを送る方法論は秋月のDDSと同じ考え方ですが、実際の制御は違います。
従って、秋月のDDSと同じS/Wでは全く動作しません。
AD9834のデータシートを見られれば、違うことがわかると思います。
ちょっと長いですが、参考にしてもらうソースを添付します。
随分前に作った物でわかりにくくする余分なものを省いたのでこのままで動く保証はありません。
しかし、参考にはなると思います。
マイコンは、ATTiny26(2313でもポートを変えればOKです)。ロータリーエンコーダーは秋月のもの、LCDも同様です。
割り込みでエンコーダーの回転を読み取って、回転パルスを変化分を数えて、周波数の変化をデータとして送っています。
'***************************************************
'* AVR TEST BOARD ATTiny26
'* TimerInt LCD RotaryEncoder DDS(AD9834)
'* '05/04/06 by JN3XBY ex.JA6IRK
'***************************************************
'***************************************************
'* TEST START
'***************************************************
Cls
Lcd "DDS Test AD9834"
Lowerline
Lcd "05/04/06 JN3XBY"
'***************************************************
'* PORT INIT
'* Pa7,6=In Pa5,4,3,2,1,0=Out
'* Pa7,6:Pullup
'* Pb7,6,5,2,1=In Pb4,3,0=Out
'* Pb2,1:Pullup
'***************************************************
Ddra = &B00111111
Porta = &B11000000
Ddrb = &B00011001
Portb = &B00000111
'***************************************************
'* VARIABLE DECLARATION
'***************************************************
Dim Tcntus As Integer
Dim Tcntms As Integer
Dim Tcnts As Integer
Dim Ddscmd As Byte
Dim Freqdata As Long
Dim Freqdds As Long
Dim Freqdlt As Long
Dim Freqstep As Long
Dim Freqdisp As Long
Dim Difenc As Long
Dim Enc As Byte
Dim Encold As Byte
Dim Enccnt As Integer
Dim Enccntold As Integer
Dim S As Integer
Dim Rit As Integer
'***************************************************
'* INIT VARIABLE DATA
'***************************************************
Tcntus = 0
Tcntms = 0
Tcnts = 0
Enccnt = 0
Enccntold = 0
Encold = 0
Freqdlt = 0
Freqstep = 10
Ddscmd = 0
Freqdata = 7000000 '7MHz
Freqdisp = Freqdata
Lcd Freqdisp
'***************************************************
'***************************************************
'* TIMER INT INIT & START
'***************************************************
Config Timer0 = Timer , Prescale = 8 '1.024mS at 8MHz
On Ovf0 Tim0_isr
Enable Ovf0
Enable Interrupts
'***************************************************
'* MAIN ROUTINE
'***************************************************
Main:
If Enccnt = Enccntold Then Goto Main
Freqstep = 10
Freqdlt = Enccnt * Freqstep
Enccnt = 0
Enccntold = 0
Freqdata = Freqdata + Freqdlt
Gosub Freqsub
Lcd Freqdata
Goto Main
'***************************************************
'* DDS DATA TRANSFER SUBROUTINE for AD9834 DDS
'***************************************************
Freqsub:
Ddscmd = 0
Freqdds = &B1000000000000000
Gosub Freqsub2
Freqdds = Freqdata * 4
Ddscmd = &B01000000
Rotate Freqdds , Left , 4
Gosub Freqsub2
Rotate Freqdds , Left , 14
Gosub Freqsub2
Return
Freqsub2:
Reset Portb.0 'FSYNC
Waitus 1
Shiftout Porta.4 , Porta.5 , Ddscmd , 0 , 2
Shiftout Porta.4 , Porta.5 , Freqdds , 0 , 14 'Data-Port,Clk-Port,DATA,MSBFirst
Waitus 1
Set Portb.0
Return
'***************************************************
'* TIMER INT COUTER SUBROUTINE
'***************************************************
Tim0_isr:
Tcntus = Tcntus + 1
If Tcntus = 4 Then Goto Tcntl1
Goto Tcntl2
Tcntl1:
Tcntus = 0
Tcntms = Tcntms + 1
If Tcntms = 5 Then Goto Tcntl3
Goto Tcntl2
Tcntl3:
Tcntms = 0
Gosub Encsub
Tcntl2:
Return
'***************************************************
Encsub:
Enc = Pina
Enc = Enc And &HC0
If Enc = Encold Then Goto Encerr
If Encold = &HC0 Then Goto Encl1
If Encold = &H80 Then Goto Encl2
If Encold = &H40 Then Goto Encl3
If Encold = &H00 Then Goto Encl4
Encl1:
If Enc = &H80 Then Goto Encl5
If Enc = &H40 Then Goto Encl6
Goto Encerr
Encl2:
If Enc = &H00 Then Goto Encl5
If Enc = &HC0 Then Goto Encl6
Goto Encerr
Encl3:
If Enc = &HC0 Then Goto Encl5
If Enc = &H00 Then Goto Encl6
Goto Encerr
Encl4:
If Enc = &H40 Then Goto Encl5
If Enc = &H80 Then Goto Encl6
Goto Encerr
Encl5:
Decr Enccnt
Goto Encend
Encl6:
Incr Enccnt
Encend:
Encerr:
Encold = Enc
Return
早速部品購入して 組み立てて
やってみます
3桁カウンタ無事動作して
自作ディップメータ用カウンタとして
活用いたします
ありがとうございました
阿部
100MHzまでカウントできたので、
色々応用ができそうです。
74AC393だとプリスケーラの入手が楽なので
いいですね。
手持ちの水晶の関係で12.288MHZにしましたが、
BASCOMだとクロックの変更も楽ですね。
コメントありがとうございます。
また、3桁カウンタをお作りなられたようでありがとうございます。
このカウンタは、作られた方が何人かいらっしゃって、ご連絡をいただいております。
WKNさんは、何に搭載される予定でしょうか?
是非、BLOGのほうでご紹介ください。
WKNさんのBLOGのほうは、時々覗かせていただいております。
すごいスピードで色々実験されている様子、楽しく拝見させてもらっています。
ブログに掲載しました。
トランシーバへの組み込み用に色々な周波数
カウンタを作ってみましたが、カスタマイズ
も簡単ですし、プリスケーラも入手しやすい
ので、このカウンタで決まりですね。
ありがとうございました。
PLLトランシーバが先になりそうなので、
SWRアナライザでも作ろうと思っています。
広帯域なOSCに苦戦しています。
1.表示桁がおかしいので、c1とc3を入れ替えました。
2.表示の数字がおかしいので、7seg DISP DATAを入れ替えて調整しました。
3.自動桁表示がすばらしいです。
4.BASCOMプログラムからHIDaspx経由でATTINY2313に書き込み、おかしな数字も楽に調整できました。
5.配線の間違いかも知れませんが、FBに動作しています。
6.ありがとうございました。
当局のブログを訪問いただいてありがとうございます。
また、周波数カウンタ無事に動作したとのこと、良かったです。
表示桁と表示数字がおかしかったとのこと、まだ回路図とプログラムに齟齬があるのかもしれませんね!
申し訳ありません。
でも、プログラムもBASICで簡単に変えれますし、配線も回路がシンプルですから変更も楽ですね!
この周波数カウンタは多くの方が作られ愛用いただいているようです。
また、一人増えたようで、ご愛用の皆さんに感謝いたします。