TMS320F28377D: SysConfig Does Not Generate AUXPLL and USB Clock Initialization Code

Part Number: TMS320F28377D
Other Parts Discussed in Thread: SYSCONFIG, , C2000WARE

Hello,

 

I am currently working with the TMS320F28377D and have configured the following settings in CPU1 SysConfig:

 

1. Clock Configuration: Set AuxPLL (USB Clock) to 60 MHz.

2. USB Configuration: Enabled the "Initialize Clock" option.

 

However, the generated device.c and board.c files do not contain any code to configure the Auxiliary PLL (AUXPLL) or USB Clock to 60 MHz.

 

I would like to know whether this is the expected behavior or if there are any additional settings required in SysConfig to generate the clock initialization code.

 

I have attached the relevant files for your reference.

 

Thank you for your support.

 

Best regards,

 

cpu1_syscfg.txt 

cpu1_device.h.txt 

cpu1_device.c.txt 

cpu1_board.h.txt 

cpu1_board.c.txt 

cpu1_clocktree.h.txt 

 

 

 

AuxPLL_Config.png

 

UsbClock_Config.png

 

Usb_Config.png

  • Hi Changjun Kim,

    I am able to reproduce this issue. Let me check and get back to you.

    Thanks,

    Ira

  • Hi Changjun Kim,

    This seems to be an issue in C2000Ware, I have filed a bug for the same.

    The root cause is that the driverlib/.meta/usb/usb.board.c.xdt line 14 only checks for F28P65x, F2838x, and F28P55x. F2837xD is absent, so SysCtl_setAuxClock(DEVICE_AUXSETCLOCK_CFG_USB) is never emitted regardless of the initClk setting.  The SysConfig-based USB examples (ex1–ex9) comment out the manual SysCtl_setAuxClock call with the assumption that Board_init() handles it. It does not.

    Workaround - Add the following line in your main.c

    SysCtl_setAuxClock(DEVICE_AUXSETCLOCK_CFG_USB); // ← add this
    Board_init();

    Make sure that the DEVICE_AUXSETCLOCK_CFG_USB macro is defined. If you are starting from a C2000Ware USB example then it should already be defined in usb_hal.h. Just make sure that usb_hal.h is included in your main.c file.

    Thanks,

    Ira