This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DAC80501: 使用spi协议不能输出

Part Number: DAC80501

使用spi协议,模式3,时钟线空闲为高电平,下降沿采集。

可以通过REF_PWDWN位控制VREFIO的电平输出,

但是VOUT没有输出。

代码如下:

void dac_80501_init()
{
DACx0501_Sync_t dac_sync = {0};
DACx0501_Config_t dac_cofig = {0};
DACx0501_Gain_t dac_gain = {0};
DACx0501_Trigger_t dac_trigger = {0};
DACx0501_DACReg_t dac_dacreg = {0};

dac_trigger.SOFT_RESET = 10; // 当设置为保留码A(1010)时,该位复位设备到默认状态。这些位是自我复位的。
dac_trigger.LDAC = 0; // 将此位设置为1,以同步模式同步加载DAC,此位是自复位。
dac_send_data(DACx0501_TRIGGER, dac_trigger.Trigger);

dac_sync.DAC_SYNC_EN = 0; // 1 同步模式 0异步模式
dac_send_data(DACx0501_SYNC, dac_sync.Sync); //2

dac_cofig.DAC_PWDWN = 0; // 1 禁用内部引用
dac_cofig.REF_PWDWN = 0; // 1 DAC处于下电模式,DAC输出通过1-kΩ内部电阻连接到GND。
dac_send_data(DACx0501_CONFIG, dac_cofig.Config);

dac_gain.BUFF_GAIN = 1; // 1 对应DAC的缓冲放大器增益为2。0 对应DAC的缓冲放大器增益为1。
dac_gain.REF_DIV = 1; // 1 参考电压内部除以2的因数。0 基准电压不受影响。
dac_send_data(DACx0501_GAIN, dac_gain.Gain);

dac_dacreg.DAC80501_DATA = 0x00FF;
dac_send_data(DACx0501_DAC_DATA, dac_dacreg.Data);

dac_trigger.LDAC = 1; // 将此位设置为1,以同步模式同步加载DAC,此位是自复位。
dac_send_data(DACx0501_TRIGGER, dac_trigger.Trigger);
}