3 Replies Latest reply on Oct 15, 2015 8:38 AM by op_2169936

    4800 UART Baudrate

      Hi,

      I was playing with BCM20737 and found the lowest i can go is 5838 baud. Is it possible to go 4800 baud?

        • 1. Re: 4800 UART Baudrate
          MichaelF_56

          I'm not aware of anyone that has run the PUART that low, but it seems possible in theory as the maximum baud rate supported by this interface is 115200 bps and other standard baud rates such as 19200, 38200, 57600 should be supported as well.


          • 2. Re: 4800 UART Baudrate

            Hello rgtech,

             

            A baud rate below 9600 has not been tested since the design requirements were set at 9600.

             

            Thanks

            JT

            • 3. Re: 4800 UART Baudrate

              Hi,

              I will also need a baud rate of 4800. I understand that the firmware design is for 9600 or higher, but I'm also sure the hardware of the UART supports other configurations. Are there any more details we could get on the UART hardware, the timer, the prescaler clock source and interrupts it uses? There must be a way to slow down the UART, even if it means that faster baud-rates won't be available anymore.

              Any chance to look at some of the implementations in "puart.c"? especially "puart_calculateBaudrate()" and "puart_setBaudrate()"?

              Could you tell us the limits of P_UART_HIGH_BAUDRATE_DIV and P_UART_LOW_BAUDRATE_DIV? I take it these two bytes set the clock divider? are we really at the limit with 9600 baud, or is it just a limitation of the calculateBaudrate() function?

              might it be as easy as setting a value other than 0x00 for either dhbr or dlbr when calling puart_setBaudrate(UINT8 dhbr, UINT8 dlbr, UINT32 baudrate) ?

               

              Another idea I have is to simply set the P_UART_SAMPLE_CLOCK to 32 instead of 16 and leave everything else the same as 9600 baud.

              I got that value from "puart.h":

              /// Some useful default constants used by teh driver.

              enum

              {

                  P_UART_CLK                                = 24000000,

                  P_UART_SAMPLE_CLOCK                        = 16,

                  DEFAULT_P_UART_BAUDRATE                    = 115200,

                  DEFAULT_P_UART_HWFLOWCONTROLWATERMARK      = 13,    // Peer flow off waterline

                  DEFAULT_P_UART_MIN_PKT_LENGTH              = 1

              };

              But I guess that would require recompiling puart.c, correct?

               

              Thanks already for any help.

               

              PS, I plan to use the new BCM20706S when I get my hands on it, but have just begun playing with the BCM920737TAG3 to get used to the IDE and getting started with the non-Bluetooth part of the devices. If the BCM20706 will be entirely different, I'd love to hear some details.

               

              Thanks already.