Forum: Mikrocontroller und Digitale Elektronik PMW und Tutorials für dsPIC33xxxxx


von Jens G. (Firma: fa. Seuffer) (willi-helmchen)


Lesenswert?

Hy leute,
ich muss für meine Diplomarbeit mit einem dsPIC33 über die PWM ein 
Signal erzeugen aus dem man einen Sinus gewinnt (keine Panik ist nur ein 
kleienr Teil davon)
Ich Programmiere das ganze über das MPLAB IDE v7.60 in C.
Theoretisch weis ich wie das ganze umzusetzen ist jedoch hab ich 
Probleme beim Programmieren bzw Inizialsieren der PWM.
ich hab jetzt schon mehrfach versucht die PWM mit einer konstanten 
Frequenz und DutyCicle einfach mal in Betrieb zu nehmen aber eher mit 
mässigem Erfolg.

Danach hab ich mich mal auf die Suche nach Tutorials für den dsPIC33 
gemacht aber auch nichts gefunden.

Jetzt wollte ich mal fragen ob jemand weis wo ich für den dsPIC33 
Tutorials finde, vielleicht sogar vom Hersteller selbst. Da habe ich auf 
der HP nämlich auch nichts gefunden.
Oder hat jemand ein einfaches PWM Beispiel für den dsPIC33 oder PIC24??

von w124Dennis (Gast)


Lesenswert?

Hallo Jens,

zeig doch mal dein source code, vieleicht kann die ja jemand helfen.
Und Erzähl uns noch was für ein compiler du benutzt

gruß Dennis

von Jens G. (Firma: fa. Seuffer) (willi-helmchen)


Lesenswert?

Sourcecode folgt noch, muss ich erst vom Laptop auf dem ich programmiere 
auf den PC rüber nehmen, wobei das im Moment nicht viel ist, da ich gead 
wieder neu anfange.
Ich benutze den MPLAB IDE v7.60 mit dem Mircochip C30 Toolsuite. Ist 
also der MPLAB C30 C Compailer

von Jens G. (Firma: fa. Seuffer) (willi-helmchen)


Angehängte Dateien:

Lesenswert?

Hier mal ein Teil des Sourcecodes.
Hab grad das Problem das er jedesmal eine Fehlermeldung bringt und sagt 
er erkennt P1TCON nicht obwohl das ja Laut datenblatt ein Register der 
PWM ist.
Was mach ich falsch

von holger (Gast)


Lesenswert?

>P1TCON    =0b800C    //PWM Timebase Control register

Nimm statt dem b mal ein x

von Jens G. (Firma: fa. Seuffer) (willi-helmchen)


Lesenswert?

ist eigentlich ein x. habe nur mal das HEX Wort in binär hingeschrieben 
und hat auch net geklappt. Beim zurückschreiben in HEX hab ich nur 
vergessen aus dem b ein x zu machen. Daran liegt es net.

hier mal die Fehlermeldung:

error: 'P1TCON' undeclared

muss ich dem noch irgendwo expliziet sagen das es sich um ein Register 
des PWM Modul handelt??
Oder kann sein das er die H files nicht richtig eingebunden hat, wenn ja 
wie kann ich das beim C30 Compailer überprüfen??

von Jens G. (Firma: fa. Seuffer) (willi-helmchen)


Lesenswert?

dieser Beitrag ist nur für die Emailbenachrichtigung :-)

von Carsten S. (carsten)


Lesenswert?

Ich finde im Datenblatt kein P1TCON Register deines µCs. Meinst du 
vielleicht T1CON??

von Jens Großmann (Gast)


Lesenswert?

Nein müsste schon P1TCON sein. Gugst du hier in Mircochip PDF für PWM

http://ww1.microchip.com/downloads/en/DeviceDoc/70187B.pdf

von Carsten S. (carsten)


Lesenswert?

Du hast eine GeneralPurpose µC in deinem Projekt ausgewählt. 
(dsPIC33fj256gp710)
Die spezielle PWM Einheit die du nutzen möchtest ist aber nur in den 
MotorControl-Typen enthalten, also dsPIC33FJxxxMCxxx.

von Jens Großmann (Gast)


Lesenswert?

Aja daran könnte es liegen :-)
Das ich keinen MC sondern GP habe, muss ich dann die Register aus dem 
Datenblatt des dsPIC33 nehmen und nicht die aus dem oben gelinkten PDF??

von Bernd R. (Firma: Promaxx.net) (bigwumpus)


Lesenswert?

In den GP-Typen fehlt die MotorPWM-Einheit komplett ! Da kannst Du die 
angeführte PDF komplett löschen !

Nimm einen MC-Typen.
Ich habe da einen BLDC-Motor angesteuert, der bei 18kHz für jeden 
einzelnen Zyklus des PWM-Moduls für alle 3 Phasen den Duty ausrechnet. 
Und der PIC hat immer noch nichts zu tun...

von Jens Großmann (Gast)


Lesenswert?

Ne der GP Typ ist schon der richtige.
1. dieser ist in der Firma schon vorhanden und
2. ich muss kein Motor ansteuern sondern muss die PWM zur 
Signalgenerierung auf einem Kanal nutzen.

von Bernd R. (Firma: Promaxx.net) (bigwumpus)


Lesenswert?

Dann sieh Dir Kapitel 13 "Output Compare" an, das wäre dann PWM.

Der Preisunterschied liegt wohl unter 10 Cent !!!!

von Jens Großmann (Gast)


Lesenswert?

Laut unserer Controlling Abteilung bei unseren Stückzahlen ein gutes 
Stück mehr.
Aber die BWL´er feilschen ja eh um jeden Cent :-)

von Bernd R. (Firma: Promaxx.net) (bigwumpus)


Lesenswert?

Oje !!

Lad Dir mal MAPS auf www.mircochip.com/maps
Da gibt es die Preise in $ ... der € ist nicht viel anders.
Dann sprecht mit dem Microchip-Verkäufer bei Eurem Distri.

Dann bleibt nicht mehr viel übrig....

von Jens G. (Firma: fa. Seuffer) (willi-helmchen)


Lesenswert?

Ich glaub für solche sachen stehe ich zu weit unten in der Nahrungskette 
:-)
Aber ich glaub das ist hier auch nicht Thema des Threads

von Jens G. (Firma: fa. Seuffer) (willi-helmchen)


Angehängte Dateien:

Lesenswert?

Hab mir heut mal das richtige PDF zu gemüte geführt und mein Glück auf 
ein neues Versucht.
In der Theorie auch alles wunderbar, aber als ich mir die Codebeispiele 
vorgenommen hab und mein Glück mal selber versucht hab ist mal wieder 
garnichts passiert.
Ich hab zwar alles Compailiert bekommen und konnte es auch auf den PIC 
spielen aber das war es auch schon wieder. Ausgang bleibt tod.
Ich denk mal das mri irgendwo noch die Portinizialisierung fehtl aber 
ich komm allein nicht drauf.
Kann mir einer weiterhelfen??

von Bernd R. (Firma: Promaxx.net) (bigwumpus)


Lesenswert?

Ich würde mal die Priorität des INTs nicht verändern.
Ich würde den Int auch durch die fallende Flanke des PWM-Impulses 
erzeugen, dann kann die Einstellung für den nächsten Impuls berechnet 
werden, während die OFF-Zeit noch abläuft.
Sonst sehe ich nichts schlimmes.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.