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   770 / 840
(#) akosnagy válasza RoliNyh hozzászólására (») Ápr 10, 2017 /
 
Jó. Köszönöm!
(#) akosnagy válasza akosnagy hozzászólására (») Ápr 11, 2017 /
 
Mindenkinek még egyszer köszönöm a segítséget!
Vettem új IRL540N-t. Próbapanelen raktam csak össze, hogy a forrasztási hibát elkerüljem. Kiválóan működik a dolog! Szépen felpörög a motor, aztán visszalassul, ahogy azt kell neki.
(#) fifadani hozzászólása Ápr 12, 2017 /
 
Sziasztok!

Van lehetőségem vásárolni egy atmel fejlesztőeszközt.
Dragont vagy ATATMEL-ICE-BASIC-et érdemes venni?

AVR Studio 4-ig Dragon, ICE pedig igényli a 6-os feletti studiot.

Valakinek van tapasztalata ebben?

Köszönöm szépen!
A hozzászólás módosítva: Ápr 12, 2017
(#) csatti2 válasza fifadani hozzászólására (») Ápr 12, 2017 /
 
Az ICE újabb termék (nekem nem volt dragonom, a korábbi MkII-esemhez képest sokkal stabilabb a debugolási funckiója).

Dragon:
+ Támogatja a HV programozást
- Nem mindegyik xmega-val kompatibilis

ICE:
+ Folyamatosan frissítik (támogatást kap az újabb eszközökhöz)
+ Lehet vele Atmel ARM-okat is programozni
+ TPI támogatás (tinyAVR-eknél fordul elő)
(#) Massawa válasza fifadani hozzászólására (») Ápr 12, 2017 /
 
Én a Studio 4-nél meg a Dragonnál maradtam. A mai napig gondtalanul müködik minden.
(#) fifadani hozzászólása Ápr 12, 2017 /
 
A Dragon-on gondolkodom én is. JTAG sebességben mennyit tud a "Sárkány"?
(#) viper3D válasza csatti2 hozzászólására (») Ápr 12, 2017 /
 
Köszönöm a választ!
(#) Massawa válasza fifadani hozzászólására (») Ápr 12, 2017 /
 
Nem tudom, de eddig mindig ment.
(#) Béla 66 hozzászólása Ápr 13, 2017 /
 
Sziasztok!
Egy megerősítést kérnék, hogy ez így jó-e?
Ekőzmény

Más:
Szeretnék még egy ATmega328p-20PU-t is felprogramozni, a feljebb linkelt módon (LPT porton).
Ez lehetséges?
Ennek már kell eeprom szerintem, csak azt nem tudom, hogy azt honnan lehet letölteni?
Köszönöm előre is a segítséget.
A hozzászólás módosítva: Ápr 13, 2017
(#) csabeszq válasza Béla 66 hozzászólására (») Ápr 13, 2017 / 1
 
> LPT porton

Miért nem a Commodore 64 user portjával szeretnél programozni? Végülis működne, mert nagypapa is így csinálta volna.

Vegyél egy USB-s ISP programozót 460 Ft-ért a kínaiaktól.

http://www.ebay.com/itm/USBASP-USBISP-AVR-Programmer-Adapter-10-Pin...BYEsBd

Szerintem sok segítséget ne várj, mert a fórumozók fiatalabbik része az LPT jelentésével sincs tisztában.
A hozzászólás módosítva: Ápr 13, 2017
(#) csabeszq válasza Béla 66 hozzászólására (») Ápr 13, 2017 /
 
Ami az EEPROM-ot illeti, az AVR projektek 99.99999%-ában tetszőleges fájlt megadhatsz, mert nem használják úgysem semmire.

A legértelmesebb, ha fel sem töltesz semmit.

Értsd: ha kizárólag a flash-t töltöd fel, akkor is működnie kellene...
A hozzászólás módosítva: Ápr 13, 2017
(#) Béla 66 válasza csabeszq hozzászólására (») Ápr 13, 2017 /
 
Szia!
Mivel csak ezt a kettő AVR-t kellene programoznom, azért próbált így megoldani!
A 460 Ft nem összeg! PIC-hez van cuccom.
Csak mivel az angol tudásom nulla, így nem tudok semmit vásárolni occóért!
Hülyeséget meg nem akarok produkálni!
Mivel TavIR-AVR már segített valamilyen szinten, ezért bátorkodtam további segítséget kérni.
AVR-hez semmi közöm, de az AVR cikkek közt szó eset róla, "talán ez tanítja meg az alapvető dolgokra az AVR-t" de lehet, hogy rosszul értelmeztem valamit, ezért elnézést kérek.
A hozzászólás módosítva: Ápr 13, 2017
(#) csabeszq válasza Béla 66 hozzászólására (») Ápr 13, 2017 /
 
Ha tudsz kapcsolódni LPT-vel és működik, akkor nincs baj, használd azt. De hogy egy Linux, Windows,... mit szól ahhoz, ha te a printerport kimeneteit kézzel akarod állítgatni, hát nem tudom. Ezt nem kifejezetten szokták értékelni az operációs rendszerek, device drivert írni meg nem biztos, hogy szeretnél.

Magyarul, ha az LPT-t eddig nem próbáltad, akkor azonnal felejtsd el. Ha próbáltad és megy, akkor lehet örülni.

Tavirtól 1850 Ft-ért megveheted az USBASP-t:

http://shop.tavir.hu/product_info.php/programozo-muszer-tavir-usbas...-p-613
A hozzászólás módosítva: Ápr 13, 2017
(#) Béla 66 válasza csabeszq hozzászólására (») Ápr 13, 2017 /
 
A PIC-es programozóm is LPT-s. Idáig semmi problémám nem volt vele!

A korábban linkelt képek, az AVR-s LPT-s portról készültek. Felismerte az AVR-t, írni nem mertem a biztosíték bitek miatt.

Tavirral próbáltam már felvenni a kapcsolatot innen, de a legutóbbi nézetem szerint 6 hónapja nem volt itt. Most megnéztem, és 4 napot ír, de az üzenetemre nem válaszolt még idáig.
Megpróbálom az általad belinkelt oldalt!

Köszönöm a segítséged.
A hozzászólás módosítva: Ápr 13, 2017
(#) TavIR-AVR válasza Béla 66 hozzászólására (») Ápr 17, 2017 /
 
Kérdést rossz helyre írtad, semmi sem jött.
Amúgy a mail a legegyszerűbb/telefon/oldalon kapcsolat mező....

LPTnél össze fog veszni a PIC és az AVR devicedriver (kivéve ha verzó alapos is azonos).
WinXP volt az utolsó ahol (nagyjából) ment. Win7 felett felejtős.
Illetve natív DOS vagy Win98

De őskövület - nem javasolt... És a 328P nem is a LPT-s időszakban támogatott (akkor még nem igazán létezett (vagy csak éppen).


LPT-nél melyik SW-t, oprendszert használtad/használod?
Hogy van a kapcsolásod kiépítve (táp, kvarc)?
(#) vladcepes hozzászólása Ápr 19, 2017 /
 
Sziasztok! Segítséget szeretnék kérni.
Kb 4-5 éve csináltam PIC programozót az azóta is működik tökéletesen. Most viszont egy kapcsolási rajzot amit néztem abba ATMEGA 8 van. Gondoltam belevágok ha kapok rá megfelelő válaszokat. Felprogramozónak jó ez? USB AVR
Ha igen és meglesz,akkor számítógépre milyen programot kéne tölteni ami ezzel kommunikál?
Na és melyik lábakon kéne felprogramozni?,vagy ennél hogy működik. A PIC-esnél tudom ott már csináltam egy jó párat. Ilyen leírásokat hogy melyik lábon kell,meg ennél a csatolónál hova megy,hol tudnék erről bővebb infót? Vagy ha tudtok itt segíteni,infót adni azt megköszönném!!!
(#) akosnagy válasza vladcepes hozzászólására (») Ápr 19, 2017 /
 
Én ezt használom ATMEGA 328-hoz. A második képen látod a lábkiosztást. Atmel Studio 7-tel írom a kódot. Remélem segített.
(#) vladcepes válasza akosnagy hozzászólására (») Ápr 19, 2017 /
 
Köszönöm! Ez egy kicsit drága nekem,de ha az jó amit én linkeltem akkor megveszem. Látom a jumper 3V- 5V (amit akarok rendelni azon is van), gondolom attól függ milyen kontrollert használ az ember? Közbe találtam videót is a felprogramozásról. Bővebben: Link Ellenállást mekkorát kell használni? Aztán láttam olyan videót is ahol kondenzátort is használnak,meg külső 5V ot. Gondolom itt ennél nem kell.

Köszönöm!!!
(#) akosnagy válasza vladcepes hozzászólására (») Ápr 19, 2017 /
 
Kondit a VCC lábra szoktak/szoktam tenni védelem céljából. Ellenállást még nem láttam rajta. A külső 5V a programozáshoz nem kell, megkapja a programozóról a feszt. Használni viszont a külső tápról lehet, ezért én se szoktam lehúzogatni. Fent van folyamatosan a tesztekhez.

Azért várd meg a tőlem tapasztaltabbak hozzászólásait is
(#) akosnagy hozzászólása Ápr 19, 2017 /
 
Sziasztok!
Kis ATMEGA328P programozás. Ez a jelenlegi teszt kód:
  1. /*
  2.  * quadcopter_drone.c
  3.  *
  4.  * Created: 2017. 04. 06. 19:01:46
  5.  * Author : akosnagy
  6.  */
  7. #define F_CPU 1000000
  8.  
  9. #define MOTOR1 OCR1A
  10. #define MOTOR2 OCR0A
  11. #define MOTOR3 OCR1B
  12. #define MOTOR4 OCR0B
  13.  
  14. #define maxRPM 500
  15. #define minRPM 250
  16.  
  17. #include <avr/io.h>
  18. #include <util/delay.h>
  19.  
  20. #define map(x ,in_min, in_max, out_in, out_max) (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min)
  21.  
  22. void motorInit(void)
  23. {
  24.         DDRD |= (1 << PORTD6) | (1 << PORTD5);
  25.         DDRB |= (1 << PORTB1)| (1 << PORTB2);
  26.  
  27.         MOTOR1 = MOTOR2 = MOTOR3 = MOTOR4 = 0;
  28.  
  29. //MOTOR2 - MOTOR4
  30.         TCCR0A |= (1 << COM0A1) | (1 << COM1B1);
  31.         TCCR0A |= (1 << WGM00) | (1 << WGM01) | (1 << WGM02);
  32.         TCCR0B |= (1 << CS01);
  33.  
  34. //MOTOR1 - MOTOR3
  35.         TCCR1A |= (1 << COM0A1) | (1 << COM1B1);
  36.         TCCR1A |= (1 << WGM11) | (1 << WGM12);
  37.         TCCR1B |= (1 << CS11);
  38. }
  39.  
  40. int main(void)
  41. {
  42.         motorInit();
  43.     while (1)
  44.     {
  45. /*
  46.                 for(int i=minRPM;i<maxRPM;i++)
  47.                 {
  48.                         MOTOR1 = MOTOR2 = MOTOR3 = MOTOR4 = i;
  49.                         _delay_ms(1000);
  50.                 }
  51.                 for(int i=maxRPM;i>minRPM;i--)
  52.                 {
  53.                         MOTOR1 = MOTOR2 = MOTOR3 = MOTOR4 = i;
  54.                         _delay_ms(1000);
  55.                 }
  56. */             
  57.     }
  58.  
  59. }


A kérdés. Neten turkáltam kicsit és PWM max 4 byte-os értéknek tűnik, vagyis 0-65535 közt állítható. Ez igaz? Jól tudom?
Köszönöm!
A hozzászólás módosítva: Ápr 19, 2017
(#) wbt válasza akosnagy hozzászólására (») Ápr 19, 2017 /
 
Nem értek hozzá, de a Timer0 az 8-bites a Timer1 meg max. 16 (lehet 8 is persze), de a 4 byte az 4 milliárd. A 2 byte a 0-65535. (vagy valamit félreértek)
(#) csabeszq válasza vladcepes hozzászólására (») Ápr 19, 2017 /
 
Nem kicsit drága, nagyon. Mondjuk tipikus, hogy itthon 5000 Ft-ot kérnek azért, ami Kínában 500 Ft.

Az ebay-es elképzelhető, hogy működni fog. Ne gondolj valami eszméletlen bonyolult dologra, van 4 láb: RESET, MISO, MOSI, SCK, azon kellene digitális jeleket kiadni (SPI protokoll). Egy mezei Arduino megcsinálja ArduinoISP-vel.

Az ebay-es linked mondjuk nem a programozók csúcsa, mert az Atmega8 hardverből nem támogatja az USB-t, szoftveres emuláció az egész (V-USB-s szar). Magyarul a 12 mbps-es USB jeleket szoftverből dekódolja (vagy nem).

A hestore-osról érdemben nem tudok nyilatkozni, mert nem látni az IC típusát.
(#) akosnagy válasza wbt hozzászólására (») Ápr 19, 2017 /
 
OK. Én néztem be. FFFF csak 2 byte. Jogos.
(#) vladcepes válasza csabeszq hozzászólására (») Ápr 19, 2017 /
 
Köszi! A videó amit én linkeltem azon pl: ellenállást használ. (kondit nem) ezért nem értettem hogy most kondit vagy ellenállást kell használni? Hát ezt nem vágom: "az Atmega8 hardverből nem támogatja az USB-t"
A hozzászólás módosítva: Ápr 19, 2017
(#) kapu48 válasza vladcepes hozzászólására (») Ápr 19, 2017 /
 
Ezekben van beépített USB ilesztő:
pl.:ATMEGA8U

Keresél rá ilyen programozóra!
(#) vladcepes válasza kapu48 hozzászólására (») Ápr 19, 2017 /
 
Köszi! Ha jol látom a fickó a videón ugyan olyat használ amit (megrendeltem),leszedem majd annak az illesztőjét hátha jó.
(#) csabeszq válasza vladcepes hozzászólására (») Ápr 20, 2017 /
 
Az USB protokoll elég bonyolult. Lehet 1.5 mbps, 12 mbps, 480 mbps, az USB 3.0 meg 5 gbps-ig tolható.

Vannak chipek, amik hardverből dekódolják, vagy enkódolják az USB-t (NRZI kódolás). Megadsz egy puffert, azok meg áttolják a túloldalra. Nálam egy 32 bites chip 12 megabiten tolta az adatokat.

Az általad linkelt USBASP-ben ahogy a neten olvastam Atmega8L van. Ez a chip semmi támogatást nem ad USB-re.

Megnézed, hogy a D+, D- vonal alacsony, vagy magas, szoftveresen detektálja a szinkron jelet, szoftveresen dekódol/enkódol NRZI-t, folyamatosan az USB-s forgalmat kémleli. Emellett CRC-t számol, nyugtát küld, meg miegymás. Orrvérzésig számol. Az USB meg 1ms-enként csomagot is küld, hogy ne unatkozzál a dekódolóddal.

Az USB kémlelő szoftvert már megírták, V-USB a neve. Végsebessége 1.5 mbps, az is elviszi a processzoridő tekintélyes részét. Szabadidős tevékenységként emellett AVR-t programoz. Számol, számol, számol, ha marad egy kis ideje akkor tolja fel a kódod.

Lassúnak lassú lesz, nem tudom, hogy mennyire stabil. Még nem vitt rá a lélek, hogy USB-s bitbang-gel szórakozzak. AVR alatt van ez, PIC/ARM alatt a nép USB-t támogató chipeket szokott vásárolni. Külső szemlélőként nézve a V-USB értelmezhetetlen. Rendes USB-s chipet kellene beletenni baromkodás helyett...
A hozzászólás módosítva: Ápr 20, 2017
(#) akosnagy hozzászólása Ápr 20, 2017 /
 
Sziasztok!
Ugyan még küzdök a PWM kóddal, de van némi előrelépés. A segítség viszont jól jönne.
Az eredeti kérdés

A problémám jelenleg az, hogy a TIMER0-ról működő MOTOR2 és MOTOR4 jónak tűnik. Megemeli a drónt. A MOTOR1 és MOTOR3 a TIMER1-en viszont csak akkor, ha kb kétszeres értéket kap a PWM mint a MOTOR1,3 esetében.
Ki lehet valahogy számolni a frekvenciát a 8 és a 16 bites timerre? Vagy csak oszciloszkóppal menne a dolog? Valahogy össze kell hangolnom a 4 motor fordulatát. Legvégső esetben, de csak ha végképp nincs megoldás, átkötöm a TIMER1-et a TIMER2-re, az 8 bites így tuti a szinkron.
Köszönöm!
(#) vladcepes válasza csabeszq hozzászólására (») Ápr 20, 2017 /
 
Na ez jó kis leírás! de az is lehet hogy ha 50-szer fogom átolvasni akkor is csak halvány lila sejtésem lesz az egészről.

"Az általad linkelt USBASP-ben ahogy a neten olvastam Atmega8L van. Ez a chip semmi támogatást nem ad USB-re"
Akkor egy buta kérdés: minek gyártják?
Na mindegy,megrendeltem 500 pénz majd max jó lesz valamire, azért előtte kipróbálom.
(#) rolandgw válasza vladcepes hozzászólására (») Ápr 20, 2017 /
 
Bevittek az erdőbe, pedig egyszerű volt a kérdésed.
Nem lesz vele gond (remélhetőleg). Nagy áruházak is forgalmazzák csak drágábban, de ugyanúgy sima Mega8-al. Hátránya, hogy szoftveres az usb kapcsolat a Mega részéről.
Bővebben: Link
Következő: »»   770 / 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