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.

[参考译文] TMS320F2.8377万S:CADCPPBxCONFIG CBCEN位不包含在C2000Ware/controlSUITE头文件中

Guru**** 2487425 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/631741/tms320f28377s-adcppbxconfig-cbcen-bit-not-included-in-c2000ware-controlsuite-header-files

部件号:TMS320F2.8377万S

大家好,

我正在开发交错转换器的FW,作为转换器设计的一部分,我正在使用电感器电流测量,并使用UC中的片上ADC对其进行数字化。  我已经设置了我的代码,使用后处理块来设置一个较低和较高的阈值,以便在电流消耗过大时关闭ePWM模块。  这还不错,但我想让故障条件能够被清除,而无需重启微控制器。  我创建了一个宏,允许我将TZCLR位发送到我正在使用的DCAEVT1/DCBEVT1标志。  我可以看到代码正在执行,但故障仍然存在。  我查看了ADC配置,并注意到在部件的技术参考手册中提到了CBCEN位,它允许后处理块自行清除ADCEVTSTAT位。  除了清除TZFLG位之外,我更愿意不必手动清除该位。 我正在使用8个ePWM模块,这需要大量额外开销。  我看了如何启用CBCEN功能,但我注意到,在提供用于参考的头文件中,忽略了此特定寄存器。  这是故意的,还是疏忽?  如果我修改头文件以允许对关联的ADC使用CBCEN位,它是否有效?  我只是想弄清楚我的选择是什么。  

此致,

Lance

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Lance,

    很遗憾,此设备没有此功能。 这是从略旧的F2837x器件系列添加到较新的F2.8004万x系列中的。

    当我们更新文档时,由于两个系列的文档存在(不正确)单一源数据问题,此位得以实现。 PPB方框图("ADC PPB方框图")也不正确,但已修复。 我将提交一个TT以修复注册定义。

    在此器件上,PPB实际上将产生脉冲输出,而不是锁定输出,因此只需清除ePWM中的故障即可(通过ADCEVTSTAT寄存器将读取发生跳闸的事件)。

    对于TZCLR写入不起作用,您的代码是否可能没有设置EALLOW,因此写保护会阻止写入产生影响? 您可以尝试将EALLOW添加到宏中,也可以尝试直接在“表达式”窗口中戳记位。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好,Devin,

    感谢您的快速响应。 我在设置TZCLR寄存器之前已经使用EALLOW。 我使用TZCLL.ALL = 0x0028同时清除DCAEVT1和DCBEVT1寄存器。 我不知道是不是这导致了问题。 为了使事情可靠地工作,我必须首先发送ADCEVTCLR PPBxTRIPHI和PPBxTRIPLO位,然后发送TZCLR位。 这样做很好,我只是希望PPB能够自我结算。 我检查了是否存在,仅凭TZCLR位就无法清除故障状态。 我正在以1MHz的速率运行我的循环,所以添加所有这些额外的命令并不理想,但它是有效的。

    Lance