在对使用MSP430i2021微控制器的主板上的UART通信故障进行故障排除时,我发现MSP上的固定频率DCO实际上以大约11.86 MHz而不是数据表指定的16.384 MHz运行。 有什么想法会导致这种情况?
我一直在测试的UART代码非常基本(尝试了基本的广播和回声程序)。 使用示波器诊断问题时,我可以看到UART波形位看起来正确,改变波特率可以适当地缩放波形,但每个位的持续时间都比应该的要慢。 然后我将SMCLK设置为DCO (即1的除数)并将其输出到pin WFP 1.1 上。 在连接了内窥镜之后,我意识到DCO实际上运行在大约11.86 MHz (参见下面的内窥镜图像)。 调整寄存器以根据此时钟频率设置波特率会导致成功的UART通信。
我想知道,究竟是甚么原因才会导致《设计条例》出现这样的差异。 我正在使用DCO的内部电阻器模式,因此我已根据数据表建议将ROSC与AVSS绑定。 我知道有一个校准寄存器CSIRFCAL,所以我想知道这是否是导致DCO变慢的原因。 调试时,我看到此寄存器读数为0。 我是否需要执行某种频率校准? 如果是,我该怎么做?
请告诉我我可以如何解决此问题。 谢谢!
