Fórum témák
» Több friss téma |
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
A W5100 chip resetkezelése van elbaltázva az áramkörön. Az újabbakon javították, és mintha egy külön arduino lábon át is ki lehetne kényszeríteni.
Az arduino Mega esetén csak SW SPI vanm, illetve át kell kötni a HW SPI-t (szóval ott is kavar van )
Sziasztok!
Remélem jó helyen teszem fel a kérdésemet! Építgetek egy áramkört, amelyben többek között egy ATmega16L mikrovezérlővel szeretnék megjeleníteni adatokat egy karakteres LCD kijelzőn. Az INT2 megszakító lábra helyezett gombbal power-down módba helyezem a mikrovezérlőt. Ilyenkor szeretném kikapcsolni az LCD táplálását is. Erre az az ötletem támadt, hogy az AVR egyik I/O lábát kötném a kijelző Vdd lábára, így a programomból tetszőlegesen tudnám ki-bekapcsolni a tápellátását (pl. sleep mód előtt, után). Az áramfogyasztás elég kicsi, így elvileg terhelhető vele a kimenet ha jól néztem. Ez mennyire jó/rossz/elfogadható/kivitelezhető megoldás? A másik kérdésem ehhez kapcsolódóan, hogy tudtok-e olyan 16x2-es, akár háttérvilágítás nélküli (úgy se használnám ezt a részét) karakteres LCD modult mondani, amely már 3V körüli feszültséggel is működik? Ugyanis az egész áramkört egy 3.3V-os stabilizátor táplálná, tehát a kijelzőnek is ennyi jutna. Előre is köszönöm a válaszokat!
A MAX232-re lehet hogy 4x1µF jobb lenne.
Aref és GND közé a 100nF, VccA pedig Vcc-vel összekötendő. Reset és gnd közé beraknék egy nyomógombot (resetgomb). R13 túl nagy. 1k bőven jó. P1 mi akar lenni? csúszka ADCre, egyik vég:5V-ra, másik GND-re. A reléket miért 595-l vezérled? egyszerűbb lenne az AVR lábairól... Ennyi tranzisztor helyett én ULN2003 chipet tennék be (tranzisztormező). Optocsatolókat miért emitterkövetősen használod? Kollektorra a 10k-kat és a közös pont az AVRre. Optocsatolóból van beépített fordított diódás is... nem egyszerűbb? Ill én beraknék az opto LED-l sorba külső LED-et. Látnám az állapotokat... Hülye tipp: én I2C biszt betervezmék. Arra IO bővítőnek: mcp23017 vagy pcf8574. És így mehetne program/log EEPROM, óraIC, I2C-s LCD, nyomógombos vezérlés, stb... - Hiányzik a tápfesz monitorozás. - Vészleállító gomb? - humán felülbíráló gomb? - mi van ha resetel a chip? Folyamat újraindítás betervezve? Sok kérdés ?
Az LCD visszakapcsolásakor LCD inicializálás újra kell + kiírni mindent az LCDre!
Tipp: mega169 + LCD nem jobb?
Az újra inicializálást és kiíratást belekalkuláltam, el is végzem programból, csak azt nem tudom, hogy az az elképzelésem helyes-e, hogy az AVR kimenetét használnám az LCD táplálására - nekem a ki-bekapcsolhatóság miatt ideális lenne.
Ami a tippet illeti: ne haragudj, valószínűleg a kezdő mivoltom az oka, de nem értem a felvetést, milyen téren lenne jobb a mega169.
Időközben megnéztem az adatlapját, rájöttem mire gondolhattál. Ennek gyárilag van LCD "támogatása".
Bizonyára igazad is van ebben, viszont nekem már adott a korábban említett mikrokontroller (ATmega16L), ezért azzal szeretném folytatni a munkát ha lehetséges.
Nos, ez egy utánépített mega+esth shield. Ugyanazt, építtem meg, ami megvan bolti kivitelben is. Ott működik. Lehet hogy azzal is vannak problémák, de az után építetthez képest az tökéletesnek tűnik!
Az újabb 1280-assal szerelt megám van, azon hardveres SPI-vel vezérelve. Jelenleg erre a reset figyelő áramkörre tudok gondolni, vagy hibás IC-re. Ennek ellenére lehet hogy mégis benézek valami más problémát. Esetleg kitudnád bővebben fejteni? Válaszodat köszönöm! Üdv. Idézet: „P1 mi akar lenni?” Kelleni fog egy 0-10 perces időzítés. Ennek az időnek a beállítására szolgálna. Idézet: „A reléket miért 595-l vezérled? egyszerűbb lenne az AVR lábairól...” Mert nincs ennyi szabad kimenetem az AVR-en. Így 3 kimenettel tudok 8 relét kezelni. Azért nem tettem tranzisztor mezőt mert nem fér el a NYÁK-on. (A nyáknak kötött a mérete) Idézet: „Optocsatolókat miért emitterkövetősen használod? Kollektorra a 10k-kat és a közös pont az AVRre. Optocsatolóból van beépített fordított diódás is... nem egyszerűbb? Ill én beraknék az opto LED-l sorba külső LED-et. Látnám az állapotokat...” Véleményem szerint nem származik abból semmi baj, hogy emitterkövező a opto. Tudom, hogy van fordított diódás is, de azt most nem tudtam beszerezni. LED azért nem került mert szintén helyszűkében vagyok. Idézet: „Hülye tipp: én I2C biszt betervezmék. Arra IO bővítőnek: mcp23017 vagy pcf8574. És így mehetne program/log EEPROM, óraIC, I2C-s LCD, nyomógombos vezérlés, stb...” Ennyire még nem értek az AVR-hez, de ez is plusz helyet igényelne, ha jól sejtem. Ettől függetlenül szívesen fogadom az okító utmutatást a témában. Idézet: „- Hiányzik a tápfesz monitorozás. - Vészleállító gomb? - humán felülbíráló gomb? - mi van ha resetel a chip? Folyamat újraindítás betervezve?” Ezeket kifejthetnéd bővebben. Nem igazén értem.
A VCC-s és potis dolgokat javítani fogom.
Idézet: „Huhúú, lehet nem is jól értelmezem a rajzot... Egy post esetleg, ahol már leírtad, mi mire való? Igazándiból az optós rész nekem nem tiszta jelenleg.” Az optók-at szobatermosztátok vezérlik 24 VAC. Ha fűtési/hűtési igény lép fel akkor ugye zár a termosztát reléje és nyit az opto. Az adott optohoz tartozik 1 relé ez ekkor egyból behúz és a P1-el beállított késleltetés után meghúz Rel9 és, ha kell Rel10 és Rel11. A DIP1 soron azt állítom be, hogy az adott bemenet csak fűtésen vagy fűtése és hűtésen is működjon. SW1 egy jelforgató hűtés esetére, ha kell. Van még egy Hűtés/fűtés választó is. Ezzel lehet megmondani a rendszernek, hogy hűtésre vagy fűtésre van szükség. Röviden ennyi.
Rátapintottál a problémámra mert pont ezen gondolkodom, hogy a kimeneti pici brummot hogyan tudom megszüntetni vagy mégjobban csillapítani.
Sziasztok!
A segítségeteket szeretném kérni egy AVR uC programozásával kapcsolatban. Adott egy ATMEGA8A-PU (tme.eu-ból), egy AVR ISP MKII programozó (avr.tavir.hu-ból) és egy zöldfülű. Sajnos a probléma elég korán jelentkezett. A fizikai környezetet egy próbanyákon felépítettem (ld. at8_prog.png), csatlakoztattam a programozót és elindítottam az AVR Studio 7.19.730 - as verzióját, egy új projektet (ATmega8-as uC-t választottam ki eszköznek) nyitva megírtam egy próba programot:
Ezt lefordítottam, majd a programban szoftveresen sikeresen csatlakoztattam a programozót. első üzenet: Idézet: „Detecting on 'USB'... AVRISP mkII with serial number 0000A0012825 found. Getting isp parameter.. SD=0x06 .. OK ” Első próbálkozásom a gyári azonosító kiolvasása a programozandó uC-ből 125 KHz-es ISP frekvenciával. Ez sikeresen megtörtént: READING SIGNATURE: Idézet: „Setting mode and device parameters.. OK! Entering programming mode.. OK! Reading signature from device .. 0x1E, 0x93, 0x07 .. OK! Leaving programming mode.. OK!” A második próbálokzás is sikeres volt, itt a fuse biteket olvastam ki. Semmit nem állítottam át, mindent alapbeállításon hagytam: FUSES READ: Idézet: „Setting mode and device parameters.. OK! Entering programming mode.. OK! Reading fuses address 0 to 1.. 0xE1, 0xD9 .. OK! Leaving programming mode.. OK!” Ezután a lock biteket olvastam ki, itt sem változtattam semmit: LOCK BITS: Idézet: „Setting mode and device parameters.. OK! Entering programming mode.. OK! Reading lockbits .. 0xFF .. OK! Leaving programming mode.. OK!” Ezt követően a HW Infó fülön olvastam ki az adatokat (ez nem tudom pontosan mi lehet): HW INFO: Idézet: „Getting revisions.. HW: 0x00, FW Major: 0x01, FW Minor: 0x0d .. OK ” Eddig úgy vélem, hogy minden rendben ment, de most a programot szerettem volna feltölteni a uC flash memóriájába. Kiválasztottam a megfelelő .hex fájlt, majd a program gombbal elindítottam a felprogramozást (a felprogramozás előtt automatikusan törölte az eszközt és a programozás végén ellenőrizte a feltöltött kód helyességét), üzenet és felugró ablakban hibaüzenet (ld. hiba.png): Idézet: „Getting isp parameter.. SD=0x06 .. OKOK Reading FLASH input file.. OK Setting mode and device parameters.. OK! Entering programming mode.. OK! Erasing device.. OK! Programming FLASH .. OK! Reading FLASH .. OK! WARNING: FLASH byte address 0x0000 is 0xFF (should be 0x12).. FAILED! Leaving programming mode.. OK!” Ennél tovább nem jutottam, még párszor megpróbáltam a programozást, de nem sikerült eredményt elérni. Ezután rámértem az áramkörre: Utáp = 5.05 V (+-1%) Ureset = 5.42 V (+-1%) Ezután még átállítottam az AVR Studionban az eszözt Atmega8-ról Atmega8A-ra, de itt a fordításnál hibát írt ki: Idézet: „Fatal error: unknown MCU: atmega8a” A kérdésem az lenne, hogy vajon hol és mit ronthattam el? A segítségeteket előre is köszönöm!
Sziasztok!
Problémám a következő! Adott az AVR Studio 4 és a szükséges forrásfájlok. Hogyan kell felépíteni egy projectet, melyik fájlt hová kell másolni, a szükséges módosításokat elvégezni, majd lefordítani, és menteni a két fájba (hex, eep). Az égetés része az megy! Segítségetek előre is köszönöm! Leiszt Jani
Szia!
Köszönöm , így csináltam és működik. Most jutottam el idáig (idő....)
Összes Vcc és Összes GND-t be kell kötni. + 100nF kerámiakondi a M8 mellett.
AVRStudio7 ? Az nem csak 2014-ben jelenik meg? M8 és M8A ugyanaz.... Az ISP GND-jét is kösd be! (közös) Az ISP-ről is leveheted az USB 5V-ot (jumpert tedd fel!) Szerintem nem kap az M8 tápot. Az a típusjelenség, hogy az AVR parazita táp módban még ennyi szuflát tud, hogy a kis adatmennyiségeket visszaadja... Programozás nagyobb áramigényét meg így parazitaként nem tudja szolgáltatni...
Én azon csodálkoznék ha működne! A GND kimaradt, és tápot is ingyenenergiával termeli...
Megszerezte a pre-pre-pre-pre fejlesztői verziót .
Sziasztok egy kérdésem lenne az alábbi szoftveres UART Attiny45-re nem akar működni Ez csak az adó része a dolognak.Szoftveres UART az alapötlet innen az oldalról való Fizikus cikke.
Nos 2 Atmega8 Uart kommunikáció tökéletes megy (távirányítóban van az egyik). A távirányitó részt szeretném kicserélni attinyre kicsit pazarlásnak vélem az Atmegát. Adó kód:
Ha kell a vevőt is felteszem. ui. lehet jobban járnék Attiny2313 van benne UART, de így is mennie kéne neki... üdv: Richard
Sziasztok!
Kérem a modikat, ne egyenek,meg nem vagyok türelmetlen, de érdekelne a megoldás! Szerintem jó pár éve nem tettem fel ugynazt a kérdést két topikban! Problémám a következő! Adott az AVR Studio 4 és a szükséges forrásfájlok. Hogyan kell felépíteni egy projectet, melyik fájlt hová kell másolni, a szükséges módosításokat elvégezni, majd lefordítani, és menteni a két fájba (hex, eep). Az égetés része az megy! Segítségetek előre is köszönöm! Leiszt Jani
Szia!
*.aps-t kell elindítanod, és megy minden magától.
Szia!
A rendben bejön a projekt, megcsinálom a változtatást, hogyan fordítom leésmentem hex+eep-be? Előre is köszi Leiszt Jani
F7, ha a beállításokhoz nem nyúltál minden generálódni fog.
Build failed... No build tools defined.
Ezt írja, valamit tölsek le!
Szia!
Nem szeretnék hülyén meghalni, a fordító nem része a progtramnak? Ezért reklamál?
Alapból a C fordító nem része az AVR Studio-nak, ez egy külön letöltendő és telepítendő kiegészítő. A WinAVR-re keress rá és töltsd le a legfrissebbet.
A 4-es Studionál sajna nem. Abban csak asm van. Viszont az 5-től kezdődően már integrálva van.
Bocsi, de még egy kérdés! Három figyelmeztetést küldött, de lefordult. Majd újra fordítottam semmi figyelmeztetés, és a hex és eep sem változott! Ez mit jelnt? Beégettem! Kíváncsi vagyok!
Köszi eddigi segítséged! Leiszt Jani
Az eszközöd egy programsorozatot hajt végre. Ez ideális esetben végigfut (hűtés/fűtés/keringtetés/ebédfőzés )
Azonban mi van tervezhető rendellenes működés esetén? Honnan tudsz róla? a, hiányzik egy log kiegészítő áramkör (külső memória), ahol: 1, a működési adatok, eseménylog tárolódik 2, a rendellenes működés visszaellenőrizhető, hogy mi volt az azt megelőző állapot. Így az újraindítás esetén a mért adatok + az összezuhanás előtti adatsorod is megvan. Ebből: b, az újraindítási program futtatható: nem kell full előfűtést bevinni a rendszerbe, a napkollektor megszaladt éppen és épp a felrobbanás megakadályozása a cél - nem a bekapcsolási inicializálás + ellenőrzés.... És persze ez is logolható. Ha később esemény naplózás, megtakarításnézés a cél, akkor ezen adatok sokat segítenek. Én a legegyszerűbben egy külső 24LC512 eeprommal oldom meg (2 AVR láb + 2 ellenállás). I2C busz viszonylag egyszerű, és a memóriát nem page, hanem byte módban kezelem (az 1M felülírás cellánként ~150 év alatt érem el, akkor meg már nem az én problémám ). Az I2C buszra megy egy óra még, így bekapcsolások közt is tudom mennyi idő telik el + ha adatgyűjtök akkor az időpecsét nem elhanyagolható... Sőt, I2C buszon simán mindenféle bővíthető. Ide kerül fel nálam: LCD az előlapra + nyomógombok (I2C bővítőpanelen, amiben MCP23017 chip van, így 1 címen 2 db 8bites port kezelhető). De ide megy a további bővíthetőség is: MCP23008/MCP123017/PCF8574 portbővítő, nyákos hőmárő (LM75), LED-sor stb. Valamint az alapppanelen 1 láb szabadon - opcionális 1-Wire busznak. Igaz soros port/USB illesztés van a panelen? (ezeket lehet hogy _most_ nem használod ki, de a későbbi bővítés/fejlesztés lehetőségét megtartod. Az automatika tévedhet + programhiba (végtelen ciklusba jutok / tápfeszingadozás). Igaz a BOD és a Watchdog beépítésre kerül? Ezek bekapcsoláskor az EEPROM-ba LOGolhatóak (MCUSR regiszter) És nem árt ha ekkor a felhasználó kézzel is be tud avatkozni. Pl nem a standard programot, hanem egyedi feladatsort kell végrehajtatnia (nem átírja a SW-t, hanem a keringtetést, termosztátot feülbírálja) Na szómenés off
Szia!
Köszönöm a választ. Amiket írtál teljesen jogos, de szerencsére az én esetemben itt nincs jelenleg ezekre szükség. Csak azért használok AVR-t mert adott volt a nyák méret és a temérdek logikai kapu nem fért el. Ez a kapcsolás csak az osztó-gyűjtő motoros szelepeit nyitja-zárja és indítójelet ad a hőforrásnak ami a védelemről gondoskodik. Mindezt teszi a szobatermosztátok és dip kapcsolók függvényében. Reset gombot teszek rá. Kézi ki-ba kapcsoló van rajta. Más kézi beavatkozást nem tudok elképzelni. Nem mérek sem hőmérsékletet sem időt és LCD-re sincs szükség. Az RS232 opcióként került rá, ha a későbbiekben laptopról akarok szervizelni, de kicsi a valószínűsége. Tegnap egy részletét próbapanelen összeszereltem. Az optókat másként kötöttem. Készítek egy próba változatot és abból is tanulok. 3db szabad lábam marad viszont helyem semmi a nyákon Alul van az AVR felette a MAX232 körülöttük minden más) |
Bejelentkezés
Hirdetés |