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
Kösz a tippet! Kipróbálom, bár nem tudom mit rontott el a ponyprog. :nemtudom:
Bár nem igazán nem értem, hogyan adjak "külső" órajelet. Elég ha rákapcsolok egy kvarcot, két kondival? Üdv
Egy fogas kérdés a szakemberek felé:
Windows Vista oprendszerrel melyik szoftver kompatibilis? Vagy hogyan lehet elérhetővé tenni az LPT portot?
Bascom.
Leglábbis a leírása szerint (nem próbáltam még Vista hiján). Telepítés után a setupio.exe állományt futtatni kell!
Bascom telepítés után a Bascom könyvtárában.
De erre a telepítés után figyelmeztet is. Illetve kiraktam ide:Bővebben: Link
Hello
Futtattam az állományt, de nem működik az LPT... Megoldásként gyártottam egy RS232-re csatlakozó ISP-t. De ezzel sajnos sikerült megint elrontanom a tiny-ket. Most már a kvarc se segít Van még valami tapasztalatod e téren? Fel szeretném őket éleszteni... Üdv
RS-232 ISP melyik?
Ha a mikrokontroller nélküli, akkor ua, mint a LPTport. Ha halmozott peched van, akkor a RS-232-n kijövő 12V megölre a chipet. Más lehetőség: - reset letiltása Élesztést ebből az állapotból csak STK500-as panellel tudtam visszahozni (ez az atmel demoboardja). Paralell nagyfesz programozóval.
Sziasztok lenne nekem is egy problémám!
Bascomban nem tudom hogyan kell bemenetnek használni a portokat és, hogy kell köttnöm a pozitívra felhúzzam vagy földre? előre is köszi
Láb állítása:
pl.: Config Porta.5=input/output 'adott láb Config Porta=input/output 'teljes port ddra=&B00010000 'in/out állítás a DDR regiszteren át Felhútóellenállás: az adott lábra 1-t írva, mintka kimenet lenne. De ez a felhúzó így csak bemenet esetén értelmezhető. Értéke 20...85k közt van, ahogy a IC sikerül... Terhelhetőség: kimenetben ~15-20 mA. Bemenetként logikai , néhány uA.
Sziasztok!
Van egy ATmega8-am, aminek rövidrezártam véletlenül két lábát, és azóta a program nem fut benne, csak a "bejelentkező képernyőig" jut el, újraprogramozni meg nem tudtam, mert a program már nem ismerte fel! Olvastam olyasmit, hogy valami "biztosíték" van ezekben, és akkor ezzel lehet a gond! Vagy nem létezik ilyen, és dobjam ki az avr-t?
Nem, a biztosítékbiteket a programozón keresztül állítod be.
Melyik két lábat zártad rövidre? Elvileg ettől nem kell hogy lehaljon... Azza volt egy IC-d, beprogramoztad (nem lehet h itt volt vmi rosszul beállítva?), beforrasztottad, és azóta nem él? Biztosítékbit _programozaskor_ a köv lehetőségeid vannak elrontásra: - reset láb kiütése - isp letiltása - rossz órajel megadása Ebből a z utolsó javítható, ha a XTAL 1 v. 2 lábra külső forrásból órajelet adsz (>1MHz-t). a többi csak nagyfesz paralell programozással éleszthető.
Ez eddig ok, de ugy csináltam ,h configoltam az egyik portot kimenetnek ,a másikat bemenetnek egy változó segítségével átadtam abemenetről vett értéket a kimeneti portra és semmi!
Már nem tudom, hogy pontosan melyik lábat zártam rövidre, de amíg ez nem történt meg, addig működött rendesen az áramkör, miután rövidrezártam, utána a program megáll az elején. Nem én írtam a programot, hanem egy kész hex fájlt töltöttem bele.
Config portc= input
Config portb=output dim a as byte do a=pinc portb=a loop vagy roviden Config portc= input Config portb=output dim a as byte do portb=pinc loop A port allapotot valoszinu portC-kent olvastad, az meg azt adja csak vissza, h elozoleg mit _irtal_ ki a portra es nem a port allapotat! Probald ki: config porta.1=input porta.1=1 do waitms 250 Print porta.1 print pina.1 toggle porta.1 loop A.1-es labat rakd GND-re ill tapra es nezzd meg h a print sorok mit irnak ki. szimulatorban is lathatod... Csak akkor a $sim direktivat tedd be.
Egyik labat sztem a RESET labbal (1es) kototted ossze. es amint a lab valtozik, resetbe rakja a chipet....
Jól láttad a problémém a pinc-é vel volt
mostmár műkszik a drága köszke!
Üdvözlet!
A segítségeteket kérném, mivel nem vagyok túl járatos a témában. EZT szeretném megépíteni. Elektronika terén nem vagyok túl otthon ilyen szinten. A linkelt oldalon lévő Vectra B-hez való fedélzeti computert a megalkotója egy kész ATMega128-as AVR-el szerelt áramkörrel oldotta meg, de az nagyon drágán lenne beszerezhető és korábban írták nekem, hogy semmi különlegesség nincs rajta, tehát csak magára az AVR-re van szükség, ami kb. 2000 Három problémám lenne: Az egyik, hogy tudtommal ATMega128 csak SMD tokozással kapható. A legjobb az lenne, ha az IC-t egy olyan nyákra tenném, amin csak maga az IC van és a nyákról nyákról külön csatlakozón menne minden a főpanelra. Tehát csinálnék egy "CPU Board"-ot. Ezzel az a baj, hogy precizen SMD-hez nem tudnék nyákot maratni, valamint nem tudok SMD-t forrasztani, ami nem is az eszközök hiányának, hanem sokkal inkább a kezemnek tudható be. Persze azért nagyobb probléma inkább a nyák precíz lemaratása, nem a forrasztás. A másik problémám az ATMega128 AVR-ek ismeretének hiánya. Pontosabban az, hogy az illető kapcsoláshoz ATMega128 16AI chipet használtak. Gondot jelent, ha mondjuk nem 16AI, hanem mondjuk 16AU IC-t használok? Befolyásolhatja ez a működést? A harmadik problémám inkább a konkrét kapcsolásban van. Pontosabban szólva a linkelt oldalon az alkatrészlistában említ valami FTT panelt ATMega32 IC-vel. Magán az oldalon erről említést sem tesz és nyákterv sincs róla. Nem tudjátok, hogy ez mi is akarna lenni pontosan? Szükséges lehet ez egyáltalán a rendszerhez? Előre is köszönöm a segítséget!
Hello!
Atmega64-et szeretnék USB-n keresztül összekötni PC-vel. Néhány száz KB adatküldés/fogadás kéne. RS-232-t már csináltam, de ott ugye benne van az USART és most kicsit tanácstalan vagyok hogyan lehetne a legegyszerűbben megoldani. köszi
Írtam róla pár szót:
1, Bővebben: Link gyakorlatilag a FT232RL es a FT232BM chip amit tezsteltem. PC oldalon sorosportkent latszik. A ki/bemenete direktben megy a AVRre. TxRx beköt és megy is... COM portot hoz a drivere letre. Buktato nem igazan van vele. En a FT232RL-t jobban szeretem, mert eleg az USB-Csatlakozo melle. Minden az ICben van benne. A 232BM chip melle kell 4-5 ellenallas, kondi. Illetve ha sajat neven jelentkezzen be, akkot 93LC46/56 eeprom is. Hatrany: SMD tokozas.
Köszi, de még nem teljesen világos. Tehát AVR részről RS-232-t kezelek, de az FT232 átalakítja ezt USB protokollra? Nem tudok túl sokat az USB-s eszközökről, de azt hallottam, hogy a driverek miatt nehezebb kezelni, mint a soros portot. Milyen driver kell ehhez?
Én úgy tudom, hogy a gyártó biztosít hozzá drivert, és a számítógép oldaláról sorosportként (COM) jelenik meg, tehát úgy is kezeled mint egy sorosportot.
Az AVR oldaláról pedig valóban sorosportot kezelsz. Idézet: „PC oldalon sorosportkent latszik.” A ugyanezt írta TavIR-AVR Üdv: Zsolt
A PC-s drivert nézd meg a www.ftdichip.com oldalon. A VCP driver kell neked. Ez a PC-n virtuals sorosportot jelent. Azaz lesz egy COM3-ad. Hiperterminal, DOS ablak(!), visualbasic, liberty basic, delphi kezeli (ezekkel probalkoztam)...
A AVR felől ugye van a Tx meg az Rx lab (esetleg CTS/RTS is)+GND. Ezeket ertelemszeruen bekotod az AVRre. Az AVR programban _nem_ kell tudnod, hogy az UARTon mi lóg. Az egész USBdriver-Virtual COM port egy transzpares dolog programozasilag. Ugyanugy kezeld, mintha MAX232-es sorosport lenne... Az USB driveres vezérlés ad pár korlátot: - csak a szabvány sorosporti sebességeket kezeli le (300-600-1200-4800-9600....1Mbps ->lsd FT232 adatlap) - direkt sorosporti lábhozzáférés tiltott (azaz pl. a dtr lábat _önállóan, alacsony szinten nem kezelheted) - a pc RS232 ~5-8% sebességeltérést elfogad még. Az USB illesztős FT232 1%-ot vár el (azaz az AVR lehetőleg 0% hibával fusson a sorosport szempontjából (pl. 7,3728, 14,7456 MHz kvarc kell). Pontosítás: RS-232 az a +/-10Vos jelszintes sorosport. Az AVRben ennek megfelelő TTL jelszintű UART/USART vezérlő van.
Üdv mindenkinek!
Szeretnék megvalósítani 2db ATtiny2313 között adatátvitelt. USART kilőve, mert másra kell. Maradt az USI. Mivel nem gond, hogy 2 vagy 3 láb megy el rá, nekem teljesen jó lenne a 3 wire mód is. Sajnos az adatlap alapján, nem látom át teljesen az átvitel mechanizmusát. Valaki le tudná nekem írni, hogy hogy is van ez? Várom az ötleteket más megvalósításhoz is. Üdv: Zsolt
Bascom?
Nézd meg a Samples/SPI konyvtarat vagy a csatolt allomanyt.
I2C - de csak ha nem kell nagy eroforras (2313 csak SW alapon megy).
SW UART alapon INT-l megtamogatva? SPI-SPI kapcsolat? Nagyobb IC (pl. M48/88/168)?
Köszi az ötleteket!
Nem Bascom, asm... Egyébként sikerült megoldanom, pontosabban kihámoznom az adatlapból. USI-t használok 3wire módban. Üdv
Szaisztok AVR-esek!
Az AvrFreaks oldalon talaláltam az alábbi programot (csatolmány), kérdésem az volna használható-e ez? Kezdő C-s pályafutásomhoz mankónak jó? Már régőta nézegetem az avr-es c-t ,de nem igzán találtam full kezdőnek való leírást, sőt alap olyan lépésről-lépésre magyarázkodó sample programot sem. Jó tudom , most azt mondjátok : adatlap. Nézegetem azt is, de ha valaki tud kicsi apró bevezető programokat, azt szívesen látnám! Köszi! |
Bejelentkezés
Hirdetés |