« AVR-DDS | トップページ | AVR_DDS(2)つづき »

2009年9月29日 (火)

AVR_DDS(2)

AVR_DDSのその後ですが、ATmega88のクロックを27MHzまで上げてみました。

オーバークロックですが問題無く働いています。(自己責任です)

Imgp0479

まずこれは、クロック12.8MHzの時のものです。

Imgp0482

これが27MHzにしたときのものです。

かなり滑らかになっています。

現在のプログラムはこんなものです。

Config Portd = Output

Dim A As Byte
Dim I As Byte
Dim J As Byte
Dim K(255) As Byte

Restore Avr_dds_data
For I = 0 To 255
     Read J
     K(i) = J
Next I

A = 0
Do

   Portd = K(a)
   Incr A
   If A > 255 Then A = 0
   Nop : Nop : Nop : Nop : Nop
   Nop : Nop : Nop : Nop : Nop
   Nop : Nop : Nop : Nop : Nop
   Nop : Nop : Nop : Nop : Nop
   Nop : Nop : Nop : Nop : Nop
   Nop : Nop : Nop : Nop : Nop
   Nop : Nop : Nop : Nop : Nop
   Nop : Nop : Nop : nop

Loop

End

Avr_dds_data:
Data 128 , 131 , 134 , 137 , 140 , 143 , 146 , 149 , 152 , 156
Data 159 , 162 , 165 , 168 , 171 , 174 , 176 , 179 , 182 , 185
Data 188 , 191 , 193 , 196 , 199 , 201 , 204 , 206 , 209 , 211
Data 213 , 216 , 218 , 220 , 222 , 224 , 226 , 228 , 230 , 232
Data 234 , 236 , 237 , 239 , 240 , 242 , 243 , 245 , 246 , 247
Data 248 , 249 , 250 , 251 , 252 , 252 , 253 , 254 , 254 , 255
Data 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255
Data 255 , 254 , 253 , 252 , 252 , 251 , 250 , 249 , 248 , 247
Data 246 , 245 , 243 , 242 , 240 , 239 , 237 , 236 , 234 , 232
Data 230 , 228 , 226 , 224 , 222 , 220 , 218 , 216 , 213 , 211
Data 209 , 206 , 204 , 201 , 199 , 196 , 193 , 191 , 188 , 185
Data 182 , 179 , 176 , 174 , 171 , 168 , 165 , 162 , 159 , 156
Data 152 , 149 , 146 , 143 , 140 , 137 , 134 , 131 , 128 , 124
Data 121 , 118 , 115 , 112 , 109 , 106 , 103 , 99 , 96 , 93
Data 90 , 87 , 84 , 81 , 79 , 76 , 73 , 70 , 67 , 64
Data 62 , 59 , 56 , 54 , 51 , 49 , 46 , 44 , 42 , 39
Data 37 , 35 , 33 , 31 , 29 , 27 , 25 , 23 , 21 , 19
Data 18 , 16 , 15 , 13 , 12 , 10 , 9 , 8 , 7 , 6
Data 5 , 4 , 3 , 3 , 2 , 1 , 1 , 0 , 0 , 0
Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1
Data 2 , 3 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10
Data 12 , 13 , 15 , 16 , 18 , 19 , 21 , 23 , 25 , 27
Data 29 , 31 , 33 , 35 , 37 , 39 , 42 , 44 , 46 , 49
Data 51 , 54 , 56 , 59 , 62 , 64 , 67 , 70 , 73 , 76
Data 79 , 81 , 84 , 87 , 90 , 93 , 96 , 99 , 103 , 106
Data 109 , 112 , 115 , 118 , 121 , 124

あまり良い方法では無いと思いますが、NOP命令の数で周波数を調整しています。

その後、OPAMPでLPF(オーソドックスなバターワースです)を2段通してみました。

Adv081

好調波は-73dbになりましたが出来たら- 80db以下にしたいところです。

MAX7403というデバイスがあるようですので入手してみようと思います。

« AVR-DDS | トップページ | AVR_DDS(2)つづき »

AVR」カテゴリの記事

コメント

コメントを書く

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

トラックバック


この記事へのトラックバック一覧です: AVR_DDS(2):

« AVR-DDS | トップページ | AVR_DDS(2)つづき »