Generera 38Khz m.h.a. CPP pin (PIC16F628A) (MikroC) - HUR?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Inlägg av Micke_s »

sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Ja, det kan man ju säga, men i detta fall så har han ju redan gjort
det (rtfm) så då får vi utgå därifrån. Nu återstår att försöka förstå
*VAD* som var så oklart i databladet. På den punkten måste Nilsson
bli betydligt tydligare. Det är ju helt bortkastat att upprepa sådant som
Nilsson faktikt förstog...

Så, Nilsson, *vad* var det som var så oklart ?

Det är ju faktiskt bara 4 rellativt enkla punkter att följa :
9.3.3 SET-UP FOR PWM OPERATION

The following steps should be taken when configuring
the CCP module for PWM operation:

1. Set the PWM period by writing to the PR2 register.

2. Set the PWM duty cycle by writing to the
CCPR1L register and CCP1CON<5:4> bits.

3. Make the CCP1 pin an output by clearing the TRISB<3> bit.

4. Set the TMR2 prescale value and enable Timer2
by writing to T2CON.
Nilsson
Inlägg: 60
Blev medlem: 12 januari 2007, 21:20:26
Ort: Göteborg

Inlägg av Nilsson »

Okej, tack vare era bra sidor (och datablad, sodjan :wink: ) kan jag nu fixa så att jag får ut en PMW signal.. MEN jag lyckas inte få rätt värde på frekvensen :oops:

jag försökte lite, men frekvensen blev helt åt helvete fel...

M.h.a sidan som bearing länkade till kom jag fram till följande:

Kod: Markera allt

PR2 = 255;
CCPR1L = 64;
2CON = 0b00000100;
CCP1CON = 0b00001111;
Detta ger mig då altså 9766 Hz men hur ska jag ställa in registren för att få 38Khz?
Jag lyckade komma i närheten typ 37,9***Khz men då blev "DutyCyclen" helt skev.. vad har jag missat ?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> men hur ska jag ställa in registren för att få 38Khz ?

Omöjligt att säga utan att veta vilken oscillator frekvens du kör med.
Som du ser i formeln för "PWM period" på sidan 58, så ingår Tosc där,
d.v.s cyceltiden för oscillatorn, t.ex 50 ns om du mer med 20 Mhz.

Hur som helst, ingen annan kommer någonstans utan att veta det...

(Visst, man kan räkna baklänges utifrån de uppgifter du har lämnat,
men det orkar jag inte...)
bearing
Inlägg: 11677
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Inlägg av bearing »

Du ska alltså ändra värdet på PR2. Lös t.ex. ut PR2 ut formeln och räkna ut värdet. Sen måste ju CCPR1L ha värdet (PR2+1)/2 för att du ska få 50% duty.
Användarvisningsbild
bengt-re
EF Sponsor
Inlägg: 4829
Blev medlem: 4 april 2005, 16:18:59
Skype: bengt-re
Ort: Söder om söder
Kontakt:

Inlägg av bengt-re »

En liten erfarenhet som är lite ologisk, men intressant ändå är att det förefaller som man får längre räckvidd för samma strömTid integral om man kortar till tiden och ökar strömmen motsvarande. Säger inte att det är en universell sanning, men något jag noterade när jag labbade med 38kHz ir-länkar. Ta det för vad det är, en tes och ETT resultat som kan vara idé att testa vidare på.
Nilsson
Inlägg: 60
Blev medlem: 12 januari 2007, 21:20:26
Ort: Göteborg

Inlägg av Nilsson »

sodjan

Omöjligt att säga utan att veta vilken oscillator frekvens du kör med.
oj jävlar ja.. jag tänkte på det hela tiden men jag glömde ändå skriva det. PINSAMT :oops:
det är en 4Mhz.. men det kanske är för lågt för att det äns ska funka ? :?
Användarvisningsbild
bengt-re
EF Sponsor
Inlägg: 4829
Blev medlem: 4 april 2005, 16:18:59
Skype: bengt-re
Ort: Söder om söder
Kontakt:

Inlägg av bengt-re »

Med högre klockfrekvens så kan oftast hamna närmare, men fick du 37,9 så är det ju utmärkt. Så känsliga på exakt frekvens är de inte.
Nilsson
Inlägg: 60
Blev medlem: 12 januari 2007, 21:20:26
Ort: Göteborg

Inlägg av Nilsson »

Men då blev, som sagt, "DutyCyclen" helt skev... :shock:
jag känner att jag behöver hjälp med den exakta uträkningen. Jag vill ha (närliggande) 38Khz 50% DutyCycle för det är vad en IR-Mottagare (oftast) vill ha, om jag fattat rätt...

men tack ändå, för det snabba svaret :wink:
Nilsson
Inlägg: 60
Blev medlem: 12 januari 2007, 21:20:26
Ort: Göteborg

Inlägg av Nilsson »

Nu lyckades jag komma ganska nära.. (hoppas att det är tillräckligt)
Jag skrev koden:

Kod: Markera allt

     // PMW
     PR2 = 52;
     CCPR1L = 26;
     T2CON = 0b00000100;
     CCP1CON = 0b00001111;
och då blev resultatet:
Bild
tror inte att man kan komma så mycket närmare med en 4Mhz.are
Användarvisningsbild
bengt-re
EF Sponsor
Inlägg: 4829
Blev medlem: 4 april 2005, 16:18:59
Skype: bengt-re
Ort: Söder om söder
Kontakt:

Inlägg av bengt-re »

Det där är perfekt, Som sagt - har du tid och lust så kan det löna sig att labba med pulsfaktorn då det verkar som man kan förbättra räckvidden på att använda en kortare tilltid (om man ökar strömmen i motsvarande grad).
Pjoms
EF Sponsor
Inlägg: 644
Blev medlem: 24 maj 2004, 12:18:40
Ort: Ö-vik

Inlägg av Pjoms »

>"En liten erfarenhet som är lite ologisk ... är att det förefaller som man får längre räckvidd ... om man kortar till tiden och ökar strömmen motsvarande."

Jag har inte pysslat så mycket med IR så jag vet inte om jag är ute och cyklar nu, men för mig känns det väldigt logiskt. Om man ökar strömmen genom dioden lyser den ju starkare även om det är en kortare tid. Uppehållet blir ju längre till nästa puls för att hålla 38kHz, men när den väl lyser så är det intensivare.

En grov jämförelse för påvisa hur jag menar. Vad syns bäst/längst?
En liten ficklampa som blinkar 5sek till 5sek från, eller
ett 100W extraljus som blinkar 2sek till 8sek från?

:D Som sagt, jag kanske är helt ute och cyklar? :D
Användarvisningsbild
bengt-re
EF Sponsor
Inlägg: 4829
Blev medlem: 4 april 2005, 16:18:59
Skype: bengt-re
Ort: Söder om söder
Kontakt:

Inlägg av bengt-re »

Nej, du har i princip rätt och det är nog det som gör skillnaden. Medeleffekten blir ju den samma ungefär på 38kHz, övertonsspektrat ser olika ut, men torde ju kvittta då mottagen är okänslig för allt bortom ungefär 43-45 kHz. Så rent logiskt känns det som om att räckvidden inte borde öka, men det verkar det som att den gör - frågan är hur långt man kan dra det?
Nilsson
Inlägg: 60
Blev medlem: 12 januari 2007, 21:20:26
Ort: Göteborg

Inlägg av Nilsson »

Okej tack. Men först (när jag har tid) så ska jag koppla upp det och testa så det funkar i "verkligheten".. sen kan man ju börja "exprimentera" :roll:

Jag saknar ju oscilloscope så det är inte så lätt, men mjukvarusimulatorer brukar fungera fint :wink:
Skriv svar