Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Is this the problem with baud rate?

Status
Not open for further replies.

blueshero

Newbie level 1
Joined
Aug 4, 2009
Messages
1
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,293
hyperterminal eeprom data

I have c8051f005 microcontroller with 11MHz external clock mounted. My project is about:
1) displaying real time data (which get from real time clock) + random generated number in hyperterminal (through serial comm UART with 115200 baud rate, also MAX232)
2) then save them in eeprom
3) read them in hyperterminal

Im using timer 3 interrupt routine to display the real time data + rgn and to save them in eeprom. Everything is working fine when my sampling frequency is below 150Hz. Im using LED and oscilloscope to check the frequency.
Now my problem is:
1) After i raised the sampling frequency to (let say) 500Hz, i found that the frequency remained at about 150Hz, it cant go higher.
2) If i remove the displaying function, the frequency can reach 500Hz, but when i retrieving the data from eeprom and display them in hyperterminal, all the data looks like...corrupted
3) I tried to raise my baudrate in hyperterminal setting but I duno why I cant change it to higher one.

Now im wondering whether my baud rate is too low or there is some other reason.
Thanks for your help :D
 

sampling frequency of the baud rate

Hi,
I can’t say much without seeing your code, but it sounds like you are just sending your data directly to the port (by writing a register) in the main loop. Doing this too fast will overwrite the currently sending byte with a new byte and your data will look garbled.
Having more to do (i.e. the displaying routine) in your main loop prevented this from happening.

If this is the case, you should buffer your data in the main loop and use interrupt routines to send and receive (you’ll also need to properly synchronize accesses to the buffer, between the main loop and the interrupt routines).
Even in this case you won’t be able to send more data (bytes) than the baud rate permits (so you’ll need to do a proper bandwidth budget), but this method will handle well bursts of data that otherwise will corrupt your transmissions.

Arthur
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top