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中的CMPSS模块中的DAC参考电压配置成VDAC,发现无法生效

CMPSS配置中COMPDACCTL.SELREF = 1;即比较器DAC采用VDAC引脚的输入电压作为参考电压

通过信号发生器在比较器输入引脚注入电压测试发现比较器输出状态变化的电压并不是与VDAC引脚的电压相对应的,而是与VDDA电压对应,改变了VDAC引脚电压由3.2V到2.1V,现象还是一样,且通过仿真器查看COMPDACCTL.SELREF 位确定是1,

勘误表没有这个问题,这是芯片的BUG吗,还是有其他地方需要进行配置或注意的地方?谢谢

  • 下面代码供参考 有没有加 EALLOW;和 EDIS; ???
    // InitCMPSS - Initialize CMPSS1 and configure settings
    //
    void InitCMPSS(void)
    {
    EALLOW;

    //
    //Enable CMPSS
    //
    Cmpss1Regs.COMPCTL.bit.COMPDACE = 1;

    //
    //NEG signal comes from DAC
    //
    Cmpss1Regs.COMPCTL.bit.COMPHSOURCE = NEGIN_DAC;

    //
    //Use VDDA as the reference for DAC
    //
    Cmpss1Regs.COMPDACCTL.bit.SELREF = REFERENCE_VDDA;

    //
    //Set DAC to midpoint for arbitrary reference
    //
    Cmpss1Regs.DACHVALS.bit.DACVAL = 2048;

    //
    // Configure CTRIPOUT path
    // Asynch output feeds CTRIPH and CTRIPOUTH
    //
    Cmpss1Regs.COMPCTL.bit.CTRIPHSEL = CTRIP_ASYNCH;
    Cmpss1Regs.COMPCTL.bit.CTRIPOUTHSEL = CTRIP_ASYNCH;

    //
    // Configure CTRIPOUTH output pin
    // Configure OUTPUTXBAR3 to be CTRIPOUT1H
    //
    OutputXbarRegs.OUTPUT3MUX0TO15CFG.bit.MUX0 = 0;

    //
    //Enable OUTPUTXBAR3 Mux for Output
    //
    OutputXbarRegs.OUTPUT3MUXENABLE.bit.MUX0 = 1;
    EDIS;
    }
  • 加了 EALLOW和 EDIS;
    其他配置一样的,只是将Cmpss1Regs.COMPDACCTL.bit.SELREF = REFERENCE_VDDA;
    改成Cmpss1Regs.COMPDACCTL.bit.SELREF = REFERENCE_VDAC;且查看寄存器已经修改成功,但实际上还是以VDDA作为参考在生效,VDAC无效,我将VDAC的输入电压改变了几个值,都是一样的结果
  • 有人遇到过这种情况没有,来个工作人员解释下也行