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   158 / 840
(#) russiangt hozzászólása Okt 20, 2009 /
 
Sziasztok!

Lehetséges oly módon kizárni magam egy atmega8-ból úgyhogy még külső órajellel sem tudok belőle olvasni?

Előre is köszönöm a válaszotokat.

Üdv.
OA
(#) gtk válasza russiangt hozzászólására (») Okt 20, 2009 /
 
Igen, letiltottad az SPI-t vagy a reset-et. (csak olvasni? beirtad a kodvedelem biteket, ettol lehet programozni, ilyenkor felulirja)
(#) bladika hozzászólása Okt 21, 2009 /
 
Sziasztok!

Tudnátok segíteni, hogy SPI és I2C buszra kapcsolódáshoz milyen védelmi szempontokat kell szemelőt tartani? Több AVR csatlakozna rá, amik közös 3,3V-ról járnak.

Gondolok itt pl. soros ellenállásra.
(#) Ricsi89 hozzászólása Okt 21, 2009 /
 
Helló!
A Topi féle AVR-ISP-be programoznám az atmega8-at párhuzamos portról. Avrisp program felismeri a procit, felprogramozza, majd verify-kor hibát ír. Mjadnem az egész hibás. A fuse biteket hogy állítsam itt be? Kicsit másképp van ez a program, mint a cikkben.
(#) Lucifer válasza Ricsi89 hozzászólására (») Okt 22, 2009 /
 
Milyen programmal programozol? Elképzelhető, hogy a cucc belős 1 Mhz-s óráról jár, és az égetőd túl gyorsan dobálja bele a biteket.
Illetve ellenőrízd meg van-e tápolva rendesen. Én már jártam úgy, hogy a GND láb nem volt bekötve, és a DEV ID kiolvasása ment rendesen, azonban a programozás már nem.
(#) Ricsi89 válasza Lucifer hozzászólására (») Okt 22, 2009 /
 
Itt van a program, amit használok. Ez felismerte a procit, fuse biteknél beállítottam külső oszcillátort és ráakasztottam egy 12MHz-es kvarcot. Esetleg ez lehet, hogy sok neki? A programban változtatva az ISP frekit néha a verify-nél már van elég sok zöld rész, de nem tökéletes. EGy másik atmegát sikerült elsőre felprogramozni, de véletlenül RC oszcillátorra állítottam, így most nem tudom olvasni. Erre valami egyszerű megoldás esetleg? Abba elvileg sikeresen belement elsőre a program. Ebbe meg ugyanolyan beállítással nem akart.
(#) Lucifer válasza Ricsi89 hozzászólására (») Okt 22, 2009 /
 
Félreértetél.
Azt próbáltam vázolni, hogy nem a proci órajele magas, hanem a programozóé. Ha a proci lassan 'ketyeg' lehet nem tudja feldolgozni az ISP-n érkező csomagokat.
A fuse bitet biztos sikerült átállítani külső kvarcosra?
Ha nem akkor valószínűleg még mindig belső 1 Mhz-n ketyeg a cucc.
Vedd le az ISP frekit legkisebbre, és csak úgy próbálkozz.

Amelyikre RC osc-ot állítottál be, azt úgy tudod visszahozni az életbe, hogy vagy frekvenciagenerátorról adsz neki órajelet az XTAL1 lábra, vagy megépíted ezt:
http://www.hobbielektronika.hu/kapcsolasok/seged_orajel_generator.html
(#) Ricsi89 válasza Lucifer hozzászólására (») Okt 22, 2009 /
 
Most éppen a ponyprog bírkózik a procival. Elég lassan írja, remélem jó lesz. A fuse bit biztos külsőre van állítva, mert kvarc nélkül fel sem ismeri a procit egyik program sem. Szép lassan meglesz és megnézem jó-e.
Hoppá. Pont most írt ki 80% után egy üzenetet, hogy write failed. Mindjárt megpróbálom megint.
(#) gallz hozzászólása Okt 22, 2009 /
 
Hello!

Nagyon kezdő vagyok, még ezért ne csodálkozzatok, ha butaságot kérdezek.

A Topi féle szobanövény szárazság ellenőrzőt szeretném továbbfejleszteni egy vízpumpával. Ehhez egy 12V-os trabant ablakmosó szivattyút használnék.
A jelenlegi felállásban két áramkör van. A mikrovezérlős rész 3V-ról működik és a kapcsolgatást tranzisztorokkal próbálom megoldani, de nem igazán sikerül. A motor vezérlőáram nélkül is lassan forog. Mellékelem a kapcsolást.

Talán jobb lenne optocsatolóval megoldani a problémát. Ti mit javasoltok?

kapcs.jpg
    
(#) gtk válasza gallz hozzászólására (») Okt 22, 2009 /
 
Az r2-t csereld ki kissebbre, vagy r1 legyen nagyobb.
(#) Lucifer válasza Ricsi89 hozzászólására (») Okt 22, 2009 /
 
Hozd be a stuffot a hétfőn (2009.10.26.) 15 óra magasságára az SZFT-n lévő elektromos laborba, és felprogramozom neked.
(#) Ricsi89 válasza Lucifer hozzászólására (») Okt 22, 2009 /
 
Közben sikerült felprogramozni ,de a gép hozzá sem szagol a kész cucchoz. Verify-nál semmi hiba, az oszcillátor is külsőre van állítva. Viszont olyan van a programban csak, hogy 3-8Mhz-ig. Ez esetleg lehet gond? Mert a kész avrisp-ben 12MHz-es van.
Szerk.: A hiba amúgy a stabilizátornál volt. Egy rossz forrasztás miatt nem volt elég tápfesz, így a fuse biteket még ki tudta olvasni, de írni már nem tudta a procit.
(#) Ricsi89 válasza Ricsi89 hozzászólására (») Okt 22, 2009 /
 
Jelentem működik. Xp felismerte, drivert feltettem neki. Már csak a Linuxos ismeretségemet kell fejleszteni és átnyálazni a dolgokat, hogy tudjam ott használni. Alap dolgokat tudok, de ezt még nem. Majd belejövök.
(#) gallz válasza gtk hozzászólására (») Okt 23, 2009 /
 
Ok, majd kipróbálom.
Egyébként jó ez a kapcsolás, használható ilyen célra? A vezérlő és üzemi táp földet közösíteni kell, vagy lehetnek teljesen függetlenek egymástól?
(#) Lucifer válasza gallz hozzászólására (») Okt 23, 2009 /
 
Közösíteni kell.
(#) gtk válasza gallz hozzászólására (») Okt 23, 2009 /
 
Hasznalhato, de FETel egyszerubb kapcsolni. Lehetosegek kerdese hogy melyiket.
(#) TavIR-AVR válasza bladika hozzászólására (») Okt 25, 2009 /
 
Az I2C ill a SPI lábakon soros 10...100R ellenállás.
A GND és a datalábak közt 3.6 vagy 3.9V-s zener (egy helyen elég a buszon.
A rendszer több tápfeszről megy, vagy mindenhova az azonos 3V van elvíve?
Több tápfesz esetén mindegyik tápfeszre az adott lábnál illik felhúzni (a saját tápjára természetesen).
Az I2C esetén a felhúzó 1,5...10K lehet, nagyobb távolság esetén kisebb érték felé illik elmenni. Az I2C bus hossza ne haladja meg a 10 métert! Ekkor a busz sebessége 50kKHz és a felhúzó max 2k2(min 1k5). Ezt a mastertől legtávolabbi eszközön illik megtenni.
Csillagpontosan nem illik a I2C buszt vezetni (SCL/SDA lábak párhuzamosan fussanak (azaz ne ahogy esik úgy puffan alapon...) - ha így lenne, akkor a kommunikációs sebességet tessék visszavenni.

Az SPI busz nagysebességű, így távolságban a 20-25 cm-t ne lépd túl (az órajele a SPIbusznak a chipórajel/4 lehet max. (a legkisebb sebességű chip órajele számít)

Ha közel vannak a chipek gyakorlatilag felesleges bármi védelem. (milyen környezetben lesz? Trafóház, hegesztenek mellette? a 3V3 terhelése ingadozó (pl. mobiltelefon?)
(#) bladika válasza TavIR-AVR hozzászólására (») Okt 25, 2009 /
 
Köszönöm a válaszod! Ez egy kis roboton lesz amin szendvicsszerűen lesznek a különböző panelek 1-1 avr-el és azok között lenne a kommunikáció.

Tehát a táv, nem több 5-10cm-nél, hegesztő és egyéb dolgok nem lesznek, mivel akkumulátoros!

3,3V teljesen stabil, mert a motorok egy külön nagyobb aksiról mennek és igen teljesen azonosról megy.

Akkor betartom amiket tanácsoltál köszönöm!

Üdv.
(#) trudnai válasza bladika hozzászólására (») Okt 25, 2009 /
 
Idézet:
„Tehát a táv, nem több 5-10cm-nél, hegesztő és egyéb dolgok nem lesznek, mivel akkumulátoros!”


Itt nem az a kerdes, hogy a robotod fog-e heggeszteni, hanem, hogy a kornyezeteben milyen zajokra lehet szamitani. Pl mar egy elektromos motor is olyan elektromagneses zajokat kepes produkalni amitol nemcsak a kommunikacio kepes megszakadni az AVR-jeid kozott, de akar a tapvonaladon is okozhatnak olyan tuskeket amiktol az eszkoz leall vagy resetel.

Idézet:
„3,3V teljesen stabil, mert a motorok egy külön nagyobb aksiról mennek és igen teljesen azonosról megy.”


Ezt nem egeszen ertem, mi megy teljesen azonosrol es mi megy kulon akksirol?

Amugy egy eszrevetel: Az tevedes, hogy az akkumulator stabil feszultseget ad! Az akkumulator egy kemikalia, benne olyan kemiai folyamatok zajlanak aminek az eretmenye, hogy elektronok szabadulnak fel. Ezen felul semmilyen szabalyozas nincs az akkumulatorban, az tehat nyugodtan oszcillalhat kedvere, valtoztathatja a leadott feszultseget vagy aramot, de akar a belso ellenallasat is.

Es akkor el is erkeztunk egy masik sarkallatos ponthoz, hogy az akkumulator feszultsege nem allando! Tehat pl egy alkali "1.5V-os" ceruza elem feltoltve akar 1.7V is lehet, merult, de meg mindig hasznalhato allapotban pedig 1V is akar. Az aramkorodet pedig ugy kell megtervezni, hogy az minden esetben megfeleloen mukodjon, nem csak a "1.5V"-tal szamolva.
(#) aquafood hozzászólása Okt 26, 2009 /
 
Sziasztok!

Atmega8-at szeretnék power save állapotba küldeni. Azt tudom, hogy az MCUCR regiszterbe kell beállítani egy értéket. Ha beállítom a regisztert, akkor egyből a kívánt állapotba kerül vagy még kell valamit állítani?
A választ előre is köszönöm!
(#) vzoole válasza aquafood hozzászólására (») Okt 26, 2009 /
 
Lényegébe ennyi kell:

  1. #include <avr/sleep.h>
  2.  
  3. set_sleep_mode(SLEEP_MODE_PWR_DOWN);
  4.  
  5. sleep_mode();
(#) Sir-Nyeteg hozzászólása Okt 26, 2009 /
 
Sziasztok!
Attiny13-ra írtam egy programot. C-ben. Már lassan 6 órája szenvedek vele De nem tudok rájönni, hogy mit rontottam el benne... Szervóteszternek szánom.
Elvileg gombnyomásra vált a 3 állapot között. De ez nem működik. Próbáltam már megszakítással is, és sima lekérdezgetéssel is.
Ha valaki átlátja a programot, az légyszi segítsen, ha tud. Szerintem valami alapvető probléma lesz benne. De már nagyon nem látom át, hogy mi lehet a hiba benne.
Köszönöm!
(#) papa22 hozzászólása Okt 26, 2009 /
 
Üdvözletem az uraknak!

Kérdésem az avr-be integrált webszerver müködése és megvalositása lene olvasgatam a tavir -avrt de nemigazán tudok eligazodni a dolgon.
Lényegében egy lakás automatikát szeretnék épiteni ami egy webes felületen lehetne kezelhetö lakáson belül egy wi-fi-s pda (ami még nincs adig marad a gép) távolrol pedig számitogépen is elérhetö lene, az oldal jelszoval védet lene tulajdonképen egy grafikus kezelöfelület lene a cél ami meghatároza hogy mi irodjon ki az rs-485 portra ami természetesen vezérelné a rákötöt szabájzo eszközöket és természetesen vissza fele is müködne azaz beolvasná az érzékelök által küldöt adatot és kiküldené a hálozatra és megjelene a weboldal föoldalán hogy pl hány fokvan a lakásba páratartalmom fényerö esetleg meg persze akár külsö idöjárás álomás is lehet vagy bár akár mi. Az rs-485 re kötöt szabájzo eszközök ugy müködnének hogy amikor valami a buszon elhangzik akor mindenüt megszakitás lép fel kivébe a központi avr-ben aki ép küldi az azonositot és mindenki a saját elöre beirt azonositoját elenörzi a buszon elhangzot adatal aztán várja a parancsot és adig áll a program még nem kapja meg a parancsot ha megkapta akor aszerit fojtatja föprogram futatását,
amejiknél nem egyezik meg az azonosito akor csak simán fut tovább, elöre is nagyon szépen köszönök minden hasznos infot és még anyit hogy nem rég keztem az avr-ekel valo foglakozást
(#) ATtiny válasza Sir-Nyeteg hozzászólására (») Okt 26, 2009 /
 
Ugyan nem mélyedtem el nagyon a kódodban, de ez elég végtelen ciklus gyanús:
  1. while(lefel){ _delay_us(3.9);}


Ráadásul ezt több helyen is láttam. Ebből a ciklusból soha nem fog kiszálni a program, hisz a lefel változó értékét a cikluson belül semmi nem változtatja meg.
(#) aquafood válasza vzoole hozzászólására (») Okt 26, 2009 /
 
Köszi szépen! Működik!
(#) edgaar válasza papa22 hozzászólására (») Okt 26, 2009 /
 
Szia !

Ha nemrég kezdtél az AVR-ekkel, szerintem nem kéne egyből webszervert-tcp/ip meg hasonló bonyolultságú dolgokba kezdeni hirtelen, mert ehhez a feladathoz kb nagyon ismerni kéne a platformot. Viszont tudok mondani neked egy másik ötletet, ami zökkenőmentesebben kivitelezhető:
Van olyan pc vagy router a lakásban, ami állandóan üzemel ? Annak a soros portjára szépen ráakasztod a vezérlődet, és akkor már csak egy progi kell ami beszélget vele sima rs232-n, vagy akár usbre is rakhatod. Kapható linuxos router, több fajta, pl Linksys, Asus néhány típusa is linuxos. Ezek firmwarejébe egyszerübb bele nyúlni és bele forrasztani egy rs232 v usb portot, mint egy komplett webszervert építeni avr-re, és programokat alá meg memóriát alárakni, satöbi.. de csak egy ötlet.

Edgár
(#) bladika válasza trudnai hozzászólására (») Okt 26, 2009 /
 
"Itt nem az a kerdes, hogy a robotod fog-e heggeszteni, hanem, hogy a kornyezeteben milyen zajokra lehet szamitani. Pl mar egy elektromos motor is olyan elektromagneses zajokat kepes produkalni amitol nemcsak a kommunikacio kepes megszakadni az AVR-jeid kozott, de akar a tapvonaladon is okozhatnak olyan tuskeket amiktol az eszkoz leall vagy resetel." Erre figyelni fogok köszönöm!

"Ezt nem egeszen ertem, mi megy teljesen azonosrol es mi megy kulon akksirol?"

Bocsánat nem voltam egyértelmű. Az AVR-ek 3,3v tápja egy teljesen másik akkuról stabilizátoron át megy. A motorok pedig egy másik 12vos aksiról. Szóval ezzel nem lesz gond.

"Amugy egy eszrevetel: Az tevedes, hogy az akkumulator stabil feszultseget ad! Az akkumulator egy kemikalia, benne olyan kemiai folyamatok zajlanak aminek az eretmenye, hogy elektronok szabadulnak fel. Ezen felul semmilyen szabalyozas nincs az akkumulatorban, az tehat nyugodtan oszcillalhat kedvere, valtoztathatja a leadott feszultseget vagy aramot, de akar a belso ellenallasat is.

Es akkor el is erkeztunk egy masik sarkallatos ponthoz, hogy az akkumulator feszultsege nem allando! Tehat pl egy alkali "1.5V-os" ceruza elem feltoltve akar 1.7V is lehet, merult, de meg mindig hasznalhato allapotban pedig 1V is akar. Az aramkorodet pedig ugy kell megtervezni, hogy az minden esetben megfeleloen mukodjon, nem csak a "1.5V"-tal szamolva."

Köszönöm, hogy felhívtad ezekre a figyelmem, figyelni fogok.
(#) bladika hozzászólása Okt 26, 2009 /
 
Sziasztok!

Segítenétek, hogy hogy tudnék illeszteni egy H-hidat egy AVR-hez ami 3,3v-ról megy? A hídban fetek vannak.
Csomó kapcsolást átnyálaztam már és annyi fajta van, hogy már nem tudok eligazodni. A híd egyébként 12v ról megy.
(#) trudnai válasza ATtiny hozzászólására (») Okt 26, 2009 /
 
Nem tudom a kod valtozott-e azota, hogy nezted, de en ott
  1. while(lefel--){ _delay_us(3.9);}

-ot latok...
(#) trudnai válasza Sir-Nyeteg hozzászólására (») Okt 26, 2009 /
 
de-bouncingot hogy oldottad meg? Mert szoftveresen nem latom, hogy le lenne kezelve. Rajzon esetleg latszana, hogy ez hogyan van aramkorileg megoldva.

Amugy mi az amit csinal vagy ami nem?
Következő: »»   158 / 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