mega8 belso oszcilator

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Vendég

mega8 belso oszcilator

Hozzászólás Szerző: Vendég »

Sziasztok!

A kovetkezoben szeretnem a segitsegeteket kerni:

ATmega8 tipusu avr-re szeretnek rakni egy (32768Hz) orakvarcot.Ez szabna meg az orajelet a tmer -nek.

A kerdesem :

Nem tudom,hogy lehetseges az,hogy hasznalni az avr beepitett oszcillatorat es az XTAL labakon az orakvarcot egyszerre?

A kovetkezoket olvastam az adatlapban:

Ha belso RC osc. akarok hasznalni,akkor CKOPT fuse UNPROGRAMMED kell legyen
Ugyanakkor CKOPT fuse 0 (PROGRAMMED) kell legyen belso kondenzatorok bekapcsolasahoz: TOSC1,2.

Namost ha nem kapcsolom be a belso kondikat es kulso kondikat rakok,akkor mukodni fog?

Koszi elore is!
Robert-

Hozzászólás Szerző: Robert- »

Belső osc: FUSE biteknél egyszerűen beállítod 1-4-8 MHz-re (Internal clock).
Ekkor a XTAL lábon NE legyen semmi.

Ha a Timer2-n az órát használod akkor ezeken a lábakon _csak_ a kvarc lehet, kondi nem!

A Belső OSC nem igényel külső kondenzátort!
DE: a Belső OSC nem jó hőfokfüggésű és a névlegestől +/- 5 %-l is eltérhet akár. Sorosport felé (UART) jellemzően a 4MHz belső Osc a legjobb, és 9600 bps felett ne akard használni (Akkora szórás van, hogy a PC sorosporttal sem tud kommunikálni!).
Vendég

re:

Hozzászólás Szerző: Vendég »

Koszonom a valaszt!

Lehet egyszerre belso oszcillator es a timer2 -nek a kulso orakvarc?
En a FUSE beallitasokbol ugy vettem ki,hogy nem lehet...:(

Udv!
Vendég

re:

Hozzászólás Szerző: Vendég »

Koszonom a valaszt!

Ebbol kiderult,hogy nem lehet belso egyszerre oszcillatort es a timer2 -nek orakvarcot hasznalni:(

Udv!
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

A belső órajel mehet és a külső kvarc 32.768 kHz Timer2-nek.
Vendég

re

Hozzászólás Szerző: Vendég »

Szia!

Mar le is mondtam arrol,hogy mega8 -nal egyszerre timer2-kulso-kvarccal es belso oszcilator orajel.
Orommel olvasom,hogy lehetseges,igy egesz picibe ossze tudnam hozni a dolgot;-)...az az igazsag hogy nem regen kezdtem avr-ekkel foglalkozni, avr-gcc -t hasznalok,es elegge jol haladok:-)
De ugyanakkor nem ertem,hogy hogy kell beallitani a fuse biteket ahhoz hogy az emlitett dolog mukodjon?

Varom valaszod..
Nagyon koszonom !
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Fuse biteket tudom, de Bascom alatt:

- órajelforrásnak beállítod a RC 8MHz belsőt.
- a timer2 konfigurálásánál a deklarálod hogy timer2 kvarccal van.

Sajna C-ul nem tudok....
Vendég

re:

Hozzászólás Szerző: Vendég »

Erre voltam kivancsi!
Koszonom!

Hamarosan ki fogom probalni,ha nem mukodik ujra jovok:-)
Vendég

re

Hozzászólás Szerző: Vendég »

Hello!

Ujra akadt egy kis problemam:(
A kovetkezo beallitasokkal probalkoztam ,de nem az elvartnak megfeleloen mukdik.

low fuse CKSEL3 0-3. bitek = 0100 --> internal osc.8Mhz
low fuse egesszeben igy nez ki: 1110 0100
high fuse : CKOPT 4. bit = 1,ez alapbol 1,gondolom nem volt modositva ,nem neztem meg ,mert ha 0 lenne,akkor szerintem nem mukodne a belso oszcillator,de mukodik mert az LCD -t hajtja az avr.

A timer2 elosztot 128 -ra allitottam,az orakvarc az XTAL labakra van kotve.
Namost azt szerettem volna elerni ,hogy pontosan 1 masodpercenkent legyen Timer2 overflow.Az overflow rutinban frissitettem az LCD-t,es lathato,hogy nem tartja be az egy masodpercet,olyan gyorsan frissit ahogy csak tud:-)
Namost nem tudom hogy fuse beallitas nem jo vagy mi lehet a baj...
Lehet hogy a belso oszcillatort hasznalja jelenleg a timer2?

Minden segitseget elore is kosznok.
Kozben tanulmanyozom az adatlapot is..
Vendég

re

Hozzászólás Szerző: Vendég »

Kozben megtalaltam az adatlapban,remelem ez igy mukodni fog:oops:

ASSR reg.ben az AS2 1 -be kell legyen allitva,akkor az orajelforrast a TOSC1 TOSC2 -n levo oszcirol veszi..kulonben a clock forras = az MCU clock -al..
Avatar
DOGMAN
Chipgyilok
Hozzászólások: 293
Csatlakozott: 2006. augusztus 27. vasárnap, 6:00

Hozzászólás Szerző: DOGMAN »

Üdv!

Érdekelne hogy akkor most hogyisvan a jó beállítás, mert a bináris órám belső oszc-ról 24 óra alatt kb 5-6 percet késik.

Szóval megpróbálnám a belsőről a progit, a timer2-őt pedig 32768Hz ről járatni.
Avatar
DOGMAN
Chipgyilok
Hozzászólások: 293
Csatlakozott: 2006. augusztus 27. vasárnap, 6:00

Hozzászólás Szerző: DOGMAN »

Üdv!

Megoldottam:
Kikotortam a kupisdobozomból egy 1000 éves kínai vekkert.
Szétszedtem bekapcsoltam másodpercenként rángatta az elektromágnest.
A kvarcot lehegesztettem róla, rátettem az XTAL1, XTAL2-re.

Mega8 fusebit: internal oscillator

Kód: Egész kijelölése

$regfile = "M8def.dat"                   'Chip
$crystal = 8000000                       'Sebesseg saját belső oszcillátorról

$hwstack = 32                              ' default use 32 for the hardware stack
$swstack = 10                              ' default use 10 for the SW stack
$framesize = 40


Config Timer2 = Timer , Async = On , Prescale = 128
On Timer2 Myisr
Enable Interrupts
Enable Timer2

Config Portb = Output                                       'LED

Do

Loop

Myisr:
Toggle Portb.4

'get here every second with a 32768 Hz xtal

Return
Egész pontosan jár, legalábbis mikor a belsőről számoltam a timert, ahhoz képest jelentősen pontosabb.

Kondenzátorok nélkül tettem az XTAL lábakra, aki esetleg jó angolos az segíthetne hogy mi is van a belső kondikkal ilyenkor:

For AVR microcontrollers with Timer/Counter Oscillator pins (TOSC1 and TOSC2), the crystal is
connected directly between the pins. By programming the CKOPT Fuse, the user can enable
internal capacitors on XTAL1 and XTAL2, thereby removing the need for external capacitors.
The Oscillator is optimized for use with a 32.768 kHz watch crystal. Applying an external clock
source to TOSC1 is not recommended.
Note: The Timer/Counter Oscillator uses the same type of crystal oscillator as Low-Frequency Oscillator
and the internal capacitors have the same nominal value of 36 pF.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Ha csak a 32 kHz Q-t használod timernek M8 esetén, akkor:
- a fő oszcillátor csak a belső 8MHz lehet (vagy bármi ami a belső RCről beállítható)
- a Timer0 (vagy Timer2) a belső órát használja
- a XTAL1 és XTAL2 helyre megy ekkor a külső Q (32kHz)
- nem szükséges az óra esetén járulékos kapacitás.

Adatlapokból legalábbis ezt láttam....
Avatar
DOGMAN
Chipgyilok
Hozzászólások: 293
Csatlakozott: 2006. augusztus 27. vasárnap, 6:00

Hozzászólás Szerző: DOGMAN »

okés akkor jól csináltam mert ha elveszem menet közben a 32kHz-es kvarcot az óra megáll :)
de mostanra 3 óra alatt siet kb 1 sec-et. szóval vagy a kínai vekker kvarc-a szutyok, és egy jobb minőségűvel pontosabb lesz, vagy valamivel korrigálnom kell (trimmer kondi??). A kínai órában is volt az egyik lábán egy kondi, lehet átrakom azt is és jobb lesz.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Kód: Egész kijelölése

CONFIG CLOCK = soft
Config Date = Mdy , Separator = /                           ' ANSI-Format
Date$ = "11/11/00"
Time$ = "02:20:00"
Do
   Print "{027}[2J"; date$;"  "; time$
Loop

Ez mit csinál?
Válasz küldése