Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Dehogynem, mert a 200kHz modulálva van a hangfrekvenciás jellel. A 200kHz túl sok a piezónak, azt nem tudja kiadni, bár ha kiadná sem hallanánk.
Ez rendben, de ha pl. egy 2kHz -es szinuszt akarsz kiadni, akkor nem a 200kHz -et kell ellen ütemben kivezérelned, hanem abból miután kiszűrted -bárhogy- a 200kHz-et, annak ami megmarad, tehát a 2kHz -nek kell ellen ütemben lennie. Szerintem ezért nem stimmel az elgondolás.
A hozzászólás módosítva: Nov 25, 2015
Idézet: Nem hinnem, hogy az az effektiv ertek, mert akkor a konnektorban is 0V-ot mutatna a muszer. Mert annak is 0V a DC komponense, viszont az effektiv erteke 230V korul mozog. Csucstol-csucsig meg olyan 650V. „Amire te gondolsz, az az effektív érték, egyenkomponens helyett az offszetet használjuk jelalakok esetén.” A hozzászólás módosítva: Nov 25, 2015
Attila86 megoldasa teljesen jo. Pont ugy mukodik, mint egy Class-D vegfok. Ha egy 200kHz-es jelet PWM-ben modulalsz hangfrekivel, es a keletkezett jelet ravezeted egy alulatereszto szurore, akkor a szuro kimeneten megkapod a hangfrekis jelet. Ezt csinaljak a digitalis erositok. Ezert nincs disszipaciojuk, mert 2..300kHz negyszogjelet kapcsolgatnak benne a FET-ek. Az 50%-os kitoltes adja a 0V kimenetet. Ha az egyik iranyba valtoztatod a kitoltesi tenyezot, akkor pozitivba megy a kimenet, ha a masik iranyba valtozotatod, akkor negativba megy a kimenet.
Persze megoldható a dolog úgy, hogy nem a klasszikus ellenütemben vezérled a két kimenetet, hanem -maradva a 2kHz -es szinusz példánál- az egyik félperiódusban az "A" kimenet fixen 0V a "B"-t felhúzkodod - 200kHz -es PWM-el, a másik félperiódusban pedig az "A" -t húzkodod le PWM-el, és a "B" fixen 5V.
Szerintem ha a kitöltési tényezővel variál ellenütemben, ha a kitöltés maxon van, a piezó kap egyenfeszültséget egyik irányból, ha a kitöltés minen van, akkor megkapja a másik irányból. Ami hangtanilag ugyan az. Ebből kifolyólag már csak a 0-50% tartomány használható. A másik kérdés ami orvoslásra vár, szünetben mindkét portot le kell kapcsolni, mert a piezón felejtett egyenfeszültség lehet nem egészséges.
Hangtanilag nem ugyanaz, mert a PWM-et a hangfrekivel allitja, igy a piezo hol erre, hol arra van kivezerelve. Eppen ettol fog jol szolni, mert +/- iranyba vezerli ki a hangfrekivel. Szunetben sincs semmi gond, mert akkor pont 50% kitoltessel kapja a piezo a 200kHz jelet. Mindez csak akkor igaz, ha a piezot valoban ellenutemben hajtja meg, kulonben az 50% kitoltes 2.5V DC-t eredmenyez a piezon, nem pedig 0V-ot.
Ok, talán kezdem érteni.. még emésztenem kell.
Lehet igazad van, ha így van akkor viszont a 200khz-s csend igencsak meg fogja viselni a pic kimenetét. Bár nem tudom mekkora kapacitása van a piezo lapkának.
Ebben viszont neked lehet igazad. Kapacitiv terheles eseten nem biztos, hogy jo a 200kHz negyszog. A kapacitasukat en sem ismerem. De itt van pár érdekes adat. Feltéve, hogy ez piezorol szol es nem nezek el valamit.
A hozzászólás módosítva: Nov 25, 2015
Egy kicsit kevered a dolgokat. Ezt írtad:
Idézet: 50% -os PWM-nek ahol a két érték 0 és +5V, az effektív értéke 2,5 V (2,5 V egyenárammal megegyező munkát tud végezni, Ohm-os terhelés esetén), nem az egyenkomponense. Nincs benne egyenáramú komponens (offset). Igaz, hogy a hálózati feszültség elmegy mínuszba is, de az áram is, a kettő szorzata pedig pozitív, tehát az effektív értéke (amit a műszerek is mérnek) pozitív mindkét félperiódusban. „Ha valamire ravezetsz egy 50% kitoltesu, 0-5V kozotti jelet, akkor annak bizony 2.5V lesz az egyenkomponense.”
Ertem, hogy mit mondasz, es nem is vitatom az effektiv ertek kerdeset. Viszont szerintem ofszet es DC komponens kerdesben nincs igazad. Ertem, hogy te azt tekinted DC komponensnek, amikor valoban DC jelrol van szo, amin esetleg lehet AC is. En meg maskepp tudom. A Wikipedia ezt irja, de kereshetunk magyar nyelvu, hitelesebb szakirodalmat is.
When describing a periodic function in the time domain, the DC bias, DC component, DC offset, or DC coefficient is the mean value of the waveform. If the mean amplitude is zero, there is no DC offset. In contrast, various other frequencies are analogous to superimposed AC voltages or currents, hence called AC components or AC coefficients. Egyenkomponens, egyenaramu osszetevo, DC offset, mind ugyanaz szerinte. De a lenyeg a mean value, ami nem ugyanaz, mint az az effektiv ertek. Tulkepp a DC komponens a jel atlaga vagy, ha ugy jobban tetszik, akkor a kozeperteke, semmi mas.
DC komponens (offset), effektív- és középérték három különböző fogalom. Egy 5V - 0V PWM jelnek nincs egyenáramú összetevője. Effektív- és középértéke van.
Idézet: „Egy 5V - 0V PWM jelnek nincs egyenáramú összetevője.” Hogyne lenne, nézd meg a spektrumát vagy mérd meg egy DC feszültségmérővel ! A hozzászólás módosítva: Nov 25, 2015
A (frekvencia?)spektrumból hogy jön ki bármi is, ami a DC összetevőre vonatkozna? A vízszintes szakaszon a frekvencia nulla, a függőleges szakaszon pedig végtelen (elméletileg). DC feszültségmérő pedig jó esetben valódi effektív értéket mér ("true RMS" ismerős lehet). Az előző hozzászólásomban ott van két szinusz. Az egyiknek van DC összetevője, a másiknak nincs.
Idézet: „50% -os PWM-nek ahol a két érték 0 és +5V, az effektív értéke 2,5 V (2,5 V egyenárammal megegyező munkát tud végezni, Ω-os terhelés esetén), nem az egyenkomponense.” Ki van rúgva! átlagérték = 1/T ∫ u dt ,integrálás után : U* k effektívérték = gyök (1/T ∫ u↑2 dt) ,integrálás után : U * gyök(k) ahol U a csúcsérték, k a kitöltési tényező Fenti esetben u átlag = 5 * 0.5= 2,5V u eff = 5 * gyök(0.5)= 5 * 0.707 = 3.53V Ezért van az, hogy pl egy motor,aminek a nyomatéka az átlagfesz.-szel arányos, jobban melegszik,ha ugyanolyan átlagfesz.-ű PWM-ről hajtjuk, a határértékeken egyforma. A hozzászólás módosítva: Nov 25, 2015
Idézet: „A (frekvencia?)spektrumból hogy jön ki bármi is, ami a DC összetevőre vonatkozna? A vízszintes szakaszon a frekvencia nulla, a függőleges szakaszon pedig végtelen (elméletileg). DC feszültségmérő pedig jó esetben valódi effektív értéket mér ("true RMS" ismerős lehet).” Szerintem nézz utána a spektrum elméletének egy kicsit például ! A DC feszültségmérő nem true RMS-t mér műszerekről pl. ! Idézet: Ez igaz, de a négyszögjel spektruma ettől egy kicsit bonyolultabb !„Az előző hozzászólásomban ott van két szinusz. Az egyiknek van DC összetevője, a másiknak nincs.” Idézet: Pedig vitatnom kellett volna, csak benéztem. Hiszen az 50% 0-5V négyszög effektív értéke nem 2.5V, hanem 3.53V. „Ertem, hogy mit mondasz, es nem is vitatom az effektiv ertek kerdeset.”
Hát így már más a gyerek fekvése. Így már érthető. Mint a Class-D végfok. Ötletes. Azt sem értettem mit akarsz lejátszani, azt hittem csak valami egyszólamú dallamot. Real-tone zene esetén valóban lehet létjogosultsága az oda-vissza rángatásnak. Bár úgy látom a PWM-et illetően jó kis szakmai csevej indult.
Szeretnék egy dsPIC33FJ128GP804-el 12 bites mintákat venni két lábról, az AN2-ről és az AN3-ról, külső referenciaforrás használatával (2,5V), DMA nélkül. A PIC 70MHz-el megy. Úgy szeretném, hogy a mintavételezés automatikusan történjen mindkét bemeneten és minden egyes mintavétel (vagy mintavétel-pár) után megszakítást generáljon az ADC hogy göngyölhessem a mérési eredményeket.
Igyekeztem beállítani az ADC-t de nem vagyok benne biztos hogy jó lesz így:
Nem tudom, ez így jó? Nem hiányzik esetleg még hozzá valami? Az AD1CON3bits.ADCS regiszter értékét egy másik áramkörömben (mely ugyan úgy 70MHz-el ment) már kiszámoltam és az elvileg jónak kell hogy legyen, azonban ott nem volt automatikus mintavételezés ezért nem tudom hogy az AD1CON3bits.SAMC milyen értéke kell hogy legyen. Illetve: Tulajdonképpen most így megszakítás mikor fog történni? Ha vett 1-1 mintát az AN2-ről és az AN3-ról, és a két mérési eredmény két külön regiszterben lesz? Vagy vesz egy mintát az AN2-ről -> megszakítás, majd vesz az AN3-ról és az után is megszakítás lesz? Melyik regiszterbe, vagy regiszterekbe kapom az eredményeket? A hozzászólás módosítva: Nov 27, 2015
Ha már DMA vezérlős ADC-vel vert meg a sors, akkor célszerű használni a DMA-t, mivel ezekből hiányzik a 16 szavas ADC kimeneti buffer - én legalábbis ezt a tanulságot szűrtem le.
Ha szimultán mintavételezést szeretnél, akkor az adc4simul.c mintaprogramot ajánlom figyelmedbe. A program részleteire már nem emlékszem (régen volt), de amit fontosnak tartottam, az le van írva... (a teljes program erre található) Idézet: „AD1CON3bits.SAMC milyen értéke kell hogy legyen?” Nem tudom. Ha jól látom, nálam ADC_CONV_CLK_10Tcy szerepel, ami #0x0009-ként van definiálva. DMA használat esetén az összes konverzió eredménye után a DMA tranzakció vált ki megszakítást.
A DMA-t nem szeretném használni. Azért nem, mert nincs szükségem a minták letárolására, csupán göngyölni szeretném őket. Azaz egy jó nagy változóhoz mindig hozzáadom az épp aktuális mintát és inkrementálok egy másik változót, mellyel így számolom hogy hány mintát vettem. Aztán amikor különböző okokból kifolyólag ténylegesen kíváncsi vagyok a lábon lévő analóg értékre, akkor a göngyöleget elosztom a számlálóval (átlagolok). Ehhez felesleges a DMA mert maguk a mintákra közvetlen nincs szükségem, csak feleslegesen foglalnák a memóriát.
Szimultán mintavételezést szintén nem szeretnék, nem kell hogy a két bemenetről egyszerre vegyen mintát a PIC. Teljesen jó nekem hogyha egymás után mintavételez a két lábról. Amúgy ha akarnék sem használhatnék szimultán mintavételezést, mivel 12 bites módban használom a ADC-t. Az AD1CON3bits.SAMC tulajdonképpen mit határoz meg? Hogy automatikus mintavételezés esetén mennyi idő teljen el az n mintavétel befejezése és az n+1 mintavétel kezdete közt? A hozzászólás módosítva: Nov 27, 2015
A DMA-val azt nem tudod megcsinálni, hogy egy területet kijelösz, majd indexeled, azaz ha megtelt, előröl kezded írni. Ezt a területet átlagolod, amikor kell. Csak egyszer kell megvárni, míg megtelik, utána az osztó is állandó lesz.
Nem tudom hogy lehet-e a DMA-val ilyet csinálni, valószínűleg igen.
De minek? Ez továbbra is feleslegesen foglalná a memóriát. Az hogyha az osztó állandó, az nem előny. (Na jó, legfeljebb ha a DMA terület mérete kettő hatványa, de egy hardveres osztáson most nem múlik semmi.) Viszont ha így használnám ahogy írod, akkor mindig az utolsó X darab mintát tudnám átlagolni. Viszont hogyha úgy dolgoztatom a PIC-et ahogyan én fentebb írtam, akkor bármikor azt mondhatom hogy na akkor most érdekel hogy mit mért a lábán a PIC. Ha egyetlen mintát sikerült csak vennie az előző 'lekérdezés' óta akkor azt kapom vissza, ha 7db mintát akkor annak az átlagát, ha 50000db mintát akkor pedig annak az átlagát. A PIC 12 bites módban 500ksps-el tud mintavételezni. Én két bemenetét mintavételezném és átlagosan fél másodpercenként lenne szükségem új értékre, azaz csatornánként kb 125000 értékből kapom az átlagot. Az 125000 szó, a két csatorna esetében pedig 250000 szó. Ennyi adatmemóriája nincs a PIC-nek. A hozzászólás módosítva: Nov 27, 2015
Attila!
Az ebayes IPS kijelzőről esetleg nincs videód vagy fotód amin látni a képminőséget? Mondtad, hogy a touch nem olyan jó. Azzal mi a baj?
Ezen a videón ugyan az a kijelző látható mint amilyet én használok, az az Ebay-es IPS-es:
Bővebben: Youtube Gyönyörű képe van, nagy a felbontása (480*320), szépek a színei és jó a betekintési szöge. A touchpadja viszont használhatatlan sajnos. Lenyomod mondjuk a bal felső sarkában és más Y koordinátát ad hogyha ugyan úgy legfelül, de mondjuk középen vagy a jobb szélén nyomod meg. Írtam rá egy irgalmatlanul bonyolult linearizáló függvényt ami súlyozottan kiátlagolja az érintési koordinátákat és megpróbálja egy 6x5-ös mátrixra "ráhúzni az érintéseket" hogy használhatóbb legyen, de így sem az igazi sajnos. A durva linearitás-hibáján túl az egyik sarkában egy ujjnyi, háromszög alakú területen pedig teljesen érzéketlen a nyomásra. A linearizáló függvény eredményéről van két képem. Az első a linearizálás nélküli, a második pedig a linearizáló függvénnyel készült. Ja és van még hibája a tochpadnak! Eleve borzasztóan zajos és lenyomás után egy bizonyos ideig teljesen irreális koordinátákat ad. Hogyha négy nagy, negyed képernyőnyi gombot akarsz kitenni a képernyőre akkor úgy még talán használható, de amúgy sajnos nem nagyon. Maga a képernyő viszont tényleg gyönyörű. Beszéltem az illetővel akié az a Youtube videó és ő vett már legalább 40-50db kijelzőt aminek azt mondja hogy kb a tizede ilyen touchpad-hibás.
A minták összege belefér minden eshetőség esetén a változódba?
Használta már valaki a DAC perifériát?
A dsPIC33FJ128GP804-ben van egy 16 bites sztereó audio DAC. Ennek a működéséről és használatáról van egy application note: Bővebben: Link Semmi bonyolultat nem szeretnék, csak annyit hogy a két csatorna adjon ki magából egy-egy konstans DC szintet. Így próbáltam:
A bal csatorna negatívján 2,28V van, a pozitívján 1,13V. A jobb csatorna negatívján 2,35V, a pozitívján pedig 1,04V. Hiába írom át a két értéket, nem változik semmi. Debuggerben ha megnézem a DAC1LDAT és a DAC1RDAT regisztereket, nulla van bennük. Ha megpróbálom átírni manuálisan, akkor nem engedi, ugyan úgy nulla lesz bennük.
Bőven. Az előbb levezettem hogy maximum kb 125000db érték lesz csatornánként és azt is írtam hogy 12 bites a mintavétel. Ha mind a 125000db minta 4095 (0xFFF), akkor is bőven belefér egy 32 bites változóba. (De ha szükséges lenne, akkor lehetne 64 bites is az a változó.)
A hozzászólás módosítva: Nov 27, 2015
|
Bejelentkezés
Hirdetés |