Oscilatorske osnove

Rasprava o PIC mikrokontrolerima, PIC projekti i drugo vezano za PIC-eve...

Moderators: pedja089, stojke369, [eDo], trax

Post Reply
User avatar
Beetle
Posts: 12
Joined: 30-07-2005, 16:32
Location: Chair
Contact:

Oscilatorske osnove

Post by Beetle »

Pozdrav,

Pomogli ste mi vec jednom pa se nadam da cete opet ;) Ovako.. stavio sam 20 Mhz kristal i 2x 15pF kondenzatore na osc1 i osc2 te krajeve naravno povezao na masu. Na pocetku Basic koda naveo sam DEFINE OSC 20.

Program je u petlji koja svakih pola sekunde ukljucuje/iskljucuje portb.7. Stvar radi.. pa prestane. Ili radi ali u vrlo nepravilnim vremenskim razmacima... ili se uopce nece upaliti dok ne dotaknem prstom kuciste kristala. Hm..

Koristim MicroCode Studio, PIC Basic i MPLAB 6.62 i PIC Start Plus programator.

U trenutku kada ovo pisem nemam kondenzatora veceg kapaciteta, a u datasheetu pise da se za HS mode uz 20 MHz kristal moze koristiti 15-33 pF i prema potrebi otpor izmedju OSC2 i C2. Kako izracunati vrijednost otpora ukoliko se ukaze potreba za njim? Mislite li da ce veci kapacitet kondenzatora srediti stvar?

Osim toga, radim na experimentalnoj plocici (ne lemim) pa me zanima da li oscilator zbog tankih nozica mozda nema dobar kontakt.. tj. da li je osjetljiv na to?


Thnx,


Tomislav
User avatar
Beetle
Posts: 12
Joined: 30-07-2005, 16:32
Location: Chair
Contact:

Post by Beetle »

:idea: ..zaboravih navesti da koristim PIC 16F74 (40 pin)
User avatar
trax
Administrator sajta
Administrator sajta
Posts: 3508
Joined: 08-01-2005, 18:04
Location: 75k, BA
Contact:

Post by trax »

Zdravo,

Nebi znao napamet kako se racuna vrijednost tog otpornika niti tih kondenzatora. Mislim da je problem u tome sto koristis testnu plocicu i veze izmedju kristala i OSC pinova kontrolera su vjerovatno prevelike. Na tih 20MHz ja sam imao dosta problema i smetnji. Probaj da zastitis uredjaj recimo nekom metalnom kutijicom. Probaj da zalemis oklop od kristala na masu (GND) mozda se sta smiri.
Jednom prilikom kada sam se igrao sa tako velikim taktom, i ukljucivanje lemilice je zaglavljivalo rad kontrolera :)

Caos
buco

Post by buco »

Moguce da tebe mozda zeza spoj, ili da ti Q plocica nije napukla ?. Ja sam bio lemio kuciste Q[18,877MHz] u masu ali to se uglavnom pokazalo nepotrebnim kad je Q dovoljno blizu [kond su bili 15pF] MCUa i kad je spoj dobar. Znao sam i koristit 74LS00[ i 74F00] kao osc kad su mi bile potrebne vece freq i stabilan takt za neke testove .
Pozdrav
User avatar
Beetle
Posts: 12
Joined: 30-07-2005, 16:32
Location: Chair
Contact:

Post by Beetle »

Interesantno. Bas sam razmisljao o nekim alternativama za takt mikrokontrolera. Imas li kakvih linkova, shema, primjera za takav oscilator sa 74ls0 i sl.?

Pa i ja mislim da je kontakt jer s jedne strane mi je u experimentalnu plocicu upiknut pin od mikrokontrolera, pa pin od kristala te s druge strane zica, tj. 'pin' kondenzatora.. tako da je pin od kristala u biti izmedju pina mcu-a i kondenzatora, a s obzirom da je pin kristala najmanjeg promjera moglo bi se reci da ima i najslabiji kontakt. Kazem.. u jednom trenutku je radio stabilno neko vrijeme dok ga nisam dirao.. kasnije je poceo zafrkavati kad sam ga nagnuo, izvadio, itd. Uglavnom, zalemit cu 40pinsko podnozje na plocicu i zalemiti kristal odmah do njega na odgovarajuce pinove pa cemo vidjeti.

Jos jedna stvar.. kada radim sa oscilatorom na 4 MHz (koji stabilno radi) i zelim sa hardware serijskim portom raditi na 9600 baud-a Advanced Serial Monitor mi kaze UART receiver framing error. Nisam uspio nista napraviti sa bit-parity i drugim. Inace, serijska komunikacija radi na 2400 bauda. Koristim MAX232N i samo TX, RX, GND linije. Mcu je isti (16f74).

Imate kakvu ideju? :idea:

Jednom mi je nesto i proslo kroz port na 9600, ali totalno *f.cked-up* je ispalo, a trebalo je ispisati 'pic started. waiting for input.'

Hm...

:)
buco

Post by buco »

Shema ti je jednostavna NOR ili XOR vrata spojis na vec standardni nacin , ulaze im spojis kratko na prva vrata spojis R39K ulazi na izlaz
tu dodje spojen i Q i kond 15pF na masu, izlaz prvih vrata spojis na kratkospojene ulaze drugih vrata , izlaz tih vrata je izlaz oscilatora. [ ja sam koristio najcesce 74LS02 IC].Ne zaboravi definirati tip oscilatora kao externi za MCU.
Pozdrav
Firkragg

Post by Firkragg »

Ja sam spajao kristale svakako, rade i bez otpornika i bez kondenzatora, čak sam bio jednu nogicu stavio u krivu rupu(port mikrokontrolera umjesto xtal2)
i i dalje je radio. Možeš stavit i titrajni krug umjesto kristala isto radi ali onda su neophodni oni kondenzatori prema masi jer dolazi inače do, smetnji.
Možeš probat spojit i neki vanjski oscilator, npr. gotovi kvarcni oscillator ili oscilator s logičkim sklopom. To može biti bilo kakav inverter, ako je NAND ili NOR onda povežeš ulaze. Trebaju ti dva vrata. Izlaz jednog invertera ide u ulaz drugog. Između ulaza prvog i izlaza prvog se spaja otpornik/potenciometar a između ulaza prvog i izlaza drugog kondenzator(a može i prema masi). Na izlazu drugog dobivaš signal.
Isto se može i s kristalom ali je shema malo drukčija(kako ti kaže buco). Pogledaj
http://www.ustr.net/electronics/double.htm
A serijska komunikacija neće radit na velikoj brzini bez kristala od točno 11.052Mhz ili nekog višekratnika.
buco

Post by buco »

ako koristis asm za emulaciju baudratea onda nije vazno da koristis kristal sa "spiska" ako moras koristit bascom ili nesto slicno tome onda nazalost moras po spisku . Kod atmega serije mozes prilicno dobro kontrolirat freq internog oscilatora.
Pozdrav
zoki_008
Posts: 2
Joined: 13-07-2005, 10:17
Location: Osijek

Post by zoki_008 »

Pozdrav Beetle,

to se meni desavalo kad zaboravim stavit otpornik od MCLR pin-a prema napajanju. Malo glupo zvuci al desi se da se zaboravi kad se radi na protoboard-u.
Post Reply