TM8211 (1)
aitendo で Titan Micro 製の (ノンオーバーサンプリング) 16 ビット DAC 「TM8211」が販売されているのに最近気づきました。
以前から販売されている Princeton Technology 製の「PT8211」とピン接続/機能が同等で、価格も同じ 1 個 50 円です。
2017 年 6 月 28 日付けの記事 (→こちら) で PT8211 の特性を測定していますが、あまり良くない結果でした。
TM8211 については、まだ 2017 年 6 月 28 日付けの記事のように 1 ステップごとの特性は測っていませんが、サイン波を入力して高調波歪の量で見る限り、PT8211 と同程度か、あるいは少し悪いという結果になりました。
ICL7137 (5)
ICL7137 のセグメント出力をキャプチャするソフトウェアについて述べます。
表示の変化の途中でキャプチャすることを避けるには、それがセグメント出力の最後の変化であることを確認してから取り込まなければなりません。
しかし、現在の変化が「最終」であるかどうかは、その時点では分かりません。 そのため、セグメント出力の変化を確認した時点では取り込まず、一定の時間が経過してから取り込むようにします。
もし現在の変化が最終でない場合、時間経過を待っている間に再度ピン変化割り込みが掛かることになるので、その場合には待機時間を再設定した後に再度待機状態に入るようにします。
もっと回路寄りの言葉で言うと、ピン変化割り込みのたびに「リトリガラブル・ワンショット・タイマ」(retriggerable one shot timer) をリトリガして、ワンショット時間が完了した時点でセグメント出力をキャプチャします。
ICL7137 (4)
ICL7137 の標準の回路のままでセグメント出力から信号を引き出すだけでは適切なロジック・レベルが得られないことを説明します。
ICL7137 のセグメント出力の内部回路と、外部の 7 セグメント LED との接続の様子を下に示します。
ICL7137 (3)
ハードウェア / ソフトウェアを合わせたブロック・ダイアグラムを下に再掲します。
図では、ICL7137 からの 7 セグメント LED への配線に「パラ」ってセグメント・パターンの信号を取り出していますが、標準の回路のままではロジック・レベルが合わず、正常に信号が取り出せません。 LED 表示とセグメント・パターン・キャプチャを両立させるには回路を一部改造する必要があります。
また、精度の点で、実際の運用では LED 表示は行わず、信号を取り出すだけにする必要があります。 これらの点については、詳しくは後で述べます。
ICL7137 (2)
5 セグメント・パターンから BCD (Binary Coded Decimal) への変換部分を、 PLD (Programmable Logic Device) である Lattice GAL16V8 を使って「ランダム・ロジック」によるハードウェアとして実現した例を示します。
GAL16V8 の OLMC (Output Logic MacroCell) のモードとして、「Registered」モード以外の「Complex」モードあるいは「Simple」モードに設定すれば、入力を 10 本、出力を 8 本使えるので、2 桁分の回路をひとつのチップにおさめることができます。
入出力の割り当てのようすを下に示します。
ICL7137 (1)
V3340 の温度補償ずみ CV 出力 (アンチログ部の差動ペアのベースを駆動する電圧) は、最大で約 -180 mV から約 180 mV まで変化します。
マイコンでデータをロギングする場合、マイコン内蔵の ADC を使うためには、入力電圧の変化範囲を GND から電源電圧までにおさめる必要があります。
また、温度補償ずみ CV 出力は「DC」であり、AD 変換のスピードは要求されず、むしろ外来ノイズの影響を小さくできるほうが重要です。
そこで、変換スピードは遅いけれど、電源ハムなどのノイズに強い「二重積分型」ADC を使って測定することを考えました。
昔に秋月で買った ICL7137 使用の LED 表示の電圧計キットを改造して、マイコンと接続し、データをロギングするマイコン (あるいは PC) へ電圧の数値を送ります。
ただし、現在、秋月ではキットも ICL7137 チップ単体も扱っていないようです。