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   409 / 840
(#) sgt válasza edison14 hozzászólására (») Feb 7, 2012 /
 
Kalibrációt csak akkreditált kalibráló laborokban lehet elvégezni. Maga kalibráció pedig az adott műszer metrológiai pillanatfelvétel készítése. Sajnos a szaknyelvben ma már teljesen összekeverik a beszabályozás fogalmával :no: .

Ezt nem egészen értem, de a beszabályozó program jól van megírva? A feszültségosztó arányt hogyan változtatod?
(#) blaci hozzászólása Feb 7, 2012 /
 
Üdv!

A mellékelt programmal van gondom, illetve azt hiszem, inkább a fuse bitekkel, ebben kérném a segítségeteket.
Ha a jelenlegi állapotban betöltöm az Atmega8-ba, akkor programozás után automatikusan indul a program. Viszont hideg start esetén csak egy reset után. Sok kísérlet után, ez már egy idilli állapot, de igazából úgy gondolom, hogy ennek mindíg azonnal mennie kellene.
Fuses:
HIGH: 0xC9
LOW: 0x23
A kapcsolás az itt fellelhető AVR próbapanel, amit már ellenőriztem párszor, és úgy gondolom, hogy rendben van.
(#) Suncorgo hozzászólása Feb 7, 2012 /
 
Hogy lehet az hogy az AVR studio 5 az előző winemnél azonnal megtalálta az STK500-asom a COM5ön, most meg akármit csinálok vele csak az AVR simulátor van?
(#) Suncorgo válasza blaci hozzászólására (») Feb 7, 2012 /
 
Hideg start?

Mi van az AVR reset lábán?

Húzd fel 10Kval és szűrd 100nF. Ha így van akkor próbáld megnyújtani a reset időt. Tegyél a 100nF kondival párhuzamosan 1µF-ot.

A fuse biteknél a 64m-et válaszd. Ez még 64ms-et késleltet.

Esetleg attól lehet problémád hogy még a táp nem állt be 5Vra.
(#) Suncorgo válasza edison14 hozzászólására (») Feb 7, 2012 /
 
Ezt a jelenséget én is észrevettem már az atmega8 ADCjével. Kicsit csúszik de nem tudom miért.
(#) Simon Balázs válasza Suncorgo hozzászólására (») Feb 7, 2012 /
 
Sajna nem sikerült a dolog, teljesen ugyan az a helyzet...
(#) tomi134 hozzászólása Feb 8, 2012 /
 
Sziasztok

Segitségre lenne szükségem, találtam a neten egy jopofa kapcs. rajzot ami nagyon jol jöne a nyaralomban.
Már lasan 2 hete probálkozom vele isis szimulátoron de nem igazán müködik tudna valaki vetni egy pilantást rá,vagy esetleg lefutatni szimulatoron.
Hozáteném hogy öszesen 3 avr procit programoztam tehát nagyon nem ismerem öket.
Csatolom a doksit meg egy video linket.
Elöre is köszi.
Video: Link
(#) napster4 hozzászólása Feb 8, 2012 /
 
Hali mindenki!

Azt szeretném kérdezni, hogy az AD konverter referenciájának mekkora a legkisebb adható érték, amit még pontosan tud mérni? 75mV-ot kéne nekem 10 bites felbontással mérnem, közvetlen megtehetem ezt, egy 75mV-os referenciával, vagy használjak műv. erősítős kapcsolást, ami kicsit nagyobb feszt. csinál nekem?

a válaszokat előre is köszönöm!

üdv.
(#) zolee1209 válasza napster4 hozzászólására (») Feb 8, 2012 / 1
 
Az adott AVR electrical characteristic részénél megtalálod, az ADC-nél. Azt hiszem 2V a minimális. Vagy külső elemmel erősíted fel a feszt, vagy olyan procit választasz, amiben van differenciális mérés, ezeknek van bekapcsolható 10x, 200x-os erősítésük.
(#) Suncorgo válasza Simon Balázs hozzászólására (») Feb 8, 2012 /
 
Tegyél egy ledet az avr akármelyik lábára, mikor pl lefut az lcd_clrscr(); fügvény akkor kapcsold be. Mikor elindítod akkor látod hogy a proci elindult vagy nem ha a led világít. Ha megy a proci, a kijelző meg nem, akkor a kijelző inicializálásánál lesz a bibi. Akkor viszont ajánlom figyelmedbe ezt: Bővebben: Link

Ebből megtanulhatod és a doksijából initializálni a kijelzőt és akkor nekifuthatsz leellenőrizni a programkódot.
(#) norbigal hozzászólása Feb 8, 2012 /
 
Hali!

Az Atmega16-tal kapcsolatban lenne pár "áramos kérdésem"

Az A/D-hez szükséges szűrő értékeiről ír az adatlap (10uH és 100nF) de arról nem, hogy az induktivitás milyen áramhatáron legyen. A Hestore-on találtam 10uH-s 15mA-es, 1,15R értékű Bővebben: Link
és egy szintén 10uH-s de meghatározhatatlan áramú induktivitást is.Bővebben: Link
Ezt követően már csak a 3,9A-es van ami nyilván túl nagy. Szerintetek melyik lenne jó az AVR A/D szűrőjéhez? A 15mA-es is elég lenne?

A másik kérdésem pedig az, hogy a 7805-ös IC-s stabilizátornál hány mA-es adaptert köthetek az Atmega16 tápfesz-ének? Van egy 300mA-es 12V-osom, az bőven elég neki nem?!?! Nem tudom mekkora áramot vesz fel az Atmega alapállapotban illetve 10-20 normál fényerejű led és egy LCD kijelző társaságában.... :S De annyi bőven elég neki nem?!?!

Köszi előre is a segítséget!
(#) edison14 válasza sgt hozzászólására (») Feb 8, 2012 /
 
Annyit csinálok, hogy meghatároztam a feszültségosztó értékét ami esetemben 5,1-el és ezt az értéket a programban növelem vagy csökkentem. Ezzel nő vagy csökkne a kijelzett érték is. Nem nagyon foglalkoztam még ilyen beszabályozásokkal ezért kezdtem el ezen a vonalon menni. Esetleg tudnál adni ötleteket hogy hogyan oldják meg ilyen mérőműszereknél a beszabályozást?
(#) hedgehoge hozzászólása Feb 8, 2012 /
 
Sziasztok,
most kezdem AVR-ekkel foglalkozni, és össze is gyűlt egy pár kérdésem:
1. mehet-e egy darab 7805-röl az AVR mellett a motorvezérlő is?
2. ugye az AVR-eknek stabilizált 5 V feszültség szükséges, de láttam olyan megoldást ahol 4 db 1,2 V-os akkuról használta, ami ugye 4,8 V, kérdésem: működhet-e így normálisan az AVR?
3. a motorvezérlőnek egy L293D-t használok, és a kérdésem az, hogy , hogyan oldjam meg egy 3 V-os motor áramellátását, ha a motorvezérlőre eleve 5 V kell, és ha 3 V tal használnám akkor az ugye felveti a kettes kérdés problémáját, azaz hogyan lehet úgy használni egy ilyen integrált áramkört hogy 5 V nél kisebb a tápfesz?
4. az AVR motorvezérlőnek használt lábait is "fel kell húzni", igaz?
a válaszokat előre is köszönöm

Üdv
(#) norbigal válasza hedgehoge hozzászólására (») Feb 8, 2012 /
 
Énis olvasgattam a 7805-ről, és (elvileg) a sima 7805-ös 1A-et tud max átengedni (ellentétben pl a 78L05 vagy 78_05 stb-vel).

1) SZerintem minden további nélkül mehet a motorvezérlő is arról.
2) Az átlag AVR nem pontosan 5V-ot követel hanem (úgytom )hogy 4,5 és 5,5 V közötti tartományban működik. Bár ez attól függ mit használsz mert vannak olyan AVR-ek amik már 2,7V - 5,5V-os tartományban is üzemelnek. (az "L" jelzésűek)
3) A 3V-ot én egy 3V-os Zenerdiódával választanám le a 7805-ről, de persze biztos van más megoldás is.
4)Erről nemtudok nyilatkozni mert még nem használtam motorvezérlőt.
(#) Suncorgo hozzászólása Feb 8, 2012 /
 
Lehet hülye vagyok vagy elnéztem valamit de, a gyári AVRISP MKII leírásában nem látok TPI vagy PDI csatlakozó leírást. Csak ISP van. Akkor most hogy van ez? Az utánépítettel lehet xmegákat is programozni a gyárival meg nem?

Bővebben: Link
(#) Tetye válasza Suncorgo hozzászólására (») Feb 8, 2012 /
 
Hali!
Én is megcsináltam a kapcsolást de egyik hex-el sem akar működni rendesen. Terminálba is csak hülyeségeket ír ki, és a start után is csak a piros elalszik majd felgyullad.
Nem tudod mi lehet a baja?

ert.JPG
    
(#) Suncorgo válasza Tetye hozzászólására (») Feb 8, 2012 /
 
Nem derült ki hogy melyiket is csináltad meg?
(#) Tetye válasza Tetye hozzászólására (») Feb 8, 2012 /
 
Amúgy csak a flash hex amit fel kell tölteni rá, nem? vagy van valami eeprom tartalom is?
38400bps-el van nyitva a terminál.
Gondolom még eeprom tartalom nélkül is ki kéne írnia a terminálba hibátlanul.
(#) Tetye válasza Suncorgo hozzászólására (») Feb 8, 2012 /
 
Ezt, annyi különbséggel hogy 1k helyett 10k van a reseten de évek óta 10k-t rakok resetre.
(#) zombee válasza Suncorgo hozzászólására (») Feb 8, 2012 /
 
Nem vagy hülye, ebbe én is belebotlottam de hamar meglett a válasz is. Lényeg hogy a gyárin csak 1 darab 6p csatlakozó van, és a kimeneteket maga a programozó kapcsolgatja az éppen használt programozófelület szerint. Tehát van TPI és PDI is, de csak akkor ha olyan IC-t programozol ami azt a felületet használja. Ez a kapcsolómátrix - egyelőre - egyik utánépített változatban sincs meg, ezért vagy a szalagkábelt kell mindig átdugdosni(pl. TavIR-változat), vagy programozóadaptert használni. Ez utóbbi módszert a saját programozómnál rendszeresítettem, mert csak egy 10p kimenete van.
(#) zombee válasza hedgehoge hozzászólására (») Feb 8, 2012 /
 
1: Ha elbírja akkor minden további nélkül.

2: Attól függ! Az AVR-ek általában 2.7-5.5V között működőképesek, nagyobb órajelen a minimum 3.3V,
de újabb(főként "A" vagy "P" végződésűek) típusoknál a minimum még kisebb is lehet, és kb. 1.8V körüli az "abszolút minimum". De ezt befolyásolja a BODLEVEL beállítás: hiába tudna 2.0V-on is menni, ha a BODLEVEL 4.3V-ra van állítva akkor ~4.1V alatt RESET-elni fog!

4 darab akksi még elmegy akkor is ha igazából nem 1.2V hanem inkább 1.3-1.35V, de 1.5V-os ceruzaelemek mellett jó esetben csak letilt, rossz esetben leég az AVR...
(#) Suncorgo válasza Tetye hozzászólására (») Feb 8, 2012 /
 
Melyik hex-et egetted be? Úgy olvastam hogy a 2.01hez nem kel eeprom tartalom. Viszon a 2.03-ashoz kell mert nem fért minden a flashbe, és az üzenetek is az eepromba vannak. Szerintem ezért ír hülyeségeket.
(#) Tetye válasza Suncorgo hozzászólására (») Feb 8, 2012 /
 
2.01 el is próbáltam, azzal is ez volt, 2.03 al is viszont nem tudom az eepromot programozni.
gondolom az xxx2.03.epp.bin lenne az de Getting isp parameter.. SD=0x01 .. OKThe specified file is not a valid Intel HEX file a hiba üzi.
(#) Tetye válasza Suncorgo hozzászólására (») Feb 8, 2012 /
 
Esetleg a neked műlödő hex-et és eprom fájlt és a fusebit beállításokat, nem tennéd fel nekem ?
(#) zombee válasza Tetye hozzászólására (») Feb 8, 2012 /
 
Itt az enyém...
A leírás szerint 1MHz-re kell állítani az ATMega8-at; nekem 4MHz-en is lazán viszi...
(#) Suncorgo válasza Tetye hozzászólására (») Feb 8, 2012 /
 
Most nem tudom mert nem vagyok otthon. Majd este 11 körül csak.
(#) Axel hozzászólása Feb 8, 2012 /
 
Sziasztok!
Valaki elmagyarázná nekem nagyvonalakban, hogy mi is az a debugolás egy AVR esetében? Az megvan, hogy van a JTAG port és arra kell kötni a debuggert de hogyan működik az egész folyamat? Van egy JTAG mag a prociban (már amiben van) és attól információt kapok, hogy órajelenként mi zajlik futásidőben? Eddig még csak a paraszt debug módszert használtam de jó lenne megismerkedni valami komolyabbal is.
(#) zombee válasza Axel hozzászólására (») Feb 8, 2012 /
 
Van egy JTAG mag amit a JTAGEN nevű FUSE bit aktivál(gyárilag aktívra van állítva), ez teljesen független az ISP-től. A mag külön életet él és képes az egész proci felett átvenni az uralmat. Így a "kizárt AVR-ek" akár JTAG-en keresztül is javíthatóak(persze csak beállított JTAGEN esetén).

Utasításonként(soronként) lépkedhetsz, a függvényeknél megmondhatod hogy egy az egybe futtassa azt le és lépjen a következő sorra vagy a függvénybe belépve is láthatod annak lépéseit.
Természetesen két léptetés között szintén kiolvashatod a regisztereket.

Hardver töréspontot tehetsz a kódba, elindítod a debuggolást és megáll neked ha az utasításvégrehajtás ráfut arra a sorra ahová tetted a töréspontot, ekkor kiolvashatod a regisztereket, portokat, stb. majd a folytatásra kattintva tovább fut amíg újra oda nem ér a törlspontot(hacsak ki nem kapcsoltad).
Azaz nem kell lépegetni ha csak arra az egy pontra vagy kíváncsi.

Szóval egy AVR Jtag Debugger ilyenekre használható, ha tévednék akkor javítsatok ki!
(#) Suncorgo válasza zombee hozzászólására (») Feb 8, 2012 /
 
Most egy ilyen debuggolási folyamatot JTAG nélkül a proci UART-ján is meg lehet valósítani programmal. Csak ugye ez akkor cinkes ha 1 UARTod van és használni is szeretnéd...

PL Kell egy fv amit ha meghívsz az AVRbe akkor a progi végtelen ciklusra megy és addig nem engedi tovább míg az UART-on azt nem mondod neki. Addig meg elküldi neked az összes infót amire kíváncsi vagy. Gondolom ez megoldható.
(#) Suncorgo válasza zombee hozzászólására (») Feb 8, 2012 /
 
Idézet:
„A leírás szerint 1MHz-re kell állítani az ATMega8-at; nekem 4MHz-en is lazán viszi...”


Nem értem miről beszélsz mikor az oldalra ez van írva:
Fusebits: Internal 8MHz clock, and enabled EESAVE bit.

Tetye
Én erről az oldalról égettem be a 2.01 hex-et. Nekem a 2.03-as nem ment. Vagyis a zöld led pilácsolt de nem jött vissza az élők közé. Bővebben: Link
Következő: »»   409 / 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