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.
您好、查姆斯、
如果我们尝试读取 RX FIFO 数据、并且在平均时间 RX 移位寄存器将数据传输到 SCIRXBUF 中。
我们是否可以读取刚刚从移位寄存器中移动的数据、而不是 FIFO 中的数据?
此致、
Luke
您好、Luke、
感谢您的提问! 当您从缓冲区(移位寄存器)中读取数据时、它始终获取先入数据。 当您读取缓冲区时到达的所有其他数据仍在缓冲区中等待。
无法直接读取其他 FIFO 位置、因此绝不能意外读取刚刚移入 FIFO 的数据。 您将始终从缓冲区中读取稳定数据。
此致、
Vince
Vince、
根据我的理解、当我们启用 FIFO 模式时、错误位 SCIRXST.bit.FE 和 SCIRXST.bit.FE 仍然有效、并且将与移位寄存器数据一起保存到 FIFO 中。
然后、我们可以使用 SCIRXBUF 读取 FIFO 中的数据、检查 SCIFFFE 和 SCIFFPE 位以了解在接收到该字时发生了什么类型的错误、我的理解是否正确?
Luke
您好、Luke、
您回答正确! 当错误发生在 FIFO 中时、SCIFFFE 和 SCIFFPE 位被置位、而不仅仅是当你从 SCIRXBUF 中读取时。 因此、它将在收到您提到的字时发生。
此致、
Vince
尊敬的 Vince:
根据 TRM、FE 和 PE 错误位可通过 SW 复位或系统复位来复位。 因此、当错误发生且用户不执行软件复位时、FE 和 PE 错误位将与 RX 移位寄存器中的数据一起保存到 FIFO 中、这是正确的吗?
因为接收 FIFO 寄存器需要保存 FE 和 PE 错误位、所以有10位宽的寄存器、对吧?
此致、
Luke
您好、Luke、
为了避免混淆、我想澄清一下、有两组不同的位:
Edit+Correction:能够快速确认 SCIFFFE 和 SCIFFPE 位是否按字符存储在 FIFO 中、因此您的语句中是正确的:
[引用 userid="114524" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1050480/tms320f28377d-read-sci-fifo/3888524 #3888524"]因为接收 FIFO 寄存器需要保存 FE 和 PE 错误位,所以有10位宽的寄存器,对吗?此致、
Vince
尊敬的 Vince:
以下是我的理解、如果有任何问题、请纠正。
即使在 FIFO 模式下、SCIRXST 的 FE 和 PE 位仍然工作、这意味着当组帧错误时 SCI 模块设置 FE 位、当奇偶校验错误时设置 PE 位、那么这两个位将与 RX 移位寄存器中的数据一起保存在 FIFO 中、这意味着、
T1:WORD1已接收-->将 word1、Fe1和 PE1保存到 FIFO1中。
t2:wordc2 received -->将 wordc2、FE2和 PE2保存到 FIFO2中。
t3:接收到 wordc3 ->将 wordc3、FE3和 PE3保存到 FIFO3.... 等等。
当客户使用 SCIRXBUF 读出 FIFO 数据时、首先读出 FIFO1、这意味着 SAR 字段为 word1、SCIFFFE 为 Fe1、SCIFFPE 为 PE1、如果客户再次读出 SCIRXBUF、则会读出 FIFO2、然后读出 FIFO3等。
在 FIFO 模式下、SCI 将数据保存到 FIFO 中、当接收到字数据时、SCIFFFE 和 SCIFFPE 是错误位(状态)、这就是 RX FIFO 寄存器为10位宽的原因。
我的理解是否正确?
此致、
Luke
您好、Luke、
您的陈述似乎正确! 如果您有任何后续问题、请告诉我。
此致、
Vince
Vince、
根据您提供的 E2E 主题、客户希望在 FIFO 模式下清除 SCIFFFE 和 SCIFFPE 位。
我不太明白这一点。 如果我们说 SCIFFFE 和 SCIFFPE 位来自 FE 和 PE 位、用于指示在 FIFO 模式下接收到数据字时的错误状态、客户不需要清除这两个位、它是否正确?
此致、
Luke
您好、Luke、
我认为客户只是想从这些位清除错误状态、而这相对不必要。 我将验证这一点、请在本周结束前收到回复。
此致、
Vince
您好、Luke、
在与设计讨论之后、在大多数情况下、不需要清除 SCIFFFE/SCIFFPE 位、除非您出于任何原因不希望设置这些错误位。
由于 FE/PE 位提供相同的信息、因此您可以利用这些位。
此致、
Vince
Vince、
我看到、感谢您提供的所有详细信息。
此致、
Luke