AD9833でファンクションジェネレータを作る4 ESP32

published_with_changes 更新日: event_note 公開日:

labelAD9833 labelESP32 labelファンクションジェネレータ

 4 構成と実装、ESP32へ変更


主要部分の構成が決まりましたので、

AD9833 DDSモジュールを試す(13) の回路を見ながら、ブレッドボード上で実装します。

当初、Arduino Unoを使って作っていましたが、開発ボードはESP32ボードに変更しました。

Unoでは割り込みがGPIO#2、#3の二つしか使えません。この二つはロータリエンコーダに充当します。

開発目的である周波数スイープの機能を付加することを考えた場合、周波数を適時増やしながら波形を出力するループになると思います。このループを抜け出してスイープの有効/解除を切り換えるときに割り込みが必要です。これを新規に加えるために、全GPIOが割り込みに使えるESP32ボードに変更しました。

ESP32はPro MicroやNanoほどではないですが、GOIOはノーマルESP32と同じにかかわらず、比較的コンパクトにまとまっています。

また、技適に適合しておりBluetoothやWifiが使えるので活用範囲が広がります。

D1 mini ESP32

ここで、EPS32の各ピン(GPIO)と機能の割り振りを整理しておきます。この一覧にはこの後に説明する内容も含んでいます。ESP32のGPIOが目一杯状態です。
波形選択などのtact switchを使う4つの入力は、GPIO数の関係で外部プルアップを使うGPIOに持ってきています。10kΩの外部抵抗をつけてプルアップさせる必要があります。

ESP32 GPIOと機能一覧

ESP32
GPIODevice InterfaceInputOutputfunction備考GPIO#I/OADCINPUTPULLUPPULL DOWNANALOG
0SSD1283ACDVSPI: SPI_MODE0GPIO0I/OADC2ブートストラップ
1Rot Enc IfreqUpPin周波数増GPIO1I/O×UART に使用
2DC Cut outzeroPinDC cutモード出力用pinを設定GPIO2I/OADC2ブートストラップ
3Sweep outsweepPinsweepモード出力用pinを設定GPIO3I/O×UART に使用
4SSD1283ALEDVSPI: SPI_MODE0GPIO4I/OADC2
5SSD1283ACSVSPI: SPI_MODE0GPIO5I/O×ブートストラップ
6GPIO6I/O×使用不可
7GPIO7I/O×使用不可
8GPIO8I/O×使用不可
9GPIO9I/O×使用不可
10GPIO10I/O×使用不可
11GPIO11I/O×使用不可
12AD9388MISOSPI.begin(SCK, MISO, MOSI, SS);GPIO12I/OADC2ブートストラップ
13AD9388DATAHSPI : SPI_MODE2GPIO13I/OADC2
14AD9388CLKHSPI : SPI_MODE2GPIO14I/OADC2
15Rot Enc IfreqDownPin周波数減GPIO15I/OADC2ブートストラップ
16SSD1283ARSTVSPI: SPI_MODE0GPIO16I/O×
17AD9388FSYNCHSPI : SPI_MODE2GPIO17I/O×
18SSD1283ASCKVSPI: SPI_MODE0GPIO18I/O×
19SSD1283AMISOVSPI: SPI_MODE0GPIO19I/O×
20GPIOなし
21Rot Enc IroundPin周波数まるめGPIO21I/O×
22Signal outoutPinoutput出力確認用pinを設定GPIO22I/O×
23SSD1283ASDAVSPI: SPI_MODE0GPIO23I/O×
24GPIO24I/OADC2
25Rot Enc IIstepDownPin周波数レンジ増GPIO25I/OADC2
26sinPin非Pulseモード出力用pinを設定GPIO26I/OADC2
27Rot Enc IIsetFreqPin周波数レンジ選択
28GPIOなし
29GPIOなし
30GPIOなし
31GPIOなし
32Rot Enc IIstepUpPin周波数レンジ減GPIO32I/OADC1A4
33Millival DC outmillivalミリバル出力読み込みGPIO33I/OADC1A5
34tact switchDC CutsetDCcutDC cutモード入力用pinを設定GPIO34IADC1××A6
35tact switchWave SelctsetWave波形選択GPIO35IADC1××A7
36tact switchOutputstartstop出力させる/させないの切り換え入力用pinを設定GPIO36IADC1××A0
37I××GPIOなし
38I××GPIOなし
39tact switchSweepsetSweepsweepモード割り込みpinを設定GPIO39IADC1××A3

Powered by Blogger | Designed by QooQ

keyboard_double_arrow_down

keyboard_double_arrow_down