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   787 / 837
(#) csabeszq válasza vargham hozzászólására (») Dec 17, 2017 /
 
Tudom, nem AVR-es topic, de egy 500 Ft körüli Arduino nano programozó nélkül is működik.

1.70$-os nano az AliExpressen

Ebben a chipben 32k flash van, 2k RAM, 16MHz órajel.

A fentebb tárgyalt Attiny85-höz a panel igazából szórakozásra való: 8k flash, 0.5k RAM, 8 MHz órajel.
Attiny85 alatti mikrovezérlőt nem érdemes megvásárolni (Attiny13, Attiny25,...)

Akkor használok Attiny85-öt, ha nem akarok szekrény méretű panelt gyártani. Azon kívül, hogy kicsi, más előnye nincs.
A hozzászólás módosítva: Dec 17, 2017
(#) vargham válasza csabeszq hozzászólására (») Dec 18, 2017 /
 
Jaja, a nano bootloadere önmagában nagyobb, mint az egész ATtiny13 flash... Plusz van rajta egy USB-Serial IC is.
Gondolom, a kérdező szeretné kis helyen megoldani a feladatot. Erre mondjuk én is ATtiny85-öt használnék. Ugyanaz a fizikai méret, mégis használhatóbb a memória miatt. Árkülönbség meg kb 100 ft.
(#) black1989 válasza vargham hozzászólására (») Dec 21, 2017 /
 
Az sem rossz , de amit belinkeltem képet egy olyat vettem ebay-on azért kérdeztem!
Köszönöm a segítséget! További szép napot mindenkinek!
(#) akosnagy hozzászólása Dec 21, 2017 1 /
 
Sziasztok!

ATTINY24-et szeretnék programozni, atmel studio 7.0-val. MKIII-as programozóval. CTRL+SHIFT+P után még a feszültséget felismeri 3,3V-nak (bár a programozó jumpere 5V-on van) viszont a kontroller címét már nem olvassa be. Ez a hibüzenet:

Failed to enter programming mode. ispEnterProgMode: Error status received: Got 0xc0, expected 0x00 (Command has failed to execute on the tool)

Unable to enter programming mode. Verify device selection, interface settings, target power, security bit, and connections to the target device.

Mit tegyek? Segít valami?
(#) vargham válasza akosnagy hozzászólására (») Dec 21, 2017 /
 
> MKIII-as programozóval
Ez valaminek a 3. verzióját jelenti. Milyen programozód van?

A hiba lehet:
-Reset láb probléma. (Nem tudja resetelni.)
-Rossz ISP bekötés.
-ISP fuse tiltása (HVPP segíthet)
(#) akosnagy válasza vargham hozzászólására (») Dec 21, 2017 /
 
Ráadásul még rosszul is emlékeztem
AVRISP MKII-ként azonosítja az Atmel Studió. Több ATMega328-at programoztam már fel vele, szóval annak a hibáját kizárnám. ISP bekötést többször ellenőriztem. Futok egy kört a HVPP-vel. Köszönöm!
(#) akosnagy válasza akosnagy hozzászólására (») Dec 22, 2017 /
 
Arduino-val fel tudtam programozni az ATTINY-t. Úgy néz ki a programozóm ment gajra. Köszönöm a segítséget!
(#) vargham hozzászólása Dec 28, 2017 / 1
 
Kizártam magam egy ATinyból.

Belső 1 MHz-ről megy, a programomban meghívtam a clock_prescale_set(clock_div_256); utasítást. Működik is szépen lassan a program, de az Atmel Studio nem hajlandó programozni, hiába veszem le az Atmel ICE ISP frekvenciát a minimumra.

Parancssoros megoldás, hátha más is jár így:
atprogram -i ISP -d ATtiny2313 chiperase

Furcsa, hogy az eszköz (Atmel ICE) tudja programozni a ~3,9 kHz-en ketyegő AVR-t, csak ez a módja nem érhető el az Atmel Studio-ból...
(#) RoliNyh válasza vargham hozzászólására (») Dec 28, 2017 /
 
Én programoztam attiny85 -öt 1MHz, 8MHz és 16MHz belső órajellel is ISP -n keresztül az extreme burner progival, de nekem semmilyen ISP frekvenciát nem kellett állítani, ment ugyanúgy mindegyik frekin...
Nem lehet, hogy más lesz ott a hiba?
(#) vargham válasza RoliNyh hozzászólására (») Dec 28, 2017 /
 
Biztosan ez a hiba. Parancssorból, más programból továbbra is lehet programozni az MCU-t, tehát ez az Atmel Studio hülyesége. Azért írtam le, hátha más is belefut, és megijed.

Ha a
  1. clock_prescale_set(clock_div_256);
meghívásra kerül a programban, vagyis 256-os osztás kerül az 1 MHz-es órajelre, akkor a következő programozási kísérletre ezt mondja az Atmel Studio:
Idézet:
„Failed to enter programming mode. ispEnterProgMode: Error status received: Got 0xcc, expected 0x00 (Unknown status message)
Unable to enter programming mode. Verify device selection, interface settings, target power, security bit, and connections to the target device.”
A hozzászólás módosítva: Dec 28, 2017
(#) Max26 hozzászólása Dec 30, 2017 /
 
Sziasztok!

Hogyan küldhetném el a mikrokontrollert power save módba adott időre?
Atmega 8 @ 1MHz.
_delay_ms(50);-t váltanám ki ezzel.
(#) vargham válasza Max26 hozzászólására (») Dec 30, 2017 /
 
Amit keresel, az a watchdog interrupt.
1 Kikapcsolsz minden perifériát, ami nem kell.
2 Watchdog interrupt vagy reset mód beállítása.
3 cpu sleep

Az Atmel avr libc doksiban le van írva a hsználatuk.
(#) killbill válasza Max26 hozzászólására (») Dec 30, 2017 /
 
Mar nagyon regen dolgoztam Atmegaval, de egy timer nem tudja felebreszteni?
(#) csatti2 válasza Max26 hozzászólására (») Dec 30, 2017 /
 
ATMega8-at nem programoztam (szerintem már nem is fogok), de ATMega328p-nél alkalmaztam energiatakarékos módokat. (forráskód: github)
Ha megnézed a uC dokumentációját, akkor láthatod, hogy a power save módban csak akkor használhatsz időzítőt ébresztésre (neked ez kell), ha asszinkron forrásból működteted azt (pl. 32768Hz-es órakristály), lásd a képen. A te esetedben tehát vagy az idle mód vagy pedig az ADC noise reduction mód jöhet szóba. Mielőtt azonban elküldenéd aludni a mikrokontrollert, ne felejtsd el beállítani a timer2-t úgy, hogy megszakítást generáljon a kívánt idő után.
Egy másik lehetőség, ha ragaszkodsz a takarékosabb működéshez (pl. gombelemről működő szenzor vagy hasonló), hogy egy kis értékű kondit töltesz fel, majd sütsz ki és ez generál megszakítást az INT0 vagy INT1 lábon (értelemszerűen ilyenkor az időzítés nem túl pontos), ezt mindenesetre tesztelni és méretezni kell, hogy elég jól működik-e. Ez utóbbi módszer előnye, hogy akár a legtakarékosabb módba is el lehet menni, így jelentősen csökkenthető az áramkör fogyasztása. A példában szereplő teljes áramkör (bekapcsoló gombja volt az egyik INT lábon) például 200-300 nanoamperes fogyasztásra ment le így.
(#) csatti2 válasza vargham hozzászólására (») Dec 30, 2017 /
 
Érdekes módon a watchdog nem szerepel az ébresztő források között az ATMega8 doksijban (az ATMega328p-nél viszont igen).
(#) vargham válasza csatti2 hozzászólására (») Dec 30, 2017 /
 
Akkor valószínűleg nem tudja, nem néztem meg az adatlapot. Ha nincs semmi elmentendő, akkor a wd reset is jó lehet. De ezt a kérdezőnek kell tudnia.
(#) Max26 válasza csatti2 hozzászólására (») Dec 30, 2017 /
 
Ha a linken szereplő kódban a 16. sorban küldeném el IDLE módba, akkor mindaddig IDLE módba maradna, amíg ADC értéke (i<10)? ->16.sor a kódban.
Bővebben: Link
(#) csatti2 válasza Max26 hozzászólására (») Jan 1, 2018 /
 
Nem. Ha alszik az eszköz (nézd meg a táblázatot, láthatod, hogy a CPU és FLASH órajel le lesz kapcsolva az összes módban), akkor a program áll, semmilyen logika sem lesz kiértékelve (a különböző módok abban mások, hogy milyen további perifériák állnak még majd le). A wakeup (ébresztő) források képesek a CPU-t kibillenteni az alvó üzemből és visszakapcsolni a választott energiatakarékos mód által leállított perifériákat (pontosabban azok órajelét), a program pedig onnan folytatódik, ahol megállt eredetileg.
(#) GPeti1977 hozzászólása Jan 9, 2018 /
 
Van egy kész áramköröm ATMEGA644 -re írva, a projekt mikroelektronika által forgalmazott pikropascal -ra épül, a hex fájl töltöttem bele a mikrokontrollerbe de az nem jól működött, meg a programozó is néhány warningot írt ki, megnéztem a hex fájlt és van benne azon a helyen értelmezhetetlen sor 160-tól egy rész:
:1003A6000FB6BFB3B1FF02C00000FBCFF89432BC5A
:1003B60021BCBFB3B160BFBB0FBE10B5012F0895FE
:0003C60037
:10097000B1EAB4BDB1E0B5BDB0E0B7BDB0E0B8BD5F
:10098000B1EAB0938000B1E0B0938100B0E0B093E1

a 163. -itt a 3.- sor nem felel meg az intel hex formátumnak, lehet ezt egy speciális hex fájl amit csak a saját ő általuk forgalmazott programozóval lehet beégetni helyesen?
(#) Sick-Bastard válasza GPeti1977 hozzászólására (») Jan 10, 2018 /
 
Intel Hex
Checksum Calculator

start code - byte count - address - record type - data (ha van, de itt nincs) - checksum
: - 00 - 03C6 - 00 - nincs adat - 37

A checksum az rendben van.
A record type szerint data, aminek a hossza 0, azaz nincs adat
A 0 byte count-al eddig csak end of file (:00000001FF) sorral találkoztam.

Igazad lehet abban, hogy valami "speciális", egyedi parancs lehet.

Tipp:
Kommenteld ki azt a sort.
Ellenőrizd a Fuse Biteket is.

  1. :1003A6000FB6BFB3B1FF02C00000FBCFF89432BC5A
  2. :1003B60021BCBFB3B160BFBB0FBE10B5012F0895FE
  3. //:0003C60037
  4. :10097000B1EAB4BDB1E0B5BDB0E0B7BDB0E0B8BD5F
  5. :10098000B1EAB0938000B1E0B0938100B0E0B093E1
(#) csabeszq válasza Sick-Bastard hozzászólására (») Jan 11, 2018 /
 
Nekem szabványosnak tűnik.

Ugrik az írásmutató 03C6-ról 0970-re. A köztes részeket kihagyja.
A hozzászólás módosítva: Jan 11, 2018
(#) Massawa hozzászólása Jan 12, 2018 /
 
Van valakinek egy ASM kodja az MM5451 (LED meghajto) kezelésére?

Kösz!
(#) Kera_Will hozzászólása Jan 19, 2018 /
 
Mikrokontroller Napok
2018.02.02 péntek 18:00-tól szombat 17:00-ig

Részletes program (tervezet)
(#) alita hozzászólása Jan 24, 2018 /
 
Szervusztok !

Tanácsot szeretnék kérni az alábbi kételyem megoldására:

Letöltöttem az Atmelstudió 5.0 full.verzióját.Majd feltelepítettem a PC-re.A C meghajtón
1 sorban hozza Atmel néven 780 MB nagyságban.A programok telepitésén viszont egyszer
AVR QTouch studió 781 MB,majd közvetlen alatta AVR studió 5.0 ugyancsak 781 MB nagy-
ságban.
Nem felesleg valamelyik?Ugyanis ha megnyitom a C meghajtón a programot,akkor az AVR
QTouch ott szerepel 15.8 MB nagyságban.
(#) fifadani hozzászólása Jan 24, 2018 /
 
Sziasztok!

Szeretnék kérni pici segítséget Tőletek.
Szeretném használni a következő kijelzőt: SD1306 128x64 I2C
Atmega128 a mikrovezérlővel. Letöltöttem a u8glib-et, de nem jöttem még rá, hogyan kell használni.

Tudtok segíteni picit?

Köszi,
Dani.
(#) Kovidivi válasza fifadani hozzászólására (») Jan 24, 2018 /
 
Az a lib nem Arduinohoz készült? Biztosan támogatja az Atmega128-at? Általában 328-hoz készülnek ilyen libek, de talán átalakítás nélkül is megy, de valószínűsítem, hogy bele kell kicsit piszkálni.
(#) Tomi_Bp hozzászólása Jan 27, 2018 /
 
Akadt egy kis problémám! Szeretnék átköltözni az újabb laptopomra amin Windows 7 fut a régiről amin még Windows XP, mert az kezd nagyon öreg lenni és félek, hogy meddig működik még megbízhatóan.
Ezelőtt kb. 8-9 évvel megépítettem a Topi cikkében szereplő programozót, mely kisebb közjátékokat leszámítva azóta is tökéletesen üzemel XP alatt. A cikk 5. oldalán van egy driver ami elvileg működik Windows 7-tel, de sem az, sem ezen driver gyártójának weboldalán található újabb verziója sem működik. Azt írja a Windows, hogy: "A Windows nem tudja ellenőrizni az eszközhöz szükséges illesztőprogramok digitális aláírását. Egy nemrégiben történt hardver- vagy szoftvermódosítás hibás aláírással rendelkező, sérült, vagy akár ismeretlen forrásból származó kártékony fájlt telepíthetett. (Kód: 52)".
Megpróbáltam ezen weboldalon leírtak szerint parancssorba beírni a "bcdedit /set nointegritychecks on" parancsot, de nem oldotta meg.
Egy korábbi hozzászólás javaslata alapján rendeltem egy AVR ISP mk2-t, de szeretném használni továbbra is ha lehet a régi sajátomat.

Kérdésem a következő lenne:
Valaki tudta / tudja használni Windows 7 alatt a Topi féle AVR dopert? Ha volna valaki, lenne olyan kedves és segítene, hogyan csinálta? Előre is köszönöm!
(#) mikrofarad válasza Tomi_Bp hozzászólására (») Jan 27, 2018 /
 
Szia! Ha neked megfelel az, hogy csak az avrdude lesz használható programozáshoz, akkor HID módban tökéletesen működik, még Windows 10 alatt is. Ha nem, mert pl nagyon fontos az avr studio támogatás, akkor az egy kicsit komolyabb, de elvileg kivitelezhető trükk.
(#) zolee1209 válasza Tomi_Bp hozzászólására (») Jan 28, 2018 /
 
Szia!

Én anno a 3-ik opciót alkalmaztam, igaz más forrásból szedtem le, de most ezt találtam.
Bővebben: Link
(#) H2opok hozzászólása Feb 2, 2018 /
 
Sziasztok.
Nem tudom emlékeztek e még rá, pár éve volt szó erről a projektről.
bomb clock
A gyári nyákból többen is kaptak itt és meg is épitették.
Szóval, az eredeti pogramot itt vakaki (sajnos már nem tudjuk ki, de ha emlékszik kérem jelezze) módisitotta úgy hogy a másodperc visszafelé számol. Rendben működik is. Dee csak a hex van meg. Meg tudná esetleg oldani valaki azt a programban, hogy a hőmérsékletet mondjuk 15 másodpercenként mutassa? Mert most csak gombnyomásra jelzi ki. És persze a mp isszafelé számoljon.
Előre is köszi.
Következő: »»   787 / 837
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.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