PWM MSP430 an beliebigen Port

OP #7666039

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?

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.

OP

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.

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.

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?

Ε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.

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.

OP

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.

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?

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.

OP

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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 2 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.