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.

[参考译文] AFE4432:FIFO 行为和中断时序

Guru**** 2576215 points
Other Parts Discussed in Thread: AFE4432

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1574786/afe4432-fifo-behavior-and-interrupt-timing

部件号:AFE4432


工具/软件:

AFE4432 的配置。
 •内部时钟:250kHz
•LED 电流:100mA
•中断:为 FIFO 水线启用
•水印等级:119 个样本
•PRPCT:1707→预期 ODR≈75 Hz
•相数:4.
•计算出的 PRF:CLK_PRF = 250kHz/1707→149.97Hz≈PRF 周期≈6.668ms
•预期水线中断时序:12 PRFs× 6.668ms≈80ms
 
执行:  
配置并启用 AFE。
2.在 GPIO 上接收到 FIFO_RDY 中断。
3.每次中断时、从 FIFO 读取 120 个样本(360 字节)。
4.数据读取后,处理完成(在某些情况下)。
 
问题 1:中断时序不一致
我们有时会观察到 FIFO_RDY 中断:
•到达时间早于预期(例如,< 80ms)
•或晚于预期到达(例如~86ms)
为了捕获这一点、我们在固件中添加了调试日志、还使用逻辑分析仪监测中断引脚。 在 FIFO 读取和等待下一个中断之间不会执行任何额外任务、从而排除应用的延迟。
 
问题 2:延迟中断时出现意外的样本计数
一旦中断延迟、可用样本数将高于预期值(例如 127 或 128 而不是 120)、对于所有后续中断而言、该值是无限的。   
示例:
FIFO_RDY 到达 T1
2.可提供 128 个样本
3.我们只读取 120 个样本(以保持相位对齐)
4.在 t1 + 80ms 时、将触发下一个中断、再次触发 128 个样本可用;所有下一个中断都会发生这种情况。  

我们期望:
•8 个剩余样本+ 112 个新样本= 120→下一个中断触发
•因此、在下一次中断时、可用的采样计数应重置为 120、而不是保持为 128

您能否澄清一下:
•为什么数字保持在 128 而不是重置?
•总计达到 120(包括剩余)后、FIFO 中断不应该提前触发?
 
问题 1:导通时间中断后延迟读取
在某些情况下、由于其他系统优先级、我们无法在中断后立即读取 FIFO。 读取可能会在中断后 6-7ms 进行。

观察结果:
1.中断在 t1 处触发
2.读取在 t1 + 6–7ms 执行
3.此时有 132 个样本可供使用
4.我们只读取 120 个样本
5.下一个中断在 t1 +~73–74ms(即~80 - 6/7ms)时触发
6.在下一次中断时可获得 120 个样本

在这种情况下:
•考虑到在下一个 PRF 周期的活动部分中可能发生读取、样本是否仍然可靠?
•这是否会影响数据的完整性或对齐?
•您建议仅在深度睡眠窗口期间读取、还是在几毫秒内中断后读取仍然可以接受?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Tushar、

    由于 AFE4432 遵循保密协议、因此我们通过电子邮件继续进行此对话。 请在一天结束前给我回复您、并提供初步回复。

    此致、

    Payton