« 2008年3月 | メイン | 2008年6月 »

2008年4月 アーカイブ

2008年4月 1日

DDSチップでいろいろ遊んでみる
   --第8回--

SPIデータの出力をLEDで確認しているところ。左からD0,D1.....D7。
8bit.JPG
プログラムの実際
 最初にFTDI社のホームページからドライバをダウンロードして、インストールしておきます。VB.NETからFTDI社のドライバを呼び出すのはとても簡単で、用意されているコードをコピーしてくるだけです。1バイトずつ出力する場合は、サンプル・コードそのままでも良いのですが、SPIデータを文字列に構成してから出力する場合は、ByRefをByValに書き換えてください。
 Public Declare Function FT_Write Lib "FTD2XX.DLL" (ByVal lngHandle As Integer, ByVal lpszBuffer As String, ByVal lngBufferSize As Integer, ByRef lngBytesWritten As Integer) As Integer

 AD9834の制御データは次のような構成になっています。

初期化コマンド + 周波数データ + フェーズデータ + 初期化コマンド

 最初の初期化コマンドは、読み込むデータの指定を行います。周波数データ、フェーズデータを読み込んだあとで、内部レジスタをリセットすると読み込んだデータが有効になります。最初に周波数データをプログラムしてみます。
 周波数データは次の式で求めることができます。

dstatus = (f0 * 10 ^ 6) / MCLK * (2 ^ 28)

 dstatusはAD9834に渡すためのデータです。MCLKは外部クロック周波数です。今回は50MHzを使っています。文字列に並べるために求められたdstatusをいったん配列に直します。d0に周波数データを0と1のByte表現に直して配列として保存します。

n = Len(Convert.ToString(dstatus, 2))

  For i = 0 To 27
    If n >= i Then
      d0(i) = Convert.ToString(dstatus And 1)
      dstatus = dstatus >> 1
     Else
      d0(i) = 0
     End If
  Next

 d0をさらに1バイトずつに分解し、出力するための文字列を生成しますが、この辺は実際のコードを見てください。プログラムのソースは用意ができ次第、公開する予定です。VB.NETでは、バイトを操作するコマンドがCなどのように用意されていないので、このような手間をかけて処理しています。
 次回はコントロール・プログラムで試作基板を操作しながら、修正点、改良したい機能などを考えてみます。

DDSチップでいろいろ遊んでみる
   --第9回--

コントロール・ソフトの解説
 では、VB.NETで書いたコントロールソフトを解説します。VB.NETをインストールしたあとでコントロール・ソフトを解凍してください。DDS_34 visual basic project fileを開くと、VB.NETが起動します。

dds34x2_shot2.jpg

 コントロール・ソフトを動かすときは、DebugメニューからStart debuggingを選択します。コントロール・ソフトが起動するときにFT245RLが接続されているかをチェックします。もし、接続が確認できないと「Write」ボタンが有効になりません。公開しているバージョンは、開発用にチェックができるようSPIへの出力を表示するようにしてあります。
 操作は、とくにわかりにくいものはないと思いますが、位相を調整するスライド・バーをつけてあります。これは、ローパス・フィルタなどを通したときに生ずるズレを調整するものです。ソフトウェア・ラジオでは、IQ信号が正確に90°の位相差になっていない場合、イメージ信号の排除が上手くいきません。およそ89~91°まで微調整できるようにしました。

dds34x2_shot1.jpg

SOS ICで遊ぶ(2)

 UM77Tでスピーカーを鳴らしたい場合は、下の図のようにします。抵抗値やトランジスタはある程度、適当なもので構いません。(と言っても限度はありますが……)
um77t-2-1.gif
 もっと大きな音で鳴らしたい場合、オーディオ・アンプ用IC(TA7368Pなど)を使えば簡単ですが、ちょっともったいない気もします。そんな場合は、下の図のような回路を考えてみてもよいのではないでしょうか?
 NPNとPNPトランジスタを組み合わせたSEPP回路ですが、思いっきり簡略化しています。
 UM77T(SOS IC)の出力は正弦波ではなくて、ON/OFFが4kHzで繰り返される矩形波なので、これでも問題ないようです。スピーカーは直径10cm程度の大きさの物を使えば、部屋の中ではうるさいくらいの音量になると思います。
um77t-2-2.gif

About 2008年4月

2008年4月にブログ「実験室」に投稿されたすべてのエントリーです。過去のものから新しいものへ順番に並んでいます。

前のアーカイブは2008年3月です。

次のアーカイブは2008年6月です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type 4.1