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   842 / 842
(#) tursaba hozzászólása Feb 20, 2026 /
 

AVR programozót milyet?

Sziasztok!
Milyen olcsó és jó programozót ajánlotok AVR ISP-n programozáshoz?
Eddig AVR STUDIÓ-val használtam ISP MK II-t , de megpusztult.
Köszönöm.
(#) Nabukodonozor válasza tursaba hozzászólására (») Feb 20, 2026 /
 
Könnyen lehet, hogy "csak" ennyi a fix: YT - AVR ISP MKII Repair & Upgrade

MOD: úgy tudom, hogy az AVR ISP mkII-t publikussá tették és ezt a kínaiak lemásolták. Szerintem az működik. Személy szerint nem vagyok a klónok híve, így nincs gyakorlati tapasztalatom.
A hozzászólás módosítva: Feb 20, 2026
(#) pont válasza tursaba hozzászólására (») Feb 20, 2026 /
 
USBASP
(#) zoz11 hozzászólása Feb 21, 2026 /
 

Atmeg64A olvasás

Sziasztok,
Egy olyan kérdéssel fordulnék hozzátok, hogy van e arra bármi féle, akár költséges, de elérhető módszer arra, hogy egy Atmega64A tartalmát kilehessen olvasni akkor ha az zárolva van(LB1=0, LB2=0)
Köszönöm.
(#) tursaba válasza Nabukodonozor hozzászólására (») Feb 21, 2026 /
 
Nem csak ennyi.
A GTL2003-as IC-t (illesztő) kicseréltem, de az USB-s, AT162-es állandóan ismételten küld ki a céláramkör AVR-nek rövid RESET jelet.
A programozó ATMEGÁT érte valami.
(#) Nabukodonozor válasza tursaba hozzászólására (») Feb 21, 2026 /
 
Uh, ezt szomorúan olvasom .

Még tavaly sikerült az ebay-en eredeti ISP mkII-t venni egész baráti áron. Ha nem sürgős, akkor érdemes lehet nézegetni és várni.
(#) vargham válasza tursaba hozzászólására (») Feb 22, 2026 /
 
A LUFA projektben van AVR ISP mkII kompatibilis firmware.
Feltöltöd egy Arduinora (Micro/Leonardo), és kész a programozód.
Kb 12 éve én is készítettem, tök jól működött. Mondjuk azóta nem használtam, mióta váltottam Atmel ICE-re, ami most 30000 ft.
Vagy itt van egy Olimex AVR ISP mkII klón 8000 ft.
(#) tursaba válasza vargham hozzászólására (») Feb 23, 2026 / 1
 
Köszönöm.
Van Micro-m, de ahhoz jobban kellene értenem a software mókoláshoz, hogy meg tudjam csinálni.
Az Alin rendeltem 1 MK II-t, remélem jó lesz ~6500Ft.
(#) tursaba válasza pont hozzászólására (») Feb 23, 2026 /
 
Az USBASP eszközkezelő drivert feltöltöttem.Milyen "égetŐvel" tudom a céláramkört programozni?
(#) pont válasza tursaba hozzászólására (») Feb 23, 2026 /
 
Például. Bővebben: Link
Kell még hozzá egy 10 Pin-es tüskesor és egy ic foglalat, valami proba panelon, és megfelelően összekötni őket.
(#) tursaba válasza pont hozzászólására (») Feb 24, 2026 /
 
Ez van. Kép mellékelve.
A Bascom-Avr nem kezeli az USB portot ( legalább is, amit letöltöttem).
Az AVR dude 1 pillanatra bevillan, mint régi DOS-os kép.
A Zadigtól leáll a gép.

Megvárom, míg bejön az MK II rendelésem.
(#) pont válasza tursaba hozzászólására (») Feb 25, 2026 /
 
A bascom kezeli az USBASP-OT amit linkeltem.

Néelen.jpg
    
(#) wbt hozzászólása Feb 26, 2026 /
 

AVRATJTAGICE mkII féleségek

Sziasztok!
Feltöltő-debuger dobozok, 3 fajta. Nagyokban, az egyikben 1db uC, vonalmeghajtók. Másikban űrsikló cuccok (ugyan az a típus), 2db M128, FIFO, 512kB SRAM stb. Mivel tud többet az egyik-másik? A legkisebben meg csak 2db kicsi uC van.
(#) tursaba válasza pont hozzászólására (») Feb 27, 2026 /
 
Köszönöm!
A BASCOM 2.0.8.5 - ös .bin file-t kér, a MikroC kimenete .hex kiterjesztésű, tehát nem eszi, hogy az USBASP programozómat kipróbáljam, kezeli-e?
Van valami, ami a .hex file- t átteszi .bin - be?
(#) wbt válasza tursaba hozzászólására (») Feb 27, 2026 /
 
Lehet választani bin és hex között (jobb oldal a filenév utáni lenyíló).
(#) orcika70 hozzászólása Márc 13, 2026 /
 

Atmega8L

Szép kora estét mindenkinek.
A mellékelt kapcsolási rajz részleten az Atmega8l külső 18Mhz quartz szerepel, ez gondolom csak tévedés lehet, az adatlap szerint 8Mmhz kell, vagy tévedek?

Névtelen.jpg
    
(#) majkimester válasza orcika70 hozzászólására (») Márc 14, 2026 /
 
Igen, max. 8 MHz-es quartz lehet a 8L mellett és 16 MHz-es a sima 8 mellett.
Van aki próbálkozik a túlhajtással, de ez ahhoz már túl nagy a 8L-nek.
Ha megvan a program forrás szinten, akkor abból valószínűleg kiderül milyen kell.
Milyen áramkör ez egyébként, hol találtad?
(#) orcika70 válasza majkimester hozzászólására (») Márc 14, 2026 /
 
(#) majkimester válasza orcika70 hozzászólására (») Márc 14, 2026 /
 
Forrás nincs, de az ITT lévő kommentek alapján tényleg 18 MHz-esre van tervezve. Akkor viszont ne L-es kontrollert használj, hanem a sima ATmega8-at.
(#) orcika70 válasza majkimester hozzászólására (») Márc 14, 2026 /
 
Köszi az infót.
Elfogattam a megépítését, így tisztába kell tennem a részleteket.
(#) wbt hozzászólása Márc 14, 2026 /
 

Soros port 1. byte küldése

Sziasztok!
Hogyan kell kiküldeni soros porton reset után az első adatot?
Pár uC-t néztem, reset után 0 a TI flag, vagy nevezzük bárhogy, ami azt jelenti, hogy
nincs kész az új adat fogadására (soros puffer nincs kész, pl. ad). Kínai ASM programokat néztem, ott bevezettek egy külön bitet (legyen busy), ami akkor is belenyomja a soros pufferbe az adatot,
amikor nincs kész (elméletileg), aztán nullázza, soha többet nem kerül rá a vezérlés (mert beáll a soros üres flag). Most vagy én vagyok a hülye hozzá (99%), vagy reset után miért nem áll be 1-be a bit? Áthidaltam, hogy inic-ben 1db 00h byte-ot kiküldtem, fogjuk rá a bekapcsolási tranziensre, de ez nem normális, szerintem. Főleg érdekes, hogy van olyan uC amiben van SETBit TI utasítás, de akkor bebillen az interrupt flag, amikor a globálisat engedélyezem, elugrik rá. Bár szimulátorban néztem, 3 sim 3 választ adott... Nem nagy gond, csak kérdezem a nagytudású hozzáértőktől. STM nagyokon nem néztem, lehet, ott jól megy, 8-bites apróságokon kértem AI segélyt is, össze-vissza-balfékséget adott.
(#) majkimester válasza wbt hozzászólására (») Márc 14, 2026 / 1
 
Szia, te most STM8 családhoz szeretnél tanácsot kapni?

Ez itt az AVR családdal foglalkozó topic, azok nézik akit AVR-t (ATmega, ATtiny) programoznak. Jó lenne, ha megfelelő topicban tennéd fel a kérdést, ha nincs akkor nyitni kell egy "STM8 - Miértek hogyanok" néven ezt a kérdést meg itt töröltetni a moderátorokkal.

Az is jó lenne, ha megadnád pontosan milyen kontrollert, milyen nyelven, milyen környezetben programozod, előbb kapnál segítséget.
(#) wbt válasza majkimester hozzászólására (») Sze, 19:11 /
 
Bocsánat, elúszás volt. Nem-nem, nem STM specifikált, általános volt a kérdésem! Tehát egy pl. soros rutin úgy kezdődik, hogy megnézzük, az adó üres-e? De reset után jópár uC-nél ez 0 (foglalt), akkor az első byte hogyan mehet ki? (ott várakozik szegény) persze felülbírálva (sok helyen ezt használják) akkor is belenyomja a bufferbe (ez a megoldás bit/utasításpazarlás, mert soha többet nem használjuk), ha nincs kész. Egyszerűbb lenne resetkor 1-be állítani az "adómeghajtó üres" bitet, de nem. Nem?!? (sajnos nem találtam általános uC topic-ot, de AVR-nél is így van, nyelv nem számít, környezet nem számít, általános volt a kérdésem). Közben ránéztem egyéb perifériákra, egyre szörnyűbb a helyzet (matek tárproc is reset után azt jelzi, nincs kész, lehet felülbírálni első nekifutáskor...nem így tanultam) Biztos én vagyok értetlen, de ezért kérdezek.
(#) tki válasza wbt hozzászólására (») Sze, 20:24 /
 
Reset után nyilvánvaló, hogy semmi sem volt még küldve, tehát van egy tiszta állapotod. Megkülönböztetheted az első alkalmat, amikor feleslegesen elugrik az interruptra az összes többitől, amikor ténylegesen elküldött bájt után jön az interrupt.

Jó esetben, hogy ne kelljen ilyen logikát tenni az interrupt rutinba, hogy aztán azt mindig lassítsa, létezik valami trükk is, pl.: SETB TI, CLR TI, és csak utána engedélyezed globálisan az interruptokat. A bit törlésének elvileg törölnie kell az interrupt-állapotot a kontrollerben.
(#) majkimester válasza wbt hozzászólására (») Sze, 21:17 /
 
AVR-nél a UCSRnA, TXCn mondja, hogy az adás kész, a shift regiszter üres, RESET után ez 0, azaz az adás nincs kész. de én nem ezt használom adás előtt. Helyette UCSRnA, UDREn. Ez azt mondja, hogy a UDREn kész új adat fogadására, a buffer üres. Ez RESET után 1, azaz üres a buffer, adásra kész.

AVR IT nélküli küldés:

  1. // a kövekező byte kiküldése előtt várunk, hogy üres legyen a buffer
  2.   // Itt még mhet az előző byte adása a shift regiszterből, de már jöhet az új adat
  3.   while ( !(UCSR1A & (1<<UDRE1)) );
  4.  
  5.   // Adás kész bitet törlöm, ezt AVR-en 1-be állítással lehet törölini
  6.   // Ez azért kell, mert az adás végén majd a TXC1-el fogom megnézni, hogy minden byte kiment
  7.   SETBIT(UCSR1A,TXC1);
  8.  
  9.   // Következő byte mehet a bufferbe
  10.   UDR1 = data;


A következő byte-ot egyébként sem akkor kell berakni a bufferbe, ha már kiment az előző, hanem amikor a buffer UDRn üres (ekkor még megy az adás a shift regiszterből), de ahogy látod a TXC1-et lehet törölni, te is megteheted első adás előtt, ha azt szeretnéd.

Az IT-s küldés ennél bonyolultabb, de ott is a UDRE IT-t kell használni a következő byte küldéséhez, nem a TX Complete-et.
(#) lazsi válasza wbt hozzászólására (») 8:22 /
 
Én ezt az egészet úgy gondolom (úgy tanultam), hogy bekapcsolás (tápfesz megérkezik, indul a kütyü) után és (akár hard- , akár soft- ) RESET után is minden (használni tervezett) egységet fel kell készíteni a használatra (inicializálás). Ebben benne van, az is, hogy milyen szabvány szerint (baud-rate, bitszám, stopbitek, stb...) kommunikáljon. Ezek után kész arra, hogy rendesen működjön, vagyis ezután kell neki megmondani, hogy üres az adópuffer, engedélyezni az adás IT-t, stb...
Futottam már bele olyan hibába, hogy figyelmetlenül írtam meg az inicializálást, és nem értettem, hogy miért nem azt csinálja a uC, amit szeretnék látni... Azután rájöttem, hogy bizony törölni/alaphelyzetbe állítani kell mindent.

Egyébként szerintem jogos, hogy induláskor "le van tiltva" az adás lehetősége (a foglaltság kb. ezt jelenti...). Ilyenkor bármi lehet bárhol a regiszterekben, RAM-ban... Ha engedélyezve lenne, akkor (főleg egy rosszul megírt program esetében) elkezdhetne magától küldeni valamit, akár csak egyetlen byte-ot, ami adott esetben a fogadó-oldalon ki tudja mit okoz. (A uC gyártója biztosan nem tudhatja...) Éppen ezért jogos, hogy minden kifelé történő akciót csak a program(író) kifejezett engedélyezése után tudjon végrehajtani.

Szerintem...
A hozzászólás módosítva: 8:25
(#) wbt válasza majkimester hozzászólására (») 9:35 /
 
Ohh, én marharépa, hát AVR-nél duplapufferelt, ennél az őskövületnél meg nincs ilyen, még az újabb klónoknál sem Azért nyavalyogtam ám, mert egy többprocos rendszerben reset után nagyon gyorsan van adatmozgatás, így (?) próbálnak valamit védeni, órajelre kiszámolták, mikor kell mennie adatnak... és hasonló kisagyas dolgok (amik még kiderülnek). Marad a gyorsabb klónra átportolás. Köszönöm!!!
(#) wbt válasza lazsi hozzászólására (») 9:44 /
 
A mester adja a resetet és nagyon pontos időben vár egy adatot, különben eldobja magát. Általánosan merült fel az alapállapot utáni első tranzakció mikéntje, de most megvilágosodtam, hogy milyen irányba kell nézelődnöm. Az, hogy az adás lehetősége tiltott, rendben, de itt pl. azt jelzi vissza, hogy nincs kész az adatvételre a regiszter (mint ha most adás folyamatban lenne), ez kavart meg AVR-nel/ennél a vacaknál. Néha nagyon tudom szégyellni magam, hogy átsiklok alapdolgokon...
Következő: »»   842 / 842
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