Main Site Documentation

FEZ Panda II and 300 bps Baud Rate


#1

Hello Everyone!

I´m using a FEZ Panda II board to comunicate to a device that have 300bps.
I´ve set the following parameters to open the UART port:

SerialPort UART = new SerialPort(“COM1”, 300 ,Parity.None,8,StopBits.One);

But, i´m recieving strange values.

Can i use the FEZ panda board in such low baud rate? (It work´s on 72MHz Freq.Can it devide the frequence to work in 300 bauds?)

Tks a lot!

Jaime


#2

@ jamesjsj - Welcome to the forum!

You should have no problem at 300 bps. I have used much higher speeds without problems.

Usually, when bad characters are received, it means a speed and/or parity mismatch.

It could also be a wiring issue, if there is not a common ground.


#3

Hi Jaime, welcome to the forum !

Great question, but one I can’t answer. I guess I could hook up two Pandas at 300baud and try - will see if I can get to it, but it may not show the same failure.

I think that your failure symptoms sound like an incorrect baud rate match - so if you know your device’s baud rate is 300 (ie you’ve tested it at 300 baud on a PC) then I would say the Panda isn’t going down to that baud rate, and you may never get there (the two-panda test will also probably not show this because they’ll probably both have the same mismatch and communicate correctly…)


#4

@ Mike -
Thanks for the reply Mike!

I was thinking that maybe the processor LPC2387 had some sort of restriction on use of baud rates low value at a frequency of operation high (as with PIC microcontrollers, eg if the speed exceeds 12MHz, baud rates low can not be used, because the internal dividers do not approach the desired frequency).
I’ll check with the supplier if the pins he indicated are correct.
I took the test stated by Brett, and i made two Pandas communicate (version 1 and version 2) with baud rate of 300bps.
Now, i must understand what´s happening with the device.

Thank you! : D


#5

@ Brett -

Thanks for the reply Brett!
I took the test, and i made two Pandas communicate (version 1 and version 2) with baud rate of 300bps.
Now, i must understand what´s happening with the device.

Thank you! : D


#6

Thanks again guys…
I solve the problem placing a pull up between the boards.

My problem was solved partially, because i´ve used the Panda II board and Fez Connect Shield. It works like a charm! Really!..
But when i´ve tried to move my project to some new board (Fez Cerbuinoo BEE) i´m facing the problem in UART again.
In this case, i need to use UART 3, to maintain compatibility.
I can´t manage to make the UART work on low baud Rates (300, 600, 1200) and i cant even comunicate the FEZ Bee with the other panda Boards that i have (Fez Panda I and FEZ Panda II).
I saw the errata sheet for the processor, and threre are some USART Issues…
Have anyone face some problem with the Cerbuino Bee board using the UART3?
Someone have a workaround to suggest?
Or… GHI, Pleasseee… don´t Kill the pandas!! lol


#7

If you have a test or an issue report, we will gladly look into it.


#8

Hy Gus, it´s a pleasure to meet you. :slight_smile:
Here goes my test case:

  1. I used two boards, FEZ Cerbuino Bee and FEZ Panda II.
  2. Connect the GND Pin between the boards.
  3. Connect D0 of Panda II to D1 of Cerbuino Bee
  4. Connect D1 of Panda II to D0 of Cerbuino Bee
  5. Now the UART1 (COM1) of Fez Panda II are connected to UART3(COM3) of Cerbuino.
    6)Open a Serial port in both boards using the following parameters:
    FEZ PANDA II
    SerialPort UART = new SerialPort(“COM1”, 300, Parity.None, 8, StopBits.One);

FEZ Cerbuino Bee
SerialPort UART = new SerialPort(“COM3”, 300, Parity.None, 8, StopBits.One);
7) I´ve set the error handler to the port on Cerbuino using the following code:
UART.DataReceived += new SerialDataReceivedEventHandler(UART_DataReceived);
8) I´ve tried to send data from Pand II to Cerbuino, and i recieved a error on the error handler:
The exception was of a type {System.IO.Ports.SerialErrorReceivedEventArgs}
There was no message or inner exception, just the event type and a code:
EventType = Frame
m_error = 0x00000004.

So… it happens too when i´ve tried to use a 600bps baud rate (Same error code and EventType).
And just one time in 1200bps baud rate (maybe it´s been sporadic this time) .

So, my application uses a 300bps baud, and the Panda family is on legacy state.
There´s a workaround to use a low baud rate on Cerbuino family?
Thanks a lot!!


#9

I forwarded this to the team to look into but I am curious on why you need 300 baud?! This is too slow and not used typically.


#10

We looked into the issue on the Cerberus and the lowest possibly baud rate is 641. When calculating the divisor for that baud rate, the highest possible divisor is reached at 641. Rates below that number go beyond the size of divisor register, so they get truncated leading to very inaccurate rates.

It might be possible to bit-bang the serial communication if your baud rates are low enough.


#11

@ John -
@ Gus -
Thanks a lot gus and John!
I´m developing a integration with a eletric power meter.
And because of costs and components choosen, there are some hardware limitations.
The low baud rate is one of them.
I´ll try to use another model of same supplier.
Maybe they have a more robust hardware supports a faster baud rate.

Thanks again!

Jaime