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
Ezt nem egészen értem. RTS CTS hol?
A max-nál csak RX TX van használva. A soros programozó CTS-t használ bemenetnek, DTR-t kimenetnek: Bővebben: Link Mivel rögtön az AVR mellett van az ISP header, (jtag nincs) nem hiszem, hogy letiltották volna. Bár ki tudja... AtMega128-nál a programozás PE0 PE1 lábakon zajlik tudtommal. PE0-t kötöttem a programozó MOSI lábára. (Annyit még hozzátennék, hogy nagyon bezavar minden a programozó SCK és MOSI jeljeibe. pl ha mozgatom az egeret. De valószínű ezzel tud mit kezdeni) A hozzászólás módosítva: Feb 19, 2013
Sziasztok! ATmega8ps-pu ból sikerült kizátnom magam, hogy lehetne könnyen vissza állítani? Köszi!
Kizárás defníciója?
- disable reset? - disable ISP? - hibás órajelállítás?
A 644P az nem Arduino, hanem a Wiringnek a chipje. Az Arduino csak összevissza hekkelve - esetleg - fordít valamit...
wiring.org.co oldalon a fordító. Hátha segítettem.... Robert
Ezt a .hex -et töltöttem bele (ez labortáphoz valő), de lehet nem is kellene a fuse biteket állítani? Vagy ennél az atmega8pa-pu nál az avr studioba mikre kellene állítani a frekiket, hogy tuti ne legyen baj. Hogyan lehet megoldani, hogy ne járjak így legközelebb. köszi!
A hozzászólás módosítva: Feb 19, 2013
A HEX NEM tartalmazza a fusebiteket. Én a leírásból/kapcsolási rajzból szoktam kitalálni...
Ha van Kvarc: External quartz. BOD: 4.3V (5V táp esetén), különben 2.7V. Általában ennyi elég.
Itt a kapcsolási rajz: http://linuxfocus.berlios.de/English/June2005/article379.shtml
Igazad volt. Elvágtam mindkét adatvonalat a MAX felé, és tökéletesen működik mindenik programozóval. (legalábbis az olvasás. írni vagy törölni még nem próbáltam. Minden lock bit be van égetve, a cím alsó bájtját olvassa vissza minden memória címen. Ez normális az adatlap szerint. Esetleg ha meg tudnál erősíteni ebben)
A hozzászólás módosítva: Feb 20, 2013
Hát, sajnos megfelelő mennyiségben szívtam már ilyen dolgokkal breadboardon.
Sajnos egyáltalán nem mindegy, hogy mit kötsz a MISO/MOSI/SCK-ra. Ha lehet, akkor szabadonhagyom őket, de nyomógombnak is ideális. Nagyon sok eszközt nem lehet rákötni azokra a tűkre, mert programozhatatlanná válik tőle az AVR. A hozzászólás módosítva: Feb 20, 2013
Ha a MAX és az AVR közé ellenállásokat kötsz(legfeljebb 6.8-10kOhm),
akkor is programozható marad, és a MAX is tud vele kommunikálni. Ez főképp a programozótól(kimenő ellenállás) és a MAX-tól(bemenő ellenállás) függ. Ha nem adja, akkor jumper használata célszerű. Ilyenkor elég csak az Rx-ként használt lábat jumperolni, mert ezt a vonalat hajtja a MAX is. A TX-et az AVR hajtja, ezért azt nem kell. A hozzászólás módosítva: Feb 20, 2013
Programozótól, és a rákötött cucc ellenállásától függ. DIP-kapcsolót és LED-et nem menő rákötni.
Profi távirányító-forgalmazó partnerünk mégis megtette, így programozásnál a 6-7-8 kapcsolókra mindig oda kell figyelni. Ez van, ATMega8-nál kevés a láb, programozásra fenntartani luxus... A hozzászólás módosítva: Feb 20, 2013
Köszi. Próbáltuk, ez .pde file-t kér, az meg nincs az állományban. Igaz ezt sem értem, mert némelyik mert a régebbi verzióban meg van. Hogyan lehet ilyet létrehozni?
A hozzászólás módosítva: Feb 20, 2013
A nagy ATmegák esetén szerintem már az is elég, ha a 8 kapcsoló megfelelő átállítása után az IC programozhatóvá válik.
Én bootloaderrel UART-on fogom programozni az IC-t az esetek 99%-ában. A maradék 1% akkor kell, ha a hiba a bootloaderben van, vagy a biztosítékokat akarom megváltoztatni.
Próbáltam már, sajnos nem jó. A WIRING programmal is, hibával fordul. (tegnap egy régebbit sikerült lefordítani, ma meg már az sem megy)
Valaki próbálja már meg legyen oly szives, mert már arra gyanakszom hogy a valami program kompatibilitási sza...ág van a gépemmel, mivel tegnap refordult ma meg már nem. Ezt kellene, ATmega644p-hez: Bővebben: Link Köszi A hozzászólás módosítva: Feb 21, 2013
Sziasztok!
Megint akad egy kis problémám. Ha bekapcsolom a Raspberry PI-met a rendszer betöltését követően PHP-n keresztül kiakarok a mikrokontrollere küldeni egy üzenetet akkor a mikrokontroller nem fogadja azt, hanem automatikusan újraindul. Ha viszont elindítom az Arduino IDE programot és egyszer megnyitom a Soros monitort azt követően jól működik a PHP-n keresztül való kommunikálás. Mi lehet a hibája? Valaki találkozott már hasonló problémával? Köszi előre is. A hozzászólás módosítva: Feb 22, 2013
Nekem az jut eszembe hogy alapból a bootloader indul el,
és az Arduino IDE-vel lényegében "kilépteted" belőle.
Kérlek segítsetek lefordítani .hex-be az alábbi oldalon levő legújabb verziójú file-t. köszi!
http://tuxgraphics.org/common/src2/article10051/
Meguntam a hibaüzenetet és próbaképpen kicseréltem a vezérlőt egy másik Mega16-ra és láss csodát megszűnt a hibajelzésem.
Szóval az AVR volt a bűnös. De miért? Nem világos számomra. Kiborg
Sziasztok,
segítséget szeretnék kérni, a pwm jelemet szeretnék 20KHz-re állítani de nem sikerül. atmega 168-at használok, 8MHz-es órajellel
Szia !
Fast PWM esetén : "The PWM frequency for the output can be calculated by the following equation: fOCnxPWM=fclk_I/O/(N ⋅ (1 + TOP))" A Te esetedben az fclk_I/O=8MHz, az N=8, a TOP=640 (ICR1), ezekből nem feltétlenül jön ki a 20kHz. Másrészt viszont : "The ICR1 Register can only be written when using a Waveform Generation mode that utilizes the ICR1 Register for defining the counter’s TOP value. In these cases the Waveform Generation mode (WGM13:0) bits must be set before the TOP value can be written to the ICR1 Register." Tehát először a WGM biteket állítsd be és utána az ICR1 regisztert.
Értem, köszönöm szépen
Üdv!
ISmerkedek az AVR-el, azon belül egy ATmega8-al. Ez a cikk alapján indultam el, és a polling módszeren alapuló soros portos mintaprogramot szeretném kipróbálni(5. Oldal: Mintaprogram 1.). A kódot lefordítottam avr-gcc-vel, csináltam belőle intel hexet, avrdude-al felírtam az MCU-ba egy STK200 párhuzamos programozón keresztül. A fuse bitek beállítás utáni visszaolvasott értéke: Alsó: 0xe1 Felső: 0xd9 Egy próbapenelen van egy max232 pár kondival, egész pontosan így. Az ATmega8 pedig kopaszon egymagában ül a panelen. A reset lábán van +5V egy ellenálláson keresztül és a 2-es lábán kapcsolódik a MAX232 RX lába a harmadik lábon pedig a szintillesztő Tx lába van. A terminál programban beállítottam a megfelelő sebességet, paritást, stop biteket, adat biteket és "átvitel vezérlést"(flow control). Bármit írok a terminálra az sajnos nem jön vissza. Egyszerűség a dologban, hogy én nem USB-n keresztül próbálkozok, hanem natív RS-232 porton. A panelt természetesen számtalanszor átnéztem, de nem találtam hibát, de átnézem újra és újra. Szerintetek hol lehet a gond? Mit hagyhattam le? Hogyan tovább? Köszönöm!
A flow control ugye "kikapcsolva"? Az AVR-es alkalmazások több mint 99%-ánál így megy.
Ekkor csak az Rx és Tx játszik. Legelső mozzanat az lenne hogy kikötöd az AVR-t, majd a MAX232-ből kijövő két szálat(TnIN és RnOUT) simán összekötöd, és így terminálozol.
A flow control kikapcsolva. A szintillesztő rendben van. Szépen visszakapom így amit elküldök. Akkor csak az ATmega8 körül van valami hiba. Lehet valami órajel gond lesz? Egy fontos dolog az előbbi leírásomból kimaradt: a 7,3728MHz kristály természetesen a helyén van.
A hozzászólás módosítva: Feb 25, 2013
Újra végigsípoltam az összes GND-t multiméterrel, minde rendben van. Annyi, hogy az ATmega8 8-as lába van csak GND-n, a 22-es külön nincs. De multiméterrel kisipoltam és rendben van az is, tehát belül össze van huzalozva.
Szia !
Idézet: „egy ellenálláson keresztül és a 2-es lábán kapcsolódik a MAX232 RX lába a harmadik lábon pedig a szintillesztő Tx lába van.” Én úgy értelmezem ebből, meg a rajzból, hogy az ATMEGA8-as 2. lábára kötötted a MAX232 11-es lábát az RXD-t. Ha jól értem, akkor szerintem nem jó. Az ATMEGA8 2. lába az RX - a controller szempontjából. Ide a MAX 232-nek a TX lábának kellene csatlakoznia, ami a 12-es. A MEGA8 3. lábára, ami aTX, ide kell a MAX232 RX lábát kötni, ami az RX. Ha így van, akkor nem szóltam. |
Bejelentkezés
Hirdetés |