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.

am335x nonstandard UART baud rates?

Other Parts Discussed in Thread: AM1808

Is it possible to get nonstandard baud rates on the am335x?  We would like to run at 625000, using a divisor of 6 gets us close, but not close enough.  I haven't looked at the possibility of altering the operating clock of the UART, is that even possible?

Any other details for getting this baud rate, like via the PRU, would be appreciated.  We are running arago linux.

  • HI Bruno,

    Check the Technical Reference Manual for the am335x series (http://www.ti.com/lit/ug/spruh73f/spruh73f.pdf) on pages 3664 and 3665.

    You have quite a bit of flexibility when dividing down the clock for baud rate generation. Using DLH and DLL to set your divisor should get you to where you need to be.

    Best of luck,

    Keegan

  • Are there other modes than 16x and 13x?  The impression I get from the doc you reference section 19.3.8 Protocol Formatting is that I must use 13x mode to get high baud rates.  Then Table 19-25. UART Baud Rate Settings (48-MHz Clock) shows 460.8kbps using divisor value 8 and 921.6kbps using divisor value 4.  Using divisor value of 6 gets me 615385 baud.  I'm trying to obtain 625000 with 1.5% tolerance on the device I'm trying to talk to.  So by my calculation I'm right at the 1.5% limit.  Can I do better?

    Is there a mode other than 13x and 16x?  Can I affect the 48Mhz operating clock, and what would be the impact of that?

  • Ah, I apologize for not following that before.

    Unfortunately, there are no other divisor modes besides 16x and 13x. You are able to change the effective operating frequency feeding into the UART peripheral by running in OPP50 to 24MHz (see pg. 654 of the TRM: http://www.ti.com/lit/ug/spruh73f/spruh73f.pdf). However, this will limit the functionality of other peripherals, and ultimately does not allow you to reach your desired baud rate of 625000. 

    So obtaining 625000 baud with less than 1.5% error would not be possible via the UART peripheral. As you stated, your closest bet would be using the 13x divisor mode with a programmable divisor of 6 to reach a baud of 615.3846 kbps.

    Achieving the UART functionality you want through the integrated PRU UART is a good option to research.The PRU hosts an integrated UART that is the same as the one in the AM1808, and that UART can hit 625000 baud. PRU Dev Tools- https://github.com/beagleboard/am335x_pru_package