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.

TM4C1294NCPDT: change system clock to 80Mhz and usb_cserial didn't work

Part Number: TM4C1294NCPDT
Other Parts Discussed in Thread: EK-TM4C1294XL, TM4C129DNCPDT

Hi Champs,

According to customer feedback, they change the system clock to be 80Mhz and Tivaware-2.1.4.178  usb example code won't work. I imported the usb_cserial example base on EK-tm4c1294xl and change system clock to 80Mhz. I also face the same problem. Could anyone tell me how to fix this ? Customer must use 80Mhz due to their previous system configure USB to be 80Mhz USB clock. Thanks for reply in advance  

  • Hello Lisa,

    The example stops working because when setting the System Clock to 80MHz, the PLL is set to 160MHz and this cannot be divided by integer to meet the 60MHz USB Clock requirement.

    The PLL must be set so it is an integer multiple of 60MHz. This is a requirement to meet the 60MHz USB clock.

    When the system is set to 120MHz, the PLL is 240MHz and that can be divided to 60MHz with integer of 4.

    If they don't wish to run at 120MHz, they could also run at 60MHz - this results in a PLL setting of 120MHz which also works for the USB requirement of 60MHz.

    Page 234 of the device datasheet discusses some details of USB Clock Control.
  • Hi Ralph,
     

    Customer  told me that they use 80Mhz before. But I check the datasheet which seem like device didn't support 80Mhz. Does this requirement dependent on silicon version ? Maybe older TM4C1294 could run at 80Mhz ? Thanks.  

  • Hello Lisa,

    Can you check if they were using a TM4C123x device? I believe that series of devices used 80MHz for the USB. I don't know of any TM4C129x devices which support 80MHz USB.
  • Hi Ralph,

    I checked with customer which said they used TM4C129 series. I will double check with it. thanks.

  • Greetings Mr. Jacobi,

    Your "Verified" post of 09 Aug, 13:59 surely meets the requirement for (now banned) "LIKE!"

    Excellent in its "explanation roll-out and building of detail" - very well done & appreciated... (I'd have clicked "LIKE" had it survived - pity!)
  • hi Ralph,
    I check with customer and he said that he used TM4C129 series. They mentioned that they used older TivaWare 2.1.0 library and system clock can set to 80Mhz. Could you please tried this ? If yes, it looks like when we update the usb_lib then also change the USB PLL setting. thanks !
  • Hello Lisa,

    Can you get an exact part number so I can investigate the device datasheet? I don't know all the USB clock details of every flavor of TM4C129x which is why I said 'I don't know of any' rather than 'there is none'. I would like to check via datasheet before anything else.
  • Hi Ralph,

    customer used TM4C129DNCPDT. I will sent separate mail to you to discuss customer usage. thanks 

  • Hello Lisa,

    The datasheet for that device clearly states the 60MHz aspect as well. It may be that in older TivaWare it was possible to use a different clock speed but as stated in the datasheet: "Fractional divisors may increase jitter and compromise USB function."

    I wasn't in the group at the time that version of TivaWare was released nor do I know the details of the change, but if using an 80MHz clock was compromising the USB functionality for customers, and using 60MHz was not, then it would make sense for our official TivaWare (which is recommend for all to use) should reflect the optimum operating mode, would it not? There was not an errata created as a result of this FYI. Our errata sheet is current.

    If the customer is dead set on using 80MHz, they probably can go back and see the changes done from 2.1.0 to 2.1.4 for the clock system and USB, but they'd be violating datasheet recommendations. Plus they may run into issues with the Windows drivers as well. We won't help with or encourage this effort as it is out of spec for the datasheet recommendations.

    Please encourage them to accept that they need to use 60MHz or 120MHz to fall in line with both datasheet recommendations and the latest TivaWare.
  • Hi Ralph,
    I see. I will talk with customer. thanks .
  • Ralph Jacobi said:
    We won't help with or encourage this effort as it is out of spec for the datasheet recommendations.

    For those who have "PM'ed or emailed me" - vendor's Ralph is following, "Semi-Industry's Standard Operating Procedure" - others do (exactly) the same - in no way is this response, "improper or mean!"

    Operating (any) vendor's device "outside" of specified conditions is NEVER recommended!     (even if it "appears" to work ... .... especially if it "appears" to work!)

  • Hi Ralph,

    Customer passed their system clock setting. They set system clock to be 80Mhz and after clock setting. USB clock will be 60Mhz. Please see below picture. If customer use this clock setting, it shouldn't violate datasheet "60Mhz USB clock source". It looks like their setting didn't violate the 60Mhz USB clock source and system clock still be 80Mhz. Could you please check this ? thank you.

    VCO = 480Mhz, PSYSDIV = 6, => SYSCLK = 80Mhz

      

  • Hi Ralph,

    Could you please update this ? thanks.
  • Hello Lisa,

    That would seem to be possible but I don't think TivaWare Clock System API's would support setting that combo of configurations. But if they can use register level calls to get the USB clock to 60MHz and the new clock speed then doesn't interfere with TivaWare, that would seem to me to be fine then.

    At an initial glance, I don't feel the TivaWare USB APIs would be negatively affected as long as they are initialized with the right clock speed fed into them, but this isn't something we've tested before nor have seen done before so they would need to be very meticulous and thorough in testing that sort of setup.
  • Hi Ralph,

    Right now I use example code and use SysCtlClockFreqSet to set system clock which will cause USB didn't work when configure system clock to be 80Mhz. Do you mean I can't use SysCtlClockFreqSet API to set clock frequency ? Should I use HWREG to set clock register directly ? thanks

  • Hello Lisa,

    If you want to run the Sys Clock at 80MHz and USB Clock at 60MHz you would need to use the SysCtlClockFreqSet to set the primary clocks to 80MHz and then HWREG calls to directly set the USB clock to be VCO of 480MHz divided by 8 instead of being based off of the Sys Clock.