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