ページ(テスト中)

2016年10月16日日曜日

【部品】Over Driving an AD9834 DDS-IC

部品:AD9834 DDS-ICのオーバードライブ
 【AD9834はどこまで使えるのか?
 前のBlog(←リンク)では50MHzがクロック上限周波数になっているAD9834BRUZが75MHzで使えるのか?・・と言う疑問からテストしてみました。 その結果、カタログスペックに対して150%ものオーバークロック(=75MHz)で使えることがわかったのは収穫でした。

 しかし、そうなると本当の上限周波数は何処なのかと言う疑問が湧きます。 さらにカタログスペックが75MHzのAD9834CRUZではどうなのかと言う興味も湧いてきました。  ここはやはり限界がどこなのかハッキリさておくべきでしょう。そうでないと何時までもモヤモヤしたものが残ってしまいます。それを解消するのがこのBlogの目標です。 単なる「噂」ではなく根拠のある「事実」として掴みたいと思っています。

                   ☆

 始めにごく簡単に復習しておきます。 AD9834と言うのはアナログデバイセズ社製のDDS-ICです。 低消費電流であり省エネが特徴でしかも比較的安価なDDS-ICです。その代わり上限クロック周波数は低めです。またフェーズ・アキュムレータは28ビット長です。
 DDS-ICは与えられたクロック信号に基づいて正弦波信号を発生します。 発生可能な正弦波の上限周波数は与えるクロックの周波数で概ね決まってしまいます。具体的にはクロック周波数の30〜40%程度です。 従ってなるべく高い周波数のクロックを与えた方が発生可能な正弦波の周波数も高くなります。 AD9834にはAD3834BRUZというクロック上限周波数が50MHzのバージョンとAD9834CRUZと言う75MHzのバージョンがあります。

 50MHzや75MHzと言う上限周波数はカタログに記載された保証値であって実際にはそれ以上の周波数でも動作することが期待できます。  ここでは入手したサンプルについてどの程度のオーバークロックが可能なのか実測によって調査した結果を纏めておきました。 なお発生可能な周波数の刻みはクロック周波数をアキュムレータ長で割った値となります。

 カタログスペックを超えた動作はメーカーが保証しないのは当然です。また、実験されるならご自身の責任と判断でお願いします。結果については何の保証もありません。  プロのお方には釈迦に説法でしょうが商品や製品に使ったら問題が起った時に困るでしょう。カタログスッペク内で慎むべきです。 しかし、アマチュア的には部品の活用範囲が広がるので無視するのは惜しい気がします。多少のリスクは承知して使えば良い筈です。

                   ☆

 このBlogの記述は自身の参照を目的としたものです。 特定の条件とサンプルによって得られた実験結果であり再現性は保証されません。 また、要点を纏めただけなので貴方の知りたい事のすべてが書かれている訳ではないでしょう。 電子回路の製作をされないお方には意味の無い情報なので貴重な時間をロスされませんよう早々のお帰りをお奨めします。

 【オーバークロックのテスト方法
 AD9834 DDS-ICのテストに使ったブレッドボードを流用しました。 具体的には、搭載されていた水晶発振によるクロック発生部分を除去します。 代わりに注入用のトランスを載せ、DDS-ICに対して外部からクロック信号を与えます。 外部信号は汎用の信号発生器を使い周波数と与える電圧の大きさを可変します。

 50MHzから始めて10MHzあるいは5MHzおきに周波数を変えたクロック信号をDDS-ICに与えます。その周波数で正常に動作する条件を求めることにします。 予備実験の結果、正常な動作と異常との判定はAD9834 DDS-ICから出力される信号のスペクトラムを観察するとわかり易いようでした。詳しくは後ほど具体例があります。

 【信号注入トランス
 巻き数比1:2のトランスを使ってクロックを注入しています。  メガネ型コアを使ったトランスを使っていますが手近にあったので使ったまでで、それ以上の意味はありません。 一般的な広帯域トランスなら同じように使える筈です。 但し実用に際して専用のクロック発振回路を搭載する場合にはこのようなトランスは必要ないと思います。広帯域トランスはテスト用の部品です。

 巻き数比からDDS-ICへの信号は約2倍に昇圧されます。 実験当初はDDS-ICが必要とする信号レベルがはっきりしませんでした。十分な電圧が与えられるよう昇圧トランスを使うことにしました。 またクロックの配線が長くなることから動作不安定となって測定の妨げにならぬようトランスで分離すると言う意味もあります。 DDS-ICの入力インピーダンスは容量性で配線を含めても数pFに過ぎません。比較的容易にドライブ可能でした。 なおDDS-ICから見て信号源インピーダンス:200Ωでドライブすることになります。

 このテストは50MHz以上の周波数となるため完全な矩形波を与えるのは難しくなります。 高い周波数のクロックはどうしても正弦波的になってしまいます。 従ってDDS-ICとしても完全な矩形波によるドライブは期待していないでしょう。 リンギング等のない正弦波の方がむしろ望ましいかも知れません。 ここではクロック信号は最初から正弦波で与え直流バイアスを重畳する形式としました。 重畳するバイアス電圧は2V(DC)です。

 【正常動作のスペクトラム
  写真は110MHzのクロックを与えた時のスペクトラムです。出力周波数は約10MHzです。 主信号の周辺に不要なスプリアスは現れずノイズフロアの上昇も見られません。 このようなスペクトラムが得られるなら正常な動作であると判断することにしました。 正常な状態では広帯域で見てもスプリアス特性の劣化は感じられません。 発生周波数の方も幾つか変化させて様子を見ることにしました。

 50MHzから順次周波数をアップしながらこのようなスペクトラムが得られるよう信号発生器の出力レベルを加減します。 奇麗な信号が発生できた時の発振器の出力電圧をその時の周波数とともに記録します。

異常動作のスペクトラム
 クロック信号のレベルが大幅に不足していると出力はまったく出て来ないのですぐにわかります。しかしやや不足した状態にあると、スペクトラムの汚れとなって現れます。
 また、動作はしていても上限周波数を超えているとDDS-ICの出力信号は写真のようになってしまいます。 この例ではクロックに115MHzを与えていますが、この周波数ではクロック信号の振幅を大きくしても正常な動作にはなりません。 従ってこの115MHzは使えない周波数領域です。 さらに周波数を上げても状況は変わりません。

 写真は115MHzのクロックにおけるAD9834の出力です。 このような状態であっても周波数カウンタで測定すると正常そうに見える周波数が表示されるでしょう。しかし実用には適さない状態になっています。 上限に近いクロック周波数で動作させるなら必ずスペクトラムの確認をしておくべきです。 上限近くではクロックの振幅も大きくする必要がありました。 実際の使用に当たっては周波数および振幅ともにマージンを持って与える必要があります。そうしないと温度変化など条件の変化によって正常でない動作に移行する危険性があります。

AD9834のクロック周波数特性
 図はAD9834BRUZとAD9834CRUZについて、クロック周波数を変えながら正常な動作に必要なクロック信号の振幅(大きさ)について測定した結果です。 どちらも50MHzで動作するのは確実なので、それ以上の周波数について測定しました。 なお、周波数も高いことから測定系の周波数特性が幾らか現れている可能性もあります。 但し動作上限周波数には大きな影響は無いと考えます。

 測定結果によれば正常な動作が可能なクロック周波数の上限はBRUZおよびCRUZの何れも110〜120MHzの間にあるようでした。 発振器の振幅を大きくしても〜120MHzあたりに来ると正常な動作はできませんでした。 従って、どちらもこのあたりが上限のクロック周波数のようです。

 グラフで見るとCRUZの方が感度が良さそうに見えますが実際にはわずかな差です。100〜300mVppの違いはバラツキ程度と見ても良いでしょう。 従ってクロック周波数の上限についてはAD9834BRUZとAD9834CRUZで大差はないと言う結論です。どちらも100MHz+αまで動作する可能性が高いでしょう。+αは5〜10MHzと言った所でしょうか。

 実際に使用する際には、このグラフのラインよりも大きな振幅でクロック信号を与えます。 私の設計では2〜3Vppのクロックが与えられるようにしています。 あまり検証せずに決めていましたがグラフの曲線から見て妥当な値になっていました。 ちょうど100MHzのクロックなら上限の周波数に対して幾分かのマージンがあります。2Vppくらいのクロックを与えれば支障なく動作する筈です。 もちろん運悪く100MHzが限界のチップに当たれば正常な動作は期待できませんが・・・。 BRUZで確実性を担保するには75MHzが良いのではないでしょうか。 CRUZでも90MHzあたりまでが安心かも知れませんね。 いずれにしてもカタログスペックよりもずいぶん高い周波数まで動作するようです。

                   ☆

 噂通りAD9834は100MHzのクロックで動作しました。 オーバークロックと言えば汎用CPUで流行ったことがありました。 DDS-ICのオーバークロックを実験していてそんなことを思い出してしまいました。 昔からデジタルICではそのクロック周波数の上限はスペックよりもかなり高いのが普通でした。 ずいぶん前の話しになりますが、初めて周波数カウンタを作ったとき10進カウンタの「SN7490AN」がカタログ上限周波数:35MHzを遥かに超えた60MHzあたりまで動作して喜んだのを思い出してしまいました。AD9834の100MHzも何だか得をした気分です。(笑)

 AD9834 DDS-ICですが、BRUZCRUZは半導体チップの段階ではまったく同じように製造しているのではないかと想像します。 違うとすればBRUZの注文があった時にはテストを簡略化しているのではないでしょうか? 上限の50MHzが保証できる程度にテストを省略するのです。そしてAD9834BRUZと印刷して出荷している・・・のではないでしょうか? ひょっとしたら印刷の違いだけでそんなこともしていない可能性だってありそうです。

 測定して上限周波数で選別すると言う製造方法もあります。ICの製造技術が未熟で性能がギリギリだった時代には多かったように思います。しかし選別品が遥かに高額なら別ですが手数の割に儲からないのが普通です。 従って今となっては中身のICチップはすべて75MHzの上限周波数がごく普通に得られているのではないでしょうか? もしそうだとすれば安価なBRUZでもユーザー自身でテストすれば75MHz以上で十分使い物になるでしょう。 多少リスクはありますが100MHzでも使えそうです。この結果を旨く活用したいと思います。ではまた。 de JA9TTT/1

=====================================================================

第2部:AD9834の更なる可能性について

 ☆ ちょどオーバークロックの実験は終了し上記のようなレポートを纏めていたところでした。 AD9834のクロックについて新たな情報をコメントして頂いたのです。 JH9JBI/1山本さんのコメントで前回のBlogに対して頂きました。 山本さんもクロック周波数はどこまでだろうと言う疑問から実験されたようでした。

 Blogのコメント欄ですから実験の詳細まではわかりませんが、たいへん重要な情報だったのです。 曰く「75MHzはおろか250MHzでも動作していました。」と言うのです!

 これは一大事です!!(笑) すでに実験は終わったつもりで上記のような結論をあらかた纏めていたからです。 もし250MHzでも動作するものを「110MHzまででした!」なんて涼しい顔で書いたら信用に関わるでしょう。(最初から私なんか信用していないとか・爆)

 そこで上記の実験で幾らか気になった部分を修正の上、あらためて実験を行なうことにしたのです。以下にその再実験の状況を簡単に纏めておきましょう。

追試用ブレッドボード
 あまり違いを感じないかも知れませんが、高い周波数向きのレイアウトに変更しています。

 クロックを外部から与える前提で入力部分の位置を右側に移しました。 注入用のトランスには700MHz以上までの特性が保証されているmini-circuits社製のADT4-1WTを使いクロック端子の近くに配置しています。 きちんと2次側で終端を行ない平坦な周波数特性が得られるように考慮しました。 ブレッドボードなので限界はありますが測定に支障のない程度の性能は得られているようです。 実際に前回のテストよりも幾分か周波数特性は良くなりました。

 AD9834のD/A出力側は周波数も低いことからあまりシビアではありませんが、左側に移して最短配線で出力するように変更しています。 前作は既に解体済みでしたので全体に再製作になりました。

では、さっそく信号発生器:SSGからクロック信号を与えてみましょう。 SSGは約1GHzまで信号発生できます。

 【200MHzのクロックで
 もっと高い周波数でも「動く」のですが、200MHzのクロックを与えたときの様子を一例として紹介しておきます。

 写真はAD9834のD/Aコンバータ出力をオシロスコープで観測している様子です。 この波形の周波数は約18.7MHzになっています。 特にこの周波数でなくてはならない理由はありません。 クロック周波数が75MHzの時に7MHzが出力される設定のまま200MHzにアップしたため、自動的に出力周波数も約2.67倍になっただけです。(笑) しかし、もしもここが「特異点」だったら困るので、発生する周波数を18.7MHz以外に変えて見ました。特に問題は見られませんでしたから代表例として支障はないようです。

  この例では200MHzのクロックですが、250MHz以上までず〜っとアップして行っても追随して正弦波の出力が観測されました。 300MHzあたりまで楽々行く感じでしたが最後は出力がなくなります。 これなら「クロックは250MHzでも動作する!」と言う結論も十分納得できますね。 見た目だとLPFが甘いので輝線が少々太っていますが、ちゃんとしたフィルタを入れてやればもっと奇麗に見えますし・・・。

  【しかしスペクトラムが・・・
 さっそく期待を込めて上記の「正弦波」のスペクトラムを観測してみました。

 ・・・・・どうやら残念な状態のようです。 クロック信号のレベルを変えて、かなり大きめに与えてもまったく改善しません。具体的には5Vppをやや超えるあたりまで加えてみました。それでもダメです。良くなってはくれませんでした。 これ以上の大きさではAD9834の最大入力電圧を超えて壊れるかもしれません。限界でしょうね。 最適値がどこか途中にあるのかと思い逆にクロックの電圧を下げて行ってもダメでした。下げ過ぎれば改善する前に信号が消失します。

 アキュムレータなのかD/Aなのかどこかでビット落ちした動作になっているようです。 それらしい出力周波数とオシロスコープの波形にはなっているのですが信号スペクトラムを見たら明らかに異常です。 写真はある瞬間を捉えたもので別の瞬間にはまた違った様子になります。要するにスプリアスはランダムに現れているのです。

 AD9834CRUZだけでなく、AD9834BRUZに交換して確認してみましたが結果に違いはありません。 CRUZとBRUZに差はないことの検証にはなりました。

 この状態では通信機用として使い物にはならないでしょう。 もちろん非常にラフな用途、例えばアンテナインピーダンスメータのような物の信号源なら使える可能性があるやも知れません。 しかしスプリアスが多いと測定誤差の原因にもなり得るのであまりお奨めできないと思います。 たいへん残念ですが私の判定では「使えなさそう」と結論させてもらいました。 JH9JBI/1:山本さん、このような状況ですのでどうぞ宜しく。私からの返信です。 よかったら次回の懇親会の時にでも状況をもっと詳しくお聞かせください。 私の実験に何か重要なポイントが抜けている可能性もありますので・・。(ありえる、ありえる・笑)

                   ☆

  改めて徐々に周波数を下げて行き、約110MHz付近になると誤動作は発生しなくなります。 それ以下の周波数でしたら初めの実験のように奇麗なスペクトラムが得られることが再確認できたのです。 通信機の信号源としては奇麗なスペクトラムが求められています。 従って、最初のように上限周波数は「110MHzあたりである」と言う結論で良いだろうと思っています。まずはこの周波数を目処に活用して行こうと思っているところです。

 ご覧のお方で、さらにテストされ「このようにすれば奇麗なスペクトラムが得られますよ!」というFBな成果が得られたようでしたらご一報ください。コメント欄への投稿でも結構です。AD9834の活用の可能性が飛躍的に広がりますから是非とも追試で確認したいですね。  なお、申し訳ないですが製作された物品の評価依頼などのご要望には応じかねますので予めお断りしておきます。 de JA9TTT/1

(おわり)fm

18 件のコメント:

  1. JH9JBI/1 やまもと2016年10月16日 5:45

    おはようございます。

    110MHzで不可という評価ですかHi
    AD9834ですと250MHzでの出力をCWとして聞いた時にはピロピロ音になりましたが、180MHzくらいだと綺麗な音になっていましたので大丈夫かなぁと思った次第です。手持ちのSSGがもともとそれほど位相雑音にすぐれたものではないのでスペアナも1MHzスパンまでしか見ていませんでした。

    AD9833も150MHzくらいまで同様の傾向です。こちらの方が外付け部品が少ない分実装が簡単になりますが、その反面パスコンのつけようがなくなったりするのでマージンが低いとも言えます。価格はAD9833が@300円、AD9834が@400円くらいが今のところ底値のようですね。

    返信削除
  2. JH9JBI/1 やまもと2016年10月16日 6:07

    連投すいません

    先の通り、私の環境だと-40dBくらいのところからバックグラウンドが盛大に出てくるので同じ土俵にのっていないのだと思いますが、加藤さんとの一番の違いはパスコンをブレッドボードで接続しているか、変換ボードに直付けかの違いだと思います。

    10kHzスパンでみても160MHzくらいまでは50~70MHzのクロックの時と出力に違いがみられませんでした(-40dB以下は汚いですけど)。

    返信削除
  3. JH9JBI/1 山本さん、おはようございます。 早起きされたんでしょうか? お待たせしてスミマセンでした。(笑)

    さっそくのコメントどうも有り難うございます。
    > 1MHzスパンまでしか見ていませんでした。
    そのあたりの違いかと思いますが、NGな状態だとかなり広帯域のノイズ状のスプリアスが観測されるのではないでしょうか?

    > AD9833が@300円、AD9834が@400円くらい・・・
    このお値段になってくれば十分リーズナブルだろうと思っています。 DDSモジュールとして作っても中華DDSと勝負できそうですね。(笑)

    ◎連投は別にかまいません。 以下は続投への続きです。hi

    > 変換ボードに直付けかの違いだと思います。
    なるほど! これは考えられますので準備できたらテストしましょう。 aitendoの変換基板だとやり難そうですが良い結果が得られるなら多少の面倒もやむを得ません。 結果をご期待ください。(このあと所用があってすぐにできませんので少々お時間を)

    > (-40dB以下は汚いですけど)。
    これがどのくらいなのかと言うのがポイントでしょうね。 通信機の局発などでしたらキャリヤに対して少なくとも-70dBくらいは欲しいと思います。 しかし期待したいです。 もしそこまで行かなくてもそこそこなら用途はあるでしょう。

    最高周波数の追求にはチップ直近のパスコンが効果的でしょうね。このあたり、やってみたいと思いますが最善策としては専用の多層基板かも知れません。そうなると手作りでは厳しいです。 いつも有意義なコメント有り難うございます。

    返信削除
  4. JH9JBI/1 やまもと2016年10月16日 11:41

    妙な時間に目が覚めたため二度寝でした。というわけで、あらためておはようございます(笑)

     メインに使用しているボードが電源ラインが片側1ラインずつということもあってオンボードパスコンにこだわってみました。他に気をつけた点としてはロジック入力レンジがわりとTTLに近いのでクロックのバイアスを低めの1.2K×2としてなるべくGNDより下がらないようにしたことでしょうか。
     カウント落ちについては周波数を上げていくと全体としてバックが上がるように見えてきます。それを補償するようにクロック入力レベルを上げていくとまた落ち着いてくるのですが、単にあげればよいというものではなく、適正なレベルが存在しました。おそらくは入力が負電圧にかかると保護ダイオードが導通するかして、逆になまってしまうのではないかと想像しています。
     データシートによると動作補償範囲が-40度から105度まで保証していて3V以下も保証しているので室温で5V動作だと1.5~2倍程度はマージンとして取られているだろうとは思います。

    返信削除
  5. JH9JBI/1 山本さん、あらためてオハヨウございます。 お若いので完徹で朝までガンバったのかと思いました。(爆)

    再々のコメント有り難うございます。
    > オンボードパスコンにこだわってみました。
    なるべく足ピンの近傍でバイパスするというのは鉄則ですから良い拘りでしょう。 まあ、たかが100〜200MHzなら波長もm単位ですから数mmはあまり影響は無いのですが、微妙な誤動作とか誘発しそうなのでリードインダクタンスは気になるところです。hi

    > 室温で5V動作だと1.5~2倍程度はマージンとして・・・
    周波数に対するマージンをどう設計するのかと言うのはなかなか難しいように思います。 どちらかと言うと製造プロセスの進歩で微細化が進むと自然にクロック周波数上限もアップする・・・と言うような現象ではないかと思うのですよ。hi よって古い在庫品は不利かも知れませんね。

    ブレッドボードのような、結構ラフに使っても100MHzまで行けるのは悪くないチップだと思っています。 しかしアキュムレータが28ビットなのでクロックが高くなると今度は刻みの荒さが気になり始めますね。32ビット欲しいです。ww

    どうやって実験しようか考えていますので、第3部はいずれそのうちに。 今のところ次回Blogは別テーマの予定です。(笑)

    返信削除
  6. 加藤さん、こんばんは

    関西地方もやっと秋晴れが続いていましたが、今晩から明日はまた雨みたいです^^;

    AD9834のオーバークロック検証ありがとうございます。
    無理してCRUZを買う必要はなさそうですねw
    ただCRUZが出てからのBRUZと昔のBRUZは同じクロック耐性なのかは気になりますが^^;

    そういえば秋月の新製品にシールドメッシュ基板が出てます、オーバークロックには便利そうですね。
    http://akizukidenshi.com/catalog/g/gP-11175/

    返信削除
  7. JE6LVE/JP3AEL 高橋さん、こんばんは。 午前中は秋晴れでしたが、昼過ぎから雲が出てきました。 いまはおぼろ月夜になっています。

    いつもコメントありがとうございます。
    > CRUZを買う必要はなさそうですねw
    どうもそのようですね。 自己責任で使えば75MHz以上で十分行けそうですので・・・。 安価なBRUZを活用しましょう!

    > 昔のBRUZは同じクロック耐性なのか・・・
    これは私も気になります。 鉛フリーになる前のBRUチップがまだ数個残っています。 前のテストでは67.108864MHzはOKだったので100MHzは無理でも75MHzなら大丈夫かも知れませんね。 低い周波数で済む用途に積極活用しましょう。

    > シールドメッシュ基板が出てます・・・
    情報有り難うございます。 お値段もまずまずなので持っていると重宝しそうです。 こんど通販で頼む時に忘れないようにしたいと思います。 やはりRF回路はGNDが近距離で落とせると安定な動作ができますね。 FBだと思います。

    返信削除
  8. 加藤さん、こんにちは

    AD9834の話でなくて申訳ありませんが、”オーバー・クロック”に思わず反応してしまいました。

    まだ若かりし頃、自作パソコンのオーバー・クロックで”Celeron300A”で300MHzの1.5倍、450MHzに成功し、喜んだものです。

    CPUのクロックも、可愛いものでしたね。

    昔のチップは、製造方法に幅が有ったんでしょうね。
    クロックが高い物は、標準品からのセレクトしたものだった、とか言う話もありましたし。

    AD9834って安いんですね。ではまた

    返信削除
  9. JI1HVI 仲野さん、こんにちは。 ご無沙汰しております。

    コメントどうも有り難うございます。
    > ”オーバー・クロック”に思わず反応して・・・
    一時期、パソコンのオーバークロックがブームになって秋葉に専門ショップが登場したくらいでしたからね。覚えているお方も多いと思います。(笑)

    > 製造方法に幅が有ったんでしょうね。
    バラツキで性能の良いロットができたのでしょう。 同じチップでもロットナンバーによってオーバークロックの度合いも違ったように思います。 しかし、最初に試した人も驚いたでしょうね。

    > AD9834って安いんですね。
    以前は1500〜2500円くらいだったと思いますが、いまは1000円前後で普通に買えるようです。 出物はもっと安いようですけれど・・・。 使用量が増えたのでしょうね。

    またコメント宜しくお願いします。

    返信削除
  10. JE1UCI/冨川2016年10月21日 10:23

    加藤さん、こんにちは。

    私が最初に使ったDDSはAD9851でした。
    10年以上前で、当時は6倍モードでXTOを交換してオーバークロックを試しました。
    規格としては30MHz×6=180なのですが、240くらい行けるというウワサもあって40×6=240を試しました。
    しかし、出る周波数もあるのですが、ダイアルを回すとパラッパラッとう感じとなり、スポット発振器以外には使えないと解りました。
    35×6=210でも良くなるものの、まだまだでした。33×6=198では完全にOKとなりました。
    そこで余裕を多少持たせる事とし、32×6=192を使うようにしました。そのため私が作ったものは32が使われる事が多かったのです。

    それに比べると余裕があり過ぎですね・・。
    私の方は中華の在庫が沢山ありますので、当面は中華にします。
    9958あたりを試そうというプランは、中華以前からあるのですが・・

    返信削除
  11. JE1UCI/冨川2016年10月21日 10:26

    XTO → XO
    ですね。

    返信削除
  12. JE1UCI 冨川さん、こんにちは。 秋らしくなってきましたね。そちらの紅葉は如何ですか?

    いつもコメント有り難うございます。
    > DDSはAD9851でした。
    冨川さんはずいぶん前からアナデバのDDSを試されていましたね。もう10年以上迄になりますか・・・。

    > 240くらい行けるというウワサも・・・
    200MHz以上行けると言う話しは良く見掛けましたが、240MHzとはずいぶん挑戦的ですね!(笑)

    > スポット発振器以外には使えないと・・・
    正常な動作に落ち着くポイントが所々にあったんでしょうか。 AD9834にも似た傾向はあるように思います。

    > 33×6=198では完全にOKとなりました。
    冨川さんにAD9850の方も同じようだったと伺ったように思いますが・・・。 9850/51ともに200MHzあたりに限界点があるんですね。

    > それに比べると余裕があり過ぎですね・・。
    もともと規格の上限値が低いからだろうと思います。 未だ追試はしていませんが、現状でも50MHzに対して倍以上で動作する訳ですからねえ・・。マージンあり過ぎます。w

    > 当面は中華にします。
    消化しないと勿体ないですし、規格上限周波数が高くてアキュムレータが32ビット長というのはメリットなので活用範囲は広いです。 3.3Vで使ったりクロック発振器を何とかすれば幾らか省エネにもなりそうです。

    > 9958あたりを試そうというプラン・・・
    規格を見ると新しい世代のチップはFBだと思います。 まだ高価なのと小さなパッケージなので実装が難しくなっているのが残念な所でしょうか・・・。 でも、いずれ使ってみたいです。

    返信削除
  13. TTT 加藤さん、おはようございます。
    いつもながら亀レスです。
    AD9834のオーバークロックの実験大変興味深く拝見させていただきました。
    元々が50MHzと75MHzのBタイプとCタイプではその1.5倍の差は無く、ちょっとだけCタイプの上限が高いという結果ですね!
    おそらくプロセスは一緒ですから性能の差はばらつきの範囲なんだろうなと思っています。
    つまり、BとCの違いは何かのパラメータでの選別なんでしょう。
    たまたまかもしれませんが、選別によりCタイプの上限がちょっと高い、つまり75MHzでもスペックとして保証できる。といった所でしょうか?!

    200MHzでも動作の報告があるようですが、これはこの周波数でもデジタル的には動作しているということなんでしょうね!
    DDSのサインデータがメモリに書いてあるとは思えないし(おそらくロジックそのもの)、D/Aが追いついてないのではないのではないかと思います。特に下位bitが正しく再現できていないので基本波の所は何とか出ているけどと、勝手に想像しています(笑)

    いずれにぜよ、Bタイプでも7MHzではなくて100MHzくらいまでは使えるということを確認していただいたので、またAD9834の使用範囲が広がったと喜んでいます。ありがとうございました。

    aitendoの変換基板便利そうですね! 当局も一応購入してあるのでAD9834を載せておこおかなとか思い始めました。
    実験を始めるのに手軽そうですから。(写真を拝見していてそう感じました)

    返信削除
  14. JN3XBY/1 岩永さん、こんにちは。 北関東はどんよりした空模様です。

    いつもコメント有り難うございます。
    > BタイプとCタイプではその1.5倍の差は無く・・・・
    どうやらそのようですね。 実質的に製造上は同じチップではないかと思います。 何か選別の要素があって僅かに違いがあるのかも知れませんがはっきりしませんね。  グラフで少し差が出たのはバラツキの範囲でしょう。

    > つまり75MHzでもスペックとして保証できる。
    ・・・BとCでほとんど違わないので、周波数で分けているとも思えないくらいの違いですよね。hi

    > 特に下位bitが正しく再現できていない・・・
    下位bitにあたる部分の方が高速動作を要求されるのでしょうね。 電源のバイパスを強化したテストを行なう予定ですので多少の向上が見られるかも知れませんので期待したいと思っています。 まあ、現状でも十分満足なんですけれど。(笑)

    > またAD9834の使用範囲が広がった・・・
    クロックの周波数が高くなっても消費電流は余り増加しないのでFBだと思っています。 低い周波数にはAD9850ではなく、こちらを積極的に使おうと思います。

    > aitendoの変換基板便利そうですね!
    小型なので使う時には便利ですが、ランドが小さくて実装し難いので多少コツが必要でした。 フラックスなど塗布して実装されて下さい。 最初は少々苦労しましたよ。(笑)

    返信削除
  15. JH9JBI/1 やまもと2016年10月23日 19:00

     AD9833で75MHzクロックで試作してみました。このあたりだと0dbm@50ohm程度の水晶発振でも問題なく動いてくれます。チップの隣に実装したので終端していませんからTTLの範囲に入ったということだと思いますが、整形なり増幅しなくてよいなら楽ちんです。
     今回、楽をしてCコンパイラでコーディングを行い、PICの方も新しいXCコンパイラを使用しました。ところがなかなかPICの動作がおかしくて原因を調べてびっくり。なんのことはない、以前のコンパイラは浮動小数点が32bitなのに対してXC8は24bitがデフォルトで精度不足のために動作がカクカクになっていたのでしたHi。改めて計算してみると75MHzクロックで28bitALUだと普通に計算させると24bit形式(仮数15bit)だと500Hzくらい、32bit形式(仮数23bit)で2Hzくらいが最小値になるようです。さらに変調だなんだと演算するともう一桁くらい丸め誤差が入りますから、Δ値から周波数を出すではなく、周波数から設定Δ値を計算するとなると通常の浮動小数long doubleを実装している処理系を使用するか多バイト整数演算を別に実装しないと、この程度のDDSでも実力を出せない感じになりますね。
     まったく最適化を考えずにコーディングしているのでもう少し余地はあると思いますがPICのクロックを2MHzまで落とすとエンコーダの処理にもたつき感を感じます。かといって32MHzで駆動するとPICからのリークも出てくるので、このあたりのリークの処理についても実装のノウハウはありそうです。
     高速で動くDDSをサンプルで入手してはいるのですが数100MHzクロックだと放熱の問題も出てきますね・・・。

    -・・・-

     以前、二台のDDSを並列に並べて位相レジスタを設定して90度位相を出すというのがうまくいかないと岩永さんが言っておられましたが、LPFなし波形をオシロでみて納得しました。当たり前ですけど、75MHzクロックで10MHzを出力すると7.5クロックで一周期ですから1クロックあたり±48度のジッタが含まれています。これでは微小時間では90度位相ずれてるなどととても言えなくて、しっかりとずれたI-Q相を実現するには特性の揃ったLPFを二つ用意して整形する必要がありますね。LPFなしで1度の誤差に揃えるなら概算で1/360、つまり75MHzクロックなら200kHzくらいにしないと微小時間を問題にするアプリケーションでは難しそうだということでしょうか。

    返信削除
  16. JH9JBI/1 山本さん、こんばんは。

    いつもコメント有り難うございます。
    > このあたりだと0dbm@50ohm程度の水晶発振でも・・・
    このあたり周波数が低くなると感度も良くなるので扱い易いでしょうね。 一般的なSPXOは直結でも行ける筈です。

    > 浮動小数点が32bitなのに対してXC8は24bitがデフォルトで・・・
    PICの開発環境は知らないのですが、24bitでは明らかに不足でしょうねえ。 AD9834は28bitで周波数セットしますが、途中の演算など考えるともうすこしBitが欲しいでしょう。

    > 通常の浮動小数long doubleを実装している処理系・・・
    その方が楽かも知れませんね。 ちなみにBASCOM-AVRのDoubleは浮動小数点の64bit(符号付き)なのであまり考えなくても支障無いみたいです。 32bitのAD9850でも大丈夫です。

    > 多バイト整数演算を別に実装しないと・・・
    桁落ちしないようにこうするのがCコンパイラ系の定石なのではないでしょうか?(良くは知りませんけど・笑)

    > 32MHzで駆動するとPICからのリークも出てくる・・・
    これは気にしていませんでしたが、AVRマイコンでもありそうです。 AVRは一般に8MHzか1MHzの内部クロックで使いますが、内部の源発振はもっと高かったように思うのでPICと事情は同じではないでしょうか。 今度調べてみましょう。

    > I-Q相を実現するには特性の揃ったLPFを二つ用意・・・・
    上側の周波数の方を使い、4fを作って同期カウンタで1/4分周して作ったほうが確実かもしれませんね。LPFは所詮アナログですので無調整では位相の揃った性能が保証できません。 PSNのSSBとか、イメージリジェクションミキサをやりたいなら考えてみたいですね。

    このあたり、DDSではD/Aのビット長の問題もあるので結構厄介な問題になりそうですね。 シリコンシステムズあたりのPLL-ICを使った方が有利な分野のように感じます。

    返信削除
  17. JH9JBI/1 やまもと2016年10月24日 12:47

    こんにちは

     最初からアセンブラなら桁数確保するのですが、言語系が実装していると楽をしたくなりますHi
     long long64bit整数があればそちらを応用したと思いますが、たしかに速度とメモリ効率を重視する組み込み系だと固定小数点ルーチンをつくることが多いですね。このあたりはCPUに乗算命令があるかとか言語のビット演算の効率なんかでバイト単位で演算するかいっそのことビット単位にしてしまうか最適解が別れてくるところだと思います。
     今回は単純にdouble型を実装しているので楽をしたのが落とし穴でした。オプションで24/32bitの切り替えができるのですが32bitにすると一気にメモリ使用量が増えました。これも、この手のCPUでそこまで精度演算はしないでしょうという割り切りですね。
     概算するとエンコーダーを読んで表示とDDSの設定で2MHzだと1msは最低でもかかっていそうなので、これだとエンコーダー高速回転時には取りこぼす可能性はあると感じました。最初はx4 PLLをONにして8MHz × 4 = 32MHzクロックとしたのですがPLLをオフにするとバックが結構下がりました。主なノイズの原因はPLLかもしれません。
     私のAD9834での実装もそうでしたがAD9833は構成的にシングルエンドなのでMCLKのリークが大きくなっています。市販のクロックジェネレータのようにシールド構成になっているとこんなにはでないと思うのですが剥き出しなので仕方ありませんね。まぁ定格25MHzのAD9833を3倍で駆動しているので文句の筋合いではないのですが(笑)

    返信削除
  18. JH9JBI/1 山本さん、こんにちは。 今日は清々しい秋晴れですね。

    コメントどうも有り難うございます。
    > 言語系が実装していると楽をしたくなりますHi
    なければやむを得ませんが、あるなら楽したくなります。 マイコンは昔はアセンブラがメインで、良くてCを使う程度でしたが、いまは高級言語で開発するのが普通になりました。 メモリ容量も青空天井に近いチップも多いし、速度はクロック周波数で稼ぐと言った開発手法も普通になったようですね。高級言語系はあとのメンテナンスが楽と言うのもあります。(笑)

    > 32bitにすると一気にメモリ使用量が増えました。
    これはある程度やむを得ないでしょうね。 荷が重くなるので速度の方も遅くなります。変数ごとに長さの管理をしてはいますけれど・・。

    > 2MHzだと1msは最低でもかかっていそうなので・・・
    エンコーダの読み取り毎にDDSやLCD表示をセットしないようにしています。 変化が済んでから書きに行く・・・と言うような感じにして処理を間引きます。 そうしないと高級言語コンパイラでは間に合いませんので・・・。 ステップの細かいエンコーダではその手でも間に合わないのでトリッキーなことをしないとダメそうです。(爆)

    > MCLKのリークが大きくなっています。
    AD9834やAD9850/51にはコンプリメンタリ出力があるので旨く使うと多少はスプリアスで得をします。片側しかなければ仕方がないですね。(笑)

    マイコン系から漏れるスプリアスも広帯域な受信機では気にする必要があるのですが、いまのところHAMバンド専用機なので無視している状況です。 構造を考えるほかシールドも十分しないとスプリアスで目も当てられない可能性だってありそうです。 SW電源を使うとさらに複雑になるので極力使わぬ方向で。(笑)

    返信削除

コメントは実名/コールサインを記入し誰の投稿か明確にして下さい(←必須)投稿から14日をすぎたBlogへのコメントも大歓迎ですが頂いたコメントが表示されるまで少しお時間をいただきます。