Forum: Mikrocontroller und Digitale Elektronik PWM mit Microcontroller und CPLD


von Berni (Gast)


Lesenswert?

Hallo,

ich suche jetzt schon längere Zeit herum, finde aber keine Lösung zu 
meinem Problem.
Folgendes: Ich soll eine Schaltung entwerfen, mit der ich 64 
Peltierelemente gleichzeitig regeln soll. Die Messung der Temperaturen 
übernimmt ein PIC18F4550 (sollte mit PT100 und MUX kein großes Problem 
sein), die Vorgabewerte kommen über USB auch zum PIC, welcher die 
Regelung übernehmen soll.
Nun kommt das Problem - die 64fache PWM. Da ich heizen und kühlen muss, 
benötige ich eine H-Brücke. Nun weiß ich aber nicht, ob und wie ich die 
PWM am besten erzeugen soll bzw. überhaupt kann. Eine Möglichkeit wäre 
eventuell die Verwendung mehrerer Slave-PICs, die jeweils einige PWMs 
erzeugen. Jedoch schreckt mich hier erstens die Kommunikation zwischen 
den PICs ein wenig ab.
Daher habe ich mir überlegt, dass ich als Eingang für die H-Brücken 
Flip-Flops verwende, die ich mittels PIC alle gleichzeitig setze (bzw. 
bei invertierter PWM rücksetze) und dann mit Hilfe einer vorgeschaltenen 
Logik einzeln nach Ablauf der jeweiligen Pulsdauer rücksetze. Damit 
müsste ich für 64 Peltierelemente (und somit 128 Flip-Flops, da ich eine 
Vollbrücke habe) mit 7 Ports am PIC auskommen. Um mir den Aufbau der 
Logik mit 74Hxyz zu ersparen, denke ich an ein CPLD.

Sind nun meine Überlegungen absoluter Mist oder bin ich da schon auf dem 
richtigen Weg?
Vorweg schon Mal danke für eure Bemühungen!

Berni

von ... (Gast)


Lesenswert?

nimm ne fpga...

spartan-3an, die ist von aussen betrachtet wie eine cpld, da sie ihr 
konfigurationsflash beinhaltet...

und in einer fpga hast du genug puffer, um dir eine pwmperipherie 
reinzusynthetisieren

einen zähler rein, 64-compare register rein...

dann einen spi oder I2C slave reinimplementieren... un gut

aufwand vllt 2 manntage...

von Berni (Gast)


Lesenswert?

Das mit dem Aufwand von 2 Manntagen ist so eine Sache, wenn man von FPGA 
keine Ahnung hat ;-)

Das heißt, der PIC kommuniziert mit der FPGA per i2c, und die pwm wird 
in der fpga umgesetzt, verstehe ich das richtig?

Dazu benötige ich dann wohl ein Development-Kit von Xilinx und jede 
Menge Zeit, um mich da reinzuarbeiten :-\
Aber danke für die Anregung!

von ... (Gast)


Lesenswert?

hmmm, ok, wenn

brauchen tust das webpack (IDE von xilinx, kostenlos) und den 
programmier dongel kann man für den PC-parellelport mit 2 logikgattern 
nach frei verfügbarem schaltplan selbststricken...

vhdl solltest du beherrschen...

ich will so mutig sein, und sagen, wenn du mit dem webpack cplds im 
griff hast, das spiele 2 tage mit der fpga dann passt es...

klaa, ein fpga-testboard brauchst du


...und ja, so wie du dachtest stellte ich es mir vor

die unbekannte namens einarbeitung halte ich allerdings ebenfalls für 
zeitlich riskant...

grüße ...

von Falk B. (falk)


Lesenswert?

Vor allem braucht man das Wissen, dass PEltiers keine PWM mögen, das 
verringert nämlich den Wirkungsgrad zum Teil erheblich. Du brauchst 64 
steuerbare DC/DC Wandler. Viel Spass ;-)


64 PWMs könnte man bei niedriger PWM Frequenz und Auflösung per 
Soft-PWM machen, das braucht aber ein grossen uC mit VIELEN Pins. 
Gehäuse TQ100++

MFG
Falk

von Peter D. (peda)


Lesenswert?

Du solltest erstmal feststellen, wie schnell und wie genau Du regeln 
mußt, ob es plötzlich Lastsprünge gibt, wie träge Dein System ist usw.

Temperaturregelungen sind in der Regel sehr träge, daher hat sich die 
einfache Zweipunktregelung sehr gut bewährt.
Man schaltet immer voll ein und aus und die Trägheit des Systems 
übernimmt automatisch die Glättung. Eine PWM braucht man dann garnicht.
Oftmals sind die einfachen Lösungen die besten.


Peter

P.S.:
Ich bezweifle auch, daß man VHDL in nur 2 Tagen lernen kann.

von ... (Gast)


Lesenswert?

>P.S.:
>Ich bezweifle auch, daß man VHDL in nur 2 Tagen lernen kann.

lies richtig, ich schreib er sollte es bereits beherrschen...

von Chris (Gast)


Lesenswert?

Ich würde den MCP4725A0T-E/CH einsetzen, einfach A0 (i2C Adress 
selection)
über den Multiplexer zusätzlich ansteuern und i2c (HW) sowie die 
Temperaturmessung kombinieren. Ok, in Wirklichkeit würde ich einen
14 Pin Pic nehmen, vorkalibrierte NTC, und dann jeweils 4 Peltier
über so einen Pic steuern. Das macht 16 Pics mit I2C auf zwei 
unterschiedlichen I2C Leitungen sowie ein usb->i2c Pic.

von Schrotty (Gast)


Lesenswert?

Ich bin auch der Meinung, dass du prüfen solltest, ob es mit einer 
einfachen 2-Punkt-Regelung nicht getan ist.
Dann bleibt nur noch das "Problem", dass du so nen Haufen Pins brauchst. 
Aber das kannst über ne Porterweiterung mit Registern und Adressdecodern 
machen oder seriell über ne Kette von Schieberegistern.

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.