PWM és kezelése, felhasználása

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Válasz küldése
Avatar
DOGMAN
Chipgyilok
Hozzászólások: 293
Csatlakozott: 2006. augusztus 27. vasárnap, 6:00

Hozzászólás Szerző: DOGMAN »

Amúgy meg tök nagy dolog nekem ez, a nulláról pár neten talált rajz, és a ti segítségetekkel sikerült megtervezni, megépíteni ezt az egészet és jól működik... legalábbis remélem nem kell drasztikusan átépíteni majd a hardvert. Most már úgy gondolom a szoftveren múlik mennyire lesz optimális a működése.
Tegnap több mint 1 órát hajtottam teszteltem, semmi melegedés, de mire ebből még kész cucc lesz, amit csak bekacsolok azt mehet pff.. :D

Úgyhogy köszi az eddigi segítségeteket is!!

Szerk: én marha most nézem Bascom könyvet, az ADC mintavételi sebességét is tudom állítani. Nem emlékszem min van most, de ezt is megnézem...
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

ADC mintavételt feljebb veszed, és a 10 bites helyett 8 bitet értékelsz csak ki...
Alapesetben ~200kHz a működési frekvenciája. A mintavétel ~13...25 órajellel jutsz el a 10 bites felbontásig.
Kísérletek voltak, h a 200kHz helyett 5-600 kHz-n járassák az ADC-t, így 8 bites stabil felbontást kaptak...
Avatar
DOGMAN
Chipgyilok
Hozzászólások: 293
Csatlakozott: 2006. augusztus 27. vasárnap, 6:00

Hozzászólás Szerző: DOGMAN »

A legkisebbre állított ADC-vel is egy bizonyos sebesség felett (full pwm kitöltéssel) mindig továbbmegy...
Ezért azt csináltam hogy figyelem a célpont, és a pillanatnyi pozíció különbségét (abszolút értékben) és ennek arányában ahogy közeledik a célhoz, csökkentem a PWM kitöltést.
Menüből megadható a minimum érték amin még elég jól elindul, ha csak kicsit kell lépnie akkor normál sebességgel, ha többet akkor felgyorsít és lassít... (mondjuk néha így is túlmegy nagy sebességről megállva 1-2 fokot de a felhasználás jellegéből adódóan nem számít. Majd ha sikerül videót csinálnom akkor látszódni fog miért)

Most valami - a procitól független pl relés - hardveres időzítő kellene ami a motor betápot a mikrokontroller indulása után 1-2 seccel kapcsolja be.
Ugyanis néha "megszalad" a pwm láb bekapcsoláskor, és a motor kimegy végállásra.
Avatar
winnerbt
Elektronbűvölő
Hozzászólások: 907
Csatlakozott: 2007. március 25. vasárnap, 6:00

Hozzászólás Szerző: winnerbt »

Sziasztok!
Agyalok itt egy ideje, de lehet, egyszerűbb megkérdezni a Nagytudásúakat:
Hogyan lehet 2db 8-bites PWM-ből egy 16-bitest csinálni?
(igazából 10-11-bit kellene).
Hardver lenne jobb, nem biztos, hogy SW-ből ráérek kapcsolgatni.
JAni
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Sehogy:(

Illetve Timer1 (16bites) -> alapban 8, 9 vagy 10 bites tud lenni...

Illetve milyen finomságú PWM kell?
Mert ez biza SW alapú lesz:(
Avatar
winnerbt
Elektronbűvölő
Hozzászólások: 907
Csatlakozott: 2007. március 25. vasárnap, 6:00

Hozzászólás Szerző: winnerbt »

10 bit kellene, ha valahogy össze tudnám szinkronozni a két timert...vagy még nem tudom, de agyalok. Sajnos csak 8-bites timer-ek vannak :(
JAni
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Hülye tipp:
0...1023-as szabályozásod lesz?

2 timer.
Az egyik timer sima PWMként megy.
A kimeneti lába a másik timer bemenetére. És ezt a Timert is állíthatod...

Vagy az egyik Timer számlálóként,a másik PWMként. Így a számlálóval osztást tudsz csinálni, azaz végső soron késleltetést....

De ez eléggé "vacak" megoldás...

Hülye tipp:
1, Tároló-IC, vagy külső számlálóval rásegíteni?
2, Másik AVR, amiben van 10bites TImer? :)
3, A jelenlegi AVR nagyobb testvére, ami több 10bites PWMl bír?

Keresztkérdés: most melyik AVR van betervezve?
Avatar
winnerbt
Elektronbűvölő
Hozzászólások: 907
Csatlakozott: 2007. március 25. vasárnap, 6:00

Hozzászólás Szerző: winnerbt »

Huhhh...
Hogy is gondoltad?
A 2 timer az o.k., efelé agyaltam én is. Sajnos az egymás engedélyezése (még egy ÉS-kapu nem is lenne gond a cuccban a kimeneteken) sajnos nem jó, mert nagyon sok egyenrangú érték lesz. Én alapban úgy gondoltam, hogy az egyik Timer 256-os előosztóval (mivel mind 8 bites), ez adja a nagyját, a gyorsabb PWM meg az apraját a felbontásnak, de effektíve ez szorzásnak minősül, és a kimeneti intergrált az aktív terület adja, ami sokszor azonos lesz. Csak az vezetne jó eredményre, ha a lasabb PWM lefutásakor indulna a gyorsabb, ami csakak 0-1-2-3 lehetne (1/4-ed bit felbontás) és ha az leesik, akkor meg is állna. És persze a kimenetek OR-ozva.
A feladat analog/PWM/átalakítás, nem tudom nagyobbra (méretben) cserélni a uC-t. Eddig T13 volt, most T45 kell mindenképp a külön előosztó miatt meg a nagysebességű PWM-je lecsökkentené a válaszidőt, szóval ezért agyalok. Persze lehet, hogy elég lesz a 8-bit is, de ha már 10-bites az ADC, használjuk ki. jaj, most jut eszembe, van valami dead-time generátor is, lehet, azzal is játszani kellene :) Na, mingyááá megnézem.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Hülye tipp:
A 2 PWM-t összeadod feszültségszintté alakítod és R/2R ellenálláshálóval 1:4 vagy 1:8 arányban összeadod...
Így 8 + 2..3 bites felbontásod van...

A Tinyben tényleg csak 8 bites PWM van...

De ott az USI rész amivel számlálást meg minden vackot le lehet még programozni. Igaz én csak hajhullást kaptam, és az IIC protokoll slave még nincs kész rá...
Avatar
winnerbt
Elektronbűvölő
Hozzászólások: 907
Csatlakozott: 2007. március 25. vasárnap, 6:00

Hozzászólás Szerző: winnerbt »

Igen, eszembe jutott, de a cucc egy szintillesztő lenne, ami valami lin. bemeneti jelre (0-5V pl.) tetszőleges határú kimenetet ad beállíthatóan. tehát ha az alsó=3V, Felső=4.1234V, akkor ezek közé szorítja be a bemeneti jelet (ha fordítva adod meg, akkor invertál is). No, most ebbe az analóg részbe kellene egy 1/1023-ad pontosságal beállítani a hozzáadandó feszt. Ezt az életben be nem állítom könnyen reprodukálhatóan, főleg szélesebb hőfoktartományban. De ahogy nézegetem, ezzel a dead-time generátorral lehet finomítani. csak bele fogok őszülni, mire világos lesz.
Ja, az USI-tól már kihullott multkor a hajam :)
JAni
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Hülye tipp:

Műveleti erősítő a kimeneten.
A visszacsatoló ellenállás ill. a bemeneti jelszinttel ez beállítható :)
Csak 1 marék alkatrész....

Na hülye tipp II:
0,05%-os ellenállás kell hozzá:

Kód: Egész kijelölése

PWM1 ---- R1  ------+----R1---GND
PWM2 ---- R1/64  ---+---Kimeneti jel
Gyakorlatilag az R/2R ellenállásos DA összegző, csak a 2 jelet nem egyforma erősséggel veszed figyelembe.

Tipp III:
Ugyanez a műveleti erősítő + és - ágára és a visszacsatolást is állítod.... :)
(1 marék alkatrész)
Avatar
winnerbt
Elektronbűvölő
Hozzászólások: 907
Csatlakozott: 2007. március 25. vasárnap, 6:00

Hozzászólás Szerző: winnerbt »

A kétcsatornás kb 20 alkatrészből áll mindenestől, szedett-vedett alkatrészekből, prec. ellenállást nem szívesen :( Sajnos így is alig férek a dobzba, no meg az analóg részt nem bonyolítanám, mert nekem kell úgy is bemérnem. Eddig 1 trimmer van benne, de lehet, azt is kispórolom :)
Na, szólok, ha összejött a PWM.
Eddig is köszi, szóval nem olyan egyszerű ez.
JAni
Avatar
winnerbt
Elektronbűvölő
Hozzászólások: 907
Csatlakozott: 2007. március 25. vasárnap, 6:00

Attiny45 TIMER1

Hozzászólás Szerző: winnerbt »

Sziasztok!
Azt mondom:
Config Timer1 = Timer , Prescale = 1024
Aszongya:
Error : 222 Line : 11 Illegal character [expected (, got '' [TCCR2B]] , in File :

Azon már nem is csodálkozom, hogy a meglévő 2048-as osztót nem is ismeri, de TIMER2 meg nincs is benne...
Timer0 megy, Watchdog megy, stb. Csak ez a fránya T1.
1.11.9.1. ver.

Már megint belenyúltam valamibe?
JAni
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

1.11.9.8 ?
Mit csinal abban?

Minimalprogramot ami előadja ugyanezt tudsz felrakni?
Lefordítom 1.11.9.8 ill 1.1.12.0.0 alá....
Meglessük mit tud...
Avatar
winnerbt
Elektronbűvölő
Hozzászólások: 907
Csatlakozott: 2007. március 25. vasárnap, 6:00

Hozzászólás Szerző: winnerbt »

Szia!

O.k., az újabb verzióban már úgy látszik, jól működik.
Full Reinstall volt nálam, jónéhány frissítés hiányzik még.
Szóval prg-hiba volt (megint sikerült beleszaladnom).
JAni
Válasz küldése