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   335 / 840
(#) AxaGame hozzászólása Jún 27, 2011 /
 
Sziasztok!

AVR segítségével szeretnék megépíteni egy BLDC motor vezérlőt. Így induláskor lenne pár kérdésem, amit szívesen tisztáznék, mielőtt az amper szaga átitatná műhely friss levegőjét ...

Szóval, ha van olyan, aki nem érzi zaklatásom nagyon terhesnek, kérem írjon!

Köszi!
(#) sikolymester válasza Reggie hozzászólására (») Jún 27, 2011 /
 
Te akkor erősen félreértetted azt amit én írtam, miszerint azt, hogy a belinkelt vaterán árult programozón futó kód az általam belinkelt oldalról származik. A belinkelt oldalon ráadásul nincsen NYÁKterv, csak a forráskód, pusztán a dokumentáció tartalmazza, hogy melyik láb milyen programozó pinként szolgál.

Az oldalon található írás miszerint ez egy saját fejlesztés így már nem állja meg a helyét. Én azt elismerem, hogy a NYÁKterv illetve az elkészítés teljes folyamata a készítőjének a saját érdeme. Lássuk be, hogy egy az oroszlánrésze a munkának a mások által megvalósított program, ami fut a használt mikrokontrolleren.

Én ezért írtam azt, hogy ez erős csúsztatás. A csúsztatás jelentése ugye az, hogy részben igaz, részben hamis. Igaz a fent említett okok miatt és hamis a szintén fent említett okok miatt.

A készítője cáfoljon meg engem, ha tévedek, de ha jól értelmezem, akkor zombee nevű felhasználó az alkotója. Szemügyre vettem a kapcsolását és szembetűnt az, hogy a RESET jelre ő a PORTB4 lábat használja, ami megegyezik a LUFA projekt alapértelmezett beállításával. Többek között emiatt is azt a következtetést vonom le, hogy a linkelt projektet használja fel a saját klónjához. Persze ez lehet puszta véletlen is, de személy szerint nem hiszem.

Természetesen nincsen baj ezzel a dologgal, csak továbbra is megkérdőjelezem a "saját fejlesztés" állítását.

Illetve felmerül a kérdés, hogy miért nincsen feltüntetve a vaterás oldalon az, hogy ez a LUFA projekt gyermeke. Hiszen a LUFA MIT licensz alatt áll, ami ugyan megengedi az ingyenes használatot üzleti célból is, de csak akkor ha feltüntetik, hogy ezt használták hozzá. Természetesen 1500USD -ért feloldható ez a kötelezettség, de nekem valami azt súgja, hogy ez nem történt meg.

Kedves Reggie, azt írod, hogy "Raadasul jonehany kulonbseget tudnek felsorolni. (Sot megkockaztatom, hogy tobbet mint hasonlosagot. )"
Kérlek hát sorold fel ezeket a dolgokat, amiket felfedeztél. Rettentő kíváncsi lennék rájuk, lévén mint mondtam nincsen NYÁKterv a LUFA oldalán, forráskódot meg max a LUFA oldalon találhatsz.
(#) sikolymester válasza AxaGame hozzászólására (») Jún 27, 2011 /
 
Szerintem tedd fel a kérdésed nyugodtan, ne kérdezd meg, hogy kérdezhetsz-e, hanem csapj a lecsóba. Ha ezzel pedig arra gondoltál, hogy privátban szeretnéd intézni, akkor arról lebeszélnélek. Hadd tanuljanak mások is az okfejtésből, ami a témával kapcsolatos lehet.
(#) zombee válasza sikolymester hozzászólására (») Jún 27, 2011 /
 
Hello!

Valószínűleg nekem címezted, ezért válaszolok én is.
A programozóm alapja valóban a LUFA projekt. Amikor bedugod a programozót, ezt ki is írja(LUFA AVRISP mkII), így a terméklapon fölöslegesnek tartom a feltüntetését.

Az oroszlánrész a kapcsolási rajz és panelterv volt, mert épkézláb kapcsolási rajz sehol nem volt. Amiket a neten találtam, azokból levontam pár következtetést.
Többek közt, hogy PB4 a RESET, HWB a bootloader aktiváló, RXD+TXD ellenállásokon keresztül a TPDATA, XCK a TPCLK, a LED-ek melyik lábakra mennek, stb.
Ezeket egy csokorba szedtem, és a legfontosabb szempontok alapján SAJÁT kapcsolási rajzot és paneltervet készítettem hogy a legegyszerűbb legyen, és a kezdő felhasználó is tudjon vele mit kezdeni.
Ehhez még hozzátettem pár sort a felhasználó által kiválasztható 3.3V és 5V programozó-és kimenő feszültséggel is, illetve a TPDATA és TPCLK kimeneteket belegyúrtam("házibarkácsoltam") az ISP-10 nem használt kimeneteire.
A programozót főként ISP-re találtam ki mert jóval gyorsabb mint az USB-illesztővel egybeépített stk500/avrisp(a Doperről ne is beszéljünk mert annál fényévekkel gyorsabb), a TPI/PDI protokoll egyfajta "extra", ami rendelkezésre áll az ISP-n nem használt kimeneteken.

Pár módosítást azért a szoftveren is kellett végeznem hogy kényelmesen használható legyen.
Egyébként ha akarnám, módosíthatnám hogy ne a PB4-re tegye a RESET-et. Ezen felül a buffer IC-t csak akkor tudom használni ha valahol a programozás alatt azt tudja vezérelni, az eredeti LUFA kódban ez nincs meg, mert PDI(ATXMega) esetén ugye nincs RESET. Erre a PB0 kimenetet fogom használni, amit a programban aktiválok. Ezen felül egy 1-4MHz-es órajelgenerátort is tervezek, ami ISP programozás alatt lesz aktív.

És ahogy ígértem, a projekt befejeztével kész paneltervet, kapcsolási rajzot, hex fájlokat(8 és 16MHz-es kristályra külön-külön), építési és élesztési leírást tartalmazó cikket is közre fogok adni, természetesen megjelölve hogy a LUFA projektből indultam ki amit hardver és szoftver terén jelentősen továbbfejlesztettem.

Egyébként már létezik ilyen továbbfejlesztés, a Micropenodus. Ez nekem nem tetszik, mert a buffer IC beszerezhetetlen(más pedig nem jó), kulturálatlan/értelmezhetetlen a kapcsolási rajz, kétoldalas panelra készült(az enyém egyoldalas lesz), a LED-eket sem kezeli, és kicsit bugos is...
(#) AxaGame hozzászólása Jún 27, 2011 /
 
A rutinos róka javaslatára direktbe a kérdést

Téma tehát BLDC motor, uP pedig ATtiny861

Modell motort szeretnék első körben meghajtani, olyat, amelyiknek kb. 2000RPM/V a tényezője és szenzor nélküli.

a.) Milyen PWM frekvenciát javasoltok?
b.) BEMF mérést az Atmel oldalán is megtalálható kapcsolás szerint készítem el. De milyen módszer a legalkalmasabb a felpörgetés elvégzéséhez?

Köszi előre is!
(#) sikolymester válasza yoman917 hozzászólására (») Jún 27, 2011 /
 
Én azt javaslom neked, hogy vedd ki a foglalatból (reméljük abban van ) az attiny 24-t és vezetékeket köss be a 7447 lábaira, illetve a az anód pinek helyére. Persze az anódokhoz valamilyen ésszerű korlátozó ellenállást tegyél, mert különben eldurranak a ledjeid. Így kiderül, hogy csakugyan működik e a NYÁKon minden úgy ahogy kell.

Sajnos a nyákterveden nem látunk minden részletet, pl azt sem, hogy a 7 szegmensesben a ledek hogyan vannak bekötve. De nem javasolt a avr lábait túlságosan kiterhelni, még akkor sem, hogyha elvben mondjuk a maximális áram amit képes kiadni az elégnek tűnhet. Elegánsabb ez esetben szerintem PNP tranzisztorokat használni a közös anódokon. És természetesen minden szegmens ledje előtt egy áramkorlátozó ellenállást.

Készítettem egy gyors skiccet erről.
(#) AxaGame válasza Massawa hozzászólására (») Jún 27, 2011 /
 
Szia!

Este belenézek a kódokba és küldök valamit.
Az PWM frekit nem szoktam bántani, csak a kitöltési tényezőt. De bármi megoldható az elképzelésed szerint.

Üdv!
(#) Istvanpisti válasza yoman917 hozzászólására (») Jún 27, 2011 /
 
Szia !

Közben Sikolymester egy korrekt jó megoldást javasolt a meghajtásra, így biztosan nem fog túlterhelődni a PORTA3,5,6,7. De, ha ezt a megoldást választod, akkor nem lesz jó a kiírató kód, mivel a PNP tranzisztoros meghajtó fázist fordít, vagyis, ha a PORTA3=1, akkor lezárt állapotba kerül a hozzá tartozó tranzisztor és ha 0, akkor fog vezetni.
Ekkor a kiíratásnál arra a bitre kell 0-t írni, amelyiket vezérelni akarod, a többire 1-t kell kiküldeni.
Ezért írtam azt, hogy : "A kapcsolási rajz erősen befolyásolhatja a kód jóságát." Vagy mondhatom azt is, hogy a kódot a kapcsolás sajátosságához kell igazítani. A kapcsolási rajzot meg a használt eszközök paramétereihez.

Üdv.: Istvánpisti
(#) yoman917 hozzászólása Jún 27, 2011 /
 
Istvánpisti: Kiderítettem, hogy végülis kuka az AVR. Írtam egy kis programot, ami csak simán kijelzi a számot, egy 7 szegmensű kijelzőn. Kitettem az egészet próbapanelra, és teljesen abnormális dolgokat csinált. Egyedül a 8-as számra írt ki 8-at a többire pedig más és más karaktereket. Valószínűnek tartom, hogy ez az egész herce hurca csak a hibás AVR miatt volt. Mindenesetre köszönöm a segítséget!
sikolymester: Nagyon ötletes megoldás ez a PNP tranzisztor, amint megjön az új AVR szerintem így fogom bekötni.
Üdv,
yoman
(#) zombee válasza yoman917 hozzászólására (») Jún 27, 2011 /
 
Lehet-e programozni? Miért is kuka?
Általában akkor bolondul meg az AVR, ha a kódot más típusú kontrollerre fordítod(én mega32-nél jártam így ha mega16-ra fordítom), vagy ha kvarckristályos és nincs a táplábainál kondi...
(#) Ricsi89 válasza yoman917 hozzászólására (») Jún 27, 2011 /
 
Próbálj ki egy programot, ami csak a hibásnak vélt lábat használja. Pl csinálj egy led villogtatót amit az adott lábra kötsz. Ha teszi a dolgát, akkor nem a kontroller a rossz.
(#) yoman917 hozzászólása Jún 27, 2011 /
 
Apropó még egy kérdésem lenne. A lábak fuse-olásánál miket kell ki-be kapcsolni? Én a clkdiv/8-at kikapcsoltam, és ennyi, a belső oszcillátort használtam.
(#) Reggie válasza sikolymester hozzászólására (») Jún 27, 2011 /
 
Ha jol latom akkor mar megkaptad a megfelelo valaszt zombeetol...
(#) Massawa válasza AxaGame hozzászólására (») Jún 27, 2011 /
 
Kösz! Már vergödök néhány napja (ujrakezdö vagyok... ). Már valamit megy, csak nem egészen ugy ahogy szeretném.....

Nem irtad milyen a BLDC motorod. Amit a kollégák használnak, az kb. 10 kHz-el forog.
Ök PIC-kel dolgoznak.
Itt a leirás.

00857a.pdf
    
(#) Massawa hozzászólása Jún 27, 2011 /
 
Egy egyszerü kérdés.

Hogyan irjátok a hasonlo sorokban:


TCCR1A |= (1<< COM1A1) | (1<< COM1B1) | (1<< COM1A0) | (1<< COM1B0

a | karaktert (OR - ASCII 124)?

A gépem egyszerüen nem akarja beirni ezt a jelet (a szövegszerkesztöben beirja, de az editorba nem - igy mindig másolnom kell).

Lehet ezt valami mással helyettesiteni?>>>>>>>>
(#) zombee válasza Massawa hozzászólására (») Jún 27, 2011 /
 
Billentyűzet beállítás lesz. Ha "HU", akkor jobb ALT + W.
(#) trudnai válasza Massawa hozzászólására (») Jún 27, 2011 /
 
Idézet:
„a szövegszerkesztöben beirja, de az editorba nem”


Ez kicsit zavaros. Az 'editor' ('text editor') a 'szoveg szerkeszto' angolul... Arra gondolsz, hogy Word-be be tudod irni, de az AVR Studio szerkesztojebe nem?
(#) Massawa válasza trudnai hozzászólására (») Jún 27, 2011 /
 
Igy van, nemcsak a wordbe, de az excelbe, vagy a notepadba is be tudom irni, csak az AVR studioba nem. Közben, ha más nyelvet választok a billentyüzethez, akkor egy másik billentyü beviszi - igy most már részben megoldottam a problémát.
(#) sikolymester válasza Massawa hozzászólására (») Jún 28, 2011 /
 
Ha AVR-GCC fordítót használsz, akkor tudod helyettesíteni preprocessor definíciókkal.

Pl:

  1. #define VAGYEGYENLO |=
  2. #define VAGY |
  3.  
  4. //Pelda a mukodesre
  5. DDRA VAGYEGYENLO (1 << DDA0) VAGY (1 << DDA1);


Érdemes megismerkedni ezekkel a definíciókkal, sok esetben nagyon is hasznosak tudnak lenni. Én azonban a fenti lehetőségről nagyon lebeszélnélek. Inkább próbáld kideríteni, hogy a gépeden mi a hiba ami ezt okozza.
(#) trudnai válasza Massawa hozzászólására (») Jún 28, 2011 /
 
Ez elegge off, de:

Van '|' (Alt 124) es van 'Ś' (Alt 0166) jel. Valoszinuleg neked ez utobbit teszi be az elso helyett -- de ha begepeled az Alt 124-et akkor annak mukodnie kell, jollehet nem kenyelmes igy hasznalni...

UI: Ja es ahogy latom itt a HE-n ezt a karaktert kisse megvaltoztatta a rendszer, megprobaljuk manualisan: & # 166 is mas karakter lesz?
(#) Massawa válasza trudnai hozzászólására (») Jún 28, 2011 /
 
Az a baj, hogy az AVR Studioba egyiket sem, holott a billenytüzeten ki is van irva, hogy melyik ez a billentyü:
Alt-Ctrl-< (itt van a "I", csak éppenséggel nem irja ki).
Ha átkapcsolom EN nyelvre, akkor meg a Shift # helyen van.
A másik vicc meg az, hogy pl. a Wordbe minden szo nélkül beirja az Alt 124-et "I", de ugyanezt nem teszi meg a Studioban.

Nem gond, megoldom.>
(#) zombee válasza Massawa hozzászólására (») Jún 28, 2011 /
 
Két tippet mondanék AVR Studio 4-re, ha egyik sem jó akkor egy újratelepítést javaslok:
- Edit-->Font and color : minden legyen Courier betűtípus és 10pt nagyságú
- Tools-->Show key assignments : nézd meg, nincs-e beállítva az ALT+W
(#) Massawa válasza zombee hozzászólására (») Jún 29, 2011 /
 
Kösz, minden ugy van ahogy irod.
Courier 10pt, és nincs Alt+W kombinácio sem.
Mint már irtam az én billentyüzetemen az "I"-nek a "< " billentyün kellene megjelenni, de pl. még ide sem tudom a nagyobbat ("<-forditottját") beirni, mert itt még az sem jelenik meg.

De mondom, nem gond, lehet vele élni. (Amugy is 6 nyelvü a billenytüzetem, igy már megszoktam a hasonlo bonyodalmakat.)

Čljen a MS.

Lŕtom a nagy é betü sem az erössége a rendszernek..

Amugy az Alt+W nincs a Key assignments listában, de ennek ellenére az MS szerint a felsö kartonfüleken a Windows-t nyitja. ( Ha megnyomom az ALT-ot akkor a felsö sor kartonfülei aktiválodnak - az elsö betük alá vannak huzva)


>>
(#) Ricsi89 válasza Massawa hozzászólására (») Jún 29, 2011 /
 
ALT Gr-el próbáltad már? Mert a két oldali Alt nem ugyanaz.
(#) trudnai válasza Massawa hozzászólására (») Jún 29, 2011 /
 
Idézet:
„Amugy az Alt+W nincs a Key assignments listában, de ennek ellenére az MS szerint a felsö kartonfüleken a Windows-t nyitja. ( Ha megnyomom az ALT-ot akkor a felsö sor kartonfülei aktiválodnak - az elsö betük alá vannak huzva)”


Ne az Alt-ot nyomd, hanem az AltGr-t (jobb oldalon levo Alt-ot). Szoval a forditott per jel az AltGr+W -re kell, hogy bejojjon normalisan Windows alatt, az Alt+W pedig tovabbra is az eredeti funkcioval kell rendelkezzen.
(#) yoman917 hozzászólása Jún 29, 2011 /
 
Sziasztok
Sikerült megoldanom az akkumulátortöltő kijelzését, gyárilag a B3 port nem I/O portként van definiálva, gyors fuse javítás után már kifogástalanul működik
Üdv,
yoman
(#) zombee válasza Massawa hozzászólására (») Jún 29, 2011 /
 
Szerintem ő is a a jobb ALT-ot ("Alt Gr") próbálgatta, ha egyszer a notepad meg word alatt adja a "|"-t.
A bal ALT+W - re nekem is a "Window" menüt adja be AVR Studio-nál, ezért azt javaslom, telepítsd újra mert elromlott
Ja, és a projektjeid elérési útjában ne legyen szóköz és ékezetes betű...

Sajnos nagyon bugos az AVR Studio, sokszor nem ugrik a hiba helyére ha duplán kattintok a hibaüzenetre, de újraindítás után igen.
A mai nap pedig abba ütköztem bele hogy néhány égbekiáltó (és szándékos) szintaktikai hiba ejtésekor is simán lefordult a kódom...
(#) sikolymester válasza yoman917 hozzászólására (») Jún 29, 2011 /
 
Most, hogy nézem csakugyan így van.

Tudod programozni SPI felületen, hogyha a reset lábat letiltod? Vagy ekkor hogyan programozod?
(#) yoman917 válasza sikolymester hozzászólására (») Jún 29, 2011 /
 
usbtinyvel programozok, de mivel letiltottam a reset lábat, így már ez a programozóval nem lehet mit kezdeni, keresek egy stk 500 kapcsolási rajzot, azzal már lehet tovább programozgatni igaz?
Üdv,
yoman
(#) Ricsi89 válasza yoman917 hozzászólására (») Jún 29, 2011 /
 
Szerintem annak annyi. Ha kikapcsoltad a resetet, akkor már csak nagyfeszültségű programozóval tudod helyrehozni. Szerintem neked kellene egy kicsivel nagyobb lábszámú kontroller, mert így ha beégeted, akkor később nem igazán tudsz már módosítani a programon.
Következő: »»   335 / 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