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.

[参考译文] TMS320F280045:将 LIN 配置为 SCI

Guru**** 2521760 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1050713/tms320f280045-configure-lin-as-sci

器件型号:TMS320F280045
主题中讨论的其他器件:C2000WARE

尊敬的团队:

根据以下配置、我的客户使用 Lin 端口作为 SCI 功能。 在100MHz 频率下测试 SYSCLK 时钟时、该引脚没有数据、示波器无法看到波形。

配置是否有问题?

CpuSysRegs.PCLKCR19.bit.LIN_A = 1;

// LIN
Drv_GPIO_SetupPinMux(33, GPIO_MUX_CPU1, 6);//LIN-A RX
Drv_GPIO_SetupPinOptions(33, GPIO_INPUT, (GPIO_PULLUP + GPIO_ASYNC));

Drv_GPIO_SetupPinMux(58, GPIO_MUX_CPU1, 9);//LIN-A TX
Drv_GPIO_SetupPinOptions(58, GPIO_OUTPUT, GPIO_PULLUP);

//Allow write to protected registers
EALLOW;
LinaRegs.SCIGCR0.bit.RESET = 0; //Into reset
LinaRegs.SCIGCR0.bit.RESET = 1; //Out of reset
LinaRegs.SCIGCR1.bit.SWnRST = 0; //Into software reset

//SCI Configurations
LinaRegs.SCIGCR1.bit.COMMMODE = 0; //Idle-Line Mode
LinaRegs.SCIGCR1.bit.TIMINGMODE = 1; //Asynchronous Timing
LinaRegs.SCIGCR1.bit.PARITYENA = 1; //Parity enabled. A parity bit is generated during transmission and is expected during reception
LinaRegs.SCIGCR1.bit.PARITY = 0; //Odd Parity
LinaRegs.SCIGCR1.bit.STOP = 0; //One Stop Bit
LinaRegs.SCIGCR1.bit.CLK_MASTER = 1; //Enable SCI Clock
LinaRegs.SCIGCR1.bit.LINMODE = 0; //SCI Mode
LinaRegs.SCIGCR1.bit.SLEEP = 0; //Ensure Out of Sleep
LinaRegs.SCIGCR1.bit.MBUFMODE = 1; //The multi-buffer mode is enabled.
LinaRegs.SCIGCR1.bit.LOOPBACK = 0; //External Loopback 0
LinaRegs.SCIGCR1.bit.CONT = 1; //Continue on Suspend

//Set baudrate
LinaRegs.BRSR.bit.M = 8;
LinaRegs.BRSR.bit.SCI_LIN_PSL = 324; //Baud = 9600bps(9600bps)
LinaRegs.BRSR.bit.SCI_LIN_PSH = 0;

LinaRegs.SCIGCR1.bit.RXENA = 1; //Enable RX
LinaRegs.SCIGCR1.bit.TXENA = 1; //Enable TX

LinaRegs.SCIPIO0.bit.RXFUNC = 1; // configure the LINRX and LINTX pins for SCI
LinaRegs.SCIPIO0.bit.TXFUNC = 1;

//Ensure IODFT is disabled
LinaRegs.IODFTCTRL.bit.IODFTENA = 0x0;
//Set transmission length
LinaRegs.SCIFORMAT.bit.CHAR = 7; //Eight bits
LinaRegs.SCIFORMAT.bit.LENGTH = 0; //4 byte 3


LinaRegs.SCIGCR1.bit.SWnRST = 1; //bring out of software reset
//Disable write to protected registers
EDIS;

此致

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

    绿色环保、

    客户是否尝试过 C2000Ware 示例?

    C:\ti\c2000Ware_3_01_00_00\driverlib\f28004x\examples\LIN\LIN_ex2_sci_loopback.c

    此致、

    Nirav