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.

[参考译文] TMS320F28379D:SCI/UART 通信问题

Guru**** 2470220 points
Other Parts Discussed in Thread: TMS320F28379D, C2000WARE, MSP430FR4133

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1473840/tms320f28379d-sci-uart-communication-issue

器件型号:TMS320F28379D
主题中讨论的其他器件: C2000WAREMSP430FR4133

工具与软件:

大家好!

我不熟悉 TI 微控制器、曾尝试确定 SCI/UART 通信。 我使用 CCS 对 TMS320F28379D 进行了编程。 我使用 SCIB 引脚18和19。
我附上了供您参考的代码。 我遇到的问题是、当我在示波器上检查波形时、它看起来是正确的、但8位数据被拆分为两个数据、显示了两个不同的值。
在此图中、我将发送0xAA、但在示波器上显示了两个不同的数据值。
我 尝试了 SCI 的示例代码、但无法获得所需的输出。
这里的问题是什么?

谢谢。此致、
Jidnyesh Jagtap




#include "driverlib.h"
#include "device.h"

void main(void)
{
    Device_init();
    Device_initGPIO();

    GPIO_setPinConfig(GPIO_18_SCITXDB); 
    GPIO_setPinConfig(GPIO_19_SCIRXDB); 

    GPIO_setDirectionMode(18, GPIO_DIR_MODE_OUT);
    GPIO_setDirectionMode(19, GPIO_DIR_MODE_IN);  

    GPIO_setPadConfig(18, GPIO_PIN_TYPE_STD);  
    GPIO_setPadConfig(19, GPIO_PIN_TYPE_STD);  

    GPIO_setPinConfig(GPIO_10_GPIO10); 
    GPIO_setDirectionMode(10, GPIO_DIR_MODE_OUT);
    GPIO_writePin(10, 0);

    SCI_performSoftwareReset(SCIB_BASE); 


    SCI_setConfig(SCIB_BASE, DEVICE_LSPCLK_FREQ, 9600,
                  (SCI_CONFIG_WLEN_8 | SCI_CONFIG_STOP_ONE | SCI_CONFIG_PAR_NONE)); 

    SCI_enableModule(SCIB_BASE);  
    SCI_enableFIFO(SCIB_BASE);   
    SCI_resetChannels(SCIB_BASE); 

    SCI_enableLoopback(SCIB_BASE);

    while (1)
    {
        GPIO_togglePin(10); 
        SCI_writeCharBlockingFIFO(SCIB_BASE, 0xAA); 
        DEVICE_DELAY_US(500000);
    }
}

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

    该波形对我来说看起来是正确的。

    由于数据是以 LSB 优先的方式传输的、因此您期望 Start、0、1、0、1 0、1、0、1、停止。 起始位为0、停止位为1。  

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

    是的、是这样。
    但问题是、即使波形看起来明显正确、但它被识别为2个不同的数据帧(如示波器图像所示)。 我无法理解为什么会发生这种情况。

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

    如果您参考的是 SCI 信号的示波器解码、即示波器上的 S1线迹、那么我不知道示波器为什么会这么做。 也许需要对其进行配置、才能正确解码波形。

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

    我已经按照指南中的说明对其进行了配置、但我将进行更深入的探讨。
    如果可能、您能否查看我的代码并告诉我是否正确?
    谢谢 Gus!

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

    我建议您查看 C2000ware 中提供的 drivelib 示例。

    C:\ti\c2000\C2000Ware_5_02_00_00\driverlib\f2837xd\examples\cpu1\sci  

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

    Gus、您好!
    我在不同的 TI 微控制器(MSP430FR4133)上尝试了同样的传输、因为在示波器上接收到的数据是正确且准确的。
    我还尝试在数据绘图仪上分析和绘制数据、以便在其中绘制准确的数据。
    我认为问题不出在示波器配置上。 TMS320F28379D 微控制器上还有什么问题?

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

    尊敬的 Jidnyesh:

    根据我的原始响应、您最初发布的示波器波形对我来说看起来是正确的。 我不知道您的示波器为什么将这解释为单独的值。 或许、如果您可以在相同数据传输下对 MSP 波形和 C2000波形进行比较、我们就会发现波形中的一些差异?