編集履歴一覧に戻る
akira.keiのアイコン画像

akira.kei が 2026年02月22日18時58分15秒 に編集

初版

タイトルの変更

+

PIC16F1705を使う(その1):正弦波などを発生

タグの変更

+

PIC

+

PIC16F1705

記事種類の変更

+

セットアップや使用方法

ライセンスの変更

+

(MIT) The MIT License

本文の変更

+

: [次の記事はまだ書いてない>]() ## 8bitDACだと? [別の記事](https://elchika.com/article/f1ee4828-abab-4617-8071-ffd5e4f429bf/)でPWMのデューティを8bitで増減させて正弦波にしていた。ところがPIC16F1705なら8bitDACを(PIC16F1769なら10bitDACを)持つので、さらに滑らかな正弦波(または任意波形)を出せる。 先のことを考えてちょっと心が折れたので、ここではMCC Classicを使って楽をさせてもらった。FOSCはPLLを使って32MHz、TMR2モジュールは1/4プリスケーラで32μs割り込み(31.25kHz)、DACはDACOUT2にモニタ用出力を、OPA1でDACを受けてユニティゲイン設定としてRC2に出力した。この他にオシロスコープの同期用にトリガー信号を出力するようにしたが、ジッターがあることが明確になっただけだった。 RC2の先には2段のRCフィルタを入れているが、カットオフが8〜10kHzくらいに設定されている。 ## 正弦波を出す 下図は波形テーブルに正弦波を入れた時の様子だが、上(C2、水色)が正弦波出力、下(C1、黄色)がトリガーである。ほぼ440Hzで出力されており、そうなるようにOSCTUNEを調整した。時間が経つとそれなりに変動する。 ![キャプションを入力できます](https://camo.elchika.com/cad69511e08a0ba615df2b1ed614e42a9b4f19de/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f33363031626666382d633530632d343762382d613765362d3531663731393163323336642f62373762616439612d326266382d346235372d383239332d353963353634346339616264/) 8bitDACで変調信号はなく、一定のサンプリング周波数(31.25kHz)なので固定のフィルタで落としやすいことから、俺なりの高品質の正弦波が得られている。 MIDIノート番号の0から127まで出せるようになっており、最大の127だとDDSの仕組み上かなり歪んで小さい出力になってしまうが、周波数は正しく制御される。 ![キャプションを入力できます](https://camo.elchika.com/f02ae88c93974eae9852540d4d5edf7faae9e172/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f33363031626666382d633530632d343762382d613765362d3531663731393163323336642f62336164336433612d646231652d346533342d386539342d343735656231643739633234/) ## 任意波形出力 矩形波、鋸波、逆鋸波および三角波など、プログラムチャンジを受けると変更できるようにしてある。 ![キャプションを入力できます](https://camo.elchika.com/c67d8b3053de1f55f47fef99f936fac21cf1998e/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f33363031626666382d633530632d343762382d613765362d3531663731393163323336642f64353461623734652d316632342d346434642d393465302d343436366234303661303635/) ![キャプションを入力できます](https://camo.elchika.com/ea7b30c0cae5185f4517c6ad8ab237a9c6765982/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f33363031626666382d633530632d343762382d613765362d3531663731393163323336642f37353239373763332d653636392d343530362d396461382d643230306161323738613035/) ![キャプションを入力できます](https://camo.elchika.com/f2ae0706a2940fd69ee76489988d9530eb1c84f5/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f33363031626666382d633530632d343762382d613765362d3531663731393163323336642f61393530376164302d346364632d343933632d393036352d623834613365336438366666/) ![キャプションを入力できます](https://camo.elchika.com/537c14bed6c7066f823a44703b0e8cb83f753544/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f33363031626666382d633530632d343762382d613765362d3531663731393163323336642f36623561363761342d666564652d346366622d393063362d353533633134313564623537/) ## MIDI対応 USARTも31250bpsのMIDIデータを受けられるように初期化されており、MIDI信号のパーサーとゲート変換をやればシンセサイザーのDCOとして機能できるかもしれない。夢が広がりんぐw