Hej!
Jag försöker bygga en sinusvåggenerator mha PIC12F617. Tanken är att skapa en PWM signal där duty motsvaras av aktuell amplitud i sinusvågen och sedan lågpassfiltera med ett RC-filter (R i serie, C parallellt med last). Min tanke var att skapa en sinusvåg med 1Hz och PWM frekvens på 64Hz. Jag har en look-up tabell med 64 värden (0-2pi) som jag således matar in en efter en och byter alltså duty efter varje period. Den biten fungerar ok vad jag kan se på oscilloskopet, dvs 0-100-0% duty osv. Problemet kommer när jag filtrerar signalen. Jag använder C=10uF, R=1k vilket enl. mina beräkningar (f=1/(2piRC)) borde ge en brytfrekvens på ~15Hz. Signalen som jag får ut (efter RC-filtret) ser ut som någon grotesk böjd sågtand som stegvis går up och ner med uppskattningsvis 1Hz. Min tanke är att filtret är fel utformat, kanske ligger för nära PWM frekvensen?
Ett litet bekymmer är att jag inte kan öka PWM frekvensen så mycket. Har skrivet en SW PWM rutin i Hi-tech C men den är rätt seg, kan nog bara komma upp i kanske 200Hz. HW PWM är ju ett alternativ men jag är lite osäker på hur jag skall få till sinusvågen till rätt frekvens då.
Några tips eller idéer eller tänker jag galet?
Problem vid generering av sinusvåg från PWM, PIC12F617
Re: Problem vid generering av sinusvåg från PWM, PIC12F617
Du "måste" självklart göra PWM med den inbyggda hårdvaran till detta!
Sedan har du en timer-interrupt som lägger nytt värde in i PWM-registret.
Jag har gjort en sådan som kör 2-fas ut, dock inte med PWM, fungerar kalas.
Sedan har du en timer-interrupt som lägger nytt värde in i PWM-registret.
Jag har gjort en sådan som kör 2-fas ut, dock inte med PWM, fungerar kalas.
Re: Problem vid generering av sinusvåg från PWM, PIC12F617
Timer interrupt som ändrar duty låter ju som en bra idé. Hade inte en tanke på att man kunde göra så. Torde ju bli lätt att ändra frekvens också. Ska testa nu direkt.
Tack för tipset!
Tack för tipset!
Re: Problem vid generering av sinusvåg från PWM, PIC12F617
Här är en lab där vi tillverkar en 50 Hz sinus med PIC16F628/690.
Finns kanske någon idé att hämta här?
http://www.ict.kth.se/courses/IL131V/sinus/sinus628.htm
DR-PIC
Finns kanske någon idé att hämta här?
http://www.ict.kth.se/courses/IL131V/sinus/sinus628.htm
DR-PIC