TMS320F280036C-Q1: CCSI over CLB

Part Number: TMS320F280036C-Q1
Other Parts Discussed in Thread: C2000WARE, SYSCONFIG

Hi experts,

 

I am asking for customer.

 

My customer wants to use F280036 CLB to realize CCSI communication. If CCSI communication over CLB, does this consume additional resources like SPI/PWM/ADC overrided? I checked the tlc698x_lp589x_f280039x demo code, seems like it needs to override EPWM&SPI&DMA resource. Could you help to confirm that?

 

Best Regards

 

  • Hi
    Let me loop in an appropriate expert for this.
    Thanks
    Praneeth

  • Hi,
    Can you please provide details on the application? 

  • Hi,

    This use case is in automotive Starlight Headliner, communicate to LED driver. TI also has demo on TLC device, tlc698x_lp589x_f280039x demo code on 280039.

    Best Regards

    Kita

  • Thanks Kita, I will loop in the expert

  • Hi Kita, 

    The expert is currently OoO until later this week. Please expect a response from them when they return. 

    In the meantime can you can also take a look at our example clb_ex32_led_driver which can be found within the C2000ware SDK. The following appnote has more information on this specific example, specifically example B within the document. 

    Kind regards,
    AJ Favela 

  • If CCSI communication over CLB, does this consume additional resources like SPI/PWM/ADC overrided?

    Technically only one PWM + two CLB tiles are needed to implement on CCSI bus. For more information refer to this app note: https://www.ti.com/lit/an/sprad62/sprad62.pdf 

    I checked the tlc698x_lp589x_f280039x demo code, seems like it needs to override EPWM&SPI&DMA resource. Could you help to confirm that?

    The example you references was developed by the LED driver team. In that example they may be using DMA and SPI for other tasks not related to the CCSI bus. 

  • Hi Gus,

    When the customer was reviewing the CCSI examples, they had the following questions. Could you please help take a look?

    1. When providing input to the CLB TILE, it can be done either through the X-BAR or through GLOBAL-to-LOCAL conversion. In addition to these, I also noticed there is a GPREG — does this register refer to a software trigger?
    2. In the CLB_EX32_LED_DRIVER demo, which pins are used and what are their respective functions? Is there any documentation that explains this?
    3. In XBAR_setCLBMuxConfig(myCLBXBAR_TRANSFER_START_SYNC, XBAR_CLB_MUX07_CLB2_OUT5), the customer could not find the configuration for CLB2_OUT5, whereas the app note manual states it should be CLB_OUT13.

    Best Regards

    Kita

  • 1. When providing input to the CLB TILE, it can be done either through the X-BAR or through GLOBAL-to-LOCAL conversion. In addition to these, I also noticed there is a GPREG — does this register refer to a software trigger?

    Per the app note referenced before, for TX tile:

    CLB input 1: The GPREG.1 bit is used to start a data transfer on the TX tile. It is set/cleared by the CPU.

    CLB input 6: The GPREG.6 bit drives the external transfer start signal on all TX tiles in cases where more than one TX tile is used. Only GPREG.6 in CLB tile 2 can be used to start transfers in other TX tiles. The GPREG.6 bit is set/cleared by the CPU

    For RX tile:

    CLB input 3: The GPREG.3 bit is used to enable/disable data reception. It is set/cleared by the CPU.

    2. In the CLB_EX32_LED_DRIVER demo, which pins are used and what are their respective functions? Is there any documentation that explains this?

    Please refer to the app note for details.

    3. In XBAR_setCLBMuxConfig(myCLBXBAR_TRANSFER_START_SYNC, XBAR_CLB_MUX07_CLB2_OUT5), the customer could not find the configuration for CLB2_OUT5, whereas the app note manual states it should be CLB_OUT13.

    Please refer to the section in the TRM titled "CLB Output Selection". Here it explains that CLB outputs 0-7 are replicated on CLB output 8-15. 

  • Gus,

    Please refer to the app note for details.

    I could not find the details pin message in app note, CLB outputxbar is also not same as CLB_EX32_LED_DRIVER, that's the reason why customer is asking this.

    Best Regards

    Kita

  • Hi Gus,

    The customer has another question they'd like confirmed, and they couldn't find the answer in the manual: The 16-bit S0 equation described in the FSM defines a function (EXT_IN1, EXT_IN0, S1, S0). What is this function? How does this function correspond to the CLB_FSM_LUT_FN1_0 register — what is this mapping relationship, and where is it documented?

    Best Regards

    Kita

  • Ah, you are correct. For these details, you can refer to the comments in the example code.

    //! CCSI Input Signal   GPIO pin    LED Driver
    //! CLB_SIN_1           GPIO17      SOUT
    //!
    //! CCSI Output Signal  GPIO pin    LED Driver
    //! CLB_SOUT_1          GPIO08      SIN
    //! CLB_SCLK_1          GPIO01      SCLK
  • Kita, 

    The app note details what functions are implemented in the FSMs, their truth tables, and resulting state equations.

    FSM0 is used to cycle through IDLE, ACTIVE, and END states.

    FSM2 is used to count when four 16-bit words have been transmitted. An event is generated to the HLC when the transmit count reaches four.

  • Hi Gus,

    Customer question is:

    In sysconfig FSM TILE1, the value of LUT Output Equation will reflect to this variableTILE1_CFG_FSM_LUT_FN10.

    For example, when LUT Output Equation  is s1&s0&!e1&e0, TILE1_CFG_FSM_LUT_FN10 is ((0x800000) | 0x222). Customer want to know how  s1&s0&!e1&e0 can reflect to 0x800000? I could not find this in TRM. Even in spracl3.pdf, I could only find the below truth table but could not find details description to conduct it as 0x800000. Which document describe it?

    Best Regards

    Kita

  • Hi Kita,

    THe LUT output equation functions in the same was as the S0 and S1 output equations. The inputs IN1, IN0, S1, S0 form a 16 value look up table. Each bit in the 16-bit output equation is equivalent to one of these entries in the look up table. The bit in the output equation is "1" for each entry in the truth table that has OUTPUT high. In the case of s1&s0&!e1&e0, if you re-arrange this in the order interpreted by the FSM, it is !e1&e0&s1&s0, which equals to bit 0111b, that means bit 7 in the state equation is 1, which translates to 1000 0000b = 0x80. When you use this equation for FSM1.OUTPUT, then the value needs to be shifted by <<16 to match the CLB_FSM_LUT_FN1_0 register, so you get 0x800000.

    In general, we'd recommend the customer use the CLB tool in sysconfig to generate the CLB configuration. 

  • Hi Gus,

    I got some more questions from customer about the CCSI. 

    1. If the customer uses GPREG for a software trigger, can this external input be left unconfigured?
    2. When initializing the input of the corresponding tile, some SPI buffer registers were initialized, for example by calling interfaces such as DisableSPIBufferAccess and CLB_configSPIBufferLoadSignal. However, the SPI buffer doesn't seem to be used, so can this initialization be removed as well?
    3. For this GPIO 0 configuration, is it enough to map just this alternate function? Is it unnecessary to route the TX CLB output to a pin and then connect that pin back into GPIO 0 as an input?

    Best Regards

    Kita

  • If the customer uses GPREG for a software trigger, can this external input be left unconfigured?

    I do not understand this question.

    DisableSPIBufferAccess and CLB_configSPIBufferLoadSignal. However, the SPI buffer doesn't seem to be used, so can this initialization be removed as well?

    This code is generated by sysconfig. It is not needed and can be removed.

    For this GPIO 0 configuration, is it enough to map just this alternate function? Is it unnecessary to route the TX CLB output to a pin and then connect that pin back into GPIO 0 as an input?

    Where is customer seeing this code? I do not see it in the F28003x driverlib example clb_ex32_led_driver. The required inputs and outputs are given in the app note.