ASD, 28.10.2008 23:39:30
Řekni jaký AVR máš a jaký krystal máš a my ti řekneme co s tím.
Já myslel obecně. AVR jsem samozřejmě myslel řadu mega. Pokud jsem si všiml správně, tak všecky megy mají stejné funkce fusebitů pro nastavení taktů. Jinak konkrétně mám mega8 (to samý bude platit mega16, mega32,..).
Xtal nepovim jakej, musel bych se pořád ptát
Mě jde o to, že jsem nepochopil co se myslí tím 1.0<=
Jestli to nastavení, kdy je
CKOPT=0 a CKSEL3..1=(101,110,111)
platí pro Xtaly větší nebo rovno než 1MHz, a jestli je zároveň jedno, zdali do CKSEL dám 101, 110 nebo 111.
(Konkrétně se jedná o tabulku 4 na straně 26 v DS od mega8)
Takl jsem se podrobněj i začetl do datasheetu, a vyčetl jsem následující (alenejsem si jist, zdali je to pravda):
Pokud naprogramuju CKOPT=0 oscilátor bude mít větší rozkmit napětí, tudíž rozsah pracovních frevencí Xtalů může být větší. Platí tedy potom, že pokud bude CKSEL=0, mohu použít toto nastavení pro Xtaly od 1.0MHz do 16MHz? (tím si jistý trochu jsem) nejsem si ale vůbec jistý tímto:
pokud bude CKOPT=0, mám tři možnosti, co nasypat do CKSEL3..0. Je jedno, co tam dám?
ASD, 29.10.2008 13:07:57
Kdyz nechas CKOPT nenaprogramovane, oscilator ma maly rozkmit a musi se to kompenzovat pres CKSEL. Kdyz CKOPT naprogramujes, hodnota CKSEL pro frekvence 1 MHz a vyssi ztraci smysl, muzes tam dat libovolnou z tech trech. Normalne se to ale dela tak, ze se tam dava ta spravna hodnota.
hmm, "správná hodnota" - pro 8-16MHz řek bych neexistuje. Prostě CKOPT=0, nebo ne?
ASD, 29.10.2008 15:36:56
Pro 3 až 16 MHz se dává 111 i když to samozřejmě s naprogramovaným CKOPT nemá valný význam.
ok díky.
Momentálně se zaučuju s UARTem, UDRE - log 1 znamená prázdný transmitt buffer, TXC říká v log 1 že bylo odesláno.
Je tedy pravda, že je jedno, jestli budu čekat
"až se vyprázdní buffer"
nebo
"až bude odvysíláno"
Změna myslím zde:
buďto:
čekej až bude UDRE=1, pak vysílej data
nebo:
vysílej data, čekej na konec odvysílání
dík moc, Honza
Tak jsem do megy8 naprogramoval testík uartu,.. no a jak jinak, dopadlo to katastrofou. V terminálu se objevuje všecko možný, jen ne to co má.
Můžu sem hodit zdroják, kouknete se mi na to někdo prosím?
Dík, Honza
ASD, 29.10.2008 19:06:05
V 99% stačí čekat jenom na UDRE.
95% chyb s UARTem je špatná frekvence oscilátoru a špatné nastavení UBRR.
jj, čekám na UDRE
Fosc=11.0592MHz
UBRR = 5 (je to v tabulce v datasheetu) -> 115200bps
v tom asi chyba nebude...
ale .. začal jsem krokovat pozorně, všecko jsem sledoval ostřížím zrakem, a všiml jsem si jedné záhady.
ldi R16, 0b10000110 ;ASYNchronous mode, parity None, 1 stopbit, 8 databits,
out UCSRC, R16
... ... ...
ldi R16, high(UBRR) | (1<<URSEL)
out UBRRH, R16
Tady se to chovalo nějak záhadně. Schválně, kdo si všimne té blbé chyby jako první. Před chvílí sem se pěkně nas***
Zdá se, že jsem nepochopil jak se zapisuje do toho UCSRC/UBRRH... tak znova, nastudovat lépe
Tak a je to na světě. Chyba byla u mě (opraveno, funguje), bohužel chybu udělali i programátoři atmelu. Chyba je bohužel i v simulátoru. MYslíte, že by byl dobrý nápad jí oznámit?
ASD, 29.10.2008 21:43:05
Tohle je špatně, to je jasné
ldi R16, high(UBRR) | (1<<URSEL)
out UBRRH, R16
zdeněk, 29.10.2008 21:44:42
Nevíte jaké rezistory se propojkami přepojují? Případně schéma oscilátoru?(asi to bude jedno hradlo..)
zdeněk, 29.10.2008 21:50:52
například u 8051 bylo udávané(u intelu) pro obě výrobní technologie.
2 zdeněk? na co si navazoval? nějak mi uchází kzačátek..
Přidám se asi k tobě: Co se mění ve skutečnosti těmi CKSEL3..1 ?
zdeněk, 29.10.2008 23:25:14
ASD, 29.10.2008 23:39:38
To zdeněk: Není známo, ještě nikdy jsem neviděl schéma oscilátoru MCU s konkrétním vyznačením kterak fungují fuse v oscilátoru a taky by mě to zajímalo.
zdeněk, 30.10.2008 02:08:55
ADS - to schéma na 8051 sem můžu dát, ale ta fuse ještě neměla
Jinak obecně, odpor na výstupu hradla omezuje výkon rozptýlený na krystalu. Pokud je ale příliš velký není splněna oscilační podmínka a oscilátor nekmitá. Krystaly s nižším kmitočtem mají vyšší sériový odpor a proto zřejmě musí být výstup přizpůsobován.
Je to ale pouze domněnka odvozená od hradlových oscilátorů.
http://www.icbase.com/pdf/add/ti/AN-101-00039en.pdf