Hallo, für einen IGBT Prüfstand muss ich ein Pulsmuster für die Ansteuerung erzeugen. Es sollen Pulse mit einer bis mehreren µS Breite erzeugt werden. Konkret muss ein Doppelpuls erzeugt werden: dauer low -> x µS high -> x µS low -> x µS high -> dauer low. Ich verwende einen ATmega16 - derzeit bei 8MHz. Ich dachte zunächst an die Verwendung des OC2 im CTC-Modus. Um dann im Interrupt den nächsten OCR Wert zu setzten. Die Aufrufe des Interupt und die Konfiguration des Timers nehmen aber so viele Takte in Anspruch, dass mir eine sinnvolle Pulserzeugung nicht möglich erscheint (in C). Die andere Idee war das ganze als Schleife in ASM zu realisieren. Da weiß ich ja dann, was wie lange dauert. Wie würdet ihr das Problem angehen? Gruß, Nikias
Gast
#553001
Mit einem CPLD, oder FPGA. Die kann man parallel oder ueber SPI ladbar machen, und das Timing wird nicht durch serielle Kommunikation gestoert.
Ja, mit Assembler ist das ganz easy: Beitrag "AVR: Delay 7 ... 65542 Zyklen" Die minimale Dauer wäre dann bei 8MHz 1µs und die Schrittweite 125ns. Peter