www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Wie erzeuge ich so ein Signal?


Autor: Jens K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, habe folgendes Problem:

Ich muss ein digitales Signal auf einer einzelnen Leitung erzeugen, bei
jedes einzelne Bit ca. 4 µs dauert und folgendermassen kodiert ist:
0-Bit: 3 µs low danach 1µs high
1-Bit: 1µs low danach 3µs high

Wie realisiere ich das am besten? Habe bisher noch nie mit PWM
gearbeitet, hatte aber eine ungefähre Ahnung wie PWM funktioniert und
dachte ich könnte den Fast-PWM-Mode dafür benutzen - indem ich einfach
eine Zykluslänge von 4 µs einstelle, und dann noch eine Schwelle bis zu
der ein low signal und ab der bis zum Ende des Zyklus ein high-Signal
gesendet wird, und ich zu beginn jedes Zyklus die Schwelle einfach so
einstelle wie ich sie für das aktuelle Bit gerade brauche.
Als ich soeben die Beschreibung von PWM gelesen habe habe ich aber den
Eindruck erhalten dass das mit Fast-PWM gar nicht geht, weil ich zwar
die Schwelle beliebig einstellen kann - nicht jedoch die
Gesamt-Zyklus-Dauer (bzw. bei der Gesamt-Zyklus-Dauer nur ganz
bestimmte Werte und mindestens 256 CPU-Takte nehmen kann).

Frage: Ist das so korrekt, gibt es keine Möglichkeit das per PWM zu
machen? Und gibt es vielleicht noch eine andere Möglichkeit an die ich
bisher gar nicht gedacht habe?

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PWM ist hierfür weniger (nicht) geeignet, da dort "feste"
Tastverhältnisse eingestellt werden.
a)  3 low und 1 high ist kein Thema: Periode 4, Duty 1
b)  1 low und 3 high               : Periode 4, Duty 3

ABER: Das läuft dann fortwährend.
Du möchtest aber zwischen a) und b) fortwährend "moduliert"
umschalten.
Das macht mit PWM keinen Sinn.

Evtl. kann man mit SPI entsprechende Muster rausschicken oder man muss
das gleich "zu Fuß" tun.

Wenn das Raster "starr" ohne Lücken sein muß, brauchst Du (mind.)
einen Timer-Interrupt mit hier 1 us.
Wenn der auftritt, dann den Bitwechsel ausführen (wenn an dieser Stelle
erforderlich); sonst INT gleich beenden und in main auf nächsten INT
warten.

Autor: Karl-heinz Domnick (kalledom)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie wäre es mit einem CMOS 4017, 1 MHz Takt, Ausgang 4 an Reset,
Ausgang 0 über Inverter CMOS 40106 für 1/4 Low - 3/4 High,
Ausgang 1, 2 und 3 über 3 Dioden und PullDown an Inverter CMOS 40106
für 3/4 Low - 1/4 High,
hinter den beiden Invertern kann ausgewählt werden.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.