为了能够更改函数发生器压摆率、是否需要执行任何特殊操作?
我具有可成功设置 DAC0输出以生成正弦波的测试代码:
// First value (word) is the data, second value (byte) is the reg addr) SPI_DACWrite24_V2(0x0400, 0x03); // DAC-X-VOUT-CMP-CONFIG: Use VDD as reference SPI_DACWrite24_V2(0x0000, 0x05); // DAC-X-CMP-MODE-CONFIG: No hysteresis or window (default setting) SPI_DACWrite24_V2(0x840D, 0x06); /* DAC-X-FUNC-CONFIG: Clear DAC to mid scale Sine wave 1 LSB 1282 µs/step */ SPI_DACWrite24_V2(0x1249, 0x1F); // COMMON-CONFIG Register SPI_DACWrite24_V2(0x1100, 0x21); // COMMON-DAC-TRIG Register: Start function generator for DAC0 & DAC1
但是、如果我更改压摆时间并重新编程正弦波频率、则不会更新。 我必须切断电源并重新连接才能进行新设置。
同样、如果我保留上述初始代码、然后定期更新压摆率、我期望正弦波频率发生变化、但我看不到任何变化。
我已经尝试停止相关的函数发生器、甚至在设置新的转换率之前将函数发生器设置为"无输出"(而不是正弦)、但仍然看不到输出频率的任何更新。
压摆率更新函数示例:
const uint16_t DAC0_FUNC_CONFIG = 0x8400;
SPI_DACWrite24_V2(0x0100, 0x21); // STOP DAC0 function generator
SPI_DACWrite24_V2(0x800D, 0x06); // set DAC0 to NO function generator
uint16_t new_dacvalue = DAC0_FUNC_CONFIG | sine_slew;
SPI_DACWrite24_V2(new_dacvalue, 0x06);
SPI_DACWrite24_V2(0x840D, 0x06); // Set DAC0 to SINE wave again.
SPI_DACWrite24_V2(0x1100, 0x21); // restart DAC0 function generator
是否有(已知有效的)更改压摆率的过程?
在数据表中、我只能在第35页的底部找到关于改变转换率潜在问题的说明:"在输出转换操作期间、请勿写入 CODE-STEPX、SLEW-RATE-X 或 DAC-X-DATA。" 但这就是我为什么在更新转换率之前尝试停止函数发生器的原因。
提前感谢您的任何帮助。






