Pengukuran Kecepatan DAC Internal ESP32
Pengukuran V1
pada pengukuran ini menggunakan fungsi library dacWrite()
Kode sebagai berikut
#define DAC1 25
void setup() {
Serial.begin(115200);
}
void loop() {
while (1) {
dacWrite(DAC1, 0);
dacWrite(DAC1, 4095);
}
}
Berikut ini hasil pengukuran output analog dari DAC dengan osiloskop
Pengukuran V2
Pada pengukuran ini menggunakan fungsi dac_output_enable() dan dac_output_voltage(). Pada fungsi dacWrite, fungsi dac_output_enable() selalu dipanggil sehingga cukup menghabiskan waktu.
// https://github.com/espressif/arduino-esp32/discussions/7889
// https://dronebotworkshop.com/esp32-dac/
// https://deepbluembedded.com/esp32-dac-audio-arduino-examples/
// https://circuitdigest.com/microcontroller-projects/esp32-timers-and-timer-interrupts
#include <driver/dac.h>
int value = 0;
void setup() {
dac_output_enable(DAC_CHANNEL_1);
}
void loop() {
for(;;){
dac_output_voltage(DAC_CHANNEL_1, 0);
dac_output_voltage(DAC_CHANNEL_1, 255);
}
}
Pengukuran output analog dengan osiloskop
Kesimpulan
- Frekuensi DAC adalah 27,068 kHz dengan fungsi dacWrite()
- Frekuensi DAC adalah 168,932 kHz dengan fungsi dac_output_voltage()
Referensi
- https://github.com/espressif/arduino-esp32/discussions/7889
- https://dronebotworkshop.com/esp32-dac/
- https://deepbluembedded.com/esp32-dac-audio-arduino-examples/
- https://circuitdigest.com/microcontroller-projects/esp32-timers-and-timer-interrupts
- https://github.com/waskita/embedded/tree/master/esp32-dac-profile-v1
- https://github.com/waskita/embedded/tree/master/esp32-dac-profile-v2