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.

TMS320F280025C: controlCARDs板卡在调试Lin作为SCI模式时发现波特率和文档上写的不一样

Part Number: TMS320F280025C
Other Parts Discussed in Thread: C2000WARE

采用官方历程目录C:\ti\c2000\C2000Ware_4_00_00_00\driverlib\f28002x\examples\lin下的

lin_ex2_sci_loopback

增加语句如下

GPIO_setPinConfig(DEVICE_GPIO_CFG_LINTXA);
GPIO_setPinConfig(DEVICE_GPIO_CFG_LINRXA);

LIN_disableIntLoopback(LINA_BASE);
LIN_setBaudRatePrescaler(LINA_BASE, (uint32_t)0x0000144, (uint16_t)0x0008);

其余不变,经过测试并不能正常工作,查看手册,手册上在此设置下波特率应为9600,而实际采用示波器抓取波形单次脉冲为0.000052s,波特率约为19230,误差有点大,将串口助手波特率改为19200通信无误,我想问一下,这个波特率异常的原因

  • 额,不知道你是根据手册什么地方计算的?我计算出来你的配置就是19200的波特率啊

    0x0000144 = 324U,0x0008 = 8U

    代入公式(SYSCLOCK) / ((P + 1 + M/16) * 16)得出的结果就是19201。

  • 手册名称

    TMS320F28002x Microcontrollers
    Technical Reference Manual

    版本bLiterature Number: SPRUIN7
    March 2020


    小标题24.2.1.3 SCI Baud Rate

    表号Table 24-1. P and M values for standard bit-rates(1)

    其中9600对应的就是p=324,m=8

  • 表格上的LIN Module Input Clock = 50 MHz,你看看会不会时钟不一样

  • 好的,我也发现了这一点,但由于我使用的是lin_ex2_sci_loopback和lin_ex3_sci_dma历程,而lin_ex3_sci_dma历程中在设置波特率的地方注释的是115200,选取参数是m=2,p=26,但是实际上并不是115200,而是115200*2,我又查看了别的lin历程发现,部分程序中确实有修改主频的部分,而在ex3中并没有修改主频,注释和程序互相矛盾

    所以特地来问一下,感谢您的解答

  • 感谢你的反馈!