MCP4922 SPI DAC 在 FireBeetle ESP32 上的测试
之前有介绍过,ESP32没有 DAC 引脚,但是可以通过 PWM 来进行模拟,这次入手了 MCP4922 这款双通道 DAC 芯片。它使用 SPI 接口,提供12Bit的输出精度。芯片引脚定义如下:引脚编号名称介绍
1Vdd供电 2.7-5.5V
2NC空
3CS#SPI CS 引脚
4SCKSPI Clock
5SDISPI MOSI
6NC空
7NC空
8LDAC#锁存,只有为低时,芯片才会从 Vouta和Voutb输出电压
9SHDN#关闭,为低芯片停止工作
10Voutb输出B电压引脚
11Vrefb输出B 的参考电压,可以接入Vss到Vdd 以内的电压.这次测试接入了Vdd(3.3V)
12Vss地
13Vrefa输出A 的参考电压,,可以接入Vss到Vdd 以内的电压.这次测试接入了Vdd(3.3V)
14Vouta输出A的电压引脚
这次测试基于 https://github.com/michd/Arduino-MCP492X提供的库文件,代码如下:
#include <MCP492X.h> // Include the library
#define PIN_SPI_CHIP_SELECT_DAC 25 // Or any pin you'd like to use
MCP492X myDac(PIN_SPI_CHIP_SELECT_DAC);
void setup() {
// put your setup code here, to run once:
myDac.begin();
}
void loop() {
for (int i=0;i<4096;i++) {
myDac.analogWrite(0, i);
myDac.analogWrite(1, 4095-i);
delay(1);
}
代码运行后使用示波器进行测试,结果如下:
修改代码,loop如下:
void loop() {
myDac.analogWrite(0, 0);
myDac.analogWrite(0, 4095);
}
可以看到波形如下:
参考:1. https://www.microchip.com/en-us/product/MCP4922#2. https://ua726.co.uk/2012/12/22/testing-the-mcp4922-with-an-arduino/ 本文使用的库:
页:
[1]