PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PWM mit 4785



steep
16.01.2006, 04:24
Hallo,
ich wollte mit dem einem Zähler und 2 IC 7485 eine 4 (8 )-bit pwm-Schaltung realisieren. Da das PWM-Signal etwa 5kHz haben soll habe ich diese diskrete Lösung gewählt.
Diese läuft auch wunderbar, nur lässt sie sich nicht ganz auf Null stellen.
Wenn ich die Eingänge B0-B3(B7) auf GND lege kommen am Ausgang immer noch kleine Low-level Impulse an und wenn ich die Eingänge B0-B3(B7) auf High-level lege dann habe ich am Ausgang richtigerweise konstant low.
Wie erreiche ich dass bei B0-B3(B7) auf GND der Ausgang konstant auf High-level liegt, so dass ich, wenn alle Eingänge auf Low liegen 0% und bei High-level 100% pwm habe.


Den IC habe ich folgendermassen beschaltet: 4 bit

ranke
16.01.2006, 14:33
Hallo Robert,
wenn ich das jetzt richtig durchdacht habe, versuchst Du mit 4 Bit 17 verschiedene Zustände zu kodieren (was natürlich nicht geht).
Am einfachsten dürfte es sein, den Zähler nicht bei Null, sondern bei Eins zu starten. Mit einem programmierbaren Zähler sollte das eigentlich relativ unproblematisch gehen.
Gruß Uli

steep
16.01.2006, 14:55
Hallo Robert,
wenn ich das jetzt richtig durchdacht habe, versuchst Du mit 4 Bit 17 verschiedene Zustände zu kodieren (was natürlich nicht geht).
Gruß Uli

Nein, eigendlich nur 16 (256)Zustände.
"0000(0000)" = 0 dez = dauernd High-level bis
"1111(1111)" = 15 (255) dez = dauernd low-level
also ein 100% PWM.

ranke
16.01.2006, 15:16
Ja, dass du 16 Stufen haben willst (4 Bit) ist mir schon klar. Was du aber tatsächlich bekommst ist:

1. Stufe (Ausgang dauernd low)
2. Stufe (Ein high Impuls auf 15 Low Impulse)
3. Stufe (Zwei High Impulse auf 14 Low Impulse)
etc.
16. Stufe (15 High Impulse auf 1 Low Impuls)
17. Stufe (Ausgang dauernd high)

Macht also 17 verschiedene Zustände und das kann man eben mit 4 Bit nicht mehr. Deshalb mein Vorschlag, nur 15 verschiedene Zählerzustände zuzulassen (Dann werden es 16 Stufen).

kalledom
16.01.2006, 15:29
B3...0 = 0000 und A3...0 = 0000 ergibt A>B = 0, weil A nicht größer als B ist.
Wenn A>B ist, dann wird der Ausgang A>B = 1. Dazu muß der Kaskadier-Eingang A>B auch auf 1 liegen.
Die Ausgänge sind high-aktiv.

steep
16.01.2006, 16:58
B3...0 = 0000 und A3...0 = 0000 ergibt A>B = 0, weil A nicht größer als B ist.
Wenn A>B ist, dann wird der Ausgang A>B = 1. Dazu muß der Kaskadier-Eingang A>B auch auf 1 liegen.
Die Ausgänge sind high-aktiv.

Eben, die 0 erreiche ich nicht. Wass ich auch anstelle, bei null ist immer ein Puls drinn.

kalledom
16.01.2006, 17:18
Dann drehe A und B doch um.
A>B mit A kleiner B natürlich tauschen (hier mag jemand das Kleiner-Zeichen nicht)
Du kannst A>B mit A=B auch noch OR / NOR verknüpfen.

steep
16.01.2006, 17:33
Dann drehe A und B doch um.
A>B mit A kleiner B natürlich tauschen (hier mag jemand das Kleiner-Zeichen nicht)
Du kannst A>B mit A=B auch noch OR / NOR verknüpfen.

Mit dem tauschen gehts eben auch nicht, dann ist das Problem einfach die "1111" bei welcher ich dann einen Puls drinn hab.
Mann müsste so was in der art einer -1 vom zähler erhalten damits geht :-)
Stehe da irgendwie voll auf dem Schlauch, sehe vor lauter Wald die Bäume nimmer.

kalledom
16.01.2006, 17:38
Dann wirst Du wohl A>B mit A=B z.B. über 2 Dioden Oder-verknüpfen müssen. Sieh mal in die Wahrheitstabelle, vor Allem für die Pegel der Kaskadier-Eingänge.

alex112
25.04.2006, 14:10
Hallo !

Können Sie vielleicht was näheres dazu erklären.

Wie soll die ganze Schaltung aussehen ?

Mein Problem: ich habe am Ausgang von einem Gerät 8-bit paralleler Wert, der sich (unregelmässig) ca. 1 mal/pro 1-10 Sekunden ändert.
Dieses Wert muss in einen PWM-Signal umgewandelt werden.
PWM Frequenz spielt dabei keine so grosse Rolle.

Vielen Dank im Voraus

Alexander

kalledom
25.04.2006, 14:26
Hallo,
sollen die 8 Bit aus dem 'Gerät' entsprechend dem Wert 0...255 den Duty Cycle 0...100% bei dem PWM-Signal generieren ?
Das würde ich mit einem kleinen Controller realisieren: die 8 Bits zyklisch einlesen und entsprechend den PWM-Ausgang des Controllers setzen.

alex112
25.04.2006, 20:01
...geht das auch nicht ohne Controller ?
so wie oben beschrieben mit comparator wie 7485
(oder 74688 für 8-bit) und Zähler ?
Ich würde eine Lösung ohne Controller beforzugen die programmiert werden müssen.
mfg
Alexander

kalledom
25.04.2006, 21:51
Du brauchst dann einen 8 Bit Zähler, dessen Ausgänge an zwei 7485 gehen, z.B. an A0...A3. Die 8 Bits von dem 'Gerät' werden dann an B0...B3 angeschlossen. Input A kleiner B an high, die restlichen Eingänge an low.
Wenn dann der Zähler bei 0 losläuft, ist A vermutlich erst mal kleiner als die 8 Bits von dem 'Gerät', entsprechend der Ausgaqng A kleiner B high.
Sobald A größer gleich B ist, geht der Ausgang A kleiner B auf low, bis der Zähler nach 255 wieder 0 wird.
Da der 8 Bit Zähler immer von 0 bis 255 zählt, ist die PWM-Frequenz = TaktFrquenz / 256. Duty Cycle ist abhängig von dem 8 Bit Wert an den B-Eingängen der beiden 7485.
Die Kleiner- und Größer-Zeichen muß ich ausschreiben, weil sie sonst als HTML-Tags interpretiert werden.

PS: Mit dem 74688 geht das nicht, weil der nur einen Ausgang für A=B hat.

alex112
26.04.2006, 10:32
... Zähler welcher Typ ? Und was mache ich mit zwei PWM Ausgängen ?
Wie soll die Schaltung aussehen ?
MfG
Alexander

kalledom
26.04.2006, 13:53
Der Zähler-Typ spielt keine Rolle, er muß 8 Bits liefern / zählen.
Im Anhang der Schaltplan.