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: GPIO Signal Mirroring not working

Part Number: TMS320F28379D
Other Parts Discussed in Thread: C2000WARE

Tool/software:

I've been working with the TMS320F2837xx & 2838xx parts for about two years.  Now that we have a custom board that doesn't have a lot of test points I thought that it would be useful to try the GPIO mirroring via the XBar functionality. 

I thought it'd be easy to start with the External Interrupts example (C2000Ware_5_00_00_00\device_support\f2837xd\examples\cpu1\external_interrupt) from the C2000Ware v5.00.00.  Not so fast!

I added in the required couple header files & lines of configuration code & nothing!  What am I missing.  I've seen other posts that make it seem simple, I can not get it to work.

I'm also using the TMDSHSEDOCK v6.0 & the f28379D controlCard rev 1.3.

I've included the example code.

So much for straight forward ;)

external_interrupt.zip

  • Hi Tim Cook,

    Just Curious, Are you trying to trigger interrupt based on GPIO action ?

    Have you tried using the example : interrupt_ex1_external example from c2000ware ?

    Thanks

  • Yes, I'm trying to use a TI example & have included a zip with the whole CCS project.
    Please see my original post.

  • Hi Tim,

    Have you narrowed down to the issue that you are seeing ?

    Let me ask this question first :  Have you tried original example and you are able to understand and execute it ?  
    I understand you modified the example for your application to use Xbar but want to understand if your code/ configuration needs to be corrected

    Thanks

  • thanks for your responses.
    Yes.  I completely understand the external interrupt configuration & functionality.

    I thought this External Interrupt would be a good base to try the GPIO mirroring.

    So, here are some of my observations:

    1. With XINT1 & GPIO mirroring configured, XINT1 interrupts are created continuously!
    2. With XINT1 configured, interrupt is generated when GPIO_30 is pulled low, which is connected to GPIO_0.
    3. With XINT1 disabled & GPIO mirroring, mirror still doesn't work.

    The code that I supplied has my latest changes:

    • XINT1 configuration does not include any GPIO mirror configuration code.

    The GPIO mirroring intended configuration:

    • There are three GPIOs involved - 48, 67 & 75
    • 48 must be to select MUX option 1 (OUTPUT3XBAR) & DIR = Input (1)
    • 67 is configured as an output & physically connected to 75
    • 75 is configured as an input.
    • INPUT1SELECT = 75
    • OUTPUT3MUX0TO15CFG.bit.MUX1 = 1 (selected the INPUT1SELECT  as source)

    The expected result (which doesn't happen) is from the debugger setting 67 to 0 should cause both 75 & 48 to go low (0).

    75 does go low, not 48.

    I've tried many different configurations without success!

  • Hi,

    I will check/run this code by next week and let you know.

    Thanks for the information

  • Apologies I haven't been able to run your code yet

    Will try to get to it early next week

    Thanks

  • When ever you have time.  I just looking for understanding.

  • Hi Tim,


    The GPIO mirroring intended configuration:

    • There are three GPIOs involved - 48, 67 & 75
    • 48 must be to select MUX option 1 (OUTPUT3XBAR) & DIR = Input (1)
    • 67 is configured as an output & physically connected to 75
    • 75 is configured as an input.
    • INPUT1SELECT = 75
    • OUTPUT3MUX0TO15CFG.bit.MUX1 = 1 (selected the INPUT1SELECT  as source)

    In the above how are you connecting GPIO48 to GPIO67 ?
    You would need GPIO  to inputxbar and from inputxbar to outputxbar to GPIO, is this what you have implemented ?

    The expected result (which doesn't happen) is from the debugger setting 67 to 0 should cause both 75 & 48 to go low (0).

    75 does go low, not 48.

    Can you help me understand the detailed implementation without the configuration level details ? Show me with a diagram how you are connecting these three GPIO's

    Thanks