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   434 / 840
(#) TavIR-AVR válasza blackdog hozzászólására (») Ápr 6, 2012 /
 
Ott a sorosport.
Azon keresztül felhasználói debugm, illetve működés során az adatokat lökheti kifele. Max a panelről a 9-as lábon kihozod az 5V-t (POE alapján POS (PoweOverSerial)
És a soros DSUBházban egy memória+egy AVR
És kész a LOGolás...


Ill sorosport: bootloadert a chipnek, így a frissítés is könnyen megoldható. nem kell a programozócsatlakozó miatt lebontani az áramkört...

Nálam ezek a nyákok már erősen SMDben készülnek...
És ha nagyon kell, 2 réteg egymás felett....
(#) blackdog válasza TavIR-AVR hozzászólására (») Ápr 6, 2012 /
 
Ami azt illeti nálam is szinte minden SMD. Ellenállások, tranyók, 7805 stab. IC, 74595, MAX232, ATMEGA32. És két oldalon mert egyre nem férek el. Bár lehet csak én nem tudok nyákot tervezni.
Ez a bootloader téma viszont érdekel. Eddig csak hallottam róla. Mi ez pontosan? Mennyire körülményes megoldani?
(#) blackdog hozzászólása Ápr 6, 2012 /
 
Sziasztok!

Véleményeznétek, hogy most milyen.
VCC, Reset, Poti, Opto rész, MAX232 javításokat végeztem.
3db szabad lábam maradt az AVR-n. Viszont talán 2x2cm hely a nyákon.
(#) TavIR-AVR válasza blackdog hozzászólására (») Ápr 6, 2012 /
 
A bootloader egy olyan kis szoftver, ami a mikrokontroller külön dedikált programmemóriájában helyezkedik el (ún. BootBlock-ban). Gyakorlatilag a program flash memória egy része. A kommunikáció a kontroller perifériáin keresztül valósul meg, így lehet például RS-232, SPI-busz, I2C-busz is a bootloader külvilági kapcsolata. Feladata pedig a programmemória egyéb területén lévő tartalom megváltoztatása a külső tartalomnak megfelelően.



Bootloader Bascomból
(#) blackdog hozzászólása Ápr 6, 2012 /
 
Sziasztok!

Most végül is a bemenetekre kell földrehúzó ellenállás ATMEGA32 esetén vagy nem? Mindenhol mást látok, hallok.
(#) Massawa válasza blackdog hozzászólására (») Ápr 6, 2012 /
 
Nem tartom tul jo ötletnek az olyan kapcsolást, ahol az aktiv állapotot a magas szint jelenti (mert csak ebben az esetben kell a bementeket alapban a földre huzni).
(#) blackdog válasza Massawa hozzászólására (») Ápr 6, 2012 /
 
Ok jogos. Rosszul kérdeztem.
Sok helyen olvastam, hogy jobb ha külső felhúzó ellenállást használok mert pár AVR esetén a belső felhúzó akár 100k is lehet. Most akkor mi az igazság?
Kerestem az adatlapon, hogy írja-e, de nem találtam.Bővebben: Link

Illetve mi a helyzet egy kapcsoló esetén? Ott az is lehet,hogy L szinten van.
(#) zombee válasza (Felhasználó 5823) hozzászólására (») Ápr 6, 2012 /
 
Ez sajnos AVR Studio bug. Ha "csak" figyelmeztetést ad és változtatás nélkül újrafordítod akkor eltűnnek
a figyelmeztetések. De próbáld csak meg, üss a kódba egy szóközt és fordíts, mindjárt előkerül mind a három...
Tipp: a figyelmeztetéseket is el kell tüntetni, néhol éppen ez okozhat problémát. Pl. ha a delay.h-t használod
és nem állítod be hogy pl. 8 MHz az AVR órajele akkor az 1 MHz-nek veszi(+figyelmeztetést ad) és hibázni fog!
(#) Massawa válasza blackdog hozzászólására (») Ápr 6, 2012 /
 
Valahol azt irták, hogy vannak nagyon low power verziok amiket talán A betüvel jeleznek, ahol az ellenállások 100kOhmosak, általában azonban 20kOhmosak.

A te dokumentáciod 287. oldalán a pull up ellenállók értéke min 20, max 50 kOhm.
A reset lábon 30 ill 60 kOhm.

Ezt aránylag könnyü kimérni.

A kapcsolók mindig a L szintet kapcsolják, csak egyes tervezök általam ismeretlen gyogyszer hatására forditják meg öket (Pollin AVR Board), és teszik eléggé alkalmatlanná bármilyen komolyabb feladatra. A kapcsolok amennyiben H szintet kapcsolnak, eléggé kényesek úgy a zavarokra, mint a huzalozásra is.
(#) blackdog válasza Massawa hozzászólására (») Ápr 6, 2012 /
 
A kapcsoló témát picit feszegetve:
Van nekep pár jumer és DIP kapcsoló. Ugye az egyik lehetőség a H a másik az L szint.
Akkor ami a legvalószínűbb állás az legyen a H az AVR belső ellenállásával felhúzva és, ha L szint kell akkor az meg a juper ill. DIP kapcsolóval mezeien csak földhöz vágom az adott bemenetet?
(#) Massawa válasza blackdog hozzászólására (») Ápr 6, 2012 /
 
A jumer, vagy juper talán jumpert jelent.

Igen a kapcsolo aktiv állapotában a bemenetet a földre kapcsolja. Ha nyitva van, akkor vagy a belsö, vagy külsö, vagy ami még biztosabb, mind a kettö a H szintre huzza. Ez elektromos szempontból a legbiztosabb és legjobb megoldás.
Pl. ha zajos a környezet a nyitott bementen (H szint) nem zevarhat, hiszen a zaj csak hozzáadodhat a H szinthez.
Ha L szinten van a bemenet (kapcsolo be) akkor meg "kemény" föld (test) van a bemeneten, ahol nem jelenhetnek meg a zajok.
(#) blackdog válasza Massawa hozzászólására (») Ápr 6, 2012 /
 

Idézet:
„A jumer, vagy juper talán jumpert jelent.”

Na erre is csak én vagyok képes. Egy szó amit egymás után kétszer sem bírok leírni jól.

Minden világos, de ahogy írtad, ha biztosra akarok menni akkor tápra húzom a bemenetet ellenállással vagyis alkatrészt nem spóroltam csak "innen oda" kötöttem.
(#) Massawa válasza blackdog hozzászólására (») Ápr 6, 2012 /
 
Az sokban attól függ mi a feladat.

Ha érzékeny a dolog, zavaros a környezet, nem számit az extra áramigény, akkor egy külsö 10 kOhm segithet, de vigyázz mert az AVR lábai ki- és bemenetek is lehetnek, és a belsö ellenállások kapcsolhatók, mig a külsök nem, ami egyébb galibát okozhat.
Szoval mérlegeld, hogy mi történik, ha lábat külsö ellenállással felhuzod - ott mindig H szint lesz.
(#) blackdog válasza Massawa hozzászólására (») Ápr 6, 2012 /
 
Egyébként onnan jött a gondolat, hogy CMOS IC esetén a bemenetet fix logikai szintre kell húzni. Többségében GND mert lebegni nem szeret.
Ezek szerint, ha az AVR adott lábát bemenetként definiálom ott ez nem áll fenn, hogy lebeg.
(#) Massawa válasza blackdog hozzászólására (») Ápr 6, 2012 /
 
Lebeghet, mert a belsö ellenállások kapcsolhatók! (Ugy FET aktiválja öket - lásd a dokumentációt).
Vigyázni kell az átmeneti állapotokkal, illetve ha programozható az áramkörben az AVR (SPI stb.)
(#) PipfejBob válasza TavIR-AVR hozzászólására (») Ápr 6, 2012 /
 
Köszönöm!
Most már működik a rendszer, a Vcc-t és a GND-t is a programozóból szedem le, majd a programozás után lekötöm a programozó vezetékeket és egy PC tápból üzemel tovább.
Már egy ideje dolgozunk a 7-es verzión a fiúkkal az Atmelnél.
(#) blackdog válasza Massawa hozzászólására (») Ápr 7, 2012 /
 
Nos így kora reggel tiszába teszem magam Tehát akkor két lehetőségem is van.
Első:
Az adott bemeneten inicializálás során belkapcsolom a felhúzó ellenállást. Pl.: PORTA |= _BV(PA0);
Majd, ha itt L szintet szeretnék akkor egyszerűen csak a földre kapcsolom a DIP kapcsoló segítségével.
Második:
Mivel alapból az AVR I/O portjai bemenetek és L szinten vannak (ugye jó tudom?) init. során békénhagyom őket.
Viszont ellenállás (pl.10k) segítségével felhúzom őket H szintre. Ez lesz az alapérték. (Persze ekkor szoftveresen nem kapcsolgatom a bemenetet)
Majd, ha itt mégis L szint kell akkor a DIP kapcsolóval tisztán főldrehúzom.

Ez az egész akkor jó, ha adott bemeneten külső eszközzel akarok közölni valamit az AVR-el és nem a szoftver kezeli.
Jó a gondolatmenet?
Ha igen akkor a második megoldás szimpatikusabb. 10k mégis csak "szebb" mint 20-50k. Kisebb kód, több hardver, de biztosabb megoldás. Szerintem...
(#) TavIR-AVR válasza blackdog hozzászólására (») Ápr 7, 2012 /
 
Nem:
Bekapcsoláskor az AVR lábai bemenetek.
És potenciálon nincsenek : lebegnek -> zavarérzékenyek.
Ha akarod a belső felhúzót bekapcsolod (~100 kohm), és így legalább potenciálon vannak (de zavarérzkeny még). De külső ellenállás javasolt (4k7..10k), ill a GND fele a kapcsoló.
(#) blackdog válasza TavIR-AVR hozzászólására (») Ápr 7, 2012 /
 
Én is azt írtam, hogy bemenetek az I/O lábak.
Nem értlek: Akkor kapcsoljam be a felhúzó ellenállásokat és még 10k-val is húzzam fel?
(#) zombee válasza PipfejBob hozzászólására (») Ápr 7, 2012 /
 
Akkor megcsinálhatnátok olyanra hogy egy kis sz*r LED-villogtató 6 sornyi kódjának betöltéséhez/fordításához ne kelljen fél órányi dara meg az összes 3D effekt betöltése+varázslók tömege, és támogassa az ÖSSZES programozót ami képes AVR-el kommunikálni!
(#) zombee válasza blackdog hozzászólására (») Ápr 7, 2012 /
 
Csak akkor kell külső felhúzó ha a hordozó panelt is elhagyja a vezeték amit az AVR-ből kihúzol,
vagy az érzékelőnek nagyobb áram kell, terheli a bemenetet, stb.
Én egy "Csapj a falra!" játékot építettem AVR-el(Csodák Plázája vándorkiállítás), azon például nem volt elég
a belső felhúzó ellenállás a 3-4 méteres vezetékek miatt. A bemenetek 220 Ohm-os felhúzót kaptak!
Ha nem lennének felhúzók, akkor a LED-ek felvillantása elegendő feszültségimpulzust gerjeszt
egy-egy gombnyomás érzékeléséhez, ami a játék hibás működéséhez vezet. Nem beszélve a mobilokról!
(#) blackdog válasza zombee hozzászólására (») Ápr 7, 2012 /
 
Itt nem vezetékezek. A panelen van minden a DIP kapcsolók is. Egymástól kb.2cm-re.
De gondolom az semmiképpen sem jó, hogy bekapcsolom a felhúzót és még +egy ellenállás?
[off]Érdekes, hogy ilyen "triviális" dologban is mennyire eltérnek a vélemények.
(#) zombee válasza blackdog hozzászólására (») Ápr 7, 2012 /
 
IS-IS! Ha nem sajnálod az ellenállásokat akkor tehetsz oda bátran, de az se baj ha mindkettőt használod!
Mind a kettő ugyanarra húz, mi lehet ebből a probléma? 2cm-en max. egy működő mikrosütő belsejében fog
akkora impulzus keletkezni hogy megzavarja, de lehet hogy az AVR előbb ég le. Azaz mindenki jót mond!
(#) Massawa válasza blackdog hozzászólására (») Ápr 7, 2012 /
 
Nem térnek el egyáltalán a vélemények, csak ez egy feladat amit NEKED kell megoldani (illetve mindenkinek aki ilyen áramkört tervez).
Minden megoldásnak van pro és kontra érve, amit a másik gyakran nem tud.
Itt elviekben elmondtuk, hogy mit és miért kell tenni, anélkül, hogy tudnánk mit is épitesz, mi is a TE feladatod.
Ha csak egy pici NYÁKot épitesz egy AVR-rel meg néhány LED-del és kapcsoloval, teljesen felesleges minden extra külsö ellenállás, mert az mind benne van magában a chipben, csak meg kell tanulni használni.

Ehhez még el kell fogadni néhány itt is emlitett tervezési alapelvet, pl. hogy a kapcsolok aktiv állása a GND kapcsolása legyen (L) a bementre.

Minden más most csak szocséplés.
(#) blackdog válasza Massawa hozzászólására (») Ápr 7, 2012 /
 
Oké. Felfogtam és megértettem mindent. Amúgy ott a korábbi HSZ amivel kapcsolatban kérdeztem igaz erre nem hívtam fel a figyelmet.
Bővebben: Link
Akkor kipucolom belőle az ellenállásokat és átkötöm úgy, hogy GND-t kapcsoljak.
(#) enree hozzászólása Ápr 8, 2012 /
 
Sziasztok!
Mit csinálok rosszul, ha AVR Doper-hez ATMEGA328P-t csatlakoztatok és az alábbi hibaüzenetet küldi (tudom, ez azt jelenti, hogy a programozót látja a program, csak a programozandó mikrokontrollert nem).
Mi lehet rosszul beállítva, elállítva, ha feltételezzük, hogy hardveresen minden megfelelő.
Üdv:
E.
(#) oregharcos hozzászólása Ápr 8, 2012 /
 
Sziasztok!
Régebben foglalkoztam a C-64-en a Basic-el, késöbb a
TurboPascal-al. Most kezdek foglalkozni az AVR-el, de a C-ben nem vagyok járatos.
Szeretnék egy dallamcsengőt összehozni. Elsőnek a Topi félére gondoltam, ha ez összejönne, akkor úgy szeretném megoldani, hogy egy AVR-ben egy dallam szóljon. Már 2009 óta kértem segítséget többször is, de eddig nem kaptam.
Már régóta próbálkozok a Topi féle csengő programozásával, de nem megy.
Letölötöttem a firmware.zip-file-t, de hiába próbálom a WinAVR-be berakni a file-ket, mindig hibát ír ki, mindent beállítok úgy ahogy MaSTeRFoXX leírta, és mégsem megy.
A Topi leírása itt van:Bővebben: Link
A MaSTeRFoXX leírása meg itt található: Bővebben: Link
Az lenne a kérdésem, hogy hogyan illesszem be a file-kat, hogy le tudjam forditani HEX-re?
Minden segítséget köszönettel veszek!
(#) PipfejBob válasza enree hozzászólására (») Ápr 8, 2012 /
 
Szia!
Saját hibáimból tanulva azt mondom, kösd be a 2. GND lábat is a 1. GND mellé és az AREF és AVCC-t pedig kösd Vcc-re.
Ezt próbld meg, hátha összejön.
(#) enree válasza PipfejBob hozzászólására (») Ápr 8, 2012 /
 
Szia!
Kipróbáltam, de sajnos nem segített...egyéb ötleted nincs?
Arra gondolok, hogy valami az AVR stúdióban lehet elállítva, de mi?
(#) zolee1209 válasza enree hozzászólására (») Ápr 8, 2012 /
 
Először állítsd be a mikrovezérlőt, utána olvasd ki a signature-t. Ezek után jöhet a többi.
Következő: »»   434 / 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