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   316 / 840
(#) Reggie válasza szabo.tivadar hozzászólására (») Márc 16, 2011 / 1
 
Programozashoz boven eleg a JTAG(en is ezt hasznalom), viszont ha hatekonyan(azaz gyorsan) szeretnel debuggolni, akkor celszeru a Nexus buszt is kivezetni es egy AVR One beszerzesen elgondolkodni.

Az SPI busz hasznalata es az orajelek megvalasztasa elott vedd figyelembe az Errata-t, konkretan itt arra a hibara gondolok, miszerint az SPI orajelet nem lehet leosztani rendesen az FDIV bit bugja miatt. Ahhoz, hogy rendesen le tudjal menni a sebesseggel, amennyiben erre szukseg van, vagy a rendszerorajelet kell lejjebb venned vagy a buszmatrixban a periferiak orajelet kell lejjebb osztanod.

Oszcillator nem kell, pl az EVK1100 1 db 12 megas kvarcrol megy a uC. Viszont vedd azt figyelembe, hogy a maximalis frekvencia kulso oszcillator hasznalatakor 50MHz, kulso kvarc hasznalatakor 16MHz. Mielott a kulso oszcillatort hasznalnad, gyozodj meg rola, hogy elbirja-e a ket IC okozta terhelest. Semmivel sem jarsz rosszabbul, ha kulon kvarcot kap a uC, a 66MHz a 12MHz-bol jol kiszorozhato(x11/2).

A szuro kapacitasokra figyelj, bar nekem a kovetkezo jatek nyakra nem sikerult elegendot ratervezni hely hiany miatt (max egymasra forrasztgatok SMD alkatreszeket), majd a tapasztalatokat megosztom.

A LED-eket nem celszeru kozvetlenul meghajtani a labakrol mert csak 4mA-t tudnak (4 IO lab kivetelevel).
(#) qvasz2 hozzászólása Márc 16, 2011 /
 
Megnéztem szkóppal is: áll a proci teljesen, nem is próbál a kijelző felé küldeni semmit. Ha megnyomom a gombot, akkor viszont látok mozgást, kb 1 másodpercig, de a kijelzés nem változik tőle, marad a felső sor tele kockákkal.
Szerintem továbbra sem azt égetem bele (vagy nem úgy), amit kéne.
A kijelzőt lepróbáltam egy másik cuccban, ott megy.
(#) puli122 válasza qvasz2 hozzászólására (») Márc 16, 2011 /
 
Ha sikeresen beégetted a hexet és az eepromot, azzal szerintem nem lehet baj. Amivel valószínűleg gond van az a fuse bitek beállítása, de az általad megadott paraméterek alapján nem tudom hogyan kellene beállítani.
(#) qvasz2 válasza puli122 hozzászólására (») Márc 16, 2011 /
 
Elvileg már az is jó:

fuse-2.jpg
    
(#) qvasz2 válasza qvasz2 hozzászólására (») Márc 16, 2011 /
 
Lehet, hogy a procim nem jó, mert A-s ?
ATMEGA8A-PU
(#) gazsee hozzászólása Márc 16, 2011 /
 
Sziasztok! PIC-ek után most AVR-rel kezdtem foglalkozni. Megépítettem az ITT található programozót, windows felismeri, driver fenn van, AVR Studio 4 -ben tudok is csatlakozni hozzá, csak éppen programozni nem tudok vele, akárhogy is állítgatom az ISp órajeleket mindig azt a hibaüzenetet írja ki, ami EBBEN a videóban is van, amikor túl magas az órajel. A programozóban ATmega8L van, mert csak ilyet kaptam (COM portos programozóval programoztam fel ami itt található: )LINK) valamint 74LS126 nem 74HC126 ez gond lehet? Az ISP kábel nem hosszabb 20 centinél, az elektronikát, forrasztásokat már sokszor leellenőriztem, az nem lehet rossz. AMúgy mega8L-t próbálok programozni. Valami ötlet hogy mi lehet a gond? gazsee
(#) Reggie válasza szabo.tivadar hozzászólására (») Márc 16, 2011 / 1
 
Ja latom meg online vagy ugyhogy mondom gyorsan: Ha hosszan vezeted az usb-t akkor CPW elvezetest hasznalj (coplanar waveguide).
(#) terko1 hozzászólása Márc 17, 2011 /
 
Sziasztok!

Szeretnék beüzemelni egy grafikus kijelzőt, de sehol sem találok hozzá normális lib-et. Esetleg tudtok nekem ebben segíteni, hogy hol találok belőle egy működőt?

EADOGL128

EADOGL128 adatlap
(#) Reggie válasza terko1 hozzászólására (») Márc 17, 2011 /
 
Ezt mar nezted?
(#) szabo.tivadar válasza Reggie hozzászólására (») Márc 17, 2011 /
 
Köszönöm a hozzászólásokat, most dolgozom fel őket.
(#) bedoweb hozzászólása Márc 17, 2011 /
 
Sziasztok!

Topi féle AVR isp programozót használok. A cikkben azt olvastam, hogy a programozót lehet használni USB -TTL átalakitónak, vagyis hogy lehet a segítségével az AVR és a PC között kommunikálni sorosan. Viszont a cikkben azt olvastam, hogy ehez USB hid módva kell átváltani, viszont ugy nincs Com port, így nem lehet hyper terminálban beállítani. Mit csinálok rosszul? vagy mit értettem félre?

Előre is köszi annak aki válaszol
(#) gazsee hozzászólása Márc 17, 2011 /
 
Na közbe ráöttem mi a gond, úgyhogy megválaszolom magamnak, hogy mások tanuljanak belőle. A probléma a 74LS126 alkalmazásával volt, ugyanis annak nem elég 10Kohmos ellenállásokon keresztül meghajtani a bemeneteit, (2, 4, 9 es lábak) ahogyan a kapcsolásban van. A 3 db 10K-s ellenállás átkötése után működik!! több mint 3 órám elment vele...
(#) Axel hozzászólása Márc 17, 2011 /
 
Szevasztok!

Egy 24LC01B EEPROM-ot próbálok összehozni I2C-n atmega8-assal. A program az adatbájt küldésénél furcsán viselkedik. Megvizsgálom, a TWSR-ben, hogy az előző adatbájt elküldése megtörtént-e (a mem.cella címe.)
a következő módon:
  1. if(TWSR==TW_MT_DATA_ACK){
  2. TWDR=250; //adat bájt küldése
  3. TWCR=(1<<TWINT)|(1<<TWEN); //TWINT törlése
  4. TWCR=(1<<TWINT)|(1<<TWSTO); //Átvitel vége
  5. _delay_ms(5);
  6. }


Az if fejében bármit adok meg feltétel vizsgálatnak a program akkor is belép oda(DATA_NACK, ARB_LOST, stb...)
Ez miért lehet? Egyszerre csak egy értéket vehet fel a regiszter. Nem jelezhet arbitrációs hibát, adatátviteli hibát, ACK bit hibát egyszerre... Találkoztatok már ilyennel? Mi lehet a baj? Végig követtem az adatlapban található javaslatokat és mégse jó.
(#) huba válasza bedoweb hozzászólására (») Márc 17, 2011 /
 
Legjobb tudomásom szerint sajnos ez még senkinek sem sikerült.
(#) bedoweb hozzászólása Márc 17, 2011 /
 
Mármint a hyper terminálos? vagy hogy egyáltalán ezzel programozóval megcsinálni?
(#) huba válasza bedoweb hozzászólására (») Márc 17, 2011 /
 
Ezzel a programozóval. És ahányszor felvetődött csend volt a válasz.
(#) bedoweb válasza huba hozzászólására (») Márc 17, 2011 /
 
értem azért köszi
(#) Ricsi89 válasza bedoweb hozzászólására (») Márc 17, 2011 /
 
Ezzel a programozóval SEHOGY sem lehet soros kommunikációt folytatni.
(#) bedoweb válasza Ricsi89 hozzászólására (») Márc 17, 2011 /
 
Értem, bár ebből nekem az jött le
Idézet:
„Ezen kívül USB-HID módban lehetőség van kivezetett, az előző oldalon látható lábakon használható RXD és TXD vonalakra, mely az USB-s programozónk által leszimulált soros port. Ez hasznos lehet, olyan esetekben, amikor az eszköznél ezt a lehetőséget használjuk debugolásra, üzenetek kiírására.”
(#) Ricsi89 válasza bedoweb hozzászólására (») Márc 17, 2011 /
 
Leírásban ott van, talán eredetileg valamikor az eredeti verzióban működött is. De itt és most nem működik. Én is próbálgattam már, de semmi eredmény nem volt.
(#) Reggie válasza Axel hozzászólására (») Márc 17, 2011 /
 
Adatlap 170. oldalan a 6-os pontot kifelejtetted, miszerint a te altalad kozolt kod 3. es 4. sore koze be kell szurni ezt:
  1. while (!(TWCR & (1<<TWINT)));
(#) qvasz2 hozzászólása Márc 17, 2011 /
 
Ha elállítottam a reset lábat, azt vissza lehet valahogy hozni? Persze nem ezzel a játék-programozóval, hanem egy igazival.
(#) puli122 válasza qvasz2 hozzászólására (») Márc 17, 2011 /
 
Igen, nagyfesz programozóval pl, de nem ajánlom hogy ahhoz hozzányúlj, macerás visszaállítani.
Csak a teljesen kész programnál lehet érdemes.
(#) qvasz2 válasza puli122 hozzászólására (») Márc 17, 2011 /
 
Késő! Nyilván azért kérdeztem.
A nagyon macerás, az elég relatív: 3 napja szopok ezzel a szeméttel, és semmit nem haladtam.
(#) flathead válasza Axel hozzászólására (») Márc 17, 2011 /
 
Miért nem használsz CodevisionAVR-t? Abban előre megírt függvények vannak az i2c kezeléséhez.
(#) Axel válasza Reggie hozzászólására (») Márc 17, 2011 /
 
Sziasztok!

Reggie-hez:
Köszi! Az általad említett sort használom, igaz közvetlenül az if-ág előtt. Ki fogom próbálni amit mondtál!

Flathead-hez:
Igazad lehet, elgondolkodtam már én is, hogy jó lenne valamilyen komolyabb fejlesztői környezetet használni a "programmers notepad"-nél. A codevision alapvetően fizetős ugye?
(#) Reggie válasza Axel hozzászólására (») Márc 18, 2011 /
 
Az nem eleg, nezd meg a doksit. Az adat kikuldes elott is meg kell varnod mig befejezodott az adas, es a stop bit kikuldese elott is.
(#) flathead válasza Axel hozzászólására (») Márc 18, 2011 /
 
Alapvetően fizetős, de mint mindenből, ebből is létezik tört verzió. Amúgy nem egy eszelősen drága cucc, 45.000 Ft bruttó ha jól emlékszem, én is be fogok rá fektetni. Rengeteg időt lehet vele megtakarítani.
(#) terko1 válasza Reggie hozzászólására (») Márc 18, 2011 /
 
Szia! Megnéztem, de nekem ez sem fut rendesen.
(#) Reggie válasza terko1 hozzászólására (») Márc 18, 2011 /
 
Tapasztalataim szerint nem feltetlen mindig a kod a hibas, de akkor ellenprobanak marad azt, hogy az init-et es egy alap kiirast le kell programoznod.
Következő: »»   316 / 840
Bejelentkezés

Belépés

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