Forum: Mikrocontroller und Digitale Elektronik Wie erzeuge ich am besten ein timing-kritisches Pulsmuster?


von N. K. (bennjo)


Lesenswert?

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

von Bonz (Gast)


Lesenswert?

Mit einem CPLD, oder FPGA. Die kann man parallel oder ueber SPI ladbar 
machen, und das Timing wird nicht durch serielle Kommunikation gestoert.

von Peter D. (peda)


Lesenswert?

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
Noch kein Account? Hier anmelden.