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.
您好、香榭丽舍
我在 F28027 Launchpad 上进行了测试、如果 PC (主机)波特率设置为 SCI 波特率的整数倍、例如主机为115200、F28027 SCI 为9600 (115200/9600 = 12)、则 SCI 帧错误位将很少设置、 也就是说、 在大多数情况下、没有帧错误、也没有任何其他 SCI 错误、同时接收到的错误。
请建议您如何在不设置任何错误位的情况下识别此类错误吗? 谢谢!
此致、
Linda
Linda、
SCI 模块在 SCICLK 周期采样(每个位时间内8个采样)。 如果它看到4个连续的低电平值、那么它会检测到一个起始位。 除非检测到起始位、否则无法发生帧错误。
我想我要说的是:由于您的数据比 SCICLK 快得多、因此对哪个值进行采样很可能是随机的...采样值不是来自同一条消息。 如果 SCI 碰巧对4个连续的低电平值进行采样、则它会检测到一个开始位、收集一些垃圾数据、并且可能错过了停止位、从而导致帧错误位被置位。 我预计这将发生在 P (0)^4、其中 P (0)是在任何给定时间发生0的概率。 如果您发送的数据有很多1或 消息之间有很长的时间、那么我希望这种情况不会发生。
您是否考虑使用自动波特率检测?
此致、
Cody
Linda、
[引用用户="Linda Zhang84708"]
关于此问题、客户无法接受使用自动波特率检测、您是否愿意建议是否可以使用其他软件错误检测方法?
[/报价]
当使用 UART 协议时、由用户来定义波特率设置。 SCI 模块能够检测消息的波特率是否太慢、但 不能检测消息的波特率是否太快。 例如、为了帮助用户检测这些问题、存在多个标志"帧错误"和"中断检测"。 然后由应用程序代码来解决问题、我们提供了自动波特功能来帮助用户确定正确的波特率、但这需要发送器发送已知值。
我不知道有什么好的软件解决方案、但是我认为可以使用 eCAP 模块观察传入的数据并确定正确的波特率。 但是、这仍然需要发送器发送已知信号、这与自动波特率检测非常相似。
结论:检测波特率配置过快的发送器的方法不好。 用户应确保不会发生这种情况、或者开发一种定期检查 波特率是否配置错误的解决方案。
此致、
Cody
Linda、
我想首先指出的是、这不是一个仅限于软件的修复。 这将需要一些外部硬件并由客户进行验证。
但是、我们没有这方面的 controlSUITE 示例、因为它不是标准用例 \device_support\f28m35x\V210\F28M35x_examples_Control\ECAP_CAPTURE_PWM 应向您展示如何设置 eCAP 模块。
UART 不适用于此类错误检测、如果客户需要此类错误检测、则 SPI 或其他同步协议可能更适合他们。
希望这对您有所帮助、
Cody