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


von Jens K. (Gast)


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?

von Klaus (Gast)


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.

von Karl-heinz D. (kalledom)


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.

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.