2026年2月22日日曜日

AD9833(AD9833 green 02919A) SPI接続DDS信号発生器モジュールをarduinoに繋いで動かそう

AD9833(AD9833BRMZ)は、アナログデバイセズ製のプログラマブル波形発生器で、マイコン等とSPI接続し、正弦波(サイン波)、方形波、三角形波が出せて位相を変えたりできる出来る波形発生モジュールとのこと

特徴(AD9833データシートより)
  • デジタル設定可能な周波数と位相
  • 3Vで20mWの消費電力
  • 0~12.5MHzの出力周波数レンジ
  • 28ビット分解能(25MHzリファレンス・クロックで0.1Hz)
  • サイン波/三角波/方形波の出力
  • 2.3~5.5V電源
  • 外付け部品は不要
  • 3線式SPI®インターフェース
  • 拡張温度範囲:-40~+105℃
  • パワーダウン・オプション
  • 10ピンMSOPパッケージ

  • IC単体は10ピンのSOPのパッケージしかなく、DIY工作で使用するには使い辛く、クロック等も実装した単体モジュール基板がよく見るものではグリーン、パープル、ブルーの3種類があり各実装部品に違いがあり価格はどれも似たり寄ったりで一番豪華そうな?アマゾンで見けたグリーンのレジストのAD9833モジュールを購入してみる
    AD9833 green モジュール

    案の定、大陸方面からの送付でモジュールのみで回路図無く、検索しても回路図関連の情報は見つけることが出来ず・・・・・・ データシートとテスターで当たるしかないか~

    ■ICを確認する
    構成の概略は、AD9833 からの波形出力を、ポテンショメーターのMCP41010で(可変)分圧し、オペアンプAD8051で6.1倍に増幅している
    DA9833の出力波形のピークtoピークが約600mVなので最大で3600mVの幅の波形が得られる?

    1,D 68
    こいつは今回の主役AD9833な事は事前確認済で、じゃなかったらD68がAD9833なんて、んなもん分かるか**!!
    D 68 AD9833BRMZ

    ピンアサイン 参照元:AD9833データシート
    AD9833 ピンアサイン


    2,8051
    検索するとインテルの古プロセッサーとか、そのアーキテクチャをピーでガーした大陸製モジュールの情報ばかり出てきて「8051 5pin」的なワードの画像検索で「RF8051XF」という1chオペアンプが引っかかる、オリジナルは「AD8051」らしい?
    最近、AIの学習素材妨害対応なのか?googleの画像検索での表示件数が少なくて、検索エンジン側が確度が高いと絞り込んだものしか出てこないからそこから外れるものを、自力で探しだすなんて事が出来なくなってって困る

    こいつはMCP41010で抵抗分圧された出力を非反転増幅で約6倍に増幅している
    8051 1ch opeamp CMOS Operational Amplifier

    ピンアサイン 参照元:AD8051データシート
    AD8051 8051 ピンアサイン

    3,41010
    擦ったり光の加減を変えたりしてなんとか「41010」と書いてるのが分かる「41010」だけでは靴の情報とか関係のない情報ばかりで、基板からSPI接続のICのようなので「41010 SPI」で、「MCP41010」に行き当たり8ビット分解能の10kΩデジタルポテンショメーターと判明
    MCP41010 41010 10kΩ デジタルポテンショメーター

    ピンアサイン 参照元:MCP41010データシート
    MCP41010 41010 ピンアサイン

    4,CTS23CB3
    AD9833用の基準クロック発振器(25Mhz)
    CTS23CB3


    ■arduino Uno R3との接続
    なぜかSPI通信はデバイスによってピン名称が違っていてただでさえメンドクサイところに、この基板モジュールはAD9833への実接続ピン名とシルクスクリーンの表記が合っていないという罠、で、MCP41010の接続とも整合性が無いという 罠

    これ、ICの仕様書までで実配線を確認しないと FSY=FSYN、DAT=SDATA、CLK=SCLK との思い込みで接続して動かない〜 なんて事になるかと?

    プログラム上でどちらも制御したい場合は、物理的に接続を変えるか、基板の改造が必要になると思われる
    MCP41010は無かったことにして、Voutから引っ張り出した信号を外で増幅した方が良さげ?

    電源とGnd系は省略した表

    シルクスクリーン AD9833 arduino MCP41010 arduino
    FSY SDATA : pin6 D12 : MISO(Master In Slave Out)

    CLK SCLK : pin7 D13 : SCK(Serial Clock) SCK : pin2 D13 : SCK
    DAT FSYNK : pin8 D* : 任意のデジタルピン SI : pin3 D12 : MISO
    CS

    CS : pin1 D* : 任意のデジタルピン
    VOUT : AD9833の生出力 Vout : pin10
    PA0 : pin5
    PGA : オペアンプAD8051で非反転増幅された出力、MCP41010の抵抗分圧値を変更することで出力幅を任意変更可能

    解析で疲れたので動作確認は後日!?

    0 件のコメント:

    コメントを投稿