Arduinobol onallo NYAKra
szoftverfejlesztokent tisztaban vagyok a rosszul specifikalt feladat buktatoivalRobert írta:A szokásos kérés :
Definiáld a feladatot pontosan....
Miért? Ha a megrendelőd nem adja meg, akkor a fejlesztésnél hány zsákutcába mész bele! Kidolgozol egy protokollt, eljárást. Utánaolvasol, leprogramozod. rámegy 3-4 heted a kitalálásra, megvalósításra. Majd a megrendelő közli: "-Ja ez opcionális volt és a ... alkalmazással kell együttműködnie. Különben annak meg itt a leírása... átküldjem ?"
Na, hányszor futottál bele ilyenbe?
Az igazi mérnök gondolkodás ismérvei:
- tudsz a megrendelő fejével gondolkodni,
- laikus - műszaki fordítógép be van a fejedbe építve,
- végiggondolod, hogy mit _nem_ specifikált, ami e feladat magvas része,
- kitalálod, hogy _miket akar módosíttatni_ 1-2 hónapon belül,
- az áramkör hardware-t már így tervezed meg,
- a szoftverfrissítést oldd meg, különben mehetsz terepre TE frissíteni. Ha meg ő nyitja ki a dobozt, akkor vigyél új HW-t is, mert megnézi, hogy "mi van, ha ezt a két vezetéket összezárom ?"
azert is igyekeztem az elejen leirni minel pontosabban a kiindulast (tehat adott egy mar felprogramozott ATMegax8 chip, es a tapfesz), persze az tok megszokott hogy a megrendelo az elso megmozdulasaval olyasmit fog csinalni, amire a fejleszto sosem gondolt
ezert szoktam 'laikussal' teszteltetni az elkeszult termeket (baratno, haverok, stb)
egyebkent megtalaltam az eddigi legjobb, es legszajbaragosabb leirast a temarol: http://itp.nyu.edu/physcomp/Tutorials/ArduinoBreadboard
az aramkorben csak a kondenzatorok pontos szerepe nem tiszta nekem, de annak majd mindjart utananezek (azt mar megtalaltam, hogy pl a feszszabalyzo datasheetjeben is szerepelnek az application curcuitnal, tehat ertem hogy kell, csak azt nem hogy pontosan miert)
MOD: az Arduino Minit mar en is neztem, az mokas cuccnak tunik
A 7805 szeret átmenni rádióadóba. Erősítő van benne, és el kezd gerjedni. Aztán sugároz az mindenfele + melegszik + megsülhet a chip (még a hővédelem dacára is).
Ezért 2x100 nF kerámiakondi kell rá -> lassan töltődik, a nagyfrekvenciás gerjedést megakadályozza.
10uF ELKO meg már gerjedhet - ott meg a LC kör alakul ki: L: belső elektrolit+feltekert alumínium
Sőt, ha kikapcsolod, akkor a kimeneten levő szűrőkondi visszatáplál a 7805 elé 8belső fordított dióda miatt), így attól is elhalálozhat (az adatlap szerint, bár az ördög nem alszik). eddig megúsztam ezt én is. De a 7805 bemenetén ott 10uF ELKO szűrő, és a 100nF kerámia. A kimeneten csak a 100nF kerámia van!
Ezért 2x100 nF kerámiakondi kell rá -> lassan töltődik, a nagyfrekvenciás gerjedést megakadályozza.
10uF ELKO meg már gerjedhet - ott meg a LC kör alakul ki: L: belső elektrolit+feltekert alumínium
Sőt, ha kikapcsolod, akkor a kimeneten levő szűrőkondi visszatáplál a 7805 elé 8belső fordított dióda miatt), így attól is elhalálozhat (az adatlap szerint, bár az ördög nem alszik). eddig megúsztam ezt én is. De a 7805 bemenetén ott 10uF ELKO szűrő, és a 100nF kerámia. A kimeneten csak a 100nF kerámia van!
Én mostanában ezt használom, illetve a 3.3V-os változatot:
http://pdf1.alldatasheet.com/datasheet- ... S-5.0.html
Igaz, majdnem 10x annyiba kerül, mint egy mezei lm7805 és több körítés is kell mellé, cserébe viszont nem melegszik és a kimenetén sem produkál semmi rondaságot. (már amit egy 100MHz-es szkóppal meg lehet mérni.)
Viszont ha tudtok valamit, ami ennél költséghatékonyabb (minimum 100-200mA/3.3V ), ne tartsátok magatokban.
http://pdf1.alldatasheet.com/datasheet- ... S-5.0.html
Igaz, majdnem 10x annyiba kerül, mint egy mezei lm7805 és több körítés is kell mellé, cserébe viszont nem melegszik és a kimenetén sem produkál semmi rondaságot. (már amit egy 100MHz-es szkóppal meg lehet mérni.)
Viszont ha tudtok valamit, ami ennél költséghatékonyabb (minimum 100-200mA/3.3V ), ne tartsátok magatokban.
tehat ha jol ertem, akkor a kondi 'kisimitja' az egyenetlen feszultseget?Robert írta:A 7805 szeret átmenni rádióadóba. Erősítő van benne, és el kezd gerjedni. Aztán sugároz az mindenfele + melegszik + megsülhet a chip (még a hővédelem dacára is).
Ezért 2x100 nF kerámiakondi kell rá -> lassan töltődik, a nagyfrekvenciás gerjedést megakadályozza.
10uF ELKO meg már gerjedhet - ott meg a LC kör alakul ki: L: belső elektrolit+feltekert alumínium
Sőt, ha kikapcsolod, akkor a kimeneten levő szűrőkondi visszatáplál a 7805 elé 8belső fordított dióda miatt), így attól is elhalálozhat (az adatlap szerint, bár az ördög nem alszik). eddig megúsztam ezt én is. De a 7805 bemenetén ott 10uF ELKO szűrő, és a 100nF kerámia. A kimeneten csak a 100nF kerámia van!
a bemenetre a 10uF es 100nF kondikat sorban gondoltad?
a visszataplalast nem lehet egy sima egyeniranyito diodaval kikuszobolni?
fejlemenyek vannak
ugyan az elso hozzaszolasban abbol indultam ki, hogy mar van egy felprogramozott ATMega chipem, de azert az ehhez vezeto ut nem volt rogoktol mentes
'just for the record' jelleggel, hatha masnak is hasznos lesz, a tapasztalatok, es a 'gyozelemhez vezeto ut':
eloszor a 'minimal' confignak megfeleloen (ld alabb) probalkoztam bootloadert varazsolni az ATMega8-asra
gondolom azert nem sikerult beroffenteni, mert kulso kvarcra lett gyarilag beallitva
beszereztem a kvarcot, osszeraktam a 'teljes' bootloader-programozo aramkort:
igy mar feleledt a chip, viszont rejtelyes hibauzeneteket kaptam
massziv guglizassal kiderult hogy az problema az 'auto-reset' miatt van
ez elvileg ketfajta modon tilthato: vagy a programozo Arduino RST es GND-je koze rakott 110-124 ohm kozti ellenallassal (mivel ilyen egzotikus ellenallasom nincs itthon, egy 150 ohmos es egy 470 ohmos ellenallast kotottem ra parhuzamosan, ez elvileg 113.7 ohm) vagy ellenallasok helyett 10uF-os kondival
sajna egyik verzio sem vezetett eredmenyre, bar legalabb mas hibauzenetek jottek...
vegul valahol az Internet melyen talaltam olyan megjegyzeseket, miszerint sokaknak volt ugyanez a problemaja 1.0 arduino alatt, de a 022-es verzioval felrakott ArduinoISP mar mukodik
nosza, kiprobaltam, igy ujabb hibauzenet jott
de nem adtam fel, es a fenti auto-reset tiltasi modszereket kiprobalva vegul sikerult felirni a bootloadert az ATMega8-ra! (az ellenallasok nem valtak be, de a kondenzatorral mar mukodott - a neten volt aki irta hogy ugyanigy jart, nala is a kondi kellett ahhoz hogy beinduljon a varazslat)
szoval osszefoglalva:
Arduino 022, ArduinoISP sketch feltoltese, a programozo Arduino RST es GND-je koze 10uF kondi, es mar mehet is a bootloader egetese
ugyan az elso hozzaszolasban abbol indultam ki, hogy mar van egy felprogramozott ATMega chipem, de azert az ehhez vezeto ut nem volt rogoktol mentes
'just for the record' jelleggel, hatha masnak is hasznos lesz, a tapasztalatok, es a 'gyozelemhez vezeto ut':
eloszor a 'minimal' confignak megfeleloen (ld alabb) probalkoztam bootloadert varazsolni az ATMega8-asra
gondolom azert nem sikerult beroffenteni, mert kulso kvarcra lett gyarilag beallitva
beszereztem a kvarcot, osszeraktam a 'teljes' bootloader-programozo aramkort:
igy mar feleledt a chip, viszont rejtelyes hibauzeneteket kaptam
massziv guglizassal kiderult hogy az problema az 'auto-reset' miatt van
ez elvileg ketfajta modon tilthato: vagy a programozo Arduino RST es GND-je koze rakott 110-124 ohm kozti ellenallassal (mivel ilyen egzotikus ellenallasom nincs itthon, egy 150 ohmos es egy 470 ohmos ellenallast kotottem ra parhuzamosan, ez elvileg 113.7 ohm) vagy ellenallasok helyett 10uF-os kondival
sajna egyik verzio sem vezetett eredmenyre, bar legalabb mas hibauzenetek jottek...
vegul valahol az Internet melyen talaltam olyan megjegyzeseket, miszerint sokaknak volt ugyanez a problemaja 1.0 arduino alatt, de a 022-es verzioval felrakott ArduinoISP mar mukodik
nosza, kiprobaltam, igy ujabb hibauzenet jott
de nem adtam fel, es a fenti auto-reset tiltasi modszereket kiprobalva vegul sikerult felirni a bootloadert az ATMega8-ra! (az ellenallasok nem valtak be, de a kondenzatorral mar mukodott - a neten volt aki irta hogy ugyanigy jart, nala is a kondi kellett ahhoz hogy beinduljon a varazslat)
szoval osszefoglalva:
Arduino 022, ArduinoISP sketch feltoltese, a programozo Arduino RST es GND-je koze 10uF kondi, es mar mehet is a bootloader egetese
A nagyméretű köndi oka:
ArduinoISP megnyitja/becsukja a sorosportot. Ez ugye folyamatos resetet okozna a programozó panelben. A RST-GND 10uF nagy késleltetési időt+sok töltést jelent így az újracsatlakozgatások nem resetelik a chipet.
Ugyanezt éred el a RST-5V közé rakott kis ohmos (rövidzár?) vezetékkel is! Csak a RESET gombot ne nyomogasd ekkor.
ArduinoISP megnyitja/becsukja a sorosportot. Ez ugye folyamatos resetet okozna a programozó panelben. A RST-GND 10uF nagy késleltetési időt+sok töltést jelent így az újracsatlakozgatások nem resetelik a chipet.
Ugyanezt éred el a RST-5V közé rakott kis ohmos (rövidzár?) vezetékkel is! Csak a RESET gombot ne nyomogasd ekkor.
szerintem vehetjuk ugy hogy a kerdes valaszt kapott (vagyis az IC melle egy 16 Mhz-es kvarc kell ket 22pF-os kondival, de megfelelo SW-es elokeszitessel ez is elhagyhato)
akkor lepjunk tovabb
mivel felprogramozni mar tudom a chipet, es az aramkort is ossze tudom rakni, a kovetkezo kerdes a tapfeszultseg
hiaba kuldom el aludni a chipet, ha a feszszabalyzo onjelolt radiatorkent tovabb szivja az elemet (meg ha nem is annyira mint 'full' modban)
szoval a kerdes az lenne, hogy milyen egyszeru (marmint az en ovodas szintemhez viszonyitott) megoldas letezik a problemara?
vagy inkabb ugy kerdezem: a szamomra legegyszerubb 7805-os feszszabi helyett mit hasznalhatnek ami sleep modban nem zabalja fel az elemet?
akkor lepjunk tovabb
mivel felprogramozni mar tudom a chipet, es az aramkort is ossze tudom rakni, a kovetkezo kerdes a tapfeszultseg
hiaba kuldom el aludni a chipet, ha a feszszabalyzo onjelolt radiatorkent tovabb szivja az elemet (meg ha nem is annyira mint 'full' modban)
szoval a kerdes az lenne, hogy milyen egyszeru (marmint az en ovodas szintemhez viszonyitott) megoldas letezik a problemara?
vagy inkabb ugy kerdezem: a szamomra legegyszerubb 7805-os feszszabi helyett mit hasznalhatnek ami sleep modban nem zabalja fel az elemet?
Kidobod a teljes feszültségstabilizátort ahogy van.
Beraksz 3 ceruzaelemet.
A mikrokontrollert _a legkisebb_ órajelről járatod, amin lehet. Ez Arduino esetén 8 MHz.
Az elemek ha merülnek, nem zavar. Az AVR 1.8-Vig jól működik (na jó, 2.x V-ig, de a BOD resetet berakod 1.8V-ra) -> Ez a kérdéskör _túlmutat erősen_ az arduino témakörén!
AVR le sleep-be. INT-re fel tud kelni, így a nyomógomb ide megy.
Beraksz 3 ceruzaelemet.
A mikrokontrollert _a legkisebb_ órajelről járatod, amin lehet. Ez Arduino esetén 8 MHz.
Az elemek ha merülnek, nem zavar. Az AVR 1.8-Vig jól működik (na jó, 2.x V-ig, de a BOD resetet berakod 1.8V-ra) -> Ez a kérdéskör _túlmutat erősen_ az arduino témakörén!
AVR le sleep-be. INT-re fel tud kelni, így a nyomógomb ide megy.
a topic elejen meg ezt irtad:Robert írta:Kidobod a teljes feszültségstabilizátort ahogy van.
Beraksz 3 ceruzaelemet.
A mikrokontrollert _a legkisebb_ órajelről járatod, amin lehet. Ez Arduino esetén 8 MHz.
Az elemek ha merülnek, nem zavar. Az AVR 1.8-Vig jól működik (na jó, 2.x V-ig, de a BOD resetet berakod 1.8V-ra)
nekem ez a ketto pont egymassal ellentetesnek tunik"Nincs külső táp: 3 ceruzaelem, így a tápfesz 3*1.5V. A tápfeszingadozás, feszültségváltozást LE KELL kezelned!
Pl. stepup-stepdown táppal"
most akkor eleg ha siman rakotom a 3 ceruzaelemet, vagy kell meg ele valami?
mondjuk csak 'sima' Mega8-as chipem van, az meg a datasheet alapjan 4.5V-ot ker legalabb. L-esem nincs (meg), a 328-ast meg nem akarom kiszedni az Arduinobol emiatt
a kisebb orajel kisebb fogyasztast jelent, vagy a tapfeszultseggel is osszefuggesben van?
A stabilizált ott érdekes, ha
- időzítést használsz és precíznek kell lennie
- belső órajelről jár a chip és sorosportot is kezelsz.
A stepup-stepdown előnye:
- van ami ~1V-tól működik és ebből 3.3V-ot előállítasz
- stabil tápod lesz
- az elemből mindent kifacsarsz
Hátrány:
- nyákterületet foglal
- ár (~600 Ft + sallangok)
- van saját fogyasztása is
Az új "A" soroszatú chipek már mindent tudnak
Ahogy a projektet nézem, elég a 3 ceruzaelem, vagy 4 tölthető akku.
Kisebb órajel -> kisebb fogyasztás. de lesd meg az adatlapot
Ha a chipet sleepbe küldöd, akkor:
- felhúzókat kikapcsolni
- többi fogyasztót kikapcsolni (LED-eket is!)
Gondolj a TV távirányítóra...
- elem ahogy merül, így járt
- standby: minden kikapcsolva
- gombnyomásra ébred
- időzítést használsz és precíznek kell lennie
- belső órajelről jár a chip és sorosportot is kezelsz.
A stepup-stepdown előnye:
- van ami ~1V-tól működik és ebből 3.3V-ot előállítasz
- stabil tápod lesz
- az elemből mindent kifacsarsz
Hátrány:
- nyákterületet foglal
- ár (~600 Ft + sallangok)
- van saját fogyasztása is
Az új "A" soroszatú chipek már mindent tudnak
Ahogy a projektet nézem, elég a 3 ceruzaelem, vagy 4 tölthető akku.
Kisebb órajel -> kisebb fogyasztás. de lesd meg az adatlapot
Ha a chipet sleepbe küldöd, akkor:
- felhúzókat kikapcsolni
- többi fogyasztót kikapcsolni (LED-eket is!)
Gondolj a TV távirányítóra...
- elem ahogy merül, így járt
- standby: minden kikapcsolva
- gombnyomásra ébred
soros port ebben a vonatkozasban nem igazan erdekel (ha mar ugyis madzag log rajta, akkor kapjon aramot halozatrol )Robert írta:A stabilizált ott érdekes, ha
- időzítést használsz és precíznek kell lennie
- belső órajelről jár a chip és sorosportot is kezelsz.
az idozitessel kapcsolatban: ez erosen fugg a feszultsegtol? tehat ha nem stabilizalt tapfeszt kap az IC, akkor a rakotott kulso kvarctol fuggetlenul ossze-vissza jarhat? vagy ez csak a belso oszcillatorra ervenyes?
igen, mar a multkor is felcsillant a szemem ezekre a feature-okre, utana is nezekA stepup-stepdown előnye:
- van ami ~1V-tól működik és ebből 3.3V-ot előállítasz
- stabil tápod lesz
- az elemből mindent kifacsarsz
a 7805-nel pont ezek ellenkezoje igaz (bar fogyasztasa annak is van rendesen)Hátrány:
- nyákterületet foglal
- ár (~600 Ft + sallangok)
- van saját fogyasztása is
igy legalabb a projecttol fuggoen el tudom majd donteni hogy melyik lesz a jobb valasztas
dragabbak is de az adatlapokat nezegetve tenyleg csak lestem hogy milyen szamok vannak rajtaAz új "A" soroszatú chipek már mindent tudnak
Ahogy a projektet nézem, elég a 3 ceruzaelem, vagy 4 tölthető akku.
Kisebb órajel -> kisebb fogyasztás. de lesd meg az adatlapot
a felhuzo kikapcsolasanal gondolsz az olyan esetekre is, amikor pl. egy nyomogomb van a panelen? tehat ott mondjuk 5V-ra kotott felhuzoellenallas helyett tegyem egy digitalis outputra, amit ki tudok kapcsolni sleep elott, vagy hasznaljak lehuzo ellenallast? (tenyleg, miert mindenhol felhuzoellenallast hasznalnak, a lehuzo miert nem 'divat'?)Ha a chipet sleepbe küldöd, akkor:
- felhúzókat kikapcsolni
- többi fogyasztót kikapcsolni (LED-eket is!)
mondjuk ha interruptra akarom rakni a gombot, akkor oda gondolom mindenkepp kell a mukodo felhuzoellenallas, kulonben sosem ebred fel szegeny Chipkerozsika