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.

TMS320F28376S: Setting GPIO64 to SCIRXDA pin does not enable SCI functionality

Part Number: TMS320F28376S
Other Parts Discussed in Thread: C2000WARE, SYSCONFIG

Tool/software:

Hello, 

We are having big problems with the SCIA receive pin on our DSP. 
I set the pin as a SCIRXDA pin using the driverlib functionality below:

    GPIO_setMasterCore(64, GPIO_CORE_CPU1);
    GPIO_setPinConfig(GPIO_64_SCIRXDA);
    GPIO_setDirectionMode(64, GPIO_DIR_MODE_IN);
    GPIO_setPadConfig(64, GPIO_PIN_TYPE_STD);
    GPIO_setQualificationMode(64, GPIO_QUAL_ASYNC);

And it looks like the GPIO registers are showing the correct mux configuration. However, even with zero volts input, there are no receiver errors/break detects flagged. Sending data to the receive pin does nothing, no data in the FIFO. We copied the interrupt service routine from SCIC which we know to be working, but nothing. SCIC works, SCIA does not. 

I have also put a GPIO_readPin(GPIO64) function in a while loop to check that the GPIO is changing state, and the counter registers millions of toggles as expected. 

But still, nothing at all happens in the SCIA Regs. 

What is happening here? Why does only one of our SCI ports work?

Best regards,
JMH


  • Hi JMH,

    So I take it you verified that GPyGMUXn and GPyMUXn are both set correctly?

    Can you try testing an internal loopback example with SCIA (internal loopback ties RX and TX together internally) to verify your SCI and send/receive as expected? Perhaps try this with the default GPIO28/29 if you can, and then alter the GPIOs to use GPIO64 for RX as you are needing. We have some loopback examples you can use straight from C2000ware: C:\ti\c2000\C2000Ware_5_03_00_00\driverlib\f2837xs\examples\cpu1\sci.

    Best Regards,

    Allison

  • Hi Alison, 

    Yes, I checked the regs for the GPIO and they are set as expected for SCIA through the GPIO_setPinConfig function. That’s all working. We can’t use the other GPIOs as they are dedicated to other parts of the system. I can try loopback mode tomorrow, but I’ve copied the set up of the GPIO from that file, and got the same result. So there seems to be an issue elsewhere, in my opinion. 

    Maybe you could try on your end launching the driverlib example but changing to GPIO64 instead, to see if you have an issue. 

    best regards, 

    JMH

  • Hi JMH,

    Were you able to try loopback mode? I'll try testing this as well.

    Best Regards,

    Allison

  • Hi JHM, 

    Just to update, I tested the sci_ex1_loopback example using GPIO64 and it ran successfully. Please let me know if you were able to utilize loopback mode to test as well. 

    The example utilizes our sysconfig GUI as well- feel free to check your configurations with the code auto-generated in that project by SysConfig (board.c, board.h etc). In case you were curious, this is the board.c code it generated for the SCI GPIOs:

    Best Regards,

    Allison