对于 DAC81404、我设法使用 Arduino Uno 来配置和控制其电压输出。
这是 DAC 设置的代码。
// Chip Select pinMode(DAC_SS_PIN, OUTPUT); digitalWrite(DAC_SS_PIN, HIGH); // DAC Reset pinMode(DAC_RESET_PIN, OUTPUT); digitalWrite(DAC_RESET_PIN, HIGH); /*** *** This delay is very important !!! *** ***/ delay(100); // Write write_reg(0x03, 0x04); // SPICONFIG: DEV-PWDWN=0 write_reg(0x04, 0x0); // GENCONFIG: REF-PWDWN=0 write_reg(0x09, 0x0); // DACPWDWN: DACx-PWDWN=0, x={A,B,C,D} write_reg(0x0A, 0x02); // DACx-RANGE=0b0101, i.e. +/-5V
我使用 了 WRITE_reg (0x10,(I)%65535);// DAC-A 来调整通道 A 的电压输出。
但是、当我尝试使用 STM32 G431电路板时、我无法使 DAC 正常工作。
我已使用 PicoScope 示波器记录 Uno 和 STM32板的 SPI 波形、如下所示:
Uno SPI 波
G431 SPI 波
如果仔细观察、G431信号比 Uno 好、因为对于 Uno、CS 中存在尖峰。
对于 Uno、每个字节之间存在一些差异;但是对于 G431、则没有。 差距很重要吗?