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
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...
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!
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 ...
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
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.
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.
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.