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.

[参考译文] TMS320F28388D:最大 SCI 波特率

Guru**** 2511415 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1551541/tms320f28388d-maximum-sci-baudrate

器件型号:TMS320F28388D


工具/软件:

您好:

我可以看到 SCI 中的最大波特率可以是 LSPCLK/16、这是正确的吗?

如果我查看示例代码、我们以 ex2_loopback_interrupt 示例进行操作。

在本例中、我可以看到定义如下所示:

define  DEVICE_AUXSRC_FREQ  25000000

#define  DEVICE_SYSCLK_FREQ   (DEVICE_AUXSRC_FREQ*32)/(2*2*1)

#define DEVICE_LSPCLK_FREQ (DEVICE_SYSCLK_FREQ/4)

所以根据这个定义,我发现 LSPCLK 是 50,000,000 所以最大波特率是 50000000/16 = 3,125,000?

我尝试了它,它的工作正常。

但有没有改变的东西,走了一个略高于 3,125,000 吗?

我尝试将这条线更改为:

#define DEVICE_LSPCLK_FREQ (DEVICE_SYSCLK_FREQ)

并且使用波特率 6250000、但这不起作用。

它能以某种方式实现吗?

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

    您好:

    正确、SCI 的最大波特率为 LSPCLK/16、如器件 TRM 中所述:

    如果您想使用 3,125,000 以上的波特率、则需要更改 LSPCLK 频率。 这可以通过修改 LOSPCP 寄存器(LSPCLKDIV 寄存器字段)中的 LSP 时钟分频器来实现。

    现在、您的 SYSCLK 为 200MHz、但 LSPCLK 为 50MHz、因为 LSPCLKDIV 为/4(这是默认分频器值)、从而使 SCI 的最大波特率为 3,125,000。

    但是、例如、如果器件时钟 SYSCLK 为 200MHz、则将 LSPCLKDIV 更改为/1。 这将导致 LSPCLK 为 200MHz、这意味着最大 200MHz 波特率为 SCI/16 = 12,500,000。 因此、本质上、您只需调整 LSPCLKDIV 即可实现更高的波特率。

    此致、

    Allison