Fórum témák

» Több friss téma
Fórum » AVR - Miértek hogyanok
 
Témaindító: pakibec, idő: Márc 11, 2006
Témakörök:
WinAVR / GCC alapszabályok:
1. Ha ISR-ben használsz globális változót, az legyen "volatile"
2. Soha ne érjen véget a main() függvény
3. UART/USART hibák 99,9% a rossz órajel miatt van
4. Kerüld el a -O0 optimalizációs beállítást minden áron
5. Ha nem jó a _delay időzítése, akkor túllépted a 65ms-et, vagy rossz az optimalizációs beállítás
6. Ha a PORTC-n nem működik valami, kapcsold ki a JTAG-et
Bővebben: AVR-libc FAQ
Lapozás: OK   397 / 840
(#) huba válasza szabi83 hozzászólására (») Jan 4, 2012 /
 
Álljatok meg egy szóra. Ha bemenetnek használjuk a lábat és úgy akarjuk felhúzni egy belső ellenállásra akkor a PORT regisztert állítjuk egyre és a DDR-t nullára.

Adatlapból idézek:
Idézet:
„If PORTxn is written logic one when the pin is configured as an input pin, the pull-up resistor is
activated. To switch the pull-up resistor off, PORTxn has to be written logic zero or the pin has to
be configured as an output pin. The port pins are tri-stated when reset condition becomes active,
even if no clocks are running.”
(#) zombee válasza huba hozzászólására (») Jan 4, 2012 /
 
jóvan na már késő volt.
(#) kiborg válasza Reggie hozzászólására (») Jan 4, 2012 /
 
Köszi szépen, áttanulmányozom őket.
Kérdés: ha aktiválom az "ADC Noise reduction" módot, akkor nem fog akadni a multiplexelt kijelzésem? Vagy olyankor az output lábak a tri-state-re váltanak vagy outputok maradnak? A jelem sima egyszerű mezei lassan változó DC-jel lesz, csak a maximális felbontását kellene kihasználni az ADC-nek.(230V-ot mérnék 3 fázison. Úgy képzeltem el, hogy egy trafóval fázisonként letranszformálom,egyenirányítom, helitimmerrel osztom és utána mérem és kijelzem)

Zombee:remélem így már világosabb. Tehát vagy egy 5V os tápfeszültségem és 3 egyéb feszültségem,amit mérni szeretnék.Ezeket tetszőleges tartományban tudom állítani egy potival. A mért értékek 218 és 242V közötti értéket jelentenének.
Üdv Kiborg
(#) szdani hozzászólása Jan 4, 2012 /
 
Azt hogy tudom kiszámolni hogy mekkora ellenállás kell a reset lábra? PL: egy atmega 168 nál.
(#) Reggie válasza kiborg hozzászólására (») Jan 4, 2012 /
 
Meg fog akadni, de nem tristate lesz, hanem a legutolso allapotban marad, de csak a konverzio idejere all le.. Ilyenkor elotte celszeru a kimeneteket passziv allapotba valtani. A masik megoldas az, hogy a multiplexelt kimeneted frissitesi frekvenciaja annyira leviszed, hogy a periodusito legalabb akkora, mint a konverzios ido. Ekkor a multiplexerhez szinkronizaltan kell inditanod a konverziot.
(#) kiborg válasza Reggie hozzászólására (») Jan 4, 2012 /
 
Akkor marad a második megoldás, hiszen a 3 csíknak, hogy elég a 20-25Hz-es frissítési gyakoriság (de ha 100Hz, akkor is elég), mert a maximális konverzióidő 25 órajelciklus (1MHz-n 25us) ami sokkal kisebb idő, mint amit észrevennénk a multiplexálás kiesésénél. Ennyi holtidő szerintem bele fog férni, főleg, hogy csak másodpercenként lesznek mérve a csatornák.
Köszi a segítséget. Üdv Kiborg

ui: mit ajánlanál feszültség referenciának?
(#) Axel válasza szdani hozzászólására (») Jan 5, 2012 /
 
Hello!
A felhúzó ellenállás értéke nem kritikus, 1-4,7kohm-ig gyakorlatilag bármilyen megteszi. Én az utóbbit szoktam használni. A lényeg ,hogy az áram kicsi legyen, de 20mA-nél semmiképpen sem nagyobb.
(#) szdani válasza Axel hozzászólására (») Jan 5, 2012 /
 
Köszönöm szépen!
(#) szdani hozzászólása Jan 5, 2012 /
 
Abban tud valaki segíteni hogy miért nem tudom kiolvasni a chip signature-ját? Egy egyszerű kapcsolás, atmega168 kap tápot, 20MHz-es kvarcot, 6 nyomógombot meg 2 ellenállást ami egy atennakimenet. Próbáltam ellenállást rakni a reset lábra de úgysem volt jó. A chip vadonat új! Úgy kötöttem be a programozót ahogy az adatlap írta: MOSI-MOSI, MISO-MISO SCK-SCK
RST-RST, Xtal1 órajel 4MHz-et adtam neki.

circuit.gif
    
(#) sikolymester válasza zombee hozzászólására (») Jan 5, 2012 /
 
Hmm, akkor az én készülékemben lesz a hiba. Majd alkalomadtán kicsit tüzetesebben megnézem.

Köszi az infót!
(#) sgt válasza szdani hozzászólására (») Jan 5, 2012 /
 
MISO-MOSI és MOSI-MISO. Rosszul kötötted be. Vagy tévednék?
(#) Axel válasza szdani hozzászólására (») Jan 5, 2012 /
 
Állítottál előzőleg valamit a fuse biteken?
(#) sikolymester válasza sgt hozzászólására (») Jan 5, 2012 /
 
Hehe, pont ezért lett kitalálva a MOSI-MISO elnevezés, hogy ne legyen keverve, hogy mit mikor mire kell kötni.

Emlékezetes ugye a kavarás mondjuk egy RX TX-nél.

SPI-nél csak összekötjük MISO-t MISO-val, MOSI-t MOSI-val. Persze akkor gond lesz, ha mindkét eszköz masternek, vagy slavenek képzeli magát, de ez már nem bekötési gond. Egy AVR amin lerántja egy programozó a reset lábat magát nem nagyon fogja masternek hinni.

Én annyit kérdeznék, hogy tápfesz hány Volt, illetve milyen programozód van és azt milyen programmal használod?
(#) sgt válasza sikolymester hozzászólására (») Jan 5, 2012 /
 
Akkor tévedtem. Ezekkel nagyon megtudnak kavarni. Meg a frankó adatlapok is nagyon becsapósak.
(#) szdani válasza Axel hozzászólására (») Jan 5, 2012 /
 
A bekötés jó, semmit nem tudtam állítani mert nem látja a chip-et. AVR911-et használok AVR OSPII-vel. Tápot is kap. USB-ről kap 5V-ot
(#) sikolymester válasza szdani hozzászólására (») Jan 5, 2012 /
 
És már korábban működött az AVR911 az említett programmal tetszőleges AVR-rel?
(#) sikolymester válasza sgt hozzászólására (») Jan 5, 2012 /
 
Úgy lehet megjegyezni, hogy a MOSI: Master Out Slave In, a MISO: Master In Slave Out.

Tehát az elnevezés rögtön hordozza a bekötési mikéntjét is. Néha SPI kompatibilis IC-knél úgy adják meg a lábakat, hogy SPI, SPO, vagyis Serial Port In, Serial Port Out. Ha a MISO/MOSI szemlélettel kötjük össze a mikrokontrollerrel, ahol MISO/MOSI lábak vannak, akkor elég arra gondolni, hogy a mikrokontroller lesz a master és kész is:
SPO->MISO SPI->MOSI
(#) sgt válasza szdani hozzászólására (») Jan 6, 2012 /
 
Lehet ezért nem megy . Hol vetted az atmegát?
(#) sgt válasza sikolymester hozzászólására (») Jan 6, 2012 /
 
Köszi. Most már csak a soros portnál kell figyelni, hogy fel kell cserélni . Az ilyenektől az eszem meg tud állni.
(#) karika200 hozzászólása Jan 6, 2012 /
 
Üdv!

Belefogtam az avrdoper építésébe. Ott tartok, hogy már csak a felprogramozott AVR kell bele. Építettem egy STK200-at gyors, hogy majd azzal felprogramozom. Ezt a programozót ez és ez alapján raktam össze. Valami azonban nem oké, mert nem működik a dolog.
Véleményeteket szeretném kérni, hogy hol lehet a hiba. Ezen bekötések alapján kellene-e működnie az elvárt módon vagy eleve már a bekötés sem jó? Az Atmega8 7-es lábára adtam a +5 Voltot és a 8-ason van a GND.
Ha tudtok egyszerűbb/másik módot az AVR felprogramozására akkor azt is szívesen fogadom. Egyetlen célom, hogy egy alkalommal egy Atmega8-at fel tudjak programozni, nem szeretném a későbbiekben használni ezt a programozót, pusztán csak azért küzdök vele, hogy az Avrdoper-be legyen egy felprogramozott AVR-em.

Köszi
(#) zombee válasza karika200 hozzászólására (») Jan 6, 2012 /
 
Hát nem tudom hogy azt honnan szedted, annyi biztos hogy nem STK200-nak hívják!
Nézd meg a csatolt képet, a különbség ordítani fog! PonyProg-al már használható lesz.
Ha esetleg a FUSE bitek problémát okoznak PonyProg alatt:
SUT_CKSEL mindegyikétől vedd ki a pipát, ezzel biztos a külső kvarckristályra kapcsol át.

avrisp.gif
    
(#) karika200 válasza zombee hozzászólására (») Jan 6, 2012 /
 
Hmm, köszi! Az avrdude-ot próbáltam pony-stk200 -al is paraméterezni, sajnos nem ment úgy sem. Ez amit linkeltél szintén nem tűnik bonyolultnak. Lehet átépítem. Köszi.
(#) karika200 válasza zombee hozzászólására (») Jan 6, 2012 /
 
Köszönöm a segítségedet! összeraktam ezt amit linkeltél, működik is szépen! Még lenne annyi kérdésem, hogy ha olyan programot írnék az IC-be ami későbbiekben külső kristályt használna, akkor itt, felprogramozásnál is legyen ott a kristály már az ATmega8 9-es 10-es lábán?

Köszi
(#) sikolymester válasza karika200 hozzászólására (») Jan 7, 2012 /
 
A 8bites AVR-eknél az órajel választás teljesen független a beleégetett programtól.
Az órajelet az un. fuse bitekkel lehet állítani.

Tehát, ha a te programod azzal számol, hogy 12MHzen fut majd az AVR, de a fuse bitek 1 MHz-re vannak állítva, akkor értelemszerűen a program ugyan futni fog, csak azok a funkciók, amik számítanak a 12MHz-re nem fognak helyesen működni.

Mindazonáltal amint a fuse bitekkel beállítod, hogy külső kristályról szedje az órajelet, és nincsen rajta külső kristály, akkor addig "se kép se hang nem lesz", amíg nem kap egy külső kristályt.
(#) szdani válasza sgt hozzászólására (») Jan 7, 2012 /
 
Elektro Kontha én ott szoktam vásárolni.
(#) szdani válasza szdani hozzászólására (») Jan 7, 2012 /
 
Másnál igen, működött.
(#) sgt válasza szdani hozzászólására (») Jan 7, 2012 /
 
Ahogy olvastam a topicot. Ott minden értelmes tranzisztor hamis. Bár azért nem hiszem, hogy az atmegákból is hamisat rendelnék.
(#) ATtiny hozzászólása Jan 7, 2012 /
 
Egy AVR alapú hálózati teljesítmény mérőt programját írom és szükségem lenne valami jó ötletre, hogyan tudok értékelhető pontosságú cos fi -t mérni. Az eredeti elképzelésem az volt, hogy az áram és feszültség fáziseltolódásából számolom ki. Ez a módszer működik is most, de értékelhetetlen eredményt ad ha nem szinuszos az áram jel. Ez pedig manapság gyakran előfordul a kapcsolóüzemű tápok világában. A feszültséget és az áramot "true" RMS módon mérem, így azok bármilyen hullámforma esetében is pontos értéket adnak. De sajnos a cos fi kiszámítása durván torzult szinusz jel esetében nem egyszerű. Legalábbis én nem találtam rá megoldást. Talán valakinek van itt ötlete, hogyan is lehet ezt megoldani.
(#) zombee válasza ATtiny hozzászólására (») Jan 7, 2012 /
 
Torz, nem-szinuszos jeleknél a cos fi mérésnek nincs sok értelme. Egy lehetőség azért akad, talán az a jó:
a feszültségből és az áramból az 50Hz-es alapharmonukust veszed alapul a csúcsok meghatározásához.
Valószínűleg FFT is kelleni fog hozzá, másképp nem megy!
(#) ATtiny válasza zombee hozzászólására (») Jan 7, 2012 /
 
Sajnos én is csak olyan infót találtam a neten, a kapcsolóüzemű tápok által eltorzított áramjelalakból a power factor számításhoz, ami úgy nyit, hogy FFT képlet meg THD számítás. Egyik sem az a művelet, amit könnyedén bele lehetne tuszkolni egy 8 bites AVR-be, úgy hogy már így is eléggé le van terhelve a RMS számítással.
Következő: »»   397 / 840
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem