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.

280049 DAC输出问题

Other Parts Discussed in Thread: C2000WARE

使用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。

请帮我找找原因,谢谢。

  • 查看该例程

    //! \b External \b Connections \n
    //! - When the DAC reference is set to VDAC, an external reference voltage
    //! must be applied to the VDAC pin. This can be accomplished by connecting a
    //! jumper wire from 3.3V to ADCINB3

    请问您是否有连接3.3V to ADCINB3?
  • 回复真快,我刚测试完。谢谢你的回复。给ADCINB3接山3.3V后,示波器能检测到对应的电压值了。

    新的问题出现了,修改DAC reference为DAC_REF_ADC_VREFHI,并为VREFHI(J5)接上3.3v后,示波器检测不到相应的值。

    还需要什么配置吗?

  • 请问您只修改这一个地方?使用的是TI开发板?示波器测试的是哪个引脚?

    我明天拿开发板测试一下
  • 是的,软件只修改这一个地方(DAC_REF_ADC_VREFHI);开发板上给VREF接了3.3V(J15),示波器测试的还是相同的脚,如下图:

  • 您可以不需要连接线,而只需修改下面的代码即可

    //
    // 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介绍(非官方),您可以看一下

    blog.csdn.net/.../105546322
  • 谢你的回复。昨天仔细看了一下相关章节说明,并进行了测试。总结一下:

    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。

  • 谢谢您的详细反馈!关于最后一个问题,我会在确认后给您回复
  • 抱歉,我前几天休假,未能正常给您回复

    我今天测试了一下, AnalogSubsysRegs.ANAREFCTL.bit.ANAREFASEL(内外部参考电压选择)的默认值为1

    能否给出您测试时的设置?

  • 我有测试了一次,和你的测试结果不一致。我使用CCS9.1,导入的TI历程版本为(未做任何修改):D:\ti\c2000\C2000Ware_3_01_00_00\driverlib\f28004x\examples\dac