Forum: Mikrocontroller und Digitale Elektronik PWM MSP430 an beliebigen Port


You were forwarded to this site from EmbDev.net. Back to EmbDev.net
von Ruppi98 .. (ruppi98)


Lesenswert?

Hallo,

ich habe folgende Aufgabe. Ich muss eine PWM über eine Porterweiterung 
PCF874A2 an einem bestimmten PIN ausgeben. Wie PWM erzeugt wird weis 
ich. Da habe ich aber immer am Timerpin die PWM ausgegeben. Wie mach ich 
das jetzt aber über die Porterweiterung an einem anderen Port? Könnte 
mir da mal jemand einen Tipp geben?

von Cyblord -. (cyblord)


Lesenswert?

Ruppi98 .. schrieb:
> Hallo,
>
> ich habe folgende Aufgabe. Ich muss eine PWM über eine Porterweiterung
> PCF874A2 an einem bestimmten PIN ausgeben. Wie PWM erzeugt wird weis
> ich. Da habe ich aber immer am Timerpin die PWM ausgegeben. Wie mach ich
> das jetzt aber über die Porterweiterung an einem anderen Port? Könnte
> mir da mal jemand einen Tipp geben?

Über die Timer Interrupts. Der Timer kann nicht mehr direkt die HW 
steuern. Aber er kann bei erreichen des TOP Wertes (PWM Wert) und des 
MAX Wertes (Überlauf) einen Interrupt auslösen. Darin setzt und löscht 
du dann deinen Ausgang über I2C.

Alles in allem aber eine blöde Idee. Wenn dann direkt einen PWM Baustein 
an I2C. Denn so wird der PWM nicht besonders schnell oder schön.

: Bearbeitet durch User
von Ruppi98 .. (ruppi98)


Lesenswert?

Hallo,

zunächst vielen Dank für die Antwort.
Leider liegt die Schaltung nicht in meinen Einflussbereich.
Ich fand das ja auch nicht schön, aber da dieser Bereich galvanisch 
getrennt sein muss, geht es nun mal nicht anders und ich muss die 
Vorgaben der HW-Abteilung erst mal versuchen umzusetzen. Die Gedanken, 
die Sie äußerten, hatte ich auch und ich werde jetzt mal schauen was 
dabei rauskommt.
Nochmals vielen Dank.

von Dieter W. (dds5)


Lesenswert?

Wie hoch soll denn die PWM Frequenz sein?
Bei 100kHz I2C Takt benötigt jeder Zugriff auf den 8574 mindestens 
160µs, das wird also recht gemütlich.
Und falls noch weitere I2C Teilnehmer am selben Bus hängen, geht das 
völlig schief.

von Ruppi98 .. (ruppi98)


Lesenswert?

Hallo,

ich benötige 1Hz PWM.

von Dieter W. (dds5)


Lesenswert?

Ruppi98 .. schrieb:
> Hallo,
>
> ich benötige 1Hz PWM.

Die Zeit für für die Datenübertragung zum 8574 bedeuten auch, dass weder 
die high noch die low Zeit des PWM Signals kürzer als 160µs werden kann.

von Ruppi98 .. (ruppi98)


Lesenswert?

Hallo,

wenn ich das richtig verstehe ist dann PWM mit 1Hz wohl gar nicht 
möglich?

von Harald K. (kirnbichler)


Lesenswert?

Ruppi98 .. schrieb:
> zunächst vielen Dank für die Antwort.
> Leider liegt die Schaltung nicht in meinen Einflussbereich.
> Ich fand das ja auch nicht schön, aber da dieser Bereich galvanisch
> getrennt sein muss, geht es nun mal nicht anders und ich muss die
> Vorgaben der HW-Abteilung erst mal versuchen umzusetzen.

Natürlich geht das anders. Ein zweiter µC wird anstelle des PCF874A2 via 
I2C angesteuert und erzeugt die PWM vor Ort.

Die offenbar vorgesehene galvanische Trennung der I2C-Schnittstelle 
hätte damit keine Probleme.

Was genau meinst Du mit "1 Hz PWM"?

Welche Auflösung soll die PWM haben? 8 Bit, 16 Bit?

von Ruppi98 .. (ruppi98)


Lesenswert?

Hallo,

bisher hatte ich 16Bit Auflösung.
Mit dem 2. MC bekomme ich bestimmt Stress mit der HW-Abteilung.

von Cyblord -. (cyblord)


Lesenswert?

Ruppi98 .. schrieb:
> Hallo,
>
> bisher hatte ich 16Bit Auflösung.
> Mit dem 2. MC bekomme ich bestimmt Stress mit der HW-Abteilung.

Falls du wirklich 1 Hz Periodendauer bei deiner PWM hast, brauchst du 
das nicht. Dann reicht I2C Locker.

von Gerhard O. (gerhard_)


Lesenswert?

Gab es da von NXP oder TI nicht einen Multikanal PWM LED Steuerbaustein 
mit I2C? Vielleicht könnte man den dazu mißbrauchen und dem Projekt 
unterjubeln und kann dann das PWM Signal autonom ausgeben. Weiß leider 
nicht mehr die Typenbezeichnung.

von Εrnst B. (ernst)


Lesenswert?

Gerhard O. schrieb:
> Gab es da von NXP oder TI nicht einen Multikanal PWM LED Steuerbaustein
> mit I2C?

PCA9685 z.B.

Aber ob der auf 1Hz runtergeht?
Evtl. kann der aber den bisherigen IO-Expander komplett ersetzen, HIGH 
und LOW werden dann als 0% und 100% PWM ausgegeben...

von Cyblord -. (cyblord)


Lesenswert?

Εrnst B. schrieb:
> Evtl. kann der aber den bisherigen IO-Expander komplett ersetzen, HIGH
> und LOW werden dann als 0% und 100% PWM ausgegeben...

Und wo ist da jetzt der Vorteil wenn er einen PCF8574 bereits drauf hat?
Du reißt einen Digital Baustein raus, machst einen PWM Baustein rein und 
benutzt dann den PWM Baustein als Digitalbaustein? Also da fällt mir 
wenig zu ein. Es geht bergab.

: Bearbeitet durch User
von Ruppi98 .. (ruppi98)


Lesenswert?

Hallo, das wird wohl nicht gehen,
da der PCF874A2 noch mehr schalten muss.
Einmal ein HL-Relais für Ansteuerung eines Heizelements und
dann noch ein Schutzrelais. Des weiteren noch ein Schatport.
Alles muss auch Reinforce isoliert sein zwischen MC und I2C-Baustein..

von Εrnst B. (ernst)


Lesenswert?

Cyblord -. schrieb:
> Und wo ist da jetzt der Vorteil

Der Vorteil ist, dass die "HW-Abteilung" vom TE scheinbar ein Problem 
mit zusätzlichen ICs hat, und er dann "Stress" mit denen bekommt.

So bleibt die IC-Anzahl konstant...

Klingt blöde, ist aber wohl so...

Cyblord -. schrieb:
> Es geht bergab.
Ja.

von Cyblord -. (cyblord)


Lesenswert?

Εrnst B. schrieb:
> Der Vorteil ist, dass die "HW-Abteilung" vom TE scheinbar ein Problem
> mit zusätzlichen ICs hat, und er dann "Stress" mit denen bekommt.

Nur gibt es den PCF ja schon und du willst jetzt aber noch einen PWM 
Baustein der nichts bringt vorschlagen?

: Bearbeitet durch User
von Εrnst B. (ernst)


Lesenswert?

Ruppi98 .. schrieb:
> Alles muss auch Reinforce isoliert sein zwischen MC und I2C-Baustein..

Wo ist das Problem? Wenn dein I²C schon isoliert ist, kannst du auf die 
isolierte Seite doch auch einfach zwei oder einen anderen 
I²C-Portexpander hängen, ohne dass das was an der Isolation ändert.

von Cyblord -. (cyblord)


Lesenswert?

Ruppi98 .. schrieb:
> Hallo, das wird wohl nicht gehen,
> da der PCF874A2 noch mehr schalten muss.
> Einmal ein HL-Relais für Ansteuerung eines Heizelements und
> dann noch ein Schutzrelais. Des weiteren noch ein Schatport.
> Alles muss auch Reinforce isoliert sein zwischen MC und I2C-Baustein..

Für was wird denn die 1 Hz PWM benötigt?
Ich finde das immer noch sehr langsam.

Und ignoriere bitte Ernst, der versteht nicht um was geht und tippt 
gerne wirres Zeug.

: Bearbeitet durch User
von Εrnst B. (ernst)


Lesenswert?

Cyblord -. schrieb:
> Nur gibt es den PCF ja schon und du willst jetzt aber noch einen PWM
> Baustein der nichts bringt vorschlagen?

Usrprünglich hab ich die Frage von Gerhard nach

Gerhard O. schrieb:
> Multikanal PWM LED Steuerbaustein mit I2C

Beantwortet.

Aber wenn dich das so schön Triggert:
Man könnte noch einen zusätzlichen Z80 verbauen, der die PWM erzeugt.

von Ruppi98 .. (ruppi98)


Lesenswert?

Die PWM steuert ein HL-Relais, welches verschiedene Heizelemente
ansteuert für verschiedene Gräte.

von Cyblord -. (cyblord)


Lesenswert?

Εrnst B. schrieb:
> Usrprünglich hab ich die Frage von Gerhard nach

Mir ist schon klar dass du unnütze Fragen beantwortest die niemand 
gestellt hat.
Nur mit dem Anliegen des TE hat das nichts zu tun. Unterhalte dich doch 
mit Gerhard privat und lasse den Thread hier On-Topic.

: Bearbeitet durch User
von Cyblord -. (cyblord)


Lesenswert?

Ruppi98 .. schrieb:
> Die PWM steuert ein HL-Relais, welches verschiedene Heizelemente
> ansteuert für verschiedene Gräte.

Also eher sowas wie Wellenpaketsteuerung.
Wie gesagt: 1 Hz direkt über PCF8574 sollte locker gehen. Musst halt die 
SW entsprechend stricken und oft genug den I2C Zyklus fahren.

von Ruppi98 .. (ruppi98)


Lesenswert?

Hallo,

möchte den Beitrag hier zunächst beenden.
Mich interessierte, ob meine Gedanken bezüglich Timer mit IR
auch von anderen so gesehen werde. Werde mal mich an die Umsetzung 
machen.
Allen, die an der Diskussion teilgenommen haben, vielen Dank und ein 
schönes WE.

von Dieter W. (dds5)


Lesenswert?

Ruppi98 .. schrieb:
> Die PWM steuert ein HL-Relais, welches verschiedene Heizelemente
> ansteuert für verschiedene Gräte.

Dafür wäre eine 16 Bit PWM völlig oversized.

von Ruppi98 .. (ruppi98)


Lesenswert?

Hallo Dieter,

das ist mir klar. Da reichen auch 8Bit. Aber so ist nun mal die Vorgabe 
vom Auftraggeber.

von Harald K. (kirnbichler)


Lesenswert?

Ruppi98 .. schrieb:
> Aber so ist nun mal die Vorgabe vom Auftraggeber.

Aha. Und der musst Du Dich komplett sklavisch unterwerfen, ohne auch nur 
eine Frage stellen zu dürfen, wieso das so sein muss?

Seltsame Beschäftigungsverhältnisse.

Oder bist der Auftraggeber Du selbst, und Du willst Dir selbst nicht 
eingestehen, daß Du Dich mit Deinem Hardwaredesign ein wenig verrannt 
hast?

von Εrnst B. (ernst)


Lesenswert?

Ruppi98 .. schrieb:
> das ist mir klar. Da reichen auch 8Bit. Aber so ist nun mal die Vorgabe
> vom Auftraggeber.

Das wirft weitere Fragen nach der Hardware auf...

Entweder es ist eine Wellenpaketsteuerung, mit ZeroCrossing-Detection in 
Hardware. Dann sind in deiner Sekunde 100 Halbwellen die du zu- oder 
abschalten kannst.
7 Bit würden reichen, genauer geht es eh nicht.

Oder du sollst mit deiner PWM einen Phasenanschnitt/abschnitt ansteuern. 
Dann geht's genauer, aber: Du solltest deine PWM mit dem Nulldurchgang 
synchronisieren, und eine Periodendauer von 1s macht auch keinen Sinn.

von Ruppi98 .. (ruppi98)


Lesenswert?

Hallo Harald,

ich unterwerfe mich keinesfalls "sklavisch".
Aber ich habe das HW-Design nicht gemacht,
deshalb kann ich mich auch nicht verrennen!

Im übrigen verstehe ich nicht, wieso hier immer noch gepostet wird.
Ich habe den Beitrag doch als geschlossen gekennzeichnet.

Was die PWM angeht, haben wir jetzt eine andere Steuerung vorgesehen
Damit ist das Thema für mich jetzt beendet!!!

Ich wünsche allen eine schönes Pfingsten.

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.