SPRAD62 February 2023 F29H850TU , F29H859TU-Q1 , TMS320F280023C , TMS320F280025C , TMS320F280025C-Q1 , TMS320F280037C , TMS320F280037C-Q1 , TMS320F280038C-Q1 , TMS320F280039C , TMS320F280039C-Q1 , TMS320F28386D , TMS320F28386D-Q1 , TMS320F28386S , TMS320F28386S-Q1 , TMS320F28388D , TMS320F28388S , TMS320F28P650DH , TMS320F28P650DK , TMS320F28P650SH , TMS320F28P650SK , TMS320F28P659DH-Q1 , TMS320F28P659DK-Q1 , TMS320F28P659SH-Q1
A CLB-based serial interface design requires data movement between 1. the CLB serializers and the CLB FIFOs, and 2. the CLB FIFOs and MCU RAM. The HLC in the CLB tile can move data between the serializers and the FIFOs. However, the HLC cannot move data between the FIFOs and the MCU RAM directly since is not a master in the MCU architecture. As of the writing of this application note, the C28x CPU and CLA are the only masters capable of moving data in and out of the CLB FIFOs, such that, the DMA cannot be used for this data movement.
It is possible for the CPU to directly load the counter and HLC registers using the CLB local write interface bus. This is useful to set the initial state of the CLB tile. For example, in Section 4, using the CLB to Implement a Custom Communication Bus for LED Driver in Lighting Applications, a counter is loaded with the total number of transmit words before the CLB TX tile is enabled for transmit. The following code shows an example of how to do this using C2000ware driverlib functions. For information on the CLB local write interface bus, see the device-specific TRM.
CLB_writeInterface(TX_TILE_BASE, CLB_ADDR_COUNTER_1_LOAD, 0xFFFFFFFF);
CLB_writeInterface(TX_TILE_BASE, CLB_ADDR_HLC_R2, 0x0);