Sida 2 av 2
Postat: 24 januari 2007, 12:06:39
av Micke_s
Postat: 24 januari 2007, 12:49:49
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.
Postat: 24 januari 2007, 22:14:39
av Nilsson
Okej, tack vare era bra sidor (och datablad, sodjan

) kan jag nu fixa så att jag får ut en PMW signal.. MEN jag lyckas inte få rätt värde på frekvensen
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 ?
Postat: 24 januari 2007, 22:39:19
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...)
Postat: 24 januari 2007, 22:52:01
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.
Postat: 24 januari 2007, 22:56:55
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å.
Postat: 25 januari 2007, 21:40:31
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
det är en 4Mhz.. men det kanske är för lågt för att det äns ska funka ?

Postat: 25 januari 2007, 21:45:47
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.
Postat: 25 januari 2007, 22:05:05
av Nilsson
Men då blev, som sagt, "DutyCyclen" helt skev...

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

Postat: 25 januari 2007, 22:25:42
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:

tror inte att man kan komma så mycket närmare med en 4Mhz.are
Postat: 26 januari 2007, 12:01:21
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).
Postat: 26 januari 2007, 12:25:08
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?

Som sagt, jag kanske är helt ute och cyklar?

Postat: 26 januari 2007, 12:34:01
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?
Postat: 26 januari 2007, 21:15:03
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"
Jag saknar ju oscilloscope så det är inte så lätt, men mjukvarusimulatorer brukar fungera fint
