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
Nagyon nem. Interruptban nem vársz semmit, nem is tudod, hogy fog-e küldeni valaha a mester neked valamit.
Az SPI egyszerre ír és olvas. Nincs olyan, hogy most csak írsz, vagy most csak olvasol. Olyan van, hogy írsz és olvasol egyszerre. A probléma ezzel az, hogy a slave-nek előre tudni kellene, hogy a master mit akar kérdezni és a választ még azelőtt berakni, hogy megjönne a kérés. A gyári IC-k java része 16 biten üzenget a slave-nek. Az első 8 bit a kérés (a kimenet nem meghatározott), a következő 8 bit a válasz (a bemenet nem meghatározott). A másik probléma SPI-vel, hogy azonnali válaszküldést igényel. A mester adja az órajelet, te meg válaszolsz. Értelemszerűen nem fogsz tudni ADC-t mérni 10us alatt, míg a master simán nyomhat ilyen sebességgel. Neked kell kívülről rárakni a várakozást. A harmadik probléma, hogy hol vagyunk éppen most. Mert félig elküldted a kérést, RESET, újraküldöd, teljesen felborul minden. Erre való az SS (save select) láb. Mellesleg az AVR hardvere semmit sem csinál, ha a láb magas. I2C alatt mindez simán megy, van író és olvasó rész, a várakozást a hardver lekezeli. A probléma, hogy rövid távolságra való és nehéz erősíteni / optóval leválasztani a jelet, meg lassabb is, 4MHz-cel nem fogod nyomni. A hozzászólás módosítva: Jan 14, 2014
Szisztok! STK500 al programozható az Attiny85? Egy darab kimenet kénne. A motoros sárkányrepülőm villanócsöves fényét kéne kiváltani, mert zavarja a reprádiót. A progi egyszerű 3 gyors villanás utána szünet, és így tovább. Egy Fetet hajtana meg, meg a mögötte lévő LEDeket. Alkalmas rá ez a kis 8 lábú Attiny?
A hozzászólás módosítva: Jan 14, 2014
Az Attiny85-öt ismerem, a 6-os szkábhüvelyes programozóval programozható (ISP-n), de STK500-am nincs.
Kicsit ágyúval verébre lövöldözés, mert az 500Ft-os attiny25 is képes LED-eket villogtatni, de megoldható. Szúnyogriasztót csináltam attiny25-tel. 8k sok rá, amikor kompletten 512 byte alatt fogsz maradni. Ennél az IC-nél már a nyákra tüskesort sem rakok, amivel programozható. Breadboardon programozom fel, utána berakom a foglalatba. A hozzászólás módosítva: Jan 15, 2014
Így már érthetőbb. Attiny25-ön nem fogsz Arduinozni, ahhoz Attiny85 kell.
Küldtem egy fájlt, a makefile-ban a CC-t, OBJDUMP, OBJ2HEX-et írd át. Az Arduino könyvtárában van avr-gcc, ott megtalálsz mindent. Azzal fordíthatod le. Windows alatt mondjuk C:\Arduino\hardware\tools\avr\bin\avr-gcc.exe Fordítani a C:\Arduino\hardware\tools\avr\utils\bin\make.exe-vel tudsz. Hát igen, Windows alatt talán egy kicsit szokatlan a make meg miegymás, de azért megy. Linux alatt egyszerűbb, mert minden kézreáll. Az én fordítóm 160 byte-os hexet csinált. Ha Arduino alatt csinálod ugyanezt a 2k kevés lesz. A hozzászólás módosítva: Jan 16, 2014
Erról a kapcsolásról szeretnék érdeklődni, mégpedig, ha az adó részére rs232c PC port txd-jét kapcsolom akkor mekkora ellenállás kell a tranzisztor bázisára 1k helyett?
Másik dolog, hogy az adónak és a vevőnek milyen anterna szükséges? Gondoltam arra hogy valami lecsupaszított huzal, de nemtudom milyen hosszú kell legyen. Bővebben: Link
Sziasztok!
Avr chip felprogramozásában kérnék segítséget, az éjszakát már végig kínlódtam de nem jutottam eredményre. Van több db attiny2313-as chip amiben bele kellene írnom a tartalmat (main.hex). Korábban egy STK200-as párhuzamos portos programozót használtam atmega8-as chipek felprogramozására linux alatt, az akkor ment is, de ezzel az attiny2313-al nem boldogulok. Kaptam most egy ebay-en vásárolt USBASP programozót, ilyen mint a linken, win7-re sikerült feltelepíteni, gond nélkül települt ezen az oldalon található driver-rel Avrdude-al próbálnám használni az alábbi módon:
A bekötést ezen rajz alapján végeztem. Az attiny2313 adatlapja szerint a VCC-t a 20-as a GND a 10-es lábra kötöttem, az SCK lábat a 19-esre, A MISO lábat a 18-ra és a MOSI lábat a 17-esre, a RST-t pedig az 1-es lábára kötöttem az attiny2313-nak egy dugdosós próbapanelt használva. A parancs lefuttatása után ezt a hibaüzenetet kapom: avrdude: error: programm enable: target doesn't answer. 1 avrdude: initialization failed, rc=-1 Double check connections and try again, or use -F to override this check. avrdude done. Thank you. Kipróbáltam egy másik de linuxos gépen ott is ugyan ez a hibaüzenet, ott ezt a parancsot használtam:
Végső elkeseredésben előszedtem az STK200-at, és a lábkiosztásának ellenőrzése után (jó e hozzá az avrpasp-hez kapott szalagkábel) azzal is kipróbáltam az alábbi módon:
A hibaüzenet a következő volt: avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.00s avrdude: Device signature = 0x1e910a avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed To disable this feature, specify the -D option. avrdude: erasing chip avrdude: reading input file "/home/bari/main.hex" avrdude: input file /home/bari/main.hex auto detected as Intel Hex avrdude: writing flash (698 bytes): Writing | ################################################## | 100% 0.30s avrdude: 698 bytes of flash written avrdude: verifying flash memory against /home/bari/main.hex: avrdude: load data flash data from input file /home/bari/main.hex: avrdude: input file /home/bari/main.hex auto detected as Intel Hex avrdude: input file /home/bari/main.hex contains 698 bytes avrdude: reading on-chip flash data: Reading | ################################################## | 100% 0.20s avrdude: verifying ... avrdude: verification error, first mismatch at byte 0x0000 0x12 != 0x00 avrdude: verification error; content mismatch Sajnos a w7-es gépen már nincs párhuzamos port, így ott csak az usb-s usbasp-vel tudtam kipróbálni. A bekötéseket többször is megnéztem, már teljesen tanácstalan vagyok, kérlek segítsetek mi lehet a gond. Ezzel az usb-s subasp programozóval ez lenne az első programozásom, így az is lehetséges, hogy valami baja van, de majd napközben megkérdezem akitől kaptam, hogy volt e már használva. Már azt is próbáltam, hogy az attiny tápfeszültségét nem az usbasp adta hanem egy tápegységről kapott stabilizált 5V-ot a gnd-k közösítésével. Előre is köszönöm a segítséget. Üdv:Bari
Volt már korábban használva a kontroller? Nem zártad ki belőle magad Fuse bitek állításával?
100nF keramiakondi ott van a vcc/gnd közt?
A programozási sebességet vedd vissza. Az usbasp egy kalap sz@r. Emulált (erőforrásigényes) USB es így nem marad időszelet a programozás lábainak állítgatására.
a PC rs232-je invertált jelet ad a avr tx/rxhez képest. Azaz pont ellentétesen megy.
Dróthossza: a rf hullámhossz 1/4-e
Szia
A kontrollerek elvileg mind újak, tudtommal még egyik sem volt használva.
Szia
A kondit sajnos elfelejtettem, éjjel sajnos nem forog már úgy az agyam mint kellene ![]() A programozási sebességet hogy tudom visszább venni? Ez az avr-es programozósdi nekem még nagyon új, eddig amit kaptam az stk200-al sikerült felprogramozni, de ennyiben ki is merült az avr-es tapasztalatom. Ezt az Usbasp-t kaptam a melóhoz, sajnos egy stk200-on kívül másom nincs amivel tudnék kísérletezni. Köszönöm az eddigi segítséget, amint este sikerült kipróbálni a kondival jelentkezem a fejleményekről. Remélem a kondi hiánya lesz a ludas, a próbapanel és a kb 20cm-es szalagkábel az usb és az stk programozós próbálkozásokkor azonos volt. Üdv:Bari
Az AVRDUDE paraméterezésnél megadható.
köszönöm az infót
![]()
És a hullámhoszt úgy kapjuk meg hogy λ=1/frekvencia --- itt a frekvencia mhz ben?
Ha a Dróthossza: a rf hullámhossz 1/4-e akkor amit megkapok az méterben van? Hogy a számítógép is éppségben maradjon átalakítottam az adó áramkörét, valaki lellenőrzi? Amúgy a suliban még csak ez után fogunk tanulni az LC stb áramkörökről.
Ha SI mértékrendszerben számolsz, igen.
Ha a soros sebességed max 2400 bps, csak akkor jó ez (esetleg 9600 bps (szűken)). De mintha a opto dioda forditva lenne. És a RS232 nem tud 10mA-t manapság kiadni, jó ha 1 mA kijön ![]() És abemenet sem lehet 0/5V-os... Ott +/- 3...15V kell. Azaz egy MAX232 chip! Ha még nem is játszottál RF-l, akkor ne is kezdj bele. Miért nem használsz _kész_ megoldást? HopeRF adó/vevő darabja ~800 Ft. Ebből 2 kell és _minden készen_ van... Vagy a telcontrolli, vagy NRF rendszrek. Ezek max 1-2 eFt/oldal és készen vannak.... A hozzászólás módosítva: Jan 17, 2014
Az 1/frekvencia az a periódusidő es nem a hullamhossz! A hullamhosszt ebbol az idobol es a fenysebessegbol tudod kiszamolni egy egyszeru szorzassal. s=v*t. Jelen esetben 'v' az a 'c', ami a fenysebesseg. Ez kb. 300.000 km/s. Tehat a hullamhossz = 1/f * c, vagy atrendezve c/f.
Lehet, hogy en ekezet nelkul irok, de en tudok ekezettel is. Viszont a mhz az mi? A mHz az millihertz. Amire te gondolsz, az a MHz. De mar megint nem AVR-rol beszelgetunk, hanem kezdo elektronikai es fizikai kerdesekrol
Sziasztok!
Elég összetett problémám akadt, így nem is tudom biztosan ez-e a legmegfelelőbb topic. Az elmúlt hetekben kezdtem el foglalkozni az AVR és PIC világával. Meg is építettem a tárcsás telefonomhoz EZT a kis konvertert. Mindenféle dokumentáció és az AVR-be égetendő program ITT található. A videón hallható, hogy a tárcsázás során a jól megszokott DTMF jelet lehet hallani. Az én esetemben sajnos nem ez a helyzet. A kijövő jel elég zajos és se a telefonközpont se a DTMF decoder program nem képes értelmezni. Az AVR felprogramozása során akadtak problémáim, de végül is sikerült őket megoldani és a programot az AVR-be égetni, de a hang amit kiad még csak köszönőviszonyban sincsen a nyomógombok hangjaival. Vajon én rontottam el valamit, vagy eleve ilyen lenne a program? Az AVR-t WinAVR programmal égettem. Az oldalon található csomagban van egy main.c és egy main.h fájl. A main.c a program, de mire szükséges a main.h? Valaki tudna nekem segíteni a probléma megoldásában? A hozzászólás módosítva: Jan 18, 2014
Orajel be van allitva FUSE bitekbol rendesen? Forditonak meg volt adva a helyes orajel ertek?
Lehet, hogy a kvarccal van a gond, mert észrevettem, hogy a fólia fel volt szakadva, viszont ha átkötöttem a szakadást se változott semmi. De hogy lehet az, hogy kvarc nélkül is fut a program?
A helyzet az, hogy én nem állítottam semmit, csak amit EBBEN a cikkben láttam.
Akkor valoszinuleg midkettovel gond lesz, en sajnos magara a WinAvr-t nem hasznaltam, csak AvrStudiot vagy linux alatt irtam, igy nem tudom hogy kell beirni a fuse biteket.
A kvarc frekveciaja egy F_CPU valtozo kell legyen a Makefile-ban, ezt 4000000-ra kell allitani. A hozzászólás módosítva: Jan 18, 2014
Megnéztem a videót, abban egy Attiny45, ide elvileg felesleges a kvarc, de ha már beraktad, akkor nem gáz.
Ezzel indul a program. Ha van 4MHz kvarcod és a fuse biteket beállítottad, akkor ennyivel fog menni. Ha nem állítottad be a fuse biteket és belső oszcillátorról fut, akkor 8MHz-en futsz. Szóval egy próbát megér, hogy CLRPR = 1-et írsz, amivel 4MHz-re rakod a belső oszcillátort, a kvarc meg dísznek jó lesz. A fuse biteket elsőre nem javaslom átállítani. A hozzászólás módosítva: Jan 18, 2014
Szervusztok!
Régi kedves számítógépemet, Commodore 64-et szeretném bővíteni egy SD2IEC kártyaolvasóval. Kis kutakodás után a neten találtam egy egészen egyszerű megoldást nem SMD alkatrészekkel. Bővebben: wpqrek.blogspot.hu A kapcsolás szíve egy ATMega644p kontroller, ebbe szeretnék egy előre megírt firmware-t (bootloader-t) feltölteni. A hex file megtalálható a következő linken. C64- Wiki SD2IEC Valamint az oldalon megtalálható a program és a beprogramozó parancs is. (AVRDUDE és avrdude -p m644 -U flash:w:sd2iec_bootloader.hex:i -U hfuse:w:0xDA:m -U efuse:w:0xFD:m -U lfuse:w:0xE7:m) Tehát, hogy elkészüljön egy AVR programozó készüléket kell építenem (vagy vásárolnom) - a vásárlást az egyszeri használat miatt inkább hanyagolnám. Találtam is egy párhuzamos AVR programozó-t – kivitelezése szerintem egyszerű, anyagára olcsó. AVR Parallel Programozó kapcsolása és leírása itt. A programozó az AVRPP program segítségével tudja programozni a kontrollert – a program paraméterezés természetesen eltér az Avrdude programtól, így jelen tudásommal sajnos kínai nekem. Mivel a kontroller nem olcsó és én teljesen amatőr vagyok a témában, nem szeretném az első írás alkalmával „kinyírni”, így szeretnék segítséget kérni a Guruktól. ![]() Szerintetek a fent említett programozó áramkör és az AVRPP program segítségével fel tudnám-e programozni a kontrolleremet esetleg van valakinek tapasztalata? (Készítsd magad változat!) A másik, valaki tudna-e segíteni és volna kedves számomra a kontrollerembe beírni a bootloader-t? Ezzel nagyot lendítene az SD2IEC projektemen - természetesen nem ingyen kívánom ![]() Az SD2IEC adapter saját célra szeretném használni, kereskedni nem kívánok vele! Segítségeteket előre is köszönöm. ![]()
Köszönöm a segítséget.
Sikerült a problémát megoldani. A Makefile módosítása nem vezetett eredményre, de amikor a programban átírtam, hogy CLKPR=1, akkor már rendesen működött. Még kész nyákja nincsen, így a kvarcot is ki tudom belőle spórolni.
Sziasztok! Tapasztalt AVR-esként (kb 5 éve nyomom) egy igazi misztériába futottam bele, amiről ötletem sincs, pedig már az avr freaks-et meg az egész netet is végigbújtam. Adott két saját fejlesztőpanel (egyik ajándékba lenne), közös mindkettőben, hogy ugyanolyan DIP-40es ATmegára épülnek (16 és 644). A 16-os 16MHz, a 644 20 MHz-es kristályról megy. PORTC 0/1 - I2C, 2-7 LCD kijelző 6 lábbal (E földre kötve, működő saját tesztelt LCD driverkóddal). Sajnos egyiken sem akar működni a port egyáltalán, egyik lába sem. A JTAG ki van kapcsolva, ezt bizonyítottam is, mivel van egy 3. ATmega32-es panelem, ami 8 MHz kristályról megy, ha oda áthelyezem a 16-ost vagy a 644-est, ott PORTC JTAG portjára 4 led van kötve, és minden jól működik, tudom be/kikapcsolni mindent. Fuse biteket kiolvasva szintén jó beállítást kapok. Viszont a saját panelokban valami nem jó. Annyi a különbség, hogy másfajta 10 uH-s (vagy annak eladott) induktivitás jelenti a kapcsolatot a táp és AVCC között. Valakinek valami ötlet? Rossz az induktivitás? Túl sok a 16 illetve 20 MHz-es kvarc? Már kezdek hülyét kapni
![]()
Otletem nincs, de ha az induktivitasra gyanakszol, akkor kosd at egy darab drottal probakeppen. Ha az a baja, akkor ettol a PORT problema meg kell szunjon.
Sziasztok! Tud valaki egy pár sort írni AVRduinómra? 20-25 KHz et kéne a FET kimeneten. Fénycsövet beszeretnék indítani. Köszi.
A Vcc/VccA és a GND/GNDA is be van kötve?
Ha a chip belső 1MHz RCről jár, akkor mit csinál? |
Bejelentkezés
Hirdetés |