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.
大家好、
以下是我在客户系统中遇到的一个错误:
问题:在客户使用 AMC1303对 SDFM 进行测试期间、他们注意到 SDFM 结果将会不时达到完整范围(~10分钟)。 但是、在测试期间系统功率级未通电。 因此不会出现过流。 在查看示波器时、我们也看不到任何连续1或0。
这里是一些测试和结果。
测试1:我建议客户使用 SDFM 比较器单元进行过流检测。
1) 1)当系统中实现了过流时、SDFM 比较器被置位、并且可以在 SDFM 数据寄存器中观察到正确的结果。
2) 2)当执行正常范围电流时、SDFM 比较器永远不会置位、但仍可以在 SDFM 数据寄存器中观察到过流。
测试2:怀疑这可能是与时序相关的问题、我们建议客户使用20Mhz AMC1303而不是原始10MHz 版本。 正如预期的那样、过流观察频率更高(小于1分钟)。 但是、在查看 SDdata 和 clk 输入时、我们看不到任何计时违规。
问题:
比较器滤波器和数据滤波器有何区别? 他们为什么会呈现不同的结果?
2、SDFM 有什么可能的解决方案来获得在数据流(连续0和1)上看不到的尖峰数据结果?
随附源代码。
此致、
此外、以下是8个 SDFM 通道的使用方式:
SDFM1:
CH1:Phase1电流
CH2:Phase2电流
CH3:Phase3电流
CH4:总线电流
SDFM2:
CH1:Phase1电压
CH2:Phase2 电压
CH3:Phase3 电压
CH4:总线 电压
意外的 SDFM 值只发生在 SDFM1中、而不发生在 SDFM2中。 客户已经测试了8个电路板和不同的 SD 调制器、但结果是相同的。 将附上您的意见。
此致、
Brian
Brian、
比较器滤波器和数据滤波器之间的主要差异
1) 1)比较器滤波器将低电平信号视为"0"、将高电平信号视为"1"。 因此、滤波器输出始终是无符号的、并且可以介于(0至32767)之间。 比较器滤波器的最大 OSR 设置为 COSR = 32。 比较器滤波器不能相对于 PWM 周期(SDSYNC)同步
数据滤波器将低电平信号视为"-1"、将高电平信号视为"1"。 因此、滤波器输出是有符号整数、可以介于(-16777215至16777216)之间。 数据滤波器的最大 OSR 设置为 DOSR = 256。数据滤波器可相对于 PWM 周期(SDSYNC)进行同步
2) 2)我首先想知道您是如何决定仅在数据滤波器上而不在比较器滤波器上出现过流情况的? 预期的数据滤波器输出是什么?您看到了什么?
您何时读取数据滤波器结果? 您是否在新的滤波器数据就绪中断上读取数据滤波器结果? (或)您正在使用一些计时器(CPU 计时器(或) PWM 计时器来计时读取数据滤波器结果?
您将哪些 GPIO 引脚用作 SDFM 引脚?您将使用哪些 GPIO 鉴定方案? (对于 SDFM、您使用异步(或)限定(3样本窗口)
对于我们的一些客户、我们发现他们的系统中的开关噪声会破坏 SDFM 时钟和数据引脚、从而导致这种意外结果。 在这种情况下、我们建议客户使用 GPIO_QUAL (3样本窗口)选项来缓解此类噪声问题对 SDFM 时钟和数据引脚的破坏。
此致、
曼诺伊
您好 、Manoj、
1.客户使用固定的 PWM 定时器读取 SDFM 结果。 由于它们没有用于 SDFM 的 PWM 同步、我们假设它们不需要等待数据就绪中断、以避免 PWM 同步后出现意外数据。
2.在固定的 PWM 中断中、客户读取 SDFM 结果、并快速判断结果是否在正常范围内。 否则、将设置一个错误标志。 通过执行此操作、可以不时在数据过滤器上观察到一些意外数据。 但比较器滤波器从未检测到超出范围的情况、这是实际情况。
开关噪声。 客户目前正在使用 GPIO 滤波器。 但客户认为、如果确实发生开关噪声、也应该能够在比较器滤波器上观察到过流。 此外、有线元件仅发生在电流采样通道(分流电阻器)上、而不是共享几乎相同原理图和 PCB 布局的导通电压采样上。
4、客户想弄清楚的主要问题是、是否有任何可能的原因会导致数据滤波器产生故障结果、但比较器不会产生故障结果?
此致、
Brian
Brian、
使用 PWM 计时器读取 SDFM 数据滤波器结果很棘手、可能导致您观察到的数据滤波器输出结果损坏。 如果您计划使用 PWM 计时器、则需要在读取数据滤波器结果之前读取数据确认标志寄存器位。 这将确保您不会读取错误的数据筛选结果。
您是否使用 GPIO_QUAL = 3样本 QUAL?
此致、
曼诺伊
您好、Manoj、
1.是的、客户正在使用3个样片。
2、这里还有一个需要确认 的问题:对于 SDFM、假设数据速率为10M、OSR 为256、那么结果为@ 10M/256、这是一个非常高的速度。
在这种情况下、ACK 标志是否也设置为@10M/256? 如果 ACK 标志被设置为如此高的速度、中断将始终触发、因为此速度远高于开关频率。
如果生成了数据 ACK、但未读取结果该怎么办? 它会保持设置吗?
此致、
Brian
Brian、
1) 1)相关知识
2) 2)是的、您将每10MHz/256获得一个新的滤波器数据
3)是的、每次您有新的滤波器数据时都会设置 ACK 标志位。 如果您没有读取滤波器结果并忽略以清除 ACK 位、则标志位将保持置位。
此致、
曼诺伊
此问题是否已解决? 我可以关闭此主题吗?
您好、Manoj、
感谢您的热情支持。 在读取结果之前、通过读取 ACK 标志的状态已解决了问题!
此致、
Brian