akira.keiのアイコン画像
akira.kei 2026年02月22日作成 (2026年02月22日更新) © MIT
セットアップや使用方法 セットアップや使用方法 閲覧数 28
akira.kei 2026年02月22日作成 (2026年02月22日更新) © MIT セットアップや使用方法 セットアップや使用方法 閲覧数 28

PIC16F1705を使う(その1):正弦波などを発生してシンセサイザー

: 次の記事はまだ書いてない>

8bitDACだと?

別の記事で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を調整した。時間が経つとそれなりに変動する。
キャプションを入力できます
8bitDACで変調信号はなく、一定のサンプリング周波数(31.25kHz)なので固定のフィルタで落としやすいことから、それなりの高品質の正弦波が得られている。
プログラムの内容的にはMIDIノート番号の0から127まで出せるようになっており、最大の127だとDDSの仕組み上かなり歪んで小さい出力になってしまうが、周波数は正しく制御される。

キャプションを入力できます

任意波形出力

矩形波、鋸波、逆鋸波および三角波など、プログラムチャンジを受けると変更できるようにしてある。
キャプションを入力できます
キャプションを入力できます
キャプションを入力できます
キャプションを入力できます

MIDI対応

USARTも31250bpsのMIDIデータを受けられるように初期化されており、MIDI信号のパーサーとゲート変換をやればシンセサイザーのDCOとして機能できるかもしれない。夢が広がりんぐw

akira.keiのアイコン画像
機械系エンジニアだが電子工作を趣味としている。週末はひとりバーベキュー。
ログインしてコメントを投稿する