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.

TMS320F280025: CMPSS框图逻辑设计是不是有问题?

Part Number: TMS320F280025

以上图中比较器H为例,如果HLATCHCLR为1,那么经过或门后这个信号会到D触发器的R脚,以及SR触发器的R脚,这会有什么结果?

假设比较器用于过流检测和保护,如果持续发生过流,则ASYNCH、SYNCH和COMPHSTS都为0,还能起到过流保护作用吗?

HLATCHCLR设计的本意应该是用于清除SR触发器的锁存输出,而不应该连接到D触发器的R端,导致同步和异步比较输出信号因为

这个CLR信号被强制处于无效状态(即使真的发生了过流),这是非常危险的。

实际测试也是这样:

H比较器 +端信号 1.20V,DAC输出1400(1.13V),这里顺便说一句,HLATCHCLR似乎不起作用,写1会被自动清零,所以用了HSYNCCLREN位,效果是相同的。

正常OR门输入为0时,H比较器输出为高电平1(1.20>1.12)。如果把HSYNCCLREN位置1,OR门输出为1,导致D触发器、数字滤波器以及SR触发器的RESET端都是1了,结果是ASYNCH、SYNCH以及

COMPHSTS都变成了0,如果这个1.2V是实时电流信号,这实际上就强制让过流保护处于失效状态。

  • 另外:请回复一下HLATCHCLR位怎么写1不成功?测试时是在连接了仿真器时直接对寄存器位赋值,总是被立即清零。

  • 先回答一下你这个问题:

    请回复一下HLATCHCLR位怎么写1不成功?测试时是在连接了仿真器时直接对寄存器位赋值,总是被立即清零。

    看一下HLATCHCLR位的属性:

    spruin7a_TMS320F28002x Real-Time Microcontrollers Technical Reference Manual (Rev. A) 第168216.7.2.4 COMPSTSCLR Register (Offset = 3h) [reset = 0h]

    再看一下我之前对w1s的解释:

    https://e2echina.ti.com/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/290254/tms320f28388d-r-wsonce-r-w1s

    你应该查看 COMPSTS[COMPHLATCH] 来检查有没有赋值成功。这一点从你帖出来的框图也能看出来:

    当对 COMPSTSCLR[HLATCHCLR] 写入1之后,便会清零 COMPSTS[COMPHLATCH],之后 COMPSTSCLR[HLATCHCLR] 便又被重置为0,等待之后的清除写入操作。

    这也是符合SR触发器的特性的。我们结合上图来看,当 COMPSTSCLR[HLATCHCLR] 被写入之后,或门输出为1,重置D触发器以及D触发器之后的数字滤波、便输出了0到SR触发器Set,另外也直接输出了1到SR触发器Reset,使SR触发器输出0,即清除了 COMPSTS[COMPHLATCH] 状态位。

    试想一下如果在对 COMPSTSCLR[HLATCHCLR] 写入1之后,该寄存器位一直为1、始终不被清0会出现什么问题?当前面的D触发器因为其它情况被触发时,Set便和Reset同时为1,这种情况是SR触发器应该避免的。

    --

    剩下的问题我需要一些时间来看一下。

  • 以上图中比较器H为例,如果HLATCHCLR为1,那么经过或门后这个信号会到D触发器的R脚,以及SR触发器的R脚,这会有什么结果?

    这一点我在上一条回复中做出了说明;

    假设比较器用于过流检测和保护,如果持续发生过流,则ASYNCH、SYNCH和COMPHSTS都为0,还能起到过流保护作用吗?

    HLATCHCLR设计的本意应该是用于清除SR触发器的锁存输出,而不应该连接到D触发器的R端,导致同步和异步比较输出信号因为

    ASYNCHSYNCHCOMPHSTS 以及 COMPHLATCH 这四个信号,经过多路信号复用器控制,选择输出为 CTRIPH 以及 CTRIPOUTH。其中 COMPCTL[CTRIPHSEL] 控制CTRIPHCOMPCTL[CTRIPOUTHSEL] 控制 CTRIPOUTH

    这四个信号是对 比较器 的输出做了不同处理。ASYNCH 是将 比较器 的结果直接输出;SYNCH 通过 D触发器比较器 输出的结果和时钟对齐,所以是同步输出;D触发器 的输出经过 数字滤波 后,只有信号维持一定的设定时间之后,才会输出;之后的 SR触发器 将输出进一步的锁存,只要 Reset 信号没到,输出便会一直保持之前的状态。

    这里顺便说一句,HLATCHCLR似乎不起作用,写1会被自动清零,所以用了HSYNCCLREN位,效果是相同的。

    COMPSTSCLR[HSYNCCLREN] 只是用来选择 多路复用器 输出到 或门 的信号是 EPWMSYNCPER 还是 EPWMBLANK

    这实际上就强制让过流保护处于失效状态。

    你要明确一点,CLR(clear)就是用来清状态的。所以不存在你所谓的失效状态。

    如果把HSYNCCLREN位置1,OR门输出为1,导致D触发器、数字滤波器以及SR触发器的RESET端都是1了,结果是ASYNCH、SYNCH以及

    COMPHSTS都变成了0

    ASYNCH 无论如何是不受这个信号影响的;COMPCTL[ASYNCHEN] 使能时,最终的 High路输出3(其实表示的就是COMPHLATCH) 也是不受CLR影响的。

    --

    综上所述,没有任何问题。你自己再捋一捋。

  • 你还有什么不明白的地方吗?