Hallo,
ich bin auf der Suche nach einem IC, was aus 8 Bit parallel eine PWM
generiert. Gibt es sowas?
Möchte also nach einem Registerbaustein mit wenig Aufwand eine PWM
generieren da die Controller ja immer nur so wenige PWM Ausgänge haben.
Viele Grüße,
Lars
Lars schrieb:> ich bin auf der Suche nach einem IC, was aus 8 Bit parallel eine PWM> generiert. Gibt es sowas?
Bin ich auch schon lange erfolglos am Suchen.
Habs dann mit einem CPLD realisiert.
HTH,
Jörg
Lars schrieb:> ich bin auf der Suche nach einem IC, was aus 8 Bit parallel eine PWM> generiert. Gibt es sowas?
Es gab doch mal die integrierten Peripheriebausteine in alten
Prozessorsystemen. Z.B. die Timer Intel 8253 oder 8254. Die hatten auch
einen PWM-Mode. Irgendwie muß man aber die Daten dort hinein bekommen.
Haben aber eine parallele 8-bit-Datenschnittstelle. Die PWM ist dort 16
bit breit. Nur das High-Byte beschreiben würde ja unter Umständen schon
reichen. Leider muß man da vorweg zusätzlich noch ein Kontrollwort
hinein schreiben, für den Betriebsmode. Aber sonst, läuft dieser
Baustein mit der PWM dann von ganz alleine. Einen Takt braucht er noch.
Ich befürchte, das hilft dir jetzt nicht wirklich.
Ui, so viele Antworten in so kurzer Zeit!
Also Soft-PWM wollte ich nicht machen obwohl es von der Frequenz sicher
reichen würde aber ich möchte den Controller und das Programm für andere
Sachen nicht belasten. Mein Grundaufbau war daher so geplant, dass ich
vom Controller ein Datenpaket zu einem bzw. beliebig viele
Speicherregister sende und die mir dann dauerhaft und autonom über das
gesuchte IC x eine PWM generieren bis ich neue Instruktionen sende.
Sogesehen müsste ja ein Parallel to Seriell genau das tun ;-)
Jetzt ist nur die Frage welches IC würde da passen? Ich wollte ein
74hc595 Register nehmen.
Lars schrieb:> da die Controller ja immer nur so wenige PWM Ausgänge haben.
Nur wenn man ungeeignete nimmt. Reichen dir 14 Timer mit insgesamt 33
PWM-Ausgängen (STM32F103Z)?
Ja, sowas hatte ich auch schon gefunden, hatte aber gehofft das es sowas
fertig gibt.
Die Lösung mit dem Parallel to Seriell ist vielleicht doch nicht so gut
da ich so ja nur 8 verschiedene Pulsbreiten generieren kann. Das ist
dann doch ein wenig wenig.
Nimm drei 74193 und einen Taktgenerator.
Die ersten zwei machen dir das Tastverhältnis der PWM, der dritte läuft
bis 255 und setzt dir die PWM zurück.
Fertig.
Wenn du das unbedingt zu Fuss machen willst: Pro PWM ein 8-Bit Register
(574) und einen 8-Bit Komparator (682). Und für alle zusammen einen
8-Bit Zähler (590).
Alternativ für 16 PWMs 5+2 ICs: 2x Dualport-Speicher (870), 1x 8-Bit
Komparator (682), 2x adressierbares Latch (259). Und für alles Zusammen
1x 8-Bit Zähler (590) und 1x 4-Bit Zähler (163).
@Lars,
wo, wie's Wilhelm sagt geht's. Nur musst Du statt des "8-bit magnitude
comparator" (74 688) zwei "4-bit magnitude comparator" (74 85) nehmen:
Die haben je drei getrennte Ausgänge für "kleiner als", "gleich" und
"grösser als". Die beiden Bausteine kaskadierst Du (wie das geht, steht
im Datenblatt von www.nxp.com). Der "kleiner als"-Ausgang des zweiten 74
85 liefert dann direkt das PWM-Signal. Das Datenwort, das das
Tastverhältnis steuert, kannst Du per SPI in ein Schieberegister (74
595) oder per TWI in einen "remote 8-bit I/O-expander" (PCF8574A)
schreiben
Einen Taktgenerator brauchst Du natürlich auch (z.B. 555 mit
Hühnerfutter). -Alles in allem kriegst Du's mit 4 SMD-ICs (plus 1
zentralen Taktgenerator) pro PWM-Ausgang hin.
mare_crisium
>ich bin auf der Suche nach einem IC, was aus 8 Bit parallel eine PWM>generiert. Gibt es sowas?
Das wird es wohl nicht geben (und wenn, dann ist es uralt).
Denn wenn man sowas braucht, nímmt man norm. ein uC mit spez PWMs dafür.
(TTL-Grab , CPLD, FPGA geht nat. auch, aber ist aufwändiger)
edgar schachler schrieb:> Es gab mal so ein IC von IXYS. 8 Bit Parallel in , PWM aus.> IXDP610 das war aber ziemlich teuer.
In einem kleinen µC nachbauen ?
MfG Klaus
Harald M. schrieb:> wo, wie's Wilhelm sagt geht's. Nur musst Du statt des "8-bit magnitude> comparator" (74 688) zwei "4-bit magnitude comparator" (74 85) nehmen:
Oder einen 74xx682/684.
Hallo Wilhelm,
doch, doch, ich komme nur bei den vielen Antworten gar nicht hinterher
;-)
Ich muss auch gestehen das ich jetzt nicht jeden Tag an Schaltungen
rumlöte und meine letzen Basteleien schon einige Jahre her sind. Daher
ergeben einige Antworten erst nach diversen Minütchen Recherche einen
Sinn.
Der 82C54 sollte auch gehen, kostet jetzt auch nicht die Welt. Mir war
wichtig das dieser Teil der Schaltung einfach und günstig werden soll
weil ich sonst wirklich einen anderen Controller nehmen werde, der mehr
PWM Kanäle bietet.
Ich werde mir heute abend mal das Datenplatt genauer anschauen.
Viele Grüße,
Lars
Lars schrieb:> Der 82C54 sollte auch gehen, kostet jetzt auch nicht die Welt.
Ich setzte den 82C54 mal in einem alten busorientierten µP-System mit
dem legendären Intel 8085 ein. Der lieferte mir dort an einem externen
Interruptpin ein exaktes Zeitsignal. Der 8085 hatte keinen integrierten
Timer.
Das elegante war eben, daß der Baustein ganz von alleine läuft, wenn er
einmal mit Kontrollwort und Daten initialisiert ist.
Und dann hat er auch noch 3 Timer zu je 16 bit, die man unterschiedlich
konfigurieren kann. Notfalls alle 3 als PWM.
Auch wenn das Zeugs eigentlich uralt ist, um nicht zu sagen, über 30
Jahre.
Man könnte zwar mal glauben, daß der Baustein irgendwann endgültig
abgekündigt wird. Manche aus der 82xx-Reihe halten sich aber noch gut.
Modernere Bausteine wurden schon nach 5 Jahren abgekündigt. Da steckt
man nicht dahinter. Aber Bewährtes geht weiter.
MCUA schrieb:> Für das Geld wäre ein CPLD viel besser. Ausserdem hat der 82C54 max nur> 8 MHz.
Vielleicht reichen ihm die 8 MHz. Ein CPLD ist aber auch durchaus
interessant.
Ein Gattergrab oder nochmehr ein CPLD hätten einen schönen Lerneffekt...
Wenn du die Zeit hast, nimm beides. Das CPLD zum ersten Verzweifeln, den
Gatterhaufen für den fertigen Aufbau =)
@ Lars (Gast)
>Also Soft-PWM wollte ich nicht machen obwohl es von der Frequenz sicher>reichen würde aber ich möchte den Controller und das Programm für andere>Sachen nicht belasten.
Hat dir deine Mutti nicht beigebracht, Fragen nicht mit Gegenfragen zu
beantworten? Lies was über Netiquette und bring mal Butter bei die
Fische!
PWM-Frequenz?
Auflösung?
>Speicherregister sende und die mir dann dauerhaft und autonom über das>gesuchte IC x eine PWM generieren bis ich neue Instruktionen sende.
Dafür gibt es einige I2C ICs von NXP.
>Sogesehen müsste ja ein Parallel to Seriell genau das tun ;-)>Jetzt ist nur die Frage welches IC würde da passen? Ich wollte ein>74hc595 Register nehmen.
Wozu? Willst du mehrere hundert kHz Updaterate? Wenn nein, nimm was
serielles, das spart IO-Pins.
MfG
Falk
Harald M. schrieb:> ... wenn Du nicht mehr als einen SMD-IC pro PWM-Ausgang haben willst,> ist vielleicht der hier interessant:> http://www.nxp.com/documents/data_sheet/PCA9531.pdf
Der PCA9531 hat allerdings den Nachteil, das für 8 Kanäle nur 2
PWM-Generatoren vorhanden sind. Besser geeignet ist vielleicht mit I2C
der PCA9634 (echte 8-Kanäle) oder mit echten 16-Kanälen PCA9635 (96 kHz)
bzw. PCA9685 (1kHz)
TLC5947
Ist zwar eigentlich ein LED-Treiber, aber im Grunde ist das auch nichts
anderes als 24-PWM Kanäle mit 12 Bit Auflösung und einstellbarem
Ausgangsstrom.
Wird allerdings wie ein Schieberegister angesprochen.
Hallo,
ich möchte mich für die vielen konstruktiven und hilfreichen Antworten
bedanken und werde einige Bauteile mal ordern und damit ein wenig
rumexperimentieren.
Viele Grüße,
Lars