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.

TMS320F280049C: CLB/XBAR Signal Routing Problem

Part Number: TMS320F280049C
Other Parts Discussed in Thread: SYSCONFIG

Peter and friends,

I've got my CLB design working well on a Launchpad and I'm currently integrating my prototype implementation with the rest of my product's firmware.  This is requiring me to refactor some peripheral assignments and GPIO muxing and I'm running into some trouble with a creative peripheral pin reassignment.

Here's what I'm trying to accomplish:

EPWM4A -> CLB3 Input 1 -> Out LUT 4 -> Output Xbar 3 -> GPIO 5

CLB Input Config

Out LUT 4

Output Xbar Config

I've been able to validate part of this signal chain by observing the state of GPIO 5 and changing the value of the CLB_OUTPUT_LUT_4 register such that it had a static output (0x00550000 or 0x00550008).  I was able to successfully wiggle the pin this way, which would indicate the connectivity between the out LUT and the GPIO through the output xbar is good.

I'm now trying to validate the signal coming into the CLB.  I have some other PWM signals which I can observe externally so I've tried using those as the source instead of EPWM4A.  For instance, EPWM2B comes out externally so I view that with a scope as well as GPIO5 and I configure input 1 on CLB 3 to be sourced from EPWM2B using the global mux.  When I do this, I see the EPWM2B on its normal pin (GPIO3), but I do not see any signal on GPIO5 (it's just low).  Repeating the experiment from the previous paragraph, I can still wiggle the pins.  Any ideas as to what I might be doing wrong?

Best,

Trey

  • Hi Trey,

    These settings look correct. Could you share your .sysconfig file so that we may test your configuration? If you'd like to share your file in a private message you can send me a friend request on e2e.

    Thank you,

    Luke

  • I figured out what the issue was.  I was under the impression that all of the generated code for the CLB would be in the initTile function.  Turns out a bunch of the input signal configuration stuff gets placed into CLB_init.  After I added the code that configures the inputs, I'm able to see the PWM signal as expected.  Thanks for pointing me in the right direction Luke!