マイコンを使った工作

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)
名前:
コメント:
添付ファイル
人気記事ランキング
目安箱バナー