Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   1188 / 1319
(#) roleez hozzászólása Jan 22, 2015 /
 
Sziasztok!

A PIC18F család (per pillanat 46K80) ADC offset hibája (ami az errata szerint eléggé nagy is lehet +-30 lsb) minden mérésről mérésre lehet más? Azaz _minden_ AD konverzió előtt mérjek egy
pontosnak ismert feszültséghez tartozó értéket és azzal kompenzáljam a mérést?
(Bár itt most lehet ellentnondásba estem, mert ha minden konverzióban van eltérő
offset, akkor a fix fesz értékhez tartozója is más offset lesz, mint a mérendő adat offsetje...)


Köszönöm,
Roland
A hozzászólás módosítva: Jan 22, 2015
(#) Hp41C válasza roleez hozzászólására (») Jan 22, 2015 /
 
Több mérés eredményét átlagold.
(#) Atielektro válasza roleez hozzászólására (») Jan 22, 2015 /
 
Szerintem kicsit félreértelmezed az offset hibát. "Offset Error (Unipolar)" címszó:

Bővebben: Link

Tehát ez mérésről mérésre nem változik, ez egy állandó eltolódást jelent (hőmérsékletre, bekapcsolásról bekapcsolásra viszont változhat), de javítsatok ki, ha rosszul értelmezem a problémád.

Amúgy én azt csinálnám, hogy a feléledéskor megmérnék egy jól ismert feszültséget (pl ref.fesz IC-t), mint ahogy írtad is , aminek tudom, hogy milyen bináris felel meg, majd az elvárt és a mért különbsége megadja az offset hibát. Ezt a kompenzáló feszültséget persze többször meg kell mérni, hogy legyen egy szűrt értéked rá, majd utána ezt az offset-et a méréseimből levonogatnám.
(#) roleez válasza Atielektro hozzászólására (») Jan 23, 2015 /
 
Szia!
Köszönöm a választ.
Per pillanat azt látom, hogy az a jelenség, ami offset hibára sejtet, működés közben
is előjön. Ezért indult a kérdés.
Amit írtál offset "kompenzációt" pont így csinálom, induláskor ez lefut. Viszont menet közben
1-2 mV-os eltérésre is, az ADC 30-40 érték eltérést ad. Ráadásul "véletlenszerűen", ahogy tudom debug-golni, figyelni az értékeket.
(#) Atielektro válasza roleez hozzászólására (») Jan 23, 2015 /
 
Szerintem csinálj egy logolást UART-on, mert a debug nézet az nem túl beszédes, de ha egyszer-egyszer kiugró adataid vannak, akkor ott a mintavételezéssel lesz a gond, legalábbis nekem ezek az eddigi tapasztalataim. A forrás ellenállásod megfelel az adatlapi értékeknek? Azaz fel tud töltődni a PIC mintavévő kondija a mintavételi idő alatt rendesen? Illetve a másik hibát még a túl magad AD órajel szokta adni. Kb. 2 éve nem nyúltam már PIC-hez, így nem emlékszem már rájuk, hogy mit lehet állítani az AD-nál, de ha van valami, ami a mintavételi időt vagy az AD órajelét birizkálja, akkor azzal lehet, hogy érdemes eljátszani. Persze azért előtte nem árt kizárni, hogy nem a mérendő jelen van-e a zajod.
A hozzászólás módosítva: Jan 23, 2015
(#) elektro777 hozzászólása Jan 23, 2015 /
 
Sziasztok!
Segítségeteket szeretném kérni az Oldalon található eszközben.
Beégetem a Picbe az adott hex filet, Androidra letöltöttem az applikációt, majd összeraktam az áramkört csatlakoztattam routerhez. Sajnos nem vagyok jártas a hálózat építésben ezért segítségeteket szeretném kérni hogy hogy is tudnám működésre bírni. Milyen konfiguráció szükséges a routernél illetve az android oldalon lévő MCU URL hol található? Hogy is biztosítom hogy csak az én telefonom férjen hozzá az eszközhöz?
Köszönöm a segítségeteket!
(#) AZoli hozzászólása Jan 27, 2015 /
 
Sziasztok!
Az lehetséges, hogy a PIC24E család InputCapture modulját nem lehet úgy konfigurálni, hogy a capture eseményt követően automatikusan törölje a saját (ICxTMR) számlálóját?
Mert én csak az a megoldást látnám erre, hogy a SYNCSEL<4:0> bitekkel saját magát választom sync forrásnak, de azt mondja hogy:
"Do not use the ICx module as its own sync or trigger source."
PIC24 IC FRM
Valaki bele nézne, hogy lát-e más megoldás?
Köszönöm!
(#) AZoli válasza AZoli hozzászólására (») Jan 28, 2015 /
 
Nos akkor folytatom...
Mérni szeretném egy négyszögjel periódus idejét, és a magas szinten töltött "fél"periódus idejét, megszakítás nélkül, két input capture modul felhasználásával.
Mindkét modul órajele ugyan az, és PPS -el ugyan arra a lábra vannak konfigurálva.

  1. IC6CON1 = 0; //Off
  2.     IC6CON2 = 0; //Off
  3.     IC6CON1bits.ICTSEL = 0b011; //Clock source of Timer5 is the clock source of the ICx (1MHz)
  4.     IC6CON1bits.ICI = 0b00; //0b00 = Interrupt on every capture event
  5.     IC6CON2bits.ICTRIG = 0; // Synchronous Operation
  6.     IC6CON2bits.SYNCSEL = 0b10100; //10100 = IC5 module synchronizes or triggers ICx
  7.     IC6CON1bits.ICM = 0b010; //010 = Capture mode, every falling edge (Simple Capture mode)
  8.  
  9.     // Csak IC6 után, mert : 2: When initializing timers that have synchronous timer operation enabled, the timer
  10.     // being used as the source of synchronization must be enabled last.
  11.     IC5CON1 = 0; //Off
  12.     IC5CON2 = 0; //Off
  13.     IC5CON1bits.ICTSEL = 0b011; //Clock source of Timer5 is the clock source of the ICx (1MHz)
  14.     IC5CON1bits.ICI = 0b00; //0b00 = Interrupt on every capture event
  15.     IC5CON2bits.ICTRIG = 0; // Synchronous Operation
  16.     IC5CON2bits.SYNCSEL = 0x00; //
  17.     IC5CON1bits.ICM = 0b011; // 011 = Capture mode, every rising edge (Simple Capture mode)
  18. //main -ből:  
  19.        
  20.         if (IC5CON1bits.ICBNE == 1) PeriodTimeCalc (); //Input Capture Buffer Not Empty Status bit (read-only)
  21.  
  22.         if (IC6CON1bits.ICBNE == 1) HlevelTimeCalc ();
  23.        
  24. //*****************************************
  25. void PeriodTimeCalc (void)
  26. {
  27.     //IC5 minden felfutó él, IC6 minden lefutó él
  28.     uInt T = 0; // Periódusidő us -ban.
  29.     static uInt ICBuffSave = 0;
  30.  
  31.     IC5Buff = IC5BUF;
  32.  
  33.     T = IC5Buff - ICBuffSave; //Mostani minusz az előző
  34.    
  35.     //Itt rendben megkapom T-ben a periódusidőt...
  36.  
  37.     ICBuffSave = IC5Buff;
  38. }
  39. //**********************************************
  40. void HlevelTimeCalc (void)
  41. {
  42.     //IC5 minden felfutó él, IC6 minden lefutó él
  43.     uInt T = 0; // Periódusidő us -ban.
  44.  
  45.         uInt ICBuff = IC6BUF;
  46.  
  47.     T = ICBuff - IC5Buff; //Mostani minusz IC5 előzője
  48.    
  49.         //Itt T a H szint idejét kéne hogy mutassa... de mivel a két OCxTMR nem jár együtt, nem ok
  50. }

A probléma az, hogy IC5TMR és IC6TMR nem jár együtt, pedig PIC24 IC FRM Figure 9-2 szerint próbálkozom.
A hozzászólás módosítva: Jan 28, 2015
(#) SKY hozzászólása Jan 30, 2015 /
 
Sziasztok!
Ismertek olyan PIC-et, amiben 12 bites felbontásban is minimum 2 S&H blokk/kapacitás használható? Hiába kerestem, eddig csak olyant láttam, ahol 10 bitesnél van több, de 12 biten már csak egy. Van olyan parametrikus kereső, amiben van ilyen paraméter?
Válaszotokat köszönöm!
(#) nedudgi válasza SKY hozzászólására (») Jan 30, 2015 /
 
PIC16LF1554, PIC16LF1559, PIC18F86J72, PIC18F87J72.
Ha jól értelmeztem azt a krix-kraxot a hozzászólásodban. Kifejtenéd, mit jelent?
(#) pgabor2 válasza SKY hozzászólására (») Jan 30, 2015 /
 
PIC18F86J72, PIC18F87J72, mindkettő 2 db 16bites ADC-t tartalmaz. Bővebben: Link "#of A/D Converters" mező
A hozzászólás módosítva: Jan 30, 2015
(#) SKY válasza nedudgi hozzászólására (») Jan 30, 2015 /
 
Elsősorban arra gondoltam, hogy például a 33F szériában az ADC maximum 12 bites, 10 bites módban használva lehet akár 4 vagy 8 Sample&Hold kapacitása, vagyis mérni nem, de mintát venni egy időben tud a mérni kívánt jelekből, viszont 12 bites módban használva csak 1db S&H használható ha jól értelmeztem az adatlapokat. Van olyan amiben 2 S&H mérhető 12 bites felbontás mellett?
De a több AD is hasznos információ, pgabor2, nedudgi kösz.
A hozzászólás módosítva: Jan 30, 2015
(#) icserny válasza SKY hozzászólására (») Jan 30, 2015 /
 
Idézet:
„csak 1db S&H használható ha jól értelmeztem az adatlapokat.”

Sajnos, jól értelmezted. Pl. PIC24HJ128GP502 esetében: A 12 bites módban csak a CH0 mintavevő csatorna használható, tehát több csatorna szimultán mintavételezése nem lehetséges. dsPIC33FJ128GP802-nél is ugyanez a helyzet.
(#) treshold hozzászólása Feb 17, 2015 /
 
Sziasztok!
PIC18F14K50-en akarok 16 bites számlálót használni
Az alábbit állítottam be:
MOVLW B'00011000'
MOVWF T0CON

Futtatásnál csak a TMR0L számol, de a TMR0H-ba nem kerül adat.
Tudnátok segíteni, hogy mit nem csináltam jól?
Esetleg kell még valami beállítás?
(#) kissi válasza treshold hozzászólására (») Feb 18, 2015 /
 
Szia!
Hogy ellenőrzöd?
(#) icserny válasza treshold hozzászólására (») Feb 18, 2015 /
 
Ez idáig jónak látszik (ha külső jel lefutó éleit akarod számlálni), de a számláló engedélyezését hol/hogyan csinálod? Nem ott írod felül a 8/16 bites módot véletlenül?
(#) treshold válasza kissi hozzászólására (») Feb 18, 2015 /
 
MPLAB IDE V8.92 - Debugger - MPLAB SIM- Watch ablak
(#) Hp41C válasza treshold hozzászólására (») Feb 18, 2015 /
 
A Watch ablakban ne a TMR0L és TMR0H regisztereket nézd, hanem a TMR0_Internal regisztert.
A hozzászólás módosítva: Feb 18, 2015
(#) kissi válasza treshold hozzászólására (») Feb 18, 2015 /
 
Igen, én is a HP41C kolléga által javasoltra akartam felhívni a figyelmet !

Magyarázat : a TMR0H csak mint átmeneti regiszter működik, a számlálás nem ebben történik ( nézd meg a hozzátartozó ábrát!):

icserny kollégával ellentétben én úgy látom, hogy a belső órajeleket számolod ( és valószínűleg azt is akartad!)!
(#) treshold válasza Hp41C hozzászólására (») Feb 18, 2015 /
 
Nagyon köszönöm!
(#) hg0npj hozzászólása Márc 11, 2015 /
 
Sziasztok!
Szeretnék egy kis segitséget kérni. Eddig mikroc-ben programoztam pic-re, de most nézegetem az Mplabx és Xc8 felállást. Próbáltam az xlcd lib-et használva lcdre írni, de sehogy sem jártam sikerrel. Ha valaki tudna adni egy működő mintát azt nagyon megköszönném. Pic18f45k22-t használnék 32 MHz órajellel, 8 MHz krtistály és 4xPLL.
A hozzászólás módosítva: Márc 11, 2015
(#) usane válasza hg0npj hozzászólására (») Márc 11, 2015 /
 
Ez mehetett volna a kezdő topicba is, de mindegy. Az xlcd elég pocsék, hogy finom legyek. Ajánlom figyelmedbe icserny fórumtárs oldalát.
A hozzászólás módosítva: Márc 11, 2015
(#) icserny válasza usane hozzászólására (») Márc 11, 2015 /
 
Idézet:
„Ajánlom figyelmedbe icserny fórumtárs oldalát.”
Ahhoz viszont MPLAB 8 és C18 ajánlott...
(#) usane válasza icserny hozzászólására (») Márc 12, 2015 /
 
Valóban. Az xc8 felett átsiklottam.
De ha még csak nézegeti a felállást, akkor nézegethetné inkább a C18-at.
(#) Peter65 hozzászólása Márc 19, 2015 /
 
Sziasztok!
A régi PIC16C sorozatú vezérlőkkel kapcsolatban kérdezném, hogy a /JW végződésű ablakos vezérlőknek mekkora a maximális üzemi frekvenciájuk?
Igazából PIC16C73B-20/SP vezérlőre volna szükségem, de elérhető olcsóbban PIC16C73B/JW. Ezen a processzoron nincs sebesség jelölés, ezért érdeklődöm, hogy jó lesz-e?
Bővebben: Link
(#) usane válasza Peter65 hozzászólására (») Márc 19, 2015 / 1
 
Ha nincs jelölve akkor általában az adatlap a meghatározó ami ezt a típust 20MHz-re írja. Egyéb oldalakon is 20MHz-esnek titulálják.
(#) Kapagerenda hozzászólása Márc 19, 2015 /
 
Üdv!
Egy digitális frekvencia mérőt szeretnék készíteni egy 16f887 kontroller segítségével, ami a gitárból érkezett jel frekvenciáját mérné meg. Elvi megoldásnak egy bizonyos előre beállított kapuidő alatt beérkező impulzusok számlálását vettem alapul, ezt próbáltam megvalósítani. Tesztelésként építettem egy négyszögjel generátort cd 4060 számláló segítségével és ennek a frekijét jól meg is tugya mérni a kapcsolásom. Sajnos a gitár jelét már nem tugya megmérni rendesen. A gitárból vett jelet előerősítővel felerősítettem majd komparátorral azt négyszögesítettem és ennek a négyszögjel sorozatnak kéne elvileg léptetnie a belső T0 számlálót a mikrokontrollerba. Sajnos minden esetben csak 1-2 lép a számláló. Elvileg egy 200 Hz es jelnél 1 másodperc alatt 200-szor ismétlődik a jel, szóval 200 db pozitív értékű négyszögjelet kéne kapnom. Ez a négyszögjel sorozat lépteti a számlálót, esetünkben 200-at kéne lépnie viszont állandóan csak 1-2 őt lép a számláló. Esetleg valakinek valamilyen tipp? Esetleg a komparátor túl lassú és nemtugya négyszögesíteni a jeleket? Sajnos nincs oszcilloszkópom amivel megtudnám nézni. Előre is kösz a segítséget.
(#) kissi válasza Kapagerenda hozzászólására (») Márc 19, 2015 /
 
Ha nincs szkópod és nem bízol a komparátor sebességében, akkor tegyél a kimenetére egy erősítőt és hallgasd meg !
(#) proba válasza Kapagerenda hozzászólására (») Márc 19, 2015 /
 
Lehet a bemenő jel nem megfelelő szintű. Egy CD sorozatú kaput (esetleg smittriggert) utána kötve, annak a kimenetén nagy impedanciás fejhallgatóval ellenőrizni tudod a jelet . Ha azon a kimeneten hallod a gitár hangját, akkor azt a PIC bemenetére kötve már működnie kell. Egyébként milyen komparátorral próbáltad? egyszerű műveleti erősítő lehet nem jó, mert 5V táp esetén nem tudja a kimenetén a CMOS szinteket produkálni.
(#) Peter65 válasza usane hozzászólására (») Márc 19, 2015 /
 
Köszönöm a segítséget!
Következő: »»   1188 / 1319
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