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   664 / 840
(#) Gj hozzászólása Máj 6, 2015 /
 
Üdv!
Tapasztalat alapján ajánlanátok UART-USB átalakítót, aminek a driverét könnyű, laikus felhasználók számára is egyszerű telepíteni (nem rólam van szó, sok embernek kéne) és támogat win 8.1-et, illetve valószínűleg nem állnak le a fejlesztéssel a további oprendszereknél sem?
Eddig FT232RL-t próbáltam, de mire felszenvedtem win 8.1-emre a drivert... hát nem is tudom mi lenne ide a jó hasonlat, de aztán találtam egy sparkfun-os tutorialt.
Szóval miket ajánlotok erre a célra?
A hozzászólás módosítva: Máj 6, 2015
(#) zombee válasza Gj hozzászólására (») Máj 6, 2015 / 1
 
(#) killbill válasza Gj hozzászólására (») Máj 6, 2015 /
 
Az FT232 vagy 10 eves IC. Rohely, hogy a vindoz mind a mai napig nem tamogatja alapbol... Szanalmas. Es ezert sokan meg fizetnek is.
(#) Seton válasza Gj hozzászólására (») Máj 7, 2015 /
 
Megkerüli a kérdést a válaszom, de érdemes lehet megfontolni Bluetooth modul beépítését, és azon keresztül kommunikálni a uC-val annak előnyeivel és hátrányaival. A PC oldalon virtuális soros portként driver nélkül felismeri (legalábbis az általam random rendelt olcsó ebay-es BT modullal ennyi volt a dolgom).
(#) kameleon2 válasza killbill hozzászólására (») Máj 7, 2015 / 2
 
Támogatja. Az XP és a Linux. A kínaiak mind az XP-t használják, mert a W7, W8 W10 egyik rosszabb mint a másik. Én is a mai napig XP-t használok és minden megy alatta. Az FT232RL is - plusz driver nélkül (SP3). Ez nem a chip hibája, hanem a marketingeseké, akik egy alfa test állapotú rendszert mernek operációs rendszerként eladni. A W7 mire kezdett használhatóbbá válni, már meg is szűnt a támogatása. Az a röhej inkább, hogy egy 2003-as oprendszer jobb mint a 2015-ösök.
(#) killbill válasza kameleon2 hozzászólására (») Máj 7, 2015 /
 
Idézet:
„Ez nem a chip hibája, hanem a marketingeseké, akik egy alfa test állapotú rendszert mernek operációs rendszerként eladni.”
Nem is az FTDI chip-ekre mondtam, hogy szanalmas, hanem a bill géc sz@rjára. Meg az még a szánalmas, hogy a röhejt ly-nal írtam...
Idézet:
„Az a röhej inkább, hogy egy 2003-as oprendszer jobb mint a 2015-ösök.”
Szerintem az 1995-os linux is kulonb a vindoznal.
A hozzászólás módosítva: Máj 7, 2015
(#) csabeszq válasza killbill hozzászólására (») Máj 8, 2015 /
 
Hát, én is nagy Linux párti vagyok, éppen ezért inkább hallgatok. A szomszéd operációs rendszere mindig zöldebb. Sajnos a Linux is képes pánikolni, kiakadni, elszállni,...

Gondolkodtam az új notebook-omnál, hogy vegyek-e Windows-t is, de az árat látva én is pánikba estem. Az eladó elmesélte, hogy ne keseredjek el, mert jó az a Windows 8, megmutatta a szép lila kockás hátteret, na ez volt a következő pánikroham ami ebben az életben ért.

Igazából nem is ismerem, hogy milyen az a Windows 8, mert a bekapcsolási képnél elakadtam. A Windows 7-et Linuxosként is elfogadom. Elegáns kinézet, stabil, kiszámítható működés. Talán az egyetlen Windows, amit komolyan értékelek.
(#) AxaGame válasza Gj hozzászólására (») Máj 8, 2015 /
 
Én Aten párti vagyok. Már elég rég van a piacon és még üzemel.
Vettem egy újat és Win7, Win8.1 alatt is megfelelően működik.
Bár szerintem az utóbbi 2 évben gyártott cuccok már jók, de azért az áru átvételekor ellenőrizd a gyári számot. Ha jól emlékszem, akkor a 8-9 karakterekből meg tudod állapítani, hogy Win8 kompatibilis-e. (De olvass rá az Aten oldalán.)
Üdv!
(#) balulau hozzászólása Máj 10, 2015 /
 
Sziasztok
Uj mezore vetnem magam es nemi utbaigazitas kellene toletek.
Nem tudom pontosan melyik topicba irjam ezert maradtam ennel.
Tehat lenyegeben egy sajat IP webcamera lenne a project.
Elso korben telefonra ingyenesen letoltheto alkalmazassal szeretnem a camera kepet megjeleniteni. Kerdem tehat toletek hogy ti mit javasolnatok legegyszerubb megoldaskent? Camera kep SD-re mentese mar oke, akar video is , de a lenyeg a camera adat wifi-n keresztuli kuldese lenne, viszont arra meg nem sok infot talaltam.

A masik dolog ami szobajohetne hogy 1-1 olcso USB-s Webcamerat hasznalnek erre, es a procival USB-n keresztul olvasnam ki az adatot es tovabbitanam "valahogy" a wifin keresztul.

Remelem tudtok segiteni hol es hogyan keressek pontos infot , esetleg mar kesz project leirast errol.
Udv!!
(#) zombee válasza balulau hozzászólására (») Máj 11, 2015 /
 
Csak nem kukkoldát akarsz?

A viccet félretéve, egy USB webkamerához USB hoszt kell. Már egy kliens sem olyan hú de egyszerű(lásd: AVR-Doper, LUFA projekt), a hoszt leprogrampzása egy "olcsó" kamerához szerintem kész rémálom. Még win alól sem mindig mennek az "olcsó" cuccok, driver ide vagy oda. Erre a részre én valami CCD-t ajánlanék, akár mobiltelóból kibányászva.

A WiFi része egy másik dolog. Ha komolyan kukkolni akarsz hehe akkor kell egy minimális titkosítás is, minimum WPA ami szintén nem egyszerű. Én amondó vagyok, vegyél egy kamerát...
(#) Zsolt2 válasza balulau hozzászólására (») Máj 11, 2015 /
 
A legegyszerubben ugy lehet megvalositani, hogy ha egy egyszeru kamera modult hasznalsz, aminek meg lehet kapni neten a protokolljat is (ahogy ezt zombee forumtars is emlitette). A WiFi reszrol pedig egy egyszeru wifi modult lehet hasznalni (pl. RN171 vagy SPW01SA). A kerdes az, hogy milyen kepfrissitesi aranyt szeretnel elerni? Par kepet masodpercenkent eleg "egyszeruen" meg lehet oldani, viszont ennel nagyobbhoz mar komolyabb processzor kell. Halozatik kapcsolathoz en mindenkeppen UDP-t ajanlom, TCP nem alkalmas a nagy sebessegu valos ideju adatatvitelhez.
Konkret megvalositasban lattam mar Electric imp nevu WiFi modullal hasonlo kamerat, viszont nekem nem szimpatikus a modul, mivel minden adatforgalom atmegy a gyarto halozatan
(#) csabeszq válasza zombee hozzászólására (») Máj 11, 2015 /
 
A WIFI része a legegyszerűbb, erről lentebb. Szerintem eleve egy WIFI-s raspberry pi lenne a legalkalmasabb a dologra, nem AVR-ek. Egy pi az elég drága (15.000 dobozzal, táppal, kutyával, macskával), kell hozzá egy USB-s WIFI adapter is, az 1000 Ft körül van, no meg SD kártya. Bár ha az SD kártya eleve benn van a Pi-ben, akkor a WIFI-t akár el is felejtheted.

Az AVR-WIFI csatlakozás az egyébként pofon egyszerű.

Megveszel az Ebay-en egy ESP8266 modult 1000 Ft-ért. Ez az elérhető legolcsóbb UART - WIFI-ethernet átalakító. Rendeltem is, megérkezett és lám működött, de a beizzításhoz kellett egy nap nekem.

Az ESP8266-nál több dologra azért érdemes odafigyelni:
- 3.3V-os, ami az 5V-os Arduino-knál probléma, szintet kell illeszteni
- kell neki kakaó. Nálam 2 óra elment azzal, hogy az Arduino 3.3V-os tápjáról Fatal Exception-öket dobált. Ezután fogtam egy 2A-es stepdown-t, rácsavartam 3.3V-ra, onnan vette a tápot és csodák csodájára elindult. Ha nem tud 300mA körüli áramot felvenni, kiakadhat.
- össze-vissza bitrátával szállítják, nálam 115200 baudról ment

Ami a legmeglepőbb, hogy az ESP8266 komplett WIFI action point-ként is képes működni, szóval a tajgán is csinálhatsz vele WIFI hálózatot. Ezzel a kis modullal simán készíthetsz WEB felületet a mikrovezérlőidnek.
(#) Tomi_Bp hozzászólása Máj 12, 2015 /
 
Sziasztok!
Van egy igen nagy problémám. Van két Topi féle programozóm, melyek közül az egyik chip nélkül a polcon állt, de most szerettem volna biztonsági okok miatt égetni bele egy ATmega88-ast, hogy ne maradjak programozó nélkül. Hát sikerült. (Épp beteg vagyok, emiatt figyelmetlen voltam és mivel) Az ATmega88 vagy hibás volt, vagy valami miatt, mindegy is. Az eredeti ATmega8-as chipem helyére bele tettem, hogy kizárjam a panel hibáját. Az új azzal sem ment, viszont a régit fordítva tettem bele vissza és azóta az sem éget.
A gép és az AVR Studió is felismeri, de ha device id-t szeretnék olvasni, sem reset-eli a cél áramkört. Ha nyomom azon a reset-et, akkor sem, tehát nem ezzel van a hiba.
Valakinek valami ötlete, tanácsa???
(Nekem az sem lenne rossz, ha valaki írna nekem privátba és meg tudnánk egyezni egy a Topi féle cikkben lévő hex file-lal programozott és fuse-ozott ATmega8 / ATmega88 uC postázásába nekem, természetesen előre utalással.)
(#) csabeszq válasza Tomi_Bp hozzászólására (») Máj 13, 2015 /
 
Az Atmega8-at nem tudod, Atmega88-cal helyettesíteni a programkód változtatása nélkül. Maximálisan inkompatibilis a két chip. Persze ha mindkét típushoz van hex fájl, úgy mehet.

Ha van kéznél egy Arduino-d (Ebay 700Ft), azzal is helyre tudod pakolni a programozót.
(#) pont válasza csabeszq hozzászólására (») Máj 13, 2015 /
 
Szia! Ezzel az ESP8266 meg lehetne oldani a problémámat Bővebben: Link ? Egyszerűen csak fizikailag két külön helyre szeretnék relé kapcsoltatási parancsot küldeni, egy központi AVR-ből vezeték nélkül.
(#) csabeszq válasza pont hozzászólására (») Máj 13, 2015 / 1
 
Igen, én meg tudnám csinálni, csak dolgozni is kell hozzá. Nem tudom, hogy mennyire ismered a TCP/IP hálózatot. Szerintem sokkal egyszerűbb rádióadó-vevővel megcsinálni, nem is kerül többe.

Bővebben: Link

A kérdés, hogy akarsz-e később a cuccaidhoz web-es felületet kapni. Ezzel az ESP8266-tal tudsz IP csomagokat küldeni (kliens mód), fogadni (szerver mód), sőt PC-vel is kapcsolatot tudsz teremteni. Elvileg WIFI-n keresztül fel is programozhatod őket.

A kérdés, hogy a te esetedben nem lövöldözöl-e ágyúval verébre és egy 400 Ft-os RF transmitter/receiver (itt), nem oldja-e meg egyszerűbben a problémádat?
(#) Tomi_Bp válasza csabeszq hozzászólására (») Máj 13, 2015 /
 
Köszönöm a választ! Itt a cikk firmware oldala, természetesen tisztában vagyok vele, hogy két külön típus, de mindkettőhöz van fordított kód. Számomra a legegyszerűbb és leg megnyugtatóbb megoldás az lett volna, ha a HEStore árulná még ezt a fajta programozót és/vagy a bele való előre programozott AVR-t.
A fordított berakással valószínűleg megöltem a régi, működő ATmega8-asomat, az ATmega88 meg már írás utáni ellenőrzés során is hibát mutatott.
Van Arduino-m pár darab, de sosem használtam csak mint hardware. Mindig saját programot égettem bele.
Sajnos, mivel mind TQFP-s tokozású, többségében ArduinoNANO, így chip-et sem tudok nyerni a programozómba belőlük.
Ha van valakinek valami ötlete, szívesen várom, mert én lassan tényleg egy előre programozott AVR postázása mellett lennék, ha valaki megszán...
Előre is köszi!
(#) csabeszq válasza Tomi_Bp hozzászólására (») Máj 13, 2015 /
 
Akkor Arduino-val kell felprogramoznod a chip-eket. Egyszer az életben meg kell tanulni, nálam egy nap is beletellett, mire sikerült az első IC-t felprogramozni.

1. Összekötöd az AVR és az Arduino megadott lábait, nálad kvarc kristály lehet, hogy kelleni fog.

Bővebben: Link

2. Az Arduino keretrendszerben van egy "ArduinoISP" nevű mintaprogram. Feltöltöd az Arduino-ra.

3. Letöltesz egy AVR8 burn-o-mat nevű programot, ami az avrdude grafikus megfelelője
Bővebben: Link

Beállítod a soros portot neki, ahonnan az Arduino megy, beállítod, hogy stk500v1-es programozót használjon, megadod, hogy 19200 bauddal menjen (-b 19200).

Utána megnézed, hogy képes vagy-e felprogramozni a chip-et. Ha nem sikerül, akkor valamit elrontottál. Ne problémázz, nem szokott elsőre menni. Majd a 20.-nál már nagyobb rutinod lesz.
A hozzászólás módosítva: Máj 13, 2015
(#) csabeszq válasza Tomi_Bp hozzászólására (») Máj 13, 2015 /
 
Ahogy látom, a Topi féle programozóban kvarc kristály is van, szóval nem elég az Atmega88-ra feltölteni a programot, meg kell neki adni, hogy külső kvarc-ot használjon órajelnek.

Ha átállítod és mégsincs külső kvarc, a chip le fog merevedni, programozhatatlanná válik kristály nélkül.

Ezért írtam, hogy amikor Arduinoval programozol, ne felejtsd el a kvarc kristályt és a két 22 pF-es kondenzátort bekötni a breadboardra. Nélküle az IC süket lesz, mint a nagyágyú.
A hozzászólás módosítva: Máj 13, 2015
(#) Tomi_Bp válasza csabeszq hozzászólására (») Máj 13, 2015 /
 
Igen, közben gondoltam arra, hogy a kristály hiánya miatt nem tudta vissza ellenőrizni a programot, de rá jöttem, hogy a fuse biteket külön programoztam a 88-asba.
Találtam egy DIP Arduinot is itthon. Annak a 328-as chip-je jó volna esetleg... Már csak ahhoz kell mázli, hogy találjak egy "szűz" Arduinot itthon, hogy tudjak varázsolni velük. Remélem sikerül! Köszi az eddigi ötleteket, segítséget!
(#) Gj hozzászólása Máj 13, 2015 /
 
Üdv!
Létezik olyan PWM IC, ami alapból úgy van felprogramozva, hogy valamilyen interface-en keresztül megadok neki egy kitöltési tényezőt, és ő egy bizonyos frekvencián PWM jelet ad ki, az általam megadott kitöltési tényezővel? Milyen néven keressem őket, ha van ilyen?
(#) csabeszq válasza Gj hozzászólására (») Máj 13, 2015 /
 
Semmiből nem áll egy 8 lábú Attiny25-öt felprogramozni, hogy olyan PWM-et adjon ki, amit I2C/SPI/ADC/UART/...-on fogadott.

Konkrétan mit szeretnél?
(#) Gj válasza csabeszq hozzászólására (») Máj 13, 2015 /
 
Gondoltam rá, de sok kéne belőlük és ezért akarok valami olcsóbb megoldást nézni.
(#) csabeszq válasza Gj hozzászólására (») Máj 13, 2015 /
 
Az ATmega2560-nak van 15 hardver PWM lába. Ebay-en az Arduino 2560 panelt 2500-ért adják, egy problémája van, az hogy kissé méretes. Ha nem okoz problémát az SMD, akkor 1500-ért már kapsz processzort. Ez olyan 100Ft-150Ft / darab áron jön ki.

Én 32 PWM csatornát kezelek 2 Atmega16-ossal szoftveresen. A terepasztalon azzal irányítom a vonatokat. Ha DC motort akarsz meghajtani, a szoftver PWM bőven elég.

Ha precízen akarsz 15 kHz-et kiadni, oda már sajnos kell hardver.
A hozzászólás módosítva: Máj 13, 2015
(#) Gj válasza csabeszq hozzászólására (») Máj 13, 2015 /
 
PC ventilátorokat vezérelek 8 csatornán, de ATMega8 8MHz-s oszcillátorral nem volt elég gyors, így a ventik sípoltak, ezért keresek jobb megoldást.
A hozzászólás módosítva: Máj 13, 2015
(#) Gj válasza csabeszq hozzászólására (») Máj 13, 2015 /
 
Az Atmel oldalán az ATTiny25-nek 6 PWM csatornát írnak, de az adatlapon csak OC0A és OC0B van, azaz kettő (mindkettő a Timer0-al).
Akkor hány független hardveres PWM jelet tud kiadni? 2-t, vagy 6-ot?
(#) Gj hozzászólása Máj 13, 2015 /
 
Üdv!
Itt eg rövid ASM példakód egy ATTiny25A adatlapjáról: (Ebben a 120. oldal.)
  1. init:
  2. ldi    r16,(1<<USIWM0)|(1<<USICS1)
  3. out    USICR,r16
  4. ...
  5. SlaveSPITransfer:
  6. out    USIDR,r16
  7. ldi    r16,(1<<USIOIF)
  8. out    USISR,r16
  9. SlaveSPITransfer_loop:
  10. in     r16, USISR
  11. sbrs   r16, USIOIF
  12. rjmp   SlaveSPITransfer_loop
  13. in     r16,USIDR
  14. ret


Sajnos nem értek az assembly-hez.
Valaki lenne szíves átírni C-be, vagy elmondani, hogy mit csinál a kód pontosan?
A hozzászólás módosítva: Máj 13, 2015
(#) 06smici válasza Gj hozzászólására (») Máj 14, 2015 / 1
 
Az adatlap 268. oldalán ott vannak az asm utasítások is, melyik mit csinál. De nagyjából ez lenne c-ben:
  1. void init() {
  2. USICR = (1<<USIWM0)|(1<<USICS1);
  3. }
  4. //itt nem tudom mit ír ki r16-ból USIDR-be először. legyen ez a függvény bemenő paramétere
  5. void SlaveSPITransfer(uint8_t valami)
  6. {
  7. USIDR = valami;
  8. USISR = (1<<USIOIF);
  9. }
  10. uint8_t SlaveSPITransfer()
  11. {
  12. while(!(USISR & (1 << USIOIF)));
  13. return USIDR;
  14. }

Hogy melyik regiszter, meg bit mit csinál pontosan azt most meg nem mondom. De kb ennyi lenne, ha nem csalnak az asm-es emlékeim.
(#) zombee válasza Gj hozzászólására (») Máj 14, 2015 /
 
Az adatlap alapján elvileg 6 van, de ebből van két komplementer pár, és közös lábak is vannak.
De ha valóban 6 lenne az nem lenne jó neked mert kommunikálni is kell valahogy...

Én ATMega48-at használnék, abban van 6 valódi, független hardveres PWM, csak egy nagyon kicsit kell trükközni ahhoz hogy ugyanúgy tudd kezelni őket: az 1-es időzítő 16 bites, ezért az ICR1 regisztert be kell állítani 255-re és megtenni az időzítő plafonértékének (TCCR1A/B-ben).
A három időzítőnek talán mondanom se kell hogy egyforma előosztót kell megadni, utána a 6 komparátor regiszter írásával beállíthatók az értékek. Ha van egy ATMega8 (mint vezérlő IC), annak van 4 hardveres PWM csatornája, kell egy minimális kommunikáció(pl. USART) és máris van 10 csatornád...
(#) Tomi_Bp válasza csabeszq hozzászólására (») Máj 14, 2015 /
 
Nem szeretnék további hibákba ütközni, tehát inkább kérek "lektorálást".
(A programozómat is úgy "vesztettem el", hogy fordítva tettem bele az AVR-t, ezzel megölve)
Nekem ezek a FUSE beállítások kellenének: FUSE BEÁLLÍTÁSOK a topi féle AVR ISP-hez

És a mellékelt képen vannak a jelenlegiek (elvileg alapértelmezett Arduino beállítások, de mivel kinai Arduino-ról van szó... ki tudja?!? )

Tehát miket jelöljek és miket ne?!? Eddig csak az AVR Studio 4.16 -ost használtam, sem AVR Dude -ot, sem egyéb mást.

Előre is köszi a segítséget!
Következő: »»   664 / 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