hallo experten. ich brauche einen Controller, der mir 16 10kHz-PWMs (ca. 3% Auflösung) liefern kann, außerdem 8 500kHz-PWMs (ca. 5% Auflösung) und 8 200Hz-PWMs (1% Auflösung). Die 500kHz- und 200Hz-Signale müssen phasenverschoben werden können. Bei den 200Hz ist das ja kein Problem, das geht über eine Software-PWM. Bei 500kHz wird's ohne Hardware-Timer äußerst schwierig :-) Für jede einzelne PWM soll natürlich ein individuelles tastverhältnis einstellbar sein. Welcher (möglichst billige) Controller könnte dafür geeignet sein? Gruß Michael
Matthias Lipinsky wrote:
> XC3S500
Da reicht schon weniger...
3% Auflösung = 5 Bit --> fin = 32*10kHz --> 300kHz
5% Auflösung = 4-5 Bit --> fin = 32*500kHz--> 16MHz
Das macht schon das billigste Lattice-FPGA MachXO 640 für 5€.
@ Lothar Miller (lkmiller) :
Glaub ich, das der etwas groß ist. Die Antowrt war eher eine Ironie auf:
>Welcher (möglichst billige) Controller könnte dafür geeignet sein?
@ Matthias Lipinsky (lippy)
Oder eher ;-)
>Welcher (möglichst billige) Controller könnte dafür geeignet sein?
@ Michael (Gast)
Du hast ein ganz spezielles Problem (oder von mir aus auch: eine ganz
spezielle Aufgabe, weils ja keine Probleme mehr gibt, sondern nur noch
Aufgaben). Dafür gibt es keinen Controller "von der Stange". Zudem hast
du nichts dazu gesagt, wie du es deinem Controller sagen willst (I²C,
SPI, Parallel...).
@lothar: für 500kHz bei 5% reicht schon ein timer mit 10MHz ;-) 8 stück davon kann die PWM-einheit eines freescale S12X erzeugen. die 8 200Hz-PWMs lassen sich über den ECT machen und wenn ich das XGate über einen PIT alle 3µs triggere, hab ich bei 100MHz XGate-Takt ungefähr 300 Takte zeit, zwei ports zu beschreiben und einen index für eine PWM-tabelle hochzuzählen. damit sind zwar noch nicht alle anforderungen (phasenverschiebung!) zu realisieren, aber angesichts dieser performance auf einem relativ kleinen controller (der in stückzahlen bei weitem keine 5 euro kostet) glaube ich nicht, daß es keinen controller von der stange für diese aufgabe gibt. @matthias: wenn denn wirklich ein FPGA notwendig sein sollte, dann isses eben so. und dann muß man eben überlegen, ob eine mehr-controller-lösung nicht sinnvoller ist. da braucht's doch keine ironie für. gruß michael
> für 500kHz bei 5% reicht schon ein timer mit 10MHz ;-) Ich denke da immer ein bisschen binär und runde auf ;-) >> .. 4-5 Bit .. > der in stückzahlen bei weitem keine 5 euro kostet Ja, die Lattice FPGAs dann auch nicht mehr. Dafür kannst du bei geänderten Anforderungen mit der Schulter zucken, und das ganz ohne Tricks ins FPGA reinhacken. Solche Frequenzen schaffst du noch ganz ohne irgendwelche Überlegungen, Optimierungen und Tricks.
Die PWMs der C2000 Familie koennen eine Aufloesung bis zu 150 ps. Die kleinsten dieser Familie heissen PICCOLO und sind auch sehr preisguenstig. http://www.ti.com/corp/docs/landing/f280xx-piccolo/index.htm
TMS 470 von TI; ist ein ARM7 TDMI und kann über einen internen Timer bis zu 32 Kanäle PWM erzeugen. Die 10 KHz sind da auch keinerlei Problem
> Die PWMs der C2000 Familie koennen eine Aufloesung bis zu 150 ps.
6 Stück. Das wird dem Threadstarter aber nicht viel bringen... Und
"möglichst billig" trifft auch nicht ganz zu...
Schau mal bei Renesas nach einem externen PWM Controller. Ob das mit der Phasenverschiebung allerdings klappt, weiss ich nicht. Aber die Teile kann man haufenweise an einen uC mit Speicherinterface anflanschen und die haben eine Taktversorgung bis ca. 20 MHz... Vielleicht hilft das ja weiter.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.