TTL で PSG 音源を作る その3

すこし間が空いてしまいました。
設計と同時に実装を進めていますが、果たして基板2枚で収まるでしょうか。

Dscf0793

今回はノイズジェネレータ部分の設計です。
AY-3-8910 は1 系統のノイズジェネレータを搭載しており、前段のプログラマブルプリスケーラで周波数を調整できるようになっています。
ノイズ音の ON/OFF は、後段のミキサで 3ch 矩形波の任意の ch に合成することでコントロールされます。
音量は矩形波 ch で設定された音量と共通のようです。

noisegen_1

基本的に、ホワイトノイズを生成する回路は、シフトレジスタカウンタ(文献によっては線形カウンタと称する)により構成すると簡単です。
SIPO シフトレジスタの 74LS164 と XOR 74LS86 で作った回路が上図、出力波形が下図です。

noise_wave_1

オリジナルの modulo はデータシートに載っていないので、
回路の簡単な modulo 2^15-1 としています。
あとで調整が必要になるかもしれません。

本当にBAT81?

外袋に「BAT-81」と書かれたダイオードを入手したのですが、巷で手に入る BAT81 とは外観が異なるように見えます。

Dscf0795
今回入手した BAT81。

他の BAT81 は普通のダイオードのケースだったり、青色ケースだったりするようです。

そこで、以前製作した USB デバイスアナライザを使ってデバイスの特性を測定してみます。

Vf-If

実測した VF-IF グラフを上図に示します。
比較のため、1S2076A の測定値を同じグラフに表示しています。
グラフで特徴的なのは逆 S 字カーブを示していることで、これは等価直列抵抗値が大きいことを示しています。
また、VF の値も全体的に SBD としては大きめです。

BAT81_DS

Philips 社の BAT81 データシートから抜粋した、VF-IF グラフが上図で、実測値と良く一致しています。
このことから、このダイオードは BAT-81 と考えて問題ないようなので、安心して使用できます。

TTL で PSG 音源を作る その2

今回は矩形波生成ブロックを設計します。

AY-3-8910 の矩形波生成ブロックは、12bit の分周比 N によって クロックを分周させ、さらに 1/16 のプリスケーラと組み合わせることで、fck/16/N の周波数を生成します。
・・・とデータシートに書かれているのですが、出力のデューティー比は 50% にするため、回路上は 1/8 のプリスケーラと 1/2 のポストスケーラによって構成されているものと思います。

PSG 音源にはデューティー比を可変する機能はないので、これは単なる 1/N 分周器(プログラマブル分周器)によって構成できます。

プログラマブル分周器はいろいろな回路が考えられますが、
TTL IC を組み合わせて作るので、部品点数、在庫、価格など
いろいろ考えて設計しなければいけません。

divider_1

上図は 74LS161 を使用した完全同期式のプログラマブル分周器で、プリセットに N の論理反転を入力することで、1/(N+1) 分周器として働きます。
(上図ではデューティー 50% にするため、さらに 1/2 していますが。)
161 は 4bit カウンタなので、8bit や 12bit で動作させる場合、複数個組み合わせて使用します。
上図のように CO 端子から出力を取ろうとすると、複数個組み合わせた場合ひげが出てしまうので、一度元のクロックで同期してやる必要があります。

divider_2

74LS197 のような、安価な非同期式のカウンタで構成した例が上図です。74LS197 にはキャリー出力がないので、MSB の立下りエッジでカウンタをロードしています。ロードは非同期なので、出力周波数はひとつ上の回路と同様になります。

今回は 1/(N+1) ではなく 1/N の分周器を作る必要があります。上記回路では、論理反転のほかに算術 -1 する回路を追加せねばならず、不適です。

divider_3

1/N カウンタの実現方法のひとつは、ダウンカウンタを使用することです。74LS191 を使用した 1/N 分周器を上図に示します。74LS193 でも同様です。この回路でも動くと思いますが、MSB のCO 出力はマルチバイブレータ等でパルス拡張した方がベターでしょう。

divider_4

もう一つの構成として、ディジタルコンパレータを使用する回路が考えられます。上記は 74HC4040 によるリプルカウンタの出力を 74LS688 によるコンパレータで比較して、一致でカウンタにリセットをかけています。リセットは非同期なので、結果として出力周波数は 1/N となります。
コンパレータが比較的高価で、配線数も多くなるのでこの方式はあまり採用されませんが、今回は手持ち部品の都合上、この回路をベースに設計します。

square_1

そういうわけで、矩形波生成ブロックは上図のような回路になりました。AY-3-8910 には 3 系統の矩形波ブロックが存在するので、上記回路を3つ作ることになります。

TTL で PSG 音源を作る その1

AY-3-8910_ds

今回からしばらく、74 シリーズの TTL 汎用ロジック IC を使って PSG 音源を作ってみようと思います。
動作や仕様はオリジナルの PSG 音源、つまり GI 社 AY-3-8910  と同等に動くことを目標とします。
もちろんデータシートをもとにして、回路は新規に設計することになります。
全体で TTL IC 100 個くらいあれば構成可能と予想しています。

bus_if_1

まずは、バスインタフェース部分から設計します。
AY-3-8910 は 16 個のレジスタを持ち、8bit IO によるパラレルインタフェースを使用してアクセスします。
アドレスは IO にマルチプレクスされており、レジスタライト、リード、アドレスラッチは 3 本の信号線により行います。

bus_if_2

信号線はすこし特殊で、GI の CP1610 マイコンのインタフェースになっています。
すなわち、BDIR、BC2、BC1 の 3 本の信号線の組み合わせにより、上表のようにレジスタライト、リード、アドレスラッチが選択されます。
内部的に必要な WR, RD, ALE 信号は、74LS138  と 74LS10 により取り出すことにします。

AY-3-8910 は 16 個のレジスタを持つので、4bit のアドレスを占有します。
アドレスの上位 bit (ラッチされる 8bit の他に、外部から上位 2bit を与えることができる) に 0 をセットすると、IC へのレジスタアクセスが有効になります。
この仕様は複数個の IC をバスに接続する場合やや不便ですが、データシートによると、アドレス上位 bit は IC の注文時に書き換えることができたようです。

というわけで、バスインタフェースは以下のような回路になります。

bus_if_3 bus_if_4

また、8bit のレジスタは以下のような回路でよいでしょう。
(場合によって 244 は 373 にすべき)
ただし、いまどきの IC でコントロールするならレジスタの Read しないでしょうから、製作では配線を減らすために IO レジスタ以外の Read を省くことにします。

bus_if_5

 

ミリオーム計の製作

配線や接触抵抗など、1オーム未満の値を測定しようとすると、一般のテスタでは難しいことが多いです。
高価な市販のミリオーム計ほどの精度はいらないけれど、おおよその値を知りたい・・・というシチュエーションは意外に多いものです。
そこで、簡単なミリオーム計を作ってみました。

Dscf0781

写真の左側の基板がミリオーム計部分で、オシレータとAC増幅器、AC-DC コンバータから構成されます。
右側の基板は、以前製作したランプ型 ADC です。赤いアクリル板をつけて LED を見やすくしています。
分解能は 1ミリオーム(直読)で、4線式計測となっており、短絡で 0.000 オームになるように調整しています。

Dscf0782

上記写真では、単三電池ボックスの接触抵抗を測定しています。
ばね式の安価な電池ボックスは、- 極側 1 箇所でおよそ 100 ミリオームの抵抗を示します。
これは電池動作機器には無視できない値です。

この電池ボックス、ラグ板に半田付けすると熱でプラスチックが溶けて使い物にならなくなります。困ったものです。

millli_ohm_schematics
上記は回路図です。
すべて OPAMP とロジック IC で構成されています。
+5V 単電源で動作させるために、少しイレギュラーですが MAX232 を DC-DC コンバータとして使用しています。

抵抗計は被測定抵抗 (DUT) に電流を流して、発生する電圧を増幅することで抵抗値を得るわけですが、抵抗値が小さいと電圧も微弱になります。
したがって、DC のまま抵抗計を構成すると、増幅器の DC オフセットが精度にとって大きな問題となります。
そこで、1kHz の AC 電流を DUT に流し、交流のまま増幅することで、増幅器のDC オフセットを無視できるようにしています。

Dscf0783

ブレッドボードワイヤは、個体により 50-100 ミリオームを示しました。

Dscf0784

1 オームの抵抗を測定しています。

ランプ型 ADC の製作

ランプ型 (Ramp-compare) ADC  を専用 IC を使わないで作ってみました。

ランプ型 ADC 、シングルスロープ型 ADC と呼ばれることも多いかもしれませんが、これはのこぎり波とコンパレータ、カウンタで形成される最も簡単な ADC です。下図のようなブロックダイアグラムになります。

ramp_adc

設計目標は以下の通りです。精度はあまり考えないことにします。
・電源: DC +5V
・入力レンジ: 0-2V
・分解能: 1mV
・リニアリティ: 問わない
・表示器つき(LED)

ところで、積分型 ADC と比較すると、ディスクリートで組んだ場合にランプ型 ADC は以下のような特徴を持ちます。
・制御回路が簡単
・単電源で設計しやすい
・精度は出しにくい

積分型 ADC は積分回路が必要な都合上、単電源で設計しづらくなります。今回の回路では定電流回路によりのこぎり波を生成しているので、3 桁程度の精度が出ることを期待しています。

adc_circuit

上記に回路図を示します。基準クロックは近くにあった 6MHz 振動子を使用していますが、これを 450kHz くらいに変更すると消費電流をより減らすことができます。積分コンデンサにフィルムコンデンサを使用するのは言うまでもないですね。ポリプロピレンがベストですが、今回は精度にそれほどこだわらないので PET です。

TC5054P は 4桁のカウンタ IC です。カウントパルス、スタートやリセットは基準クロックの分周をそのまま使用しています。TC5054P にはカウンタ部とラッチ付きの表示部があり、コンパレータ出力のエッジを検出して、カウンタから表示部へデータの転送を行っています。

TC40H000P はアンバッファの高速タイプなので、4011B や 74HC00 では代用できないかもしれません。

TC40H000P と TC5054P は入手しづらい IC だと思います。在庫あるので欲しい方おられましたら問い合わせください。

Dscf0773

さて、作ったものが上記写真で、左側の VR は回路図にないテスト用の VR です。電源を投入すると、果たして、すんなりと動作したのでした。

Dscf0776

OL (オーバーレンジ)表示を入れ忘れたので、FS 以上の入力は表示できません。

74HC と 74HCT の内部回路の違い

74HC シリーズと 74HCT シリーズは、1980 年代に登場した Si ゲートの汎用 CMOS ロジックファミリです。
両シリーズの違いについては、データシートを見ても電気的特性の規定のみで、内部回路のどこが異なるのか記してある資料は少ないように思うので、ここに記しておきます。

まず電気的特性から見ると、両シリーズはロジックレベルが異なり、HC シリーズは入出力とも CMOS レベル (Vth ~ VDD/2)ですが、HCT シリーズは入力段を TTL レベル (Vth ~1.4V) に合わせています。
また、電源電圧範囲は HC が 2-6V、HCT が 5V ±10% と規定されています。(JEDEC 標準の場合)

さて、内部回路の違いを見ると、74HC と 74HCT の違いは入力段 MOSFET の特性のみということになります。

hc_hct
HC/HCT シリーズはバッファ付きなので、ほとんどの IC で同じCMOS インバータの入力段を持ちます(上図左側)。
この N-ch MOSFET と P-ch MOSFET の特性をうまく設定すると、VIN(th) をある程度自由に設定することができます。

74HC シリーズでは、この P-ch MOSFET と N-ch MOSFET の VGS(th) が同じ(コンプリメンタリ)になるように設計されています。
これにより、HC シリーズの VIN(th) は VDD の 50% となります。

一方、74HCT シリーズの入力段 N-ch MOSFET の VGS(th) は、P-ch より小さくなるように設計されます。
具体的には、VDD=5V のときに VIN(th) が TTL レベルとなるように作られています。

この VIN(th) のレベルは VDD に比例するので、
VIN(th) を TTL レベルに固定するために、
74HCT シリーズの電源電圧は 5V 専用となっているわけです。

入力段以外の特性は共通なので、HCT も HC と同様、広い電源電圧である程度動作させることは可能です。
AC 特性についても、入力段が非対称な分若干性能は落ちますが、他の部分は同一なので、HC シリーズとほとんど等価となります。
ただし、VGS-RDS 特性の通り、入力段 P-ch MOSFET のドライブが弱くなるので、低電圧で動作させる場合に特性が落ちることになります。

74HCT シリーズで注意が必要な点は他にもあり、一般に CMOS ロジックはスタティック動作で電流を消費しないのですが、HCT シリーズに TTL の H レベル信号を入力すると、mA オーダの消費電流が流れてしまいます
hc_hct_2
上図の通り、TTL の H レベル (worst で 2.4V) 入力において、入力段の FET は両方とも ON 状態となるので、H レベルのスタティックな入力でも貫通電流が流れます。
HCT では入力段がコンプリメンタリでなく、同程度の AC 特性を確保する都合上、貫通電流の値も HC シリーズより多くなっています。
もちろん CMOS レベルの DC 入力ならば、HCT  でもほとんど電力を消費しません。

TTL レベル入力時の 74HCT シリーズの消費電力はデータシートの ΔICC (TI, RCA) や IC (Toshiba) で規定されています。
74HCT00 を例にとると、室温での 1 入力ピンあたりの消費電流は下表の通りです。

CD74HCT00E: 0.1mA (typ), 0.36mA (max) [VI=VCC-2.1V], 1.8mA (max) [VI=2.4V, VCC=5.5V]
SN74HCT00N: 1.4mA (typ), 2.4mA (max) [VI=0.5/2.4V, VCC=5.5V]
MC74HCT00AN: 2.4mA (max) [VI=2.4V, VCC=5.5V]
TC74HCT00AP: 2.0mA (max) [VI=0.5/2.4V, VCC=5.5V]
74HCT00N (Philips): 0.15mA(typ), 0.675mA(max) [VI=VCC-2.1V]

ただし、各社で測定条件が少し異なる点に注意が必要です。

また、上記の値は FET のリニア動作による結果ですから、温度には非常にセンシティブのはずです。
1 ピンあたりで mA オーダですから、条件によっては 74HCT シリーズは TTL ロジック IC よりも多くの消費電流が必要になるかもしれません。

参考資料: TI 社アプリケーションノート
SN54/74HCT CMOS Logic Family Applications and Restrictions

自作カーブトレーサ[UDAS-01] その3 / DC-DC 特性の測定

Dscf0734

UDAS-01 は汎用カーブトレーサという位置づけです。メイン基板にプラグイン基板を接続することで、いろいろなデバイスの特性を測定できるように設計しています。

V-I コンバータ基板を作って、いくつかの昇圧型 DC-DC コンバータの負荷特性を測定してみました。以下にグラフを示します(Vin = 2.0V, Vout = 3.3V)。

(以下のグラフでは配線抵抗の影響があります。)

  • MAX879

MAX879 は MAXIM の古いワンチップ DC-DC コンバータです。一時期秋月電子で扱いがあったので、割とポピュラな IC だと思います。リチウムイオン電池の利用を念頭に置いた設計で、Vin > Vout でリニア動作をする特徴があります。一方バイポーラ Tr による同期整流など、設計が古いため効率はあまり良くありません。

ロードは 0.5A まで取れるようにしていますが、回路定数の都合上 Iout<20mA と >20mA でセンス抵抗を切り替えています。このためグラフ上ギャップがみられます。

  • BL8530-331

BL8530 は上海 Belling 社の PFM/PWM DC-DC コンバータです。同社ウェブページからは削除されてしまいましたが、実のところ TOREX 社 XC6372A の相当品のようです。データシートを見る限りオリジナルよりスペックが高いようですが…。私はこの IC を気に入っていて、3V 版をよく使用しています。グラフを見るとηがぎざぎざしていますが、負荷によって内部動作を切り替えているのかもしれません。

  • HT7733A

HT7733A は台湾 HOLTEK 社の PFM/PWM DC-DC コンバータです。秋月で手軽に手に入る (@¥40) のでこれも良く使用しますが、個人的には効率や安定性がもう一歩という印象です。グラフを見ると、高出力時になると効率は下がってしまうようです。電流容量の小さいノンA版も aitendo で購入できます。

  • 比較

上図は、とりあえず手元にあった上記 3 種を同一グラフにプロットたものです。高負荷時に MAX879 の効率が最も良くなっているのは同期整流のおかげでしょう。最近の MOSFET による同期整流の IC では 90% 以上の効率を期待できるので、そのうち比較したいと思っています。

  • MAX232 系

MAX232 に代表される RS-232C トランシーバ IC には正負電源のチャージポンプが内蔵されており、これを OPAMP の電源として使用できないかという試みは以前からなされています。しかし、このチャージポンプの特性図はほとんどの IC のデータシートで省略されており、確認するためには実測するしかありません。

max232i

上図は TI 社 MAX232I の出力特性です。- 側は無負荷で、+ 側を 20mA まで引いてみましたが、一般的な非安定チャージポンプの特性を示します。また、出力インピーダンスは Zout ~ 100 ohm と読めます。

sp232aep

同じ 232 の型番でも、メーカによって内部回路は異なります。上図は Sipex 社 SP232AEP の出力特性です。MAX232 との違いは一目瞭然で、SP232AEP では Iout<6mA で出力電圧がほぼ一定なので、安定化チャージポンプ回路となっているようです。また出力容量が小さく、Iout>6mA でシャットダウンされていることがわかります。これは容量不足ではなく、内蔵された過電流防止回路によるものと思います。

自作カーブトレーサ[UDAS-01]で半導体の特性を見る その2

前回からの変更点
・NPN/PNP Tr の測定に対応
・3 段階の測定レンジ・計測精度の向上
・IB-VBE 図の追加

以下、いくつかの Tr で測定したグラフを示します。

  • 2SC1815(GR)

IC-hFE

graph_2sc1815_01

上図は 3 段階 (IB<4uA, 70uA, 800uA) に分けてトレースしたものを重ねています。やはり IC>60 mA で hFE が落ち込んでいます。繰り返しになりますが、DCA75 のようなアナライザでは IC を 100mA まで取れないので、こういう特性はわかりません。

graph_2sc1815_02

2SC1815 のデータシートのように、同じグラフを log-log で表示したものです。低 IB から高 IB までしっかり計測できていることがわかります。さすがに、データシートに「直流電流増幅率の電流依存性が優れています」とあるように、IB<60mA では非常にフラットです。

IB-VBE

graph_2sc1815_03

上図は IB-VBE (エミッタ接地 VCE=5V) です。配線抵抗と Tc (パルス計測でないため) の影響があるので、高 IC となる範囲は少し誤差があると思います。

逆接続時 IC-hFE

graph_2sc1815_inv_01

バイポーラ Tr はエミッタとコレクタを逆にしても NPN あるいは PNP 構造となるので、幾許かの増幅作用が期待できます。エミッタとコレクタを逆に接続して直流電流増幅率をトレースしたのが上図で、センシング抵抗がレンジとマッチしないのでギザギザしていますが、hFE < 10 と極めて少ないながらも一応の増幅作用は確認できます。またこの増幅率も IC に非常に依存するものとなっています。この逆方向増幅率はほとんどの Tr のデータシートには規定されていないので、これは貴重なグラフといえます。

  • 2SA1015(Y)

2SC1815 のコンプリ、2SA1015 の Y ランクを見てみます。

IC-hFE

graph_2sa1015_02

上図は IC-hFE のグラフです。2SC1815 と同様に hFE は広い範囲でフラットですが、高 IC 時の落ち込みは少ないようです。Y ランクと GR ランクとの違いでしょうか。

IB-VBE

graph_2sa1015_03

2SC1815 と傾向が異なるように見えます。

  • 2SB270

Dscf0736

ゲルマニウムトランジスタの特性を見てみたいと思います。2SB270 は三洋の小信号用 PNP ゲルマニウム Tr です。ジャンクで手に入れたものなので、新品と比べて劣化があるかもしれません。なぜだかスリーブの色にバリエーションがありますが、今回は青色のものを使用しています。

IC-hFE (補正前)

graph_2sb270_no_correction

上図は上記とまったく同じ条件でトレースしたものですが、明らかに IC が小さい範囲でおかしく見えます。一般にゲルマニウム Tr は漏れ電流 (ここで影響するのは ICBO) がシリコン Tr と比較して数桁大きいので、この影響で見た目の hFE が大きく見えています。2SB270 のデータシートによると、ICBO < 12uA @ 6V となっています。今回のサンプルでは実測で ICBO = 3.2 uA でした。この ICBO の影響を補正したものが下図です。

IC-hFE(補正後)

graph_2sb270_01

graph_2sb270_02

Ge. Tr としては高めの hFE です。一方で hFE の IC 依存性が見られます。

IB-VBE

graph_2sb270_03

ゲルマニウム半導体の特徴として低い順方向電圧が挙げられます。当然ながら Ge. Tr の VBE の値も Si. Tr と比較して小さくなっています。