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   145 / 837
(#) inci88 válasza zsuscsinyo hozzászólására (») Aug 27, 2009 /
 
giveio fel van rakva, ha nem volna, akkor nem tudná megnyitni az lpt port-ot. (egyik előző hiba)

Akkor azt mondod, nem a programommal van a gond, nem is a fusebitekkel, hanem a programozómmal?

Keresek ic-t és valószínű összedobom.
(#) gtk hozzászólása Aug 27, 2009 /
 
Sziasztok !

Nem olyan regen talalkoztam egy erdekes problemaval. Az ATTiny2313-la szerelt ibuttonos interfeszeim egyikeben, az AVR/EEPROM elso, 0. cimtol levo 6 byteos ibutton-bejegyzes "megserult". ( a tobbi 3x6 byte eeprom bejegyzes nem serult) Nem volt lehetosegem kiolvasni, megnezni hogy pontosan milyen adat kerult a helyere, vagy hogy a 6 bytebol esetleg melyik serult,.. Ujra felprogramoztam ra az ibuttont es mukodik.
Kivancsi lennek, valaki tapasztalt -e eeprom bejegyzes eltunest, esetleg mi lehet egy ilyennek az oka?
(#) Topi válasza gtk hozzászólására (») Aug 27, 2009 /
 
Igen. Pont egy hete javítottam meg egy áramköröm régről ismert betegségét. Mint később kiderült, ahogy csökkent a feszültség, képes volt meghívódni egy olyan rutin ami egyébként csak egy buszon bemenő helyes adat (ott burst, data, crc stb... tehát ezeket lazán átugorva) után tudna.
De ez meghívódott és felülírta az EEPROM-ot.

A hibát nagy nehezen elő tudtam hozni, egyszerűen lassan tekertem le a labortápon a feszültséget, és lám.. egyszercsak felvillant a programozási módot jelző led és irogatott az EEPROM-ba.

Brownout! Általában feszültség tüske hatására képes elmászni a kód végrehajtás.
Ha a Brownout benne van, akkor a negatív feszültség ingadozások ellen jobban védett a processzor, így jobban védett a program végrehajtás elmászása ellen.
(#) zolee1209 válasza Topi hozzászólására (») Aug 27, 2009 /
 
Értem mi a brownout, de akkor mi volt konkrétan a megoldás? A legmagasabb szintre állítottad, vagy kikapcsoltad a BOR-t?
(#) gtk válasza Topi hozzászólására (») Aug 27, 2009 /
 
Koszi ! Soha nem gondoltam volna, hogy megtortenhet ilyesmi.
(#) Topi válasza zolee1209 hozzászólására (») Aug 28, 2009 /
 
Bekapcsoltam. Az áramkör 5V-os, így 4V-ra.

A konkrét hiba az volt, hogy fesz ugrálásnál, program elkóricál.
Megoldás: Fesz. csökkenésre azonnali automatikus reset.

Azelőtt az áramkörben nem volt Brownout engedélyezve.

Utánna pedig nem tudtam előidézni mégegyszer a hibát, pedig a hiba előidézési technológiám 100%-os találatot adott minden próbánál. Ergo. Tényleg ez volt az EEPROM gond.
(#) totht91 hozzászólása Aug 29, 2009 /
 
hi!

vettem egy attiny45-ös avr-t (első próbálkozás volt)
és véletlenül sikerült cksel fusebitet elrontanom. nem tudom már milyen értéket adtam neki, de azóta nem tudom se írni sem olvasni szegényt. dobhatom ki a kukába vagy még vissza lehet hozni?

avreal progit használok "FBPRG" adapterrel.
(#) zsuscsinyo válasza totht91 hozzászólására (») Aug 29, 2009 /
 
Topi írt egy cikket, hogy is lehet ezt valójában megoldani.

Bővebben: Link
(#) zolo hozzászólása Aug 29, 2009 /
 
Sziasztok csak egy rövid kérdésem van:
Hány mA-rel lehet terhelni egy DIP tokozású amega88-as kimenetét?

A választ előre is köszönöm.
(#) levy_k válasza zolo hozzászólására (») Aug 29, 2009 /
 
Az adatlap alapján:

Absolute Maximum Ratings:
DC Current per I/O Pin.................... 40.0 mA
DC Current VCC and GND Pins......... 200.0 mA
PDIP Package:
1-The sum of all IOH, for all ports, should not exceed 200mA.
2-The sum of all IOH, for port A0-A7, should not exceed 100mA.
3-The sum of all IOH, for ports B0-B7,C0-C7,D0-D7 and XTAL2, should not exceed 100mA.

A normális 20mA, amelyet szolgáltatni tud és el is tudja nyelni.
(#) radocziandras hozzászólása Aug 31, 2009 /
 
Sziasztok!

Lenne egy olyan problémám, hogy megépítettem ezt.Működik, az időt be is tudom állítani a nyomógombokkal frankón, csak éppen nem jár.Ugyanazt mutatja folyamatosan.Szerintem az oszcillátorral lehet probléma.Lehet, hogy hülyeséget mondtam, de ebben a témában még kezdő vagyok és nem tudom, mit tegyek.

Előre is köszönöm szépen a segítséget!
(#) radocziandras válasza radocziandras hozzászólására (») Aug 31, 2009 /
 
Valószínű, hogy sikerült magam kizárni az avr-ből. Most már annyira sem működik, mint eddíg.
(#) Tomi20 válasza radocziandras hozzászólására (») Aug 31, 2009 /
 
Heló

Ha így történt, akkor építsd meg ezt
(#) radocziandras válasza Tomi20 hozzászólására (») Aug 31, 2009 /
 
Ez szép és jó, meg is építeném, ha nem 22 km re lenne a legközelebbi alkatrészbolt.
(#) Tomi20 válasza radocziandras hozzászólására (») Aug 31, 2009 /
 
Akkor érdemes keresni olyan rajzot, ami csak tranzisztoros, nem tudom otthon mennyi bontott alkatrészed van, de többnyire az a pár alkatrész megtalálható otthon.
(#) gtk hozzászólása Aug 31, 2009 /
 
Ujjabb erdekesseg. Tiny2313: 8MHz belso orajel, T0 presc. 8, OVF interrupt ido 260uS. Ehelyett 484uS a valosagban, a szkop szerint. Main -ban vegtelen ciklus (INTok kikapcsolva), XORal I/O ki-bekapcsolgatas: 694 Khz a mert felperiodus. Nem keves egy kicsit? Hogy letezhet ez?
(#) gtk válasza gtk hozzászólására (») Aug 31, 2009 /
 
Hat ez teljesen lefarasztott.. ATTiny2313 datash:
Idézet:
„The default setting of CKSEL3..0 results in internal RC Oscillator @ 8 MHz.”
Nekem nem igy tunik.. vagy nem jo a lfuse tablazat. A vegen irtam egy egyszeru programot, ami a loop-ban XORolja a kimenetet. Megszamoltam az asm utasitasokat, megneztem azok ciklus idejet es megmertem az I/On a szint-valtas idot. Ez 1.5uS 0xE2 beallitas mellett.
  1. while (1)
  2.     {
  3.        PORTB ^= (1 << PB0); //1.50uS a szintvaltas ido,
  4.     }

  1. IN    1 clk
  2. LDI   1
  3. EOR 1
  4. OUT 1
  5. RJMP 2
1.5uS / 6orajel = 250ns = 4MHz.
Es itt is kijott hogy 4MHz 0xE2 beallitassal. Itt a CKSEL 3..0 = "0010", ami a clock sources szerint is 4MHznek felel meg. (A tablazatban is 0010 van a CKSEL 3..0 -nak default-kent megadva..)
(#) gtk válasza gtk hozzászólására (») Szept 1, 2009 /
 
Szoval egyszerusitve az elobbit:
-Az altalam bongeszett attiny2313 adatlapban a low fuse byte "default value" oszlopa helytelen, ami az orajel beallitasokat illeti (cksel 3..0)Ez int. 4MHz orajel beallitasnak megfelelo, nem int.8MHz-nek.
-Az elozo szamolgatas helyett eleg lett volna tudni hogy a belso oszcillator orajelet ki lehet rakni I/Ora, megpedig a CKOUT fuse bit beallitasaval. (Hatha valakinek hasznos lesz..)
(#) zolee1209 válasza Tomi20 hozzászólására (») Szept 2, 2009 /
 
Ezt a linket én küldtem neked, vagy magadtól találtad meg? Én is ez alapján építettem meg a műszívemet! A kicsatolókondi 100nF-os értéket képvisel nálam és működik! :yes:
(#) Tomi20 válasza zolee1209 hozzászólására (») Szept 2, 2009 /
 
Üdvözletem.
Csak beírtam gugliba a "transistor oscillator" szavakat, és első találata, mikor láttam hogy ez az, amit Te is építettél, és működött, bátran mertem ajánlani.
(#) MD_Pepe válasza TavIR-AVR hozzászólására (») Szept 3, 2009 /
 
Sziasztok!

Most kezdek ismerkedni az ATtiny családdal és ehhez kapcsolódóan van pár kérdésem.

Korábban építettem egy Miduino-t, ami egy Arduino alapú MIDI eszköz. Ennek a programozásához az alábbi kábelt használtam:

http://www.ftdichip.com/Products/EvaluationKits/TTL-232R.htm

Ahogy nézegettem a hozzászólásokat, fogom tudni használni ezt a kábelt az ATtiny AVR-ekhez is, de azért örülnék, ha valaki meg tudná ezt erősíteni!

Köszönöm,

Pepe
(#) tszaboo hozzászólása Szept 3, 2009 /
 
Lehet hogy hülye kérdés amit felteszek, de egy AtMega48 uC-vel ismerkedek. Az SBRS parancs nem hajlandó a SREG eggyik bitét sem elfogadni, mint ugrás feltétel. Van-e valamilyen parancs, amivel ezt meg lehetne kerülni, anélkül, hogy egy BRANCH-hoz újjabb címkét kellene beszúrni? A branch elvileg egy relatív címre ugrik, tehát nincsen olyan, hogy pl "BRNE 1"?
(#) TavIR-AVR válasza MD_Pepe hozzászólására (») Szept 3, 2009 /
 
Igen, de csak módosított AVRDUDE segítségével.

Az FTDI lábait BitBang módon kell kezelni...
(#) tpeter hozzászólása Szept 3, 2009 /
 
Sziasztok!

Kicsit offos, de mi a legolcsóbb módja hogy egy 5V-ra kitalált AVR-t 2x1,5 voltos elemről hajtsak?

Előre is köszi!
(#) levy_k válasza tpeter hozzászólására (») Szept 4, 2009 /
 
DC-DC?
(#) TavIR-AVR válasza tpeter hozzászólására (») Szept 4, 2009 /
 
A, Az AVR 2.7V vagy 1.8V (L sorozat) kepes jarni .
B, Dc-dc konverter (Step Up)
(#) tpeter válasza levy_k hozzászólására (») Szept 4, 2009 /
 
igen, ez a része egyértelmű volt
Valami konkrét típus érdekelne, ami itthon is kapható. Nekem nem sok tapasztalatom van ezekkel (0) ezért kérdem.
(#) tpeter válasza tpeter hozzászólására (») Szept 4, 2009 /
 
áhhá! LT1173.
Szép ára van
(#) levy_k válasza tpeter hozzászólására (») Szept 4, 2009 /
 
Mondjuk az MC34063 már nem annyira drága, 1,5A, 107Ft
(#) tpeter válasza levy_k hozzászólására (») Szept 4, 2009 /
 
Ú, ez jól hangzik. Köszi.
Igazából valóban figyelmetlen voltam mert maga az AVR 2,7V-ról is elciripel nekem. A gondom igazából az hogy van a kapcsolásomban egy 5V-os relé és nem tudom hogy az hajlandó-e kapcsolgatni alacsonyabb feszkón.
Pláne, hogy volt még egy olyan ötlet hogy nem is két cerka elemről járatnám hanem két nikkel-metálhidrid cuccról ami névlegesen csak 1,2V. Persze talán ha púposra töltöm őket, akkor valahogy kijön belőlük 1,35V darabonként...

Következő: »»   145 / 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