TMS320F28388D: CLB module

Part Number: TMS320F28388D

Hi Team,

We would like to ask your help regarding our customer's inquiry below.

For our new motor controller we'd like to calculate PWM duty in both CPUs in parallel from input signals. Then transfer results into CLB, calculate an average and set PWM generator.

I wanted to use HLC block to provide the average function, but there is no division or bit shifting instruction.

Did I understood it well or is there a way how to calculate average in CLB module?

We wanted to use the CLB as it is outside the CPUs.



  • Hi Danilo,


    The HLC within the CLB is mainly used to exchange data between the device and the CLB and to perform simple computations. Is there anything preventing the customer from calculating the average outside the CLB then importing that value into the CLB/HLC using the memory buffer? As it stands, the only computational operations that the HLC supports are adding and subtracting.



  • Hello Peter,

    we wanted to use CLB to provide average of results from CPU1 and CPU2 as it is HW outside both CPUs. Sure we can collect all the data in CPU1, compute average and generate PWM, but this is slightly outside our controller topology (it is more like COM-MON topology that we do not use). We need to discuss with our safety team if use this approach or some external HW that will provide the function.

    However the question is answered I guess - CLB cannot provide the function.

    Thank you,