Forum: Mikrocontroller und Digitale Elektronik PWM signal (ECCP)


von Vithu 1. (vithu_1)


Lesenswert?

Hallo zusammen,

ich habe den PIC18F4580 Mikrocontroller. Um einen Sensor US014 
anzusteuern bräuchte ich 2 PWM Signale, der eine muss invertiert sein. 
Ich habe es durch den Halb-Brücken Mode mit ECCP hinbekommen. Dies wird 
am P1A und P1B übergeben. Nun bräuchte ich nochmal das selbe, aber auf 
P1C und P1D um einen weiteren Sensor anzusteuern.

Meine Frage dazu ist wie ich auf denn anderen P1C und P1D die PWM 
Signale bekomme. Die PWM signal Ausgabe soll abwechselnd erfolgen. Wenn 
P1A und P1B Signal schicken soll P1C und P1D aus sein. Und wenn P1C und 
P1D Signal schicken soll P1A und P1B aus sein.


Könnte ich nicht P1C und P1D in Halb Brücken modus ansteuern ?
Ich hoffe ihr versteht was ich meine.

: Bearbeitet durch User
von Günni (Gast)


Lesenswert?

Am einfachsten ist, die PWM Signale mit einem Umschalter abwechselnd auf 
die beiden Brücken zu verteilen, wobei ein Port die Richtung des 
Umschalters steuert (Brücke 1 oder Brücke 2). Der Baustein CD4052 oder 
74HC4052 hat 2 Schalter mit je 4 Stellungen, der Baustein CD4053 oder 
74HC4053 hat 3 Umschalter. Alternativ kann man die Signale auch mit 
Relais umschalten, was aber aufwändiger ist.

von H. B. (Gast)


Lesenswert?

Du kannst doch damit auch 4 PWM´s ausgeben.

von Vithu 1. (vithu_1)


Lesenswert?

Leider nicht wie ich oben beschrieben habe. Könnte ich nicht einen 
Halbbrücken Mode mit P1C und P1D generieren? Habe was von PWM Steering 
mode gelesen. Jedoch kann ich mit dem nur die selbe PWM Signal an alle 
Pins gleichzeitig ausgeben. Ich bräuchte ja 2 mal invertierte PWM 
signal. Liege ich da richtig ?

von Günni (Gast)


Lesenswert?

Irgendwie muss ich etwas falsch verstanden haben. So wie ich es 
verstanden habe, gehen die Ausgänge P1A und P1B "irgendwie" auf den 
Sensor. Und das klappt ja wohl auch. Wenn man die Halbleiterschalter 
dazwischen schaltet, geht das weiterhin, wenn das zusätzlich benötigte 
Umschaltsignal den entsprechenden Pegel hat. Ändert man das 
Umschaltsignal, ist der Sensor von P1A und P1B getrennt und nun bekommt 
der zweite Sensor die Portsignale. Ohne ein Schaltbild wie das jetzt 
aufgebaut ist, sehe ich nichts, was dagegen sprechen kann, dass das so 
funktioniert.

Und wer den Halbleiterschalter nicht nehmen möchte, kann ein Relais (2 
polig Umschalter) nehmen, mit dem die Ports P1A und P1B im Ruhezustand 
wie bisher mit dem Sensor 1 verbunden sind und - wenn das Relais 
angezogen ist - werden P1A und P1B mit dem Sensor 2 verbunden. Ich finde 
da jedenfalls keinen Logikfehler. Der Aufwand ist nur deshalb größer, 
weil solch ein Relais meist mit 12 V betrieben werden muss und der Port 
für das Umschaltsignal solch ein Relais nicht ohne einen 
Treibertransistor ansteuern kann.

Aber wie gesagt, ohne ein Schaltbild des bisherigen Aufbaus kann ich 
nicht tiefer in Details gehen (Bleistiftskizze reicht aus). Ich kann 
mich aber heute nicht mehr darum kümmern. Morgen bin ich hoffentlich 
wieder hier erreichbar.

von Vithu 1. (vithu_1)


Angehängte Dateien:

Lesenswert?

Ich habe 2 Sensoren die als Sender und Empfänger arbeiten. Beim S1 habe 
ich es hinbekommen das der Piezokristall von der Sensor schwingt.

Nun muss der 2 Sensor in betrieb genommen werden. Wie man auf dem Bild 
sieht soll der S2 auf Pin PxC und PxD verbunden sein.

Nach meiner recherche und ausprobieren habe ich es nicht hinbekommen das 
aus der PxC und PxD PWM erhalte.

Die Halbbrücken Mode dient dazu damit ich die Sensoren abwechseln als 
Sender schalten kann. Also wenn S1 als Sender arbeiten soll, wird PxA 
und PxB geschaltet in halbbrücken Mode, damit ich einen invertierten und 
normalen PWM signal an S1 ausgeben kann. Nun soll die selbe Funktion für 
S2 vorgenommen werden. Dabei war die Überlegung das PxA und PxB 
ausgeschaltet wird(Trisregister auf 0) und die anderen zwei 
eingeschaltet.

ICh hoffe ich konnte dir meinen Vorgehen etwas näher beschreiben

von H. B. (Gast)


Lesenswert?

Du könntest einen PIC nehmen bei dem man die PWM Outputs verschiedenen 
Pins zuweisen kann (Peripheral Pin Select PPS).
Damit kannnst du dann die beiden Signale zwischen den Sensoren 
umschalten.

Oder du benutzt einen 74LVC125A als Umschalter.

von Vithu 1. (vithu_1)


Lesenswert?

Könnte ich mithilfe von PPS auch 2 PWM Signale erstellen die sollen 
dieselbe Frequenz haben und invertiert sein?

von H. B. (Gast)


Lesenswert?

Wenn man als Beispiel mal den PIC32MX270 nimmt.

Du erzeugst ein PWM und gibst es auf dem OC1 (Output Compare 1) aus.
Das zweite PWM das zum ersten invertiert ist gibst du auf OC2 (Output 
Compare 2) aus.

An RPA0 und an RPA1 hängt dein erster Sensor.
Wenn der angesteuert werden soll dann mapst du OC1 auf den Port Pin RPA0 
und OC2 auf den Port Pin RPA1.

An RPB4 und an RPB5 hängt dein zweiter Sensor.
Wenn der angesteuert werden soll dann mapst du OC1 auf den Port Pin RPB4 
und OC2 auf den Port Pin RPB5.

Die Port Pins auf die das PWM nicht gemappt wird, schaltest du 
hochohmig.

von Vithu 1. (vithu_1)


Lesenswert?

Gibt es kein anderen Möglichkeit mit dem PIC18F4580 ? Da ich eine 
Platine/PIC von einer Vorlesung benutze.

von H. B. (Gast)


Lesenswert?

Vithu 1. schrieb:
> Gibt es kein anderen Möglichkeit mit dem PIC18F4580 ? Da ich eine
> Platine/PIC von einer Vorlesung benutze.

Dazu kenne ich den PIC18 zu wenig.
Aber der kann doch bis zu 4 PWM Signale erzeugen?

von Vithu 1. (vithu_1)


Lesenswert?

Ich habe am Pic18f4580 denn Mode ECCP. Ich dachte ich kann da 4 PWM 
signale erzeugen leider gelingt da nur 2 PWM signale. Dazu musste ich 
Denn Halbbrücken Mode von ECCP anwenden.

von H. B. (Gast)


Lesenswert?

Vithu 1. schrieb:
> Ich habe am Pic18f4580 denn Mode ECCP. Ich dachte ich kann da 4 PWM
> signale erzeugen leider gelingt da nur 2 PWM signale. Dazu musste ich
> Denn Halbbrücken Mode von ECCP anwenden.

Ich befürchte dass es mit diesem Prozessor wirklich nicht geht was du 
vorhast.

Du hast mit dem ECCP im Halbbrücken Modus 2 gegenpolige PWM´s erzeugt 
indem du vermutlich die Dead Band Delays auf 0 gesetzt hast.
Im Full Bridge Mode kannst du das leider mit den anderen beiden 
PWM-Ausgängen nicht so machen.

Schalt lieber mit einem 74LVC125 die Signale zwischen den beiden 
Sensoren um.
Den Baustein gibts im SOIC-Gehäuse, das kann man einfach löten und es 
reicht wenn du am Baustein zwischen VCC und GND einen 100nF 
Keramikkondensator schaltest, mehr ist nicht nötig.

Du brauchst dazu nur 2 I/O Pins zum Umschalten.
Das ist in 2 Minuten programmiert.

von Vithu 1. (vithu_1)


Lesenswert?

wenn ich mit dem 74LVC125 die Signale umschalte, würde ich auch die 
gleiche PWM Signale am Sensor bekommen ? oder ist der Schalter begrenzt 
? Habe ein PWM signal von etwa 900khz

von H. B. (Gast)


Angehängte Dateien:

Lesenswert?

Vithu 1. schrieb:
> wenn ich mit dem 74LVC125 die Signale umschalte, würde ich auch die
> gleiche PWM Signale am Sensor bekommen ? oder ist der Schalter begrenzt
> ? Habe ein PWM signal von etwa 900khz

Ein wenig integriert er die Flanken schon.
Hab das mal gemessen bei PWM 10%, PWM 50% und PWM 90%
PWM ist 1MHz.

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.