PICのDAコンバータ(DAC)を使ってみた - 補足
8bitDAC版も作ってみました。
「PIC/16F1705のDAC(DAコンバータ)を使ってみた(ソース付き)」
実用するにはバッファを入れます。
「PIC/16F1705のオペアンプをDACのバッファとして使ってみた」
(2014.11.22)
--------
「PICのDAC(DAコンバータ)を使ってみた」についてもう少し詳しいことを知りたいというリクエストをいただきましたので補足を書きます。
なおPICの使い方自体、つまりソースなんかも書く気はあるのですがいつになるかわからないのでそういうのがすぐ必要な方は
「きむ茶工房ガレージハウス - PICの内蔵DAC機能を動作させて見る」
をご覧になるのがいいと思います。私が書く予定のものよりこちらの方がずっと役に立つと思います (^^)
それから波形処理はGoldWaveを使っています。なかなか便利です。最近あやしいダウンロードサイトが多いので本家からダウンロードするのがいいと思います。
「GoldWave Inc.」
-------
最初にやってみたのはこれです。
要するにDACの出力を分圧し直流分をカットした上でPCのLINE INに接続しています。
抵抗値はPCのLINE INの入力レベルに応じで調整します。コンデンサーは100uFですが、やっているのはこれだけではないので大きめにしています。
ちなみに最近のPCだと“LINE IN”のジャックは青い色のやつみたいです。Macはどうだかわかりません。接続はごくふつうの3.5mmミニプラグ+シールド線のものです。
写真で見るとこうなります。
使っているのはPIC18F26K22です。PIC16F1938なんかでもピン配置は同じだったと思います。PIC16F648Aが使えるとスペースが節約できるのですがDACがついていませんでした (^^;;
「PICのDAC(DAコンバータ)を使ってみた」に書いたようにPICのDACは出力電圧によって出力抵抗が変化するような構成になっているのでこれだとちょっと波形が歪みます。
RB0がGNDに落としてありますが、これはRB0~RB3のいずれかのピンをGNDに落とすことによって波形を変更できるようにしているためです。
出力抵抗の影響を受けないようにするためボルテッジフォロワを入れます。
これで意図したとおりの波形が得られるようになりました。こちらの写真はこれです。
PICの右側のヘンなのに単電源フルスイングオペアンプが4個入っています。
手元に適当なものがなかったので以前ハンダ付けの練習台にしたもの(NJM2747V、パッケージはSSOP14。これはピン間隔が0.6mmくらいでハンダ付けがたいへんなので正直やめた方がいいです)を使っています。
オペアンプが4個あり、せっかくですのでいちばん簡単なLPF(ローパスフィルタ)を入れて波形を“きれい”にしてみます。
写真、説明にあるVF1は左側、VF2が右側のオペアンプ(ボルテッジフォロワ)です。
LPFは二つのボルテッジフォロワVF1、VF2に挟まれているため、信号源の出力抵抗は実質0ですし、次段の入力抵抗は実質無限大ということでLPFもほぼ教科書にあるとおりの特性を示すはずです。
PICのDACOUTの端子電圧にそうとうするVF1の出力とLPFを通したあとのVF2の出力を比較してみます。
かなり正弦波らしくなっています。
LPFを通す前のスペクトラム
「PICのDAC(DAコンバータ)を使ってみた」とくらべると第2高調波が小さくなっています。これは少しでもきれいな波形得られるようにプログラムを手直ししたためもあるのですがボルテッジフォロワによって直線性が改善されたことの影響が大きいと思います。偶数次の高調波が少ないというのは信号が上下対称に近いことを意味しています。
とは言えまだ正弦波からはほど遠いです。
LPFを通したあとのスペクトラム(上と比較するためレベルをちょっと上げてあります)
まあこれだったら正弦波として実験に使えると思います。音を聞いても“純”な音になっています。
----
まだオペアンプが二つ余っています。例えばこんなことに使いたいと思います。
普及品のテスター(DMM)は交流低電圧のレンジがありません。上のようなことをやっているとテスターで電圧をチェックしたくなるわけですがそれができません。
単にダイオードで整流して電圧を測ろうとするとダイオードの電圧電流特性の非直線性のため正確に測ることができません。
そこでオペアンプを利用してテスターの直流電圧レンジで回路の交流電圧を精度よく測れるようにするというのはどうでしょう。
------
関連
「I2Cデバイス・アドレス一覧」
「同じアドレスのI2Cデバイスを使う」
「PICで平方根 - 白金薄膜抵抗で温度を測る」
「PICでI2C - ADコンバーター・MCP3425の使い方」
「PICでI2C - MPL115A2の大気圧計算法」
「I2C大気圧センサーLPS331の驚くべき分解能」
「I2C大気圧温度センサーLPS331 - 海面更生気圧を気象庁とくらべてみた」
「I2C大気圧センサーLPS331の分解能はほんとうに高いのか?(温度編)」
「PICでI2C - 1 (温度計を作る)」
「PICでI2C - 液晶(LCD)ディスプレイ(ACM1602N1-FLW-FBW)に表示する」
「PICでI2C - LCD(液晶)ディスプレイによる違い」
「サーミスタによる温度測定の精度」
「サーミスタ温度計の精度を調べる - 1」
「PICで作るお手軽サーミスタ温度計」
「炭素皮膜抵抗の温度係数を測定する話」
「ミニ恒温槽の作成に向けて - 1」
「ミニ恒温槽の作成に向けて - 魔法瓶の活用」
« 本日9月28日の土星食予測図(水戸/宇都宮/前橋/さいたま/千葉/横浜) | トップページ | 2014年10月の星食(掩蔽)予測(予測図作成機能つき) »
「趣味の電子工作」カテゴリの記事
- PICで作る100MHz周波数カウンタ検証用XOR(エクスクルーシブオア)逓倍器(2016.03.08)
- 150MHz(~200MHz?)周波数カウンター用プリスケーラー(1/4分周器)(2016.03.06)
- 測温抵抗体(Pt100、白金薄膜温度センサー)の抵抗値を温度に変換する(平方根を使わない)計算式(2016.03.01)
- GPS/JJY(標準電波)を基準周波数源とするためのPLLの詳細(2016.02.27)
- GPS受信モジュール1PPS対決 - GE-612T vs GM-5157A(2016.02.21)
コメント
この記事へのコメントは終了しました。
« 本日9月28日の土星食予測図(水戸/宇都宮/前橋/さいたま/千葉/横浜) | トップページ | 2014年10月の星食(掩蔽)予測(予測図作成機能つき) »
色々と聞きたいことがあるのですが、基本的なところから教えてください(≧∇≦)
DACの波形って電圧の変化の波形になるのでしょうか?
一番上の回路ですとLINE INに入るときの電圧はどの程度になりますか?
単純にテストとして直流電流をLINE INに流したらどうなるのか気になりました。
投稿: 惑 | 2014年9月29日 (月) 17時26分
まだ情報が足りてませんね。すみません。
DACの出力は(プログラムに依存するのですが)上の正弦波の場合は2.4Vを中心に0.4Vから4.4Vくらい変化しています。
つまり“2.4Vの直流に4Vp-pの交流が重畳されている”あるいは“2.4Vの直流に実効値1.4Vの正弦波交流が重畳されている”ということになります。
上の図では1/11に分圧されているので出力側では0.2Vの直流に0.14Vの交流が乗っていることになり、PCのLINE INには直流分がカットされて0.14Vの正弦波交流だけが入力されます。
(PCのLINE入力の入力抵抗はそんなに大きくないと思うので実際はもっと低くなっていると思いますが面倒くさくて実測していません)
“LINE”というのには規格みたいなのがあるのですが、実際の機器の入力仕様はまちまちみたいで実際にやるときは“適当な電圧にする”としか言えませんが、0.1V前後であればだいたい問題ないと思います。
それから100μFの直流カット用のコンデンサ(カプリングコンデンサ)が入っていますが、(一般的には)これは不要です。PC側にもカプリングコンデンサが入っているからです。つまり“100μFのコンデンサはあってもなくても同じこと”ということになります。
これを入れているのは“事故防止”というか“精神衛生上の問題”という意味が強いです (^^;;
投稿: セッピーナ | 2014年9月29日 (月) 18時23分
ありがとうございます(≧∇≦)
0.1V前後なら問題ないのですね。
少し試してみたいことが出来ました(¬_¬)
投稿: 惑 | 2014年9月29日 (月) 18時47分
はい、0.1Vくらいであれば問題ないと思います。
大き過ぎても波形がちょっと歪むくらい、小さすぎてもなんとか波形は見えると言ったところでしょうか。
100VACを1/1000に分圧して入力にするのだけはやめてくださいね (^^;;
投稿: セッピーナ | 2014年9月29日 (月) 19時29分
こんばんわ
古い記事にコメントしてすみません。
最近秋月電子にて16F1705が販売されています。
これはDAC出力が5ビット(32レベル)から8ビット(256)に変更なっています。
また、ZERO-CROSS DETECTION (ZCD) MODULE機能が付かされ正弦波が出力可能な様です。
このPICは"Intelligent Analog Flash Microcontrollers"とうたっていますね。
現在忙しいので実験は年明けになりそうですが参考までに。
あ、それとぉ今空いた時間でぇI2C通信マルチマスターの実験を行っています。
投稿: きむしげ | 2014年11月 8日 (土) 17時51分
おお、8bitですか。5bitとは雲泥の差でしょうね。
期待がもてますね。情報ありがとうございました m(._.)m
I2C通信マルチマスターも楽しみです。
自分でやるより待ってた方がいいのかなあ.... (^^;;
投稿: セッピーナ | 2014年11月 8日 (土) 18時00分