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.
使用TI 例程D:\ti\c2000\C2000Ware_3_01_00_00\driverlib\f28004x\examples\dac buffdac_ex1_enable,
运行在TI的“C2000™ Piccolo™ F28004x Series LaunchPad™ Development Kit ”上。利用示波器测测量DACA_OUT pin对GND的电压为0。
CCS V9.1,Debug下查看寄存器值为2048,应该对应1.65V才正常。手动修改dacVal的值,示波器测量值依然为0V。
请帮我找找原因,谢谢。
您可以不需要连接线,而只需修改下面的代码即可
// // Configure DAC - Setup the reference voltage and output value for the DAC // void configureDAC(void) { ASysCtl_setAnalogReferenceInternal(ASYSCTL_VREFHIA); ASysCtl_setAnalogReference2P5(ASYSCTL_VREFHIA); // // Set VDAC as the DAC reference voltage. // Edit here to use ADC VREF as the reference voltage. // //DAC_setReferenceVoltage(DACA_BASE, DAC_REF_VDAC); DAC_setReferenceVoltage(DACA_BASE, DAC_REF_ADC_VREFHI); // // Enable the DAC output // DAC_enableOutput(DACA_BASE); // // Set the DAC shadow output to 0 // DAC_setShadowValue(DACA_BASE, 0); // // Delay for buffered DAC to power up // DEVICE_DELAY_US(10); }
谢你的回复。昨天仔细看了一下相关章节说明,并进行了测试。总结一下:
DAC的参考电压配置分3步,
1、设定DacaRegs.DACCTL.DACREFSEL寄存器选择参考电压输入:0->VDAC (需要外接3.3v 电压到ADCINB3引脚) 1->VREFHI;
2、如果第一步选择了1->VREFHI, 设定AnalogSubsysRegs.ANAREFCTL.bit.ANAREFASEL寄存器:0->内部参考电压 1->外部参考电压(需要外接3.3v 电压到VREFHIA,VREFHIB/VREFHIC引脚);
3、如果第二部选择了0->内部参考电压,设定AnalogSubsysRegs.ANAREFCTL.bit.ANAREFA2P5SEL寄存器:0->1.65v 1->2.5v
下面列举3种配置的CCS debug下的配置,利用示波器都可以检测到相应的输出电压值:
1、DacaRegs.DACCTL.DACREFSEL = VDAC(外接3.3v 电压到ADCINB3引脚)
2、DacaRegs.DACCTL.DACREFSEL = VREFHI,AnalogSubsysRegs.ANAREFCTL.bit.ANAREFASEL = 外部参考电压(外接3.3v 电压到VREFHIA,VREFHIB/VREFHIC引脚);
3、DacaRegs.DACCTL.DACREFSEL = VREFHI,AnalogSubsysRegs.ANAREFCTL.bit.ANAREFASEL = 内部参考电压,设定AnalogSubsysRegs.ANAREFCTL.bit.ANAREFA2P5SEL = 2.5v
测试过程中还遇到一个问题,数据手册上说寄存器 AnalogSubsysRegs.ANAREFCTL.bit.ANAREFASEL(内外部参考电压选择)的默认值为1,测试发现上电默认值为0。