10KHz by Pic16F877a

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Jine
Inlägg: 1795
Blev medlem: 21 juli 2004, 20:25:56
Skype: Jim.Nelin
Ort: Trångsund, Stockholm
Kontakt:

10KHz by Pic16F877a

Inlägg av Jine »

Nån av dom här som skulle fugera?
Använder en 20mhz kristall och en Pic16f877a (2 st pwm utgångar, ska använda Pwm 1 (Portbc.2) )



10khz Tankade verisonen

Kod: Markera allt

' Setting up hardware PWM for 10KHz operation. 
TRISC.2 = 0 ' CCP1 (PortC.2 = Output) 
PR2 = 99 ' Set PWM Period for approximately 10KHz 
CCPR1L = 50 ' Set PWM Duty-Cycle to 50% 
CCP1CON = %00001100 ' Select PWM Mode 
T2CON = %00000100 ' Timer2 = ON + 1:1 prescale 
Uträknade av mig, Med hjälp av 38KHz kod..

Kod: Markera allt

'Initiate PWM (10kHz, 50%dc @ 20MHz OSC). 
TRISC.2 = 0      'PortC.2 output 
CCP1CON = %00001100   'Mode select = PWM 
T2CON = %00000100   'Timer2 ON + 1:1 prescale 
PR2 = 313      '10kHz PWM 
CCPR1L = 450      '50% duty cycle 
Användarvisningsbild
Jine
Inlägg: 1795
Blev medlem: 21 juli 2004, 20:25:56
Skype: Jim.Nelin
Ort: Trångsund, Stockholm
Kontakt:

Inlägg av Jine »

Eller kanske man skulle använda en 555a ist..

Hmm, Ge förslag!!
cyr
Inlägg: 2712
Blev medlem: 27 maj 2003, 16:02:39
Ort: linköping
Kontakt:

Inlägg av cyr »

Testa?

Första exemplet får jag till 20khz med huvudräkning, men jag kanske har fel. Ändra annars prescaler till 1:2 om det går så blir det ju rätt.

Andra exemplet vet jag inte, PR2 och CCPR1L är väl båda 8bits register så 313 och 450 går inte att skriva in dom alls...
Användarvisningsbild
Jine
Inlägg: 1795
Blev medlem: 21 juli 2004, 20:25:56
Skype: Jim.Nelin
Ort: Trångsund, Stockholm
Kontakt:

Inlägg av Jine »

Andra kan du skita i.. jag räknade totalt fel upptäckte jag nyss :P

Testa, där ligger problemet.. har inte osciloskop lr frekvänsräknare lr något som kan fugera som det..
Användarvisningsbild
babbage
Inlägg: 655
Blev medlem: 10 november 2004, 11:33:17
Ort: N-tälje

Inlägg av babbage »

Om du har 3 st 40175 har du 12 st D-flip-flopar och kan dela frekvensen med 2^12=4096. Då borde du kunna koppla till en lysdiod och mäta tiden med ett stoppur. Om du kräver en hög nogrannhet får du medelvärdesbilda över flera perioder.

Om du har flera PICar kan du använde en extra för frekvensdelningen, då kan du även låta denna räkna antalet neddelade perioder om du t.ex. vill medelvärdesbilda över t.ex. 10000 neddelade perioder.
Användarvisningsbild
babbage
Inlägg: 655
Blev medlem: 10 november 2004, 11:33:17
Ort: N-tälje

Inlägg av babbage »

Flera testinstrument om man inte har råd att köpa oscilloskop eller frekvenstäknare.

Ett sätt som är förvånansvärt nogrant och antagligen är bättre än mitt förra förslag, örat är bra på att avgöra relativa frekvenser: Man klarar sig med en 40175 => dela med 2^4=16 => 625Hz som kopplas till en liten högtalare

Generera 625Hz fyrkanksvåg i ett ljudprogram i datorn, spela upp och jämför ljudet från PICen. Det är lätt att avgöra om tonen från PICen är högre/samma/lägre. Om man vill få ett "exakt" frekvensvärde kan man köra intervallhalvering tills frekvenserna stämmer överrens. Det här skulle fungera för periodiska signaler som är mycket snabbare än 10kHz.

Med lite fantasi och extra arbete kan man ibland klara sig utan dyra mätinstrument.

Om frekvensen är så låg som 10kHz har du förmodligen redan ett mätinstrument hemma, ljudkortet i din dator. Se till att spänningen inte är för hög med t.ex. två resistorer som spänningsdelare. Någonting mellan 0.5-1 volt borde fungera. Låt datorn sampla och titta på resultatet i något lämpligt program.
cyr
Inlägg: 2712
Blev medlem: 27 maj 2003, 16:02:39
Ort: linköping
Kontakt:

Inlägg av cyr »

Biltema har en liten multimeter för 129kr som kan mäta frekvens upp till 10MHz. Kan vara ett tips om du behöver göra det flera gånger...
Användarvisningsbild
Jine
Inlägg: 1795
Blev medlem: 21 juli 2004, 20:25:56
Skype: Jim.Nelin
Ort: Trångsund, Stockholm
Kontakt:

Inlägg av Jine »

Hmm Byggt en liten Ljudkorts oscilloskop nu... Ena koden klarar den inte o mäta..

Andra dör vid komplimeringen (Stavning)
Användarvisningsbild
Hedis
Inlägg: 2493
Blev medlem: 8 december 2003, 15:10:44
Ort: Vänersborg
Kontakt:

Inlägg av Hedis »

Kompilering...

Moduleringsfrekvensen (38Khz) ser du aldrig med datorn, men databitarna skall du allt kunna se. Jag gjorde så när jag byggde en ir-sändare iaf, spelade först in den riktiga fjärren med goldwave, sen var det bara o ändra fördröjnigarna tills dom var likadana in som ut.

Jag modulerade däremot med en lös 555:a efter µC´n.
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

Så här fick jag det till med en 20 MHz klocka:

Kod: Markera allt

- - - - - - - - - 10 kHz - - - - - - - - - - - - 

 - - - - PR2

PR2 = ( 20MHz / (4 * TMR2 * 10kHz )) - 1
TMR2 (timer2 postscaler):  4

PR2 = ( 20 000 000 / (4 * 4 * 10000 )) - 1

PR2 = 125 - 1
PR2 = 124


 - - - - Max Resoulution, Duty Cycle

Resolution = log(20MHz/10kHz) / log(2)   bits

Resolution = 10,97 bits
Duty Cycle: 0 - 2000


 - - - - Duty Cycle, 50%

(PR2 + 1) * TMR2 * dc 
(124 + 1) * 4 * 50% = 250
bit   9876543210
250 = 0011111010

CCP1CON = %**10****
CCPR1L  = %00111110



 - - - - Sammanfattning 10 kHz

TRISC.2 = 0		'PortC.2 output
CCP1CON = %00101100	'Mode select = PWM, two LSB of DC
T2CON   = %00000101	'Timer2 ON + 1:4 prescale
CCPR1L  = %00111110	'DC = 50%
PR2 = 124
Användarvisningsbild
Jine
Inlägg: 1795
Blev medlem: 21 juli 2004, 20:25:56
Skype: Jim.Nelin
Ort: Trångsund, Stockholm
Kontakt:

Inlägg av Jine »

tack stiff.. Räddaren i nöden som vanligt!.. Ska testa koden sen..

Hedis: Va? Var kommer 38khz in i bilden?
Användarvisningsbild
Hedis
Inlägg: 2493
Blev medlem: 8 december 2003, 15:10:44
Ort: Vänersborg
Kontakt:

Inlägg av Hedis »

Hmm, läste nog lite för snabbt.
"Uträknade av mig, Med hjälp av 38KHz kod.. "

Fick då för mig att du ville sända IR-signaler o modulera dessa i µC´n.
Sorry :)
Användarvisningsbild
Jine
Inlägg: 1795
Blev medlem: 21 juli 2004, 20:25:56
Skype: Jim.Nelin
Ort: Trångsund, Stockholm
Kontakt:

Inlägg av Jine »

Np..!

Stiff har hjälp mig med både IR modulationen (38khz) och 10khz Nu ;) Tack :D
Användarvisningsbild
babbage
Inlägg: 655
Blev medlem: 10 november 2004, 11:33:17
Ort: N-tälje

Inlägg av babbage »

Nu när du har ett ljudkortsoscilloskop är det ett par saker som kan vara bra att tänka på.

Ingången på ljukortet har antagligen ett antialias-filter (kanske någonstans mellan 16 till 20 kHz, beror på ljudkort). Det gör att en fyrkantsvåg på 10kHz inte ser ut som en snygg fyrkantsvåg utan mera som en sinus. Men det går fotfarande bra att bestämma periodtiden/frekvensen.

Om man tittat på vågformen med ett ljudprogram kan även det verka menligt på kurvformen. Om man har otur använder den linjär interpolation för att rita kurvformen.

Jag har inget program på lut just nu men om någon annan kan tipsa om ett program som återskapar samplingar på ett bra sätt så kanske det hjälper Jine
Användarvisningsbild
Jine
Inlägg: 1795
Blev medlem: 21 juli 2004, 20:25:56
Skype: Jim.Nelin
Ort: Trångsund, Stockholm
Kontakt:

Inlägg av Jine »

Har googlat lite och hittat runt 12371827398 program som kan använda ljudkortet som oscilloskop så det är inget problem!
Skriv svar