マイコンを使った工作
1-chip DDS(I2C)
最終更新:
匿名ユーザー
-
view
#hatena_star
1-chip DDS(I2C版)
機能
ATtiny85を使用して、I2Cからの設定にしたがった正弦波をPWM出力する。
製作情報
- 回路図
- データシート
- プログラムリスト
設計・製作のポイント
ポイント
- 20MHzクロックを与え、256ステップ(78.125kHz)ごとに値を更新するテーブル参照型DDS
- 内蔵PLLを用い出力のPWMには64MHz 8bit(250kHz)
- I2Cで発振周波数を設定できる
動作仕様
複数バイトに跨るデータはビッグ・エンディアンです。
WRITE
*コマンド | *機能 |
's' s0 s1 s2 s3 | 位相アキュームレータの更新ステップを変更します |
'S' f0 f1 | 目標発振周波数に見立てて位相アキュームレータの更新ステップを算出し、その値に変更します |
READ
*コマンド | *戻りデータバイト量 | *機能 |
'r' | 4 | 位相アキュームレータの更新ステップを4バイトで返します |
'R' | 2 | 位相アキュームレータの更新ステップからそれに対応する発振周波数に変換して2バイトで返します |
FAQ
- まだ製作途上です
- 未実装項目もあります。
- コマンド体系は変えるかもです。
- WinAVR-20080512 使用
- libm 使用
コメント
- 以前の版の完成度があまりに低かったため入れ替えました。 -- Chuck (2009-02-27 11:17:38)
- お決まりの周波数についてはコマンド一発で選択できるようにしようと思います。50/60/440/1k/10k あたりか。 -- Chuck (2009-03-07 17:29:13)
- デフォルト値についてはEEPROMに記録してそれを使うようにしてもいいかもしれませんね。 -- Chuck (2009-10-23 09:01:24)
添付ファイル