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
Üdvözlet!
EZT a cuccot szeretném megépíteni. Pontosabban meg is építettem, de az ATtiny felprogramozásával vannak gondjaim. Régebben már programoztam ATmega-t PonyProg-al, de ott egy HEX fájl volt az egész, ennél viszont C van, amivel nem tudok mit kezdeni, mert nem értek hozzá, hogyan kell fordítani. Az lenne a kérdés, hogy valaki nem tudná nekem átfordítani olyan formába, amit a PonyProg már elfogad? Nagy segítség lenne még az is, ha leírná valaki, hogy PonyProg-ban még mit állítsak, hogy működjön a dolog. Köszönöm.
Sziasztok!
Tök új vagyok AVR témában egy kis segítségre lenne szükségem. A Feladat egy horgászbólya, ami este bekapcsol világít reggel meg ki, kicsinek kell lennie és 2 ceruza elemről egy hetet vagy többet kellene mennie. Első ötlet egy napelemes kertilámpa átépítése volt, de nagy a napelem (kb egy 2-3 cm csőbe bele kéne férnie mindennek) arra gondoltam, hogy egy kis 8 lábú avr-el oldom meg a dolgot, vagy real time clock-al, vagy egy sima villogó ami 8 óra ON állásban vagy a többi off. itt nyilván az indítás ideje eszámít, esetleg lehetne villogtatni a ledet, hogy energia takarékosabb legyen. 0.5 s On 2 s Off... minden segítséget szívesen veszek. Előre is köszönöm.
Szia!
Elsőnek kell egy feszültségosztó amibe legyen fotóellenállás, ezen fényerősséggel együtt változik a feszültség is. Ezt rákötöd egy ADC bemenetre, amin megméred ezt az értéket és ennek függvényében villantasz vagy nem. Érdemes POWER DOWN módban használni a procit, sok elemet spórolhatsz. A program egyszerű lenne, rögtön elküldöd a procit aludni. Létrehozol kb 2 mp-s megszakítást, ami felébreszti a procit. Ebben megvizsgálod, hogy nappal van vagy éjszaka. Ha nappal akkor elküldöd megint aludni, ha este akkor villantasz egyet és utána küldöd aludni. Viszont be kell jutnia a fények az úszóba a méréshez. Itt publikált 5 AVR cikk alapján simán meg tudod csinálni, vagy ha elakadsz akkor kérdezz. üdv: Zoli
Leforditottam. Mellekletben ott a .hex is. Pony -ban meg majd valaki mas segit, en nem hasznaltam.. A fuse biteket ne allitgasd, hagyd alap beallitasban. A forras szerint 1MHz orajelrol megy a proci. Alapbol az ATTiny2313 is ezen fut. Nem ir az oldalon semmit a fuse bitekrol, igy nem tudom a clkdiv8 -at kii kell-e venni. Egyszer probald alap fuse bit beallitasokkal, ha nem mukodik, vagy nem rendesen, akkor vedd ki a clkdiv8-at.(Esetleg mas hatha tobbet tud mondani..)
(A zipben levo Makefile -ban nincsenek helyesen beallitva a fuse bitek ennek a projektnek megfeleloen, igy azt ne hasznalja senki amig at nem irja!)
Sziasztok! Lenne egy kérdésem. Mutattak egy kapcsolást amiben van egy AVR és egy PIC is. Van hozzá két letöltő kábel "kapcsolás" is az AVR-hez és a PIC-hez. Le lehet tölteni programot hozzá, de csak az AVR-hez találtam Szóval megépítek mindent, csatlakoztatom a cuccost a géphez a kábellel, és a programot beleégetem a mikroprocesszorba. Nem tudnátok megmondani, hogy milyen programmal csináljam? A BASCOM AVR jó erre a feladatra? A program .hex és .syx -ben van meg. Előre is köszi: Petya
Bascommal is be tudod egetni az AVRt. Bascom ugyben bovebben lasd http://avr.tavir.hu/
A fuse bit beallitasokat is alaposan nezd meg a projektben, eszerint egesd be azokat is.
Sziasztok ! Volna egy olyan problémám , hogy ATMega 162-be kellene betöltenem egy programot ami , HEX-ában van . Ezzel nincs idáig gondom ,meg tudom nyitni a Bacsommal ,de az AVR-t JTAG-on keresztül kellene betöltenem és nem tudom hogyan kell beállítani a Programmer a Bascomban . Ebben kérem segítségeteket .
Sziasztok!
Nekem egy olyan problémám lenne, hogy AVRstudioban szoftveres debug esetén (assemblyiben) ezt a hibaüzenetet kapom:
Ez csak ATmega32-nél jelentkezik. Próbáltam más processzort is például ATmega88-al semmi probléma. Ezt a hibaüzenetet amúgy abban az estben kapom ha szubrutin hívásból szeretnék visszatérni, ekkor a PC beáll 0x00-ra. AVRstudio 4.16-os verzióm van. Ha valaki tudna segíteni annak nagyon örülnék!
Miért nem használsz egy fotoellenállást az egyik analóg bemeneten? Persze azon is fűtesz.
Takarékosabb lehet nyáron?
Miért JTAGon át?
Amúgy feltelepített AVRStudióval megy csak, mint external programmerként - AVRDudeval. de így már az AVRStudió is elég kell legyen... bascom nem kell hozzá.... Bascomban nincs natív JTAG támogatás...
Szia ! Azért volna ez a gondom mert a panelon jtag csati van ,és az ISP-t LCD hajtásra használja . A Bascomon is van exterminal programmer ,de amikor megadom a HEX-a fájl helyét ,akkor ki írja,hogy ID:FFFFFFF
Még mielőtt az új procit is kinyírom...
Melyik kell nekem ha simán 6MHz-es külső kvarcot akarok használni 2 db 22pF-os kondival? -Low Power Crystal Oscillator -Full Swing Crystal Oscillator Adatlapból annyit vettem ki, hogy full swing-be az órajel továbbvihető más egységek óraforrásának. De eddig még nem találkoztam ilyennel, ezért inkább megkérdezem (már nincs tartalék procim). ui.: AVRStudio-ba van: -external full swing crystal -external crystal oscillator
(Low power) external crystal oscillator...
A proci közben RESET-ben van, és az LCD a lábait bemenetre használja. Azaz ISPn át is programozható.
A Bascomban _NINCS_ JTAG programozó! Így hiába állítasz be bármit, nem fog menni vele. External programmer (külső programozó) meg a külső programozóval égeted be, a Bascom paraméterként átadja a HEX file-t (ill az EEP file-t) és nem is érdekli az eredmény....
Üdv,
A Low Power Crystal alacsony fogyasztású mód főként kis frekvenciás órajelű alkalmazásokhoz. Az oszcillátor erősítői nem igényelnek akkora áramot, így használata elsősorban akkumulátor vagy napelem táplálású illetve egyéb kis fogyasztású applikációkban célszerű. Az alacsonyabb fogyasztás eredménye a kis amplitúdójú szinusz mely sokkal zavarérzékenyebb, valamint a korlátolt maximális frekvencia. A Full Swing mint elnevezéséből sejthető, 0-tól tápfeszültségig terjedő amplitúdóval rendelkező szinuszt állít elő, nagyobb fogyasztás árán. Ez az üzemmód sokkal kevésbé zavarérzékeny és az elérhető maximális órajel a mindenkori maximuma a kontrollernek. Ha biztosra akarsz menni, nem kritikus a fogyasztás és rám hallgatsz akkor válaszd a full swing módot.
Köszi a válaszokat és a plussz infót.
Akkumlátoros üzem lesz, de kell a pontos órajel, tehát akkor jobb a Low Power mód. Lenne még két kérdésem: -Mennyire pontos a belső referencia feszültség ADC egységben? Függ ez a tápfeszültségtől, vagy a hőmérséklettől? (mega88 esetén 1,1V) -Mire jó az előosztó ADC esetén? (timer esetén értem, de itt nem tudom hova tenni, és nem is írnak róla) Köszi Zoli
Szia!
Az A/D átalakitó belső referenciájának pontosságáról nem nagyon találtam én sem infot az adatlapban. Én is kiváncsi lennék rá. Viszont az előosztó az arra jó, hogy tudd időziteni az a/d átalakitást. Az ADC előosztó bitekkel tetszőlegesen leoszthatod a kontroller órajel-frekvenciáját. Üdv!
Referencia pontossága pedig benne van. "Electrical Characteristics" szekció, ADC Characteristics és a táblázat végén egy VINT Itt pl. ATmega16 esetén az van, hogy Min: 2,3V Tipikus: 2,6V Max: 2,9V.
Hát nem a pontosság megtestesítője így -+11,5% os pontossággal. Idézet: „Viszont az előosztó az arra jó, hogy tudd időziteni az a/d átalakitást. Az ADC előosztó bitekkel tetszőlegesen leoszthatod a kontroller órajel-frekvenciáját.” Félreérthető a mondat, nem a kontroller órajelét osztod hanem a SAR számláló léptető órajelét, de valószínű ezt akartad írni... csak tisztázzuk. Szeretnek az emberek kapkodva fél mondatokat kiragadni. ADC időzítéssel kapcsolatban pedig inkább azt célszerű tartani, hogy lassú változású jelekhez célszerűbb magas előosztót választani ezzel is védekezve a zajok ellen. Egy ATmega16 esetén az ADC successive approximation módú, azaz folytonos közelítéses. Aki nem tudná, egy kis magyarázat: Ez úgy működik, hogy van egy számláló, aminek a kimenete egyszer egy DAC-ba kerül, egyszer pedig egy latch-en keresztül a buszra. A számláló egy fel-le számláló, aminek a fel/leszámoló jelét egy olyan komparátor adja, ami a bemenő analóg jelet hasonlítja össze a számláló értékéből DAC-al készített analóg feszültséggel. Ennek eredményeként, ha nagyobb a bemenő mint a DAC által előállított érték, akkor számláló számlál felfelé így növekszik a DAC által kiadott feszültség is. Amint alá csökken, a számláló kiadja a "kész" jelzést. Ez a Conversion Complete. Tehát lényege az ADC-nek egy DAC. A sors iróniája, hogy egy analóg digitál konverterhez digitál analóg konverter kell. A közelítéses módszer előnye, az egyszerűsége és a relatíve gyorsasága. Maga a számlálás pedig nem sima számlálás, hanem hasonlít egy tartomány felezős kereséshez (bináris keresés). Egy egyszerű eldöntés, hogy < mint a mostani érték fele? Két ábra, hogy érthető legyen mindenkinek: Ezekután könnyen kiszámítható hogy egy 1024 féle elemet tartalmazó számsorból, egy tetszőleges értéket kiválasztani. Bináris keresésre a zsugorodó részhalmazok elmélete érvényes, tehát "n" érték közül egy tetszőleges elemet kiválasztani, maximum log2 n +1 lépésbe telik. Azaz lépések száma < log2 1024 +1 azaz maximum 11 lépésből kell megtalálnia a keresett Analóg értéknek megfelelő digitális értéket. Ez azt jelenti hogy a legeslegrosszabb esetben is egy legalább 11-el való osztással még számolnunk kell az ADC előosztón kívül. Az ADC előosztó pedig az az órajel, ami ezt a bináris számlálót lépteti. Tehát nem árt megjegyezni, hogy egy 1MHz-es órajelről járó processzornak 1MHz / 2 / 11 =~ 45 KHz lehet a konverziós sebessége. (2 = legkisebb ADC előosztó) Ez a valóságban persze sokkal rosszabb, mert utasítás még indítani, plusz utasítás figyelni / interruptozni. Tehát alig pár tíz KHz a maximális. Ebből az egészből ezt a több mint 10-el való "rejtett" további osztást akartam kihozni, jó ha tudunk róla.
Sziasztok, nem tudom, hogy volt-e már hasonló kérdés, de örülnék, ha tudnátok segíteni. [Kezdő AVR-es vagyok]
ATTINY2313 -ast használok, és AT45DB161D-SU típusú memóriát használtam mellé, speciel arra a célra, hogy hangot tároljak rajta. Namost szeretném ha valaki segítene abban, hogy van-e rá mód, hogy ne SMD, hanem DIP tokozású memóriát használjak? Át kell írni a 2313-as programját vagy sem? Ugyanis a *** tele van azzal, hogy SM alkatrészt cserélnék valamiben és tönkre*** a nyákom... pedig, mint a törékeny nőt, úgy kezelem ilyenor a lehető legvékonyabb pákámat is, de hiába, szal ezt meg nem szeretném elszúrni olyan sokszor, ugyanis elég nagy a nyák... Nincs hangulat esetleg újat csinálni ha el***... Szal DIP memória ajánlásokat várnék , ha lehet minél hamarabb. Előre is köszi Zoli
Vulgáris szavakért elnézést kérek, nem akartam alpárinak tűnni. Igazából sietve írtam le ezeket , így aztán felse tűnt hogy a "rövidítésekből" is gond lehet. Legközelebb figyelek rá! Egyébként meg lehet úgy is figyelmeztetni hogy utána nem fenyegettek megfelelő honorániumokkal.
Visszatérve a kérdésemre, tényleg megköszönnék bármilyen választ, segítséget! Zoli Idézet: „van-e rá mód, hogy ne SMD, hanem DIP tokozású memóriát használjak?” Nem igazan ertem a kerdest? Miert ne lenne ra mod? Nem tudod attervezni a paneled vagy rajzolo programod nem ismeri az adott alkatreszt DIP tokozasban vagy mi a problema? Idézet: „Át kell írni a 2313-as programját vagy sem?” Marmint ha lecsereled az SMD tokozasu IC-t DIP-esre? Nyilvan ha ugyanazt az interface-t hasznalod akkor nincs szukseg valtoztatasra... Idézet: „Szal DIP memória ajánlásokat várnék , ha lehet minél hamarabb.” Ize... Parancs ertettem! Tul a figyelmeztetesen engem ez is zavar, hogy szinte elvarod, hogy a masik rendelkezesre alljon de most es azonnal. Ez egy hoby forum ahol nincsenek hataridok, itt mindenki a sajat oromere dolgozik illetve valaszolgat a feltett kerdesekre... Sajnos jobb otletem nincs, minthogy bongeszd a katalogusokat es valaszd ki magadnak azt az alkatreszt amit hasznalni szeretnel. Ja es meg annyit, hogy nem csak egy ceg kinal memoriat, ugyhogy valasztek van boven!
Üdv!
Megvettem a Topi féle AVR programozót kitben és össze is raktam. Elegem lett a mezei STK200-ból. Külön öröm, hogy van rajta a TagretVCC. A gondom az, hogy ezzel sem sikerült egy ATtiny2313-at felprogramozni. Úgy próbáltam, hogy egy próbanyákba beforrasztottam egy DIP-20 tokot, amiben a mikrokontrollert dugtam, és összekötöttem egy 10 centis szalagkábellel a programozó csatijával. Gyakorlatilag 1 az egybe lett a DIP20 tok összekötve a programozóval a következő lábkiosztással: Programozó lábai -> ATtiny2313 lábai: 1 -> 17 2 -> 20 4 -> 10 5 -> 1 7 -> 19 9 -> 18 Valamit rosszul csinálhattam? Mert AVRStudio-ban a programozót megtalálta, de bármit szeretnék csinálni a ATtinyvel, semmi eredménye. Üzenetként: "Entering programming mode....FALSE" Próbálkoztam azzal, hogy egy szintén DIP-20 IC tokba közvetlenül beforrasztottam a szalagkábelt, hogy a céláramkörgen csak rá kelljen tenni az AVR IC tetejére, hogy érintkezzen. Semmi eredménye. Kellett volna még valamit csinálnom, hogy működjön? EZT építettem meg, viszont most arra lettem figyelmes, hogy a 12V-ot ráadva az LM2931 iszonyatosan felmelegszik és ekkor a ATtiny 10-es és 20 lábai között kevesebb, mint 1V-ot mérek. 1 hete - mikor utoljára próbálkoztam még STK200-al - még nem melegedett és a kapcsoláson mindenhol 5V körüli feszültséget mértem. Bár ez nem az ATtiny hibája, de ugyanaz a kapcsolás.
Itt van pl egy hasonlo parameterekkel rendelkezo memoria DIP foglalatban:
http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=W2...AIZ-ND
Hali!
Már többször volt erről szó és kaptam is válaszokat, de valahogy mégsem bírom megoldani... ...ezért felteszem ujból a dolgot konkrét példával: Csatoltam a kapcsolási rajzot EWB - multisim formátumban és jpg-ben is. A következőt szeretném elérni: Ha a VCC -s kapcsolóval a bemeneti lábat összezárom +5V -tal akkor kapcsoljon be az egyik led, majd ha szétkapcsolom akkor a led is aludjon ki. Illetve egy másik megoldásban azt is szeretném elérni, hogy ha a másik kapcsolóval a földre kötöm a bemenetként használt lábat akkor annak függvényében tudjam vezérelni pl a másik ledet. Ha a kettőből valamelyikre tudna valaki konkrét c -kódot adni nagyon-nagoyn megköszönném! U.I.: Hangsúlyoznám, hogy nem egyszerre szeretném megvalósítani mind2 dolgot, csak így tettem fel a kapcsolási rajzot, hogy ne kelljen mégegy majdnem ugyanilyennel terhelni a szervert... Előre is köszi a segítséget! Üdv! Barbár
Helló. Én ezt pár hete megcsináltam már nagyon jó, működik ATmega8-on ATtiny13-on és 45-ön is. , de én úgy csináltam meg hogy ehhez felhasználtam két bemenetet mert én nem ezt a rajzot csináltam meg és a rajzodat nem is találom jónak, mert mivan akkor ha mindkét érintkezőt egyszerre zárom? Zárlat várható. Ezért lenne jobb ha inkább két bemenetet használnál teis. helló.
Idézném a korábbi hozzászlásom egy részét:
"Hangsúlyoznám, hogy nem egyszerre szeretném megvalósítani mind2 dolgot, csak így tettem fel a kapcsolási rajzot, hogy ne kelljen mégegy majdnem ugyanilyennel terhelni a szervert... " Illetve ha megcsináltad akkor majd feltennéd a C-kódot hozzá (ATtiny45 -höz és esetleg a többihez is (igazából mind3 érdekelne, de főleg a 45-öshöz és a mega8 -hoz. Köszi
Ez a dolog egyáltalán nem akar nekem működni. Bármit teszek, egyszerűen nem találja az ATtinyt. Bármilyen ISP frekit állítok be AVR-Studio-ban, a Read Signature gombra bökve azonnal hibát ír. Mintha nem is lenne rákötve semmi.
A csatlakozást úgy oldottam meg, hogy egy próbanyákra beforrasztottam egy IC foglalatot egy 10 centis szalagkábellel dugtam az AVR-Doper isp csatijára. Képek: KÉP 1 KÉP 2
CKDIV8-at kikéne venni és úgy beleírni ha tudod.
|
Bejelentkezés
Hirdetés |