2009年3月29日日曜日

テストベンチを修正!

先ほど、書いたテストベンチがダメダメだったので、
シリアルデータをつくるところと一緒に修正しました。
ついでに少しだけ説明も追加。
でも見ている人には、何やってるかさっぱりわからない気がします。ごめんなさい。

このテストベンチは、Texas InstrumentのPCM1803という24ビットの96ksps
A/Dコンバータに接続するシリ・パラ変換回路の動作確認のために作ったものです。
ここでは48kspsで動かすことを想定して、必要なクロックやシリアルデータをつくります。

テストベンチの出力
 SDIN   ・・・シリ・パラ変換回路にシリアルデータ信号(PCM1803の出力を想定)
 CLK12M ・・・シリ・パラ変換回路に与えるクロック信号
 CLK3M  ・・・シリ・パラ変換回路に与えるクロック信号
 CLK48K ・・・シリ・パラ変換回路に与えるクロック信号
 RST    ・・・シリ・パラ変換回路に与えるリセット信号

シリ・パラ変換回路の出力
 LRCKO ・・・PCM1803に与えるLRクロック
 BCKO  ・・・PCM1803に与えるビットクロック
 SCKO  ・・・PCM1803に与えるシステムクロック
 DOUT1 ・・・パラレルデータ出力(L)
 DOUT2 ・・・パラレルデータ出力(R)


以下、テストベンチのコード


module tb_adc;

// Inputs
reg SDIN;
reg CLK12M;
reg CLK3M;
reg CLK48K;
reg RST;

// Outputs
wire BCKO;
wire LRCKO;
wire SCKO;
wire [23:0] DOUT1;
wire [23:0] DOUT2;

// Instantiate the Unit Under Test (UUT)
ADC_IF uut (
.SDIN(SDIN),
.BCKO(BCKO),
.LRCKO(LRCKO),
.SCKO(SCKO),
.CLK12M(CLK12M),
.CLK3M(CLK3M),
.CLK48K(CLK48K),
.DOUT1(DOUT1),
.DOUT2(DOUT2),
.RST(RST)
);

reg [5:0] i;
parameter DATA = 64'h0012_3456_0078_9ABC; // Lch(32bit)/Rch(32bit)
                                    //・・・ MSBファースト、右詰めフォーマット

initial begin
// Initialize Inputs
SDIN = 0;
CLK12M = 1;
CLK3M = 1;
CLK48K = 1;
RST = 0;
i = 6'd63;

#8;          // ・・・スタートしてから8ns後にリセット
RST = 1;

// Add stimulus here
#230;        // ・・・さらに230ns後にリセットを解除
RST = 0;

end

always #40 begin //256fs 12.288MHz  ・・・A/Dコンバータのシステムクロック
CLK12M = ‾CLK12M;
end

always #160 begin //64fs 3.072MHz  ・・・ A/Dコンバータのビットクロック(BCK)
CLK3M = ‾CLK3M;
end

always #10240 begin //fs 48kHz
CLK48K = ‾CLK48K;
end

always #320 begin  // ・・・320ns(ビットクロックの周期)毎にシリアルデータを出力
if (i == 6'd0) begin
i = 6'd63;
end else begin
i = i - 6'd1;
end
SDIN = DATA[i];
end

endmodule



こんなのでいいのかどうかわかりませんが、
とりあえずそれらしく動いてくれました。


2009年3月28日土曜日

ISE Simulator

ISE SimulatorでVerilogのシミュレーション。
オーディオA/Dコンバータ出力を受ける部分ですが、
シリアルデータを生成するテストベンチ作成で悩んでいます。
とりあえずワンクロック毎に反転してみる。











initial begin
// Initialize Inputs
SDIN = 0;
CLK12M = 0;
CLK3M = 0;
CLK48K = 0;
RST = 0;

// Wait 8 ns for global reset to finish
#8;
RST = 1;

// Add stimulus here
#230;
RST = 0;
end

always #80 begin //256fs 12.288MHz
CLK12M = ‾CLK12M;
end

always #320 begin //64fs 3.072MHz
CLK3M = ‾CLK3M;
end

always #20480 begin //fs 48kHz
CLK48K = ‾CLK48K;
end

always #320 begin
SDIN = ~SDIN ;
end

2009年3月26日木曜日

洋菓子ブーム?

日頃の感謝(?)を込めて、職場の女性陣に差し入れをすることになった。
彼女らの希望は...
パティシェリー モンシュシュの「堂島ロール」。有名なロールケーキですが、
店内で頂くか、20~30分行列に並ぶしかない。並んでまで買うなんて勘弁してください。
ネットで買えるもの限定という条件では、ル パティシエ タカギのチーズケーキがご所望。
でもコレ、売り切れって書いてあります。
結局、チーズケーキなら、ということで京都のパパジョンズをセレクト。
濃厚で美味しいとわかっていますので、到着が待ち遠しいです。
このほか、浜松にまるたやというチーズケーキで有名な店があるそうです。
駅前の遠鉄デパートの地下にもお店があるとのことで、
近くに行くことがあれば購入することにしましょう。
チーズケーキのほかにもサクサク和風クッキー「あげ潮」というのが、
見た目いまいちながら、美味いらしい。

2009年3月21日土曜日

ISEのCORE Generatorで信号発生器

 FPGAを使った無線分野のアプリケーションとして雑誌で良く取り上げられるのが、
DDSを使った信号発生器です。無償で利用できるFPGA開発環境(XilinxのISE10.1)に
付属のDDS Compiler v2.1というIPコアを使ってみました。















 FPGAにはTIのDAC904という14ビットのDACを外付けしてあり、過去のDesign Wave Magazineの
記事やウェブの記事を参考に、とりあえず固定周波数として試してみます。
サンプル周波数は38.912MHzとして、DDSで64分の1の608kHzを生成するようにセットしました。


これがその波形。
何か変、というかめちゃくちゃな波形です。











配線間違いかと思いましたが、波形をみると意味ありげな並びかたです。
IPコアの出力は符号あり(2の補数)ですが、DACは符号なしだったというのが原因です。
さっそく、教科書をにらみながら最上位ビットを反転させれば符号なしに戻せるようなので、
その旨を追記。

 assign DDSO = sine ^ 14'b10_0000_0000_0000;



こんどは、それらしき波形になりました。

デジタル式のFMトランスミッタ

 FMトランスミッタで、電波に音を乗せる変調回路は最も音質などの性能に関わるところのひとつでしょう。この変調回路、PLL制御のVCOにバリキャップ・ダイオードで直接FM変調をかけるのが一般的でしたが最近では、FM変調回路やステレオ変調処理と言った周辺回路含めデジタル処理を行うタイプの専用チップが登場しています。
    3V動作、アナログ音声入力、送信周波数87.5-108MHz、歪み率0.4%、SN55dB、
   セパレーション35dB、パッケージは7mm角のモジュール。
    新潟精密はRF CMOSと呼ばれる、無線用のアナログICチップで有名だったようですが、
   残念なことに倒産してしまい、民事再生したいま同社のHPには、このチップのことは
   触れられていません。
    このチップは秋月電子で、チップ単体はもちろんキットまで売られています。ただ、
   送信周波数範囲が海外仕様のため、88MHz以上しか出ないのが残念なところです。

2.7~5.5V動作、アナログ/デジタル音声入力、送信周波数76-108MHz、
   歪み率0.1%、SN58dB、セパレーション35dB、パッケージは3mm角のQFN20ピン
    特筆すべきは、デジタル式のオーディオダイナミックレンジコントロール(コンプレッサ)を
   内蔵していることです。アタックタイム、リリースタイムをセットできるデジタルコンプが、

   こんな小さなチップに入ってしまうなんて信じがたいところがあります。

    このチップの問題点は、手ハンダをやりにくいことと、データシートが入手難なところでしょうか。
2.7~3.6V動作、アナログ/デジタル音声入力、送信周波数76-108MHz、
   歪み率0.1%、SN69dB、セパレーション規定なし、パッケージは5mm角のQFN32ピン
    2008年の新製品のようです。後発のため特性が改善されているように見えます。
   国産ですし、製品への採用が広がれば個人レベルでも入手できるようになるのでしょうか。

    ・・・2009.3.29追記
      ロームのデータシートをよく見たら、デジタル処理なのは
      ステレオコンポジット信号処理段までのようです。
      コンポジット処理部のDACからMOD ADJを通り、COMP OUTピンに接続されています。
      おそらく、FM変調をかけるところは従来通り外付けのバリキャップをVCOに装荷して
      使う形態なんでしょう。

2009年3月19日木曜日

トランスコ同軸リレーの内部

ジャンクでギガヘルツ帯の高周波回路用のリレーとして見かけることのあるトランスコ社。・・・ネットで検索しても出てこないと思ったらDow-Key Microwaveという会社の傘下に入っているみたいですね。
ジャンク箱整理中にかなり年季の入った同社の同軸リレーを見かけたので動作チェックをしてみました。が、スイッチを切り替えるたびに数デシベル単位で通過損失が変動します。アイソレーション特性はかなり優れているものの、リレーとしてはちょっと使える状態にはありません。どうせ捨てるならと、ふたをあけて中身を覗いてみました。


外観。年代物です。
4つの同軸ポートがあって、たとえば

 状態1: J1-J2接続, J3-J4接続
 状態2: J1-J3接続, J2-J3接続

のような感じで切り替わります。

この製品は上記のような接続ではないようですが・・・。








ふたを開けてみました。
意外にシンプルな中身。正直、つまらなくてがっかりです。
黄色いのはリレーのソレノイド(電磁石)です。









接点部分の拡大。白い球形部分です。
この白い玉は絶縁体みたいで、
ソレノイドの動きに合わせて電極の先の白い玉がくっついたり離れたりします。どうもリレーの接点は非接触型みたいで、白い玉部分の静電容量の増減でスイッチ動作が成り立っているようです。
接触していないなら接触不良の心配はなく、高信頼!といいたいところですが、電極が物理的に変形したりして、相互の距離が変化すれば静電容量も変わることが予想されます。
今回みたいに通過損失が変わるのは、落下などで電極が微妙に変形してしまった!?ため、切替のたびに電極の位置関係が一定していないのが原因?でしょうか。







このリレー、具体的なデータはなくしてしまいましたが、オフアイソーレーション特性が優れていました。確か、1GHzで70dB以上とかなりのものです。測定器とかに使うのでしょうか?

2009年3月14日土曜日

チップ抵抗キット

 少し前にチップワンストップから購入したチップ抵抗キットです。KOA製とROHM製がそれぞれサイズ別に揃っています。私は、「1608チップ抵抗器キット10Ω-100kΩ(KOA製)」を選びました。購入後すぐに、3/31までのセールとか言い出して5,980円に値下げされたので、ムッとしましたが、商品自体はもちろん良い物です。

 このキット、97型番 各50個・・・計4,850個ものチップが、銀塩写真フィルム整理用ファイルに整然と整理されて届きます。まあ趣味ベースでは一生ものですね。チップ抵抗キットは他店やヤフオクでも見かけますが、低価格のものは誤差5%が多いようですが、同社のものは誤差1%というところがポイントでしょうか。どうでもいいことですがKOAは、よ~く見ると色がブルーで気に入っています。

 さて、チップ抵抗キットを選ぶときに考え込んだのがサイズです。趣味用途なら、何を選んでも良いのですが世の中の流れ1005(1.0mm×0.5mm)サイズが主流のようです。でも、はんだ付けがしんどいのでワンサイズ大きな1608(1.6mm×0.8mm)としました。ちなみに、コンデンサについてはジャンク屋さんの店頭でよく見かける2012(2.0mm×1.2mm)サイズを個人的な標準にしています。






























2009年3月10日火曜日

エムエーアイ電子 低価格FPGAボード

愛知県豊橋市のエムエーアイ電子という会社の低価格FPGAボードを購入しました。豊橋は、「菜めし田楽」と「ヤマサのちくわ」が名物でしたか。仕事で何度か訪れたことのある場所の近くなので、少し親近感が湧きます。
なんでも自社開発品新発売記念とのことで正価14,980円のところ、8,980円の特売です。何に使おうという訳ではないですが、ついついポチッとしちゃいました。同社のHPの他、別のサイトでも販売されているようです。売り切れの際、必要な方はググってみてください。
この基板、仕様としてはXilinxのSpartan-3E(XC3S500E;50万ゲート)が乗っていて、4Mのコンフィグチップ、1Mbit SRAM, RS232C IFが付いているというものです。デジタル信号処理用途では、まあ十分ではないでしょうか。基板を一目見て、QFPパッケージのFPGAが妙に巨大に見えます。これを見て100万ゲート以上でQFPパッケージ品がなくBGAパッケージが主流になるのが理解できました。QFPパッケージでは足の本数が多すぎて、成立し得ないのですね。
基板のウラには、シュリンクDIPのSRAM(Cypress)がべたっとくっついています。
さて、これで何をしようか・・・。


おもて












うら

2009年3月5日木曜日

表面実装のすすめ

写真をみてください。(1)と(2)はどちらもほぼ同じ機能を持った基板です。心臓部はどちらも雑誌の付録基板で、当初は足回りのマザーボードとしてユニバーサル基板にリード線付き部品を使っていましたが、訳あって(というか壊してしまい)、表面実装部品を使って作り直したものです。シンプル、コンパクトにできあがっています。とくに(1)の基板裏面は、配線で基板表面が見えないくらいにとんでもないことになってます。製作時間もかなりかかっています。苦労した様子がよくわかるので写真を撮っておけば良かったと後悔。

表面実装は、はんだ付けが難しい、面倒そうだと思い込んでいましたが、基板さえあれば意外に簡単で製作もラクチン。この例では基板のエッチング~穴開け~部品実装まで1日でできあがっています。なんと言っても、基板に穴を開けなくていい、コンパクトに作れる、リード線がないので高周波特性が良さげ、部品のコストが安い、といいことずくめ。すっかり気に入ってしまい、ついには一生かかっても使い切れそうもないチップ抵抗キットまで購入してしまいました。もう後戻りはできません。


(1)リード線付き部品をもっぱら使用した例














(2)おもに表面実装部品を使った例

2009年3月3日火曜日

プリント基板の製作 その1

最近では、オリジナルプリント基板をわずか1枚から格安で製造を受託してくれる専門業者もあり多くの方が利用されているようです。両面、多層、シルク印刷、金めっきと、まさに本物。もちろん穴開け加工も必要ないと良いことずくめです。
でも専門業者に依頼するには、格安とはいえそれなりの完成度の設計で製造を依頼したいもの。
あいにく当方は、生基板にマジックペンでパターン図を直接手書きし基板を製作した経験はありますが、CADはほぼ未体験です。正直なところモノにできるかどうか未知数です。
そんなわけで、サンハヤトの感光基板を使ったプリント基板の製作にチャレンジしてみました。
まずはマスク紙を作るため、基板CADの選定です。
ローコストで利用者数が多く使いやすい、そして将来、専門業者への発注も考慮したものとして、Minimal Board Editorに出会いました。今風?の基板レイヤーの呼び方や、非常にシンプルなメニューに戸惑いましたが、欲しい機能は概ね付いているし、部品登録もシンプルかつ合理的。
慣れた頃には使いやすさに感動です。きっと作者の方が欲しいものを創り上げていったのでしょう。そんな印象です。もちろん細かな不満はありますが、そんなことに対応していたら市販ソフトのように機能てんこ盛りの化け物ソフトみたいになっていることでしょう。

2009年3月1日日曜日

オプティマイズのロジアナキット


低価格ロジックアナライザキットとして有名ですが、100MHzで32chと欲張り仕様なのに基板単体で1万円弱で入手できます。以前入手して組みたてたまま放置プレイ状態だったので動作させてみました。

本来は箱に組み込むものですが面倒なので、アルミケース用のシール付きゴム足を基板裏にぺたりと貼り付けて使っています。ショートには注意ですね。









このキットには、プローブというかテストクリップは自作せよということになっていて付属していません。たまたま本物のロジアナ用であろうテストクリップをジャンクで入手していたので使ってみました。このクリップ、先端に工夫があり指を離すとかぎ状の電極が交差するように引っ込んで、確実に固定してくれます。













これが動作中の画像。いま製作中のFMトランスミッタの音声コーデックとのインターフェース部分の波形です。まともに動いていないのはわかっちゃいるんですが、しっかり意図せぬハザード(左下)が出ています。