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.

[参考译文] TMS320F2.8377万S:TMS320F2.8377万S

Guru**** 2487425 points
Other Parts Discussed in Thread: CONTROLSUITE, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/618977/tms320f28377s-tms320f28377s

部件号:TMS320F2.8377万S
线程中讨论的其他部件:controlSUITEC2000WARETMS320F2.8379万D

您好,

我尝试在 F2.8377万s和PC之间运行UART (SCI)接口。 我正在使用SCI-C (根据launchpad,它映射到引脚55和18)。 我使用FTDI转换器将串行连接转换为USB连接。 我在我的PC上启动了PuTTY会话(串行会话)(使用正确的波特率,起始位,停止位,奇偶校验位),并且能够在显示屏上看到一些垃圾数据(无论控制器何时发送数据)。 我无法理解此代码中的确切错误。 我修改了controlSUITE (TI)的代码以满足我的需要。  

代码如下:

#include "driverlib.h"
包含"device.h"

//
//定义
//
//定义自动波特率以使用自动波特率锁定功能
//#定义自动波特率

//
//全局
//
UINT16_t环计数器=0;

//
//主菜单
//
Void主(void)

UINT16_t已接收字符;
unsigned char *msg;

//
//配置PLL,禁用WD,启用外设时钟。
//
device_init();

//
//禁用引脚锁并启用内部上拉。
//
DEVICE_INITGPIO ();

//
// GPIO28是SCI Rx引脚。
//
GPIO _setMasterCore (62,GPIO核心_CPU1);
GPIO_setPinConfig (GPIO _62_SCIRXDC);
GPIO_setDirectionMode (62,GPIO_DIR_MODE_In);
GPIO _setPadConfig (62,GPIO PIN类型标准);
GPIO_setQualificationMode (62,GPIO _Qual_Async);

//
// GPIO29是SCI Tx引脚。
//
GPIO _setMasterCore (63,GPIO _CORE _CPU1);
GPIO_setPinConfig (GPIO _63_SCITXDC);
GPIO_setDirectionMode (63,GPIO_DIR_MODE_OUT);
GPIO_setPadConfig (63,GPIO PIN类型标准);
GPIO_setQualificationMode (63,GPIO _Qual_Async);

//
//初始化中断控制器和矢量表。
//
interrup_initModule();
interrupT_initVectorTable();

//
//初始化SCIA及其FIFO。
//
sci_performSoftwareReset(SCIC_base);

//
//为回声堆配置SCIA。
//
Sci_setConfig (SCIC_BASE,DEVICE_LSPCLK_FREQ,9600,(SCI_CONFIG_WLEN_8 |)
sci_config_stop_one |
sci_config_par_none);
Sci_resetChannels (SCIC_BASE);
SCI_resetRxFIFO (SCIC_BASE);
SCI_resetTxFIFO (SCIC_BASE);
SCI_clearInterruptStatus (SCIC_BASE,SCI_INT_TXFF | SCI_INT_RXFF);
sci_enableFIFO (scic_base);
sci_enableModule (scic_Base);
sci_performSoftwareReset(SCIC_base);

#ifdef自动波特
//
//执行自动波特锁。
// SCI期望'A'或'A'来锁定波特率。
//
SCI_lockAutobaud (SCIC_BASE);
#endif

//
//发送起始消息。
//
MSG ="\r\n\n\nHello World!\0";
Sci_writeCharArray (SCIC_BASE,(uint16_t*)msg,17);
MSG =“\r\n您将输入一个字符,DSP将回显它!\n\n";
Sci_writeCharArray (SCIC_BASE,(uint16_t*)msg,62);

对于(;;)

MSG ="\r\n输入一个字符:\0";
Sci_writeCharArray (SCIC_BASE,(uint16_t*)msg,22);

//
//从FIFO读取字符。
//
receivedChar = SCI_readCharBlockingFIFO (SCIC_BASE);

//
//回显字符。
//
MSG ="您已发送:\0";
Sci_writeCharArray (SCIC_BASE,(uint16_t*)msg,13);
SCI_writeCharBlockingFIFO (SCIC_Base,receivedChar);

//
//增加循环计数变量。
//
环计数器++;
}
}

如果有人告诉我这方面的错误。

谢谢!

Afwaan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否使用FTDI芯片? 板上有一个用于GPIO 28/29。 您是否尝试让这些人先工作?

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

    是的,我正在使用FTDI串行到USB分支。 我没有尝试在主板上使用FTDI芯片。 我将GPIO 62,63连接到FTDI中断板。 我能够发送和接收数据。 但我所看到的只是垃圾数据。 我是否做错了事?

    SparkFun USB到串行分路器- FT232RL

    以下是部件详细信息:www.sparkfun.com/.../1.2731万

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    它可能是您的波特率。 仔细检查以HBAUD和LBAUD编程的内容。 仔细检查基于低速外设时钟(LSPCLK)的MCU的波特率计算。

    此外,我会再次检查您是否拥有该项,首先使用sci echoback示例,然后让它首先与车载FTDI芯片配合使用。

    SAL
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的,我对FTDI有疑问。 我刚刚通过了LAUNCHTXL-F2.8377万S的设备引脚。 它没有列出我在多路复用选项中有GPIO28/29可用吗? 如何将DB9电缆连接到GPIO 28/29。 如果我的问题太傻了,请原谅我。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以通过FTDI芯片连接到GPIO 28/29以进行SCI通信,FTDI芯片连接到mini-USB连接器。 只需将USB电缆连接到mini-USB连接器,然后将其连接到PC。 您将在设备管理器中看到串行端口打开。

    SAL
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我尝试了,将miniUSB连接到PC。 我在设备管理器中看到XDS100类USB串行端口。 我从controlSUITE运行了示例echo返回sci示例。 屏幕上不显示任何内容(putty)。 我使用了正确的波特率等。是否有任何建议?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您应该使用GPIO 84/85。

    请尝试以下代码以配置您的GPIO。

    //
    // GPIO85是SCI Rx引脚。
    //
    GPIO _setMasterCore (85,GPIO _CORE _CPU1);
    GPIO_setPinConfig (GPIO _85_SCIRXDA);
    GPIO _setPadConfig (85,GPIO PIN类型标准);
    GPIO_setDirectionMode (85,GPIO_DIR_MODE_In);
    GPIO_setQualificationMode (85,GPIO _Qual_Async);

    //
    // GPIO84是SCI Tx引脚。
    //
    GPIO _setMasterCore (84,GPIO核心_CPU1);
    GPIO_setPinConfig (GPIO _84_SCITXDA);
    GPIO_setPadConfig (84,GPIO PIN类型标准);
    GPIO_setDirectionMode (84,GPIO_DIR_MODE_OUT);
    GPIO_setQualificationMode (84,GPIO _Qual_Async);

    请访问 e2e.ti.com/.../61.8663万

    SAL
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我对这一推杆一无所知。 我还使用SCI进行UART通信。 当我在PC上使用‘超级终端’来查看UART输出时,我必须发送ASCII代码,以获取我想在‘超级终端’中看到的数值。 但对于PuTTY,我不知道您是否需要发送ASCII代码。


    Mohammad Arifur Rahman
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    预安装的启动板程序工作正常,我可以看到串行数据传输。 我认为问题在于控制套件的示例代码。 波特率寄存器初始化出现问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请使用C2000Ware示例。

    谢谢!!
    SAL
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    但SCI的C2000Ware示例不起作用。 波特率寄存器初始化出现问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否正确设置了SCIHBAUD和SCILBAUD?

    因为我使用的是TMS320F2.8379万D。 LSPCLK为50 MHz。 如果SCI异步波特= 9600;
    然后BRR=(LSPCLK/(SCI Asynchronous Baud*8))-1 =650 (仅整数值)
    650= 0x028A

    然后SCIHBAUD=0x0002;
    SCILBAUD=0x008A;

    它是波特率寄存器设置。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢,现在它开始工作了。。。:)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很棒! 很高兴听到这个消息。

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

    感谢你能抽出时间。 我很感谢。