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.

ATMEGA 128 clock frequency selection and basic USART program

Status
Not open for further replies.

jsps

Member level 3
Joined
Apr 20, 2006
Messages
61
Helped
1
Reputation
2
Reaction score
1
Trophy points
1,288
Activity points
1,659
Dear All,
We are using ATMEGA128-16AU from last 1 year. We were using ATMEGA128-16AU 0902 . 0902 is data code or batch number.

ICs with data code 0902 works well in our board. Operating conditions are:
1.Freq-11.0592MHz, Cap 22pF
2. Supply Voltage:5V +/-0.05V

Functions being carried out are serial communication, digital inputs and some digital outputs, timer.

But recently we have purchased ATMGEA128-16AU with data code on it 0852. with 0902 batch every above mentioned

function works well,but with 0852 batch. nothing works.

Fuse setting for both boards are same. We kept the settings same for both batches.But 0902 works well whereas 0852

does not. We have observed that though the bit settings are CKSEL3:1 by default, , in 0902 it accept External

Crystal 11.0592MHz where as in 0852 it accepts internal 1MHz. On pin 15 and 16 we are generating waveform of 300Hz

(in code SetFreq(5)). Code is also attached. This code is simple program for USART checking which will display

character entered by keyboard on Hyper terminal.
Coming back to freq observed on pin 15 and 16 (OCR1A and B ), with 0902 it gives 300Hz and with 0852 it gives

27.1Hz. From that it can be concluded that 0852 is accepting default internal RC oscillator of 1MHz.
Character sent from kepyboard was echoed in 0902, whereas not in 0852.
We tried chaging clock frequency of internal oscillator to 8MHz by setting OSCCAL=3, but that did not helped. it is

giving 27.1Hz at pin 15 and 16. That means it not accpeting change of 8MHz and taking 1MHz only. We tried CKSEL3:1

set to 0100 while programming ATMEGA128 using unipro ISP programmer and OSCCAL=3 in program. But that didnt also

helped. In a way it is always accepting. Now OSCCAL is commented in code and freq is set 11.0592MHz(F_CPU). But we

have tried changing it to F_CPU=8MHz.
It always accept 1MHz.
WIth 1MHz, only timer works which gives 27.1KHz, we have adjusted timer register (ICR1, OCR1A, OCR1B) values in such

a way that it will give 300Hz. Now values of ICR1 and OCR1A OCR1B are for 300Hz.
But with 1MHz we change baud rate to 4800 and checked code attached. But we dont receive character in hyper terminal

typed through keyboard. It means only timer is workign with 1MHz. Serial communication is not being established.

Please tell us, if this is batch problem. We want you to suggest us reputed, believable supplier in India,

preferably Mumbai.

We are using uC microsystem's ISP-1.1 programmer.

Fuse configurations are attached in CKSEL settings.gif

I am using AVR Studio 4.14.

Is there any other possible reason?

Please reply and oblige.

Thanks,warm regards
JSPS
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top