Hallo, ich arbeite mich zur Zeit in den TMS320F28027 ein. Ich möchte jetzt gerne mit einem der PWM-Modulen eine IR-Led mit 100kHz (Einschaltdauer 2us, Ausschaltdauer 8us) flashen. Das läuft auch schon. Jetzt würde ich gerne noch immer etwa 1us nach dem Einschaltimpuls einen Input-Pin abfragen. Aber mir fehlt da momentan noch die Idee, wie ich den passenden Moment zum abfragen abpassen kann. Hat da vielleicht jemand einen Tip für mich? Gruß Torsten
Du kannst den Timer so einstellen, dass er jede us auslöst und den Rest per Software in der Timer-ISR lösen. Oder du synchronisierst zwei ePWM-Einheiten: in einer lässt du die LED blinken und in der anderen kümmerst du dich um den Pin. Ist zwar etwas verschwenderisch, aber wenn du die ePWM-Einheit nicht brauchst, kriegst du deswegen auch kein Geld zurück.
Vielleicht geht's auch so: PWM auf 10us einstellen, zyklischer reload, nach 2 us ein/ausschalten (Capture/Compare), je nachdem wie du beschaltet hast, bei rollover Interrupt auslösen. Im Interrupt CPU Timer auf 3us aufziehen und damit zweiten Interrupt auslösen. In der zweiten Interruptroutine kannst Du dann den Port abfragen. rgds
Eine ePWM-Unit reicht dafür aus. Angenommen man verwendet das Compareregister CMPA für das Timing des Ausgangs für die LED und das Compareregister CMPB triggert einen Interrupt im 'Event-Trigger (ET) Submodule', was dann in Software behandelt wird und die AD-Wandlung startet. CMPB muss dann entsprechend immer so eingestellt werden, dass das Event immer 1 µs nach dem Compareevent von CMPA triggert. Alternativ kann das Eventtriggermodul auch direkt eine AD-Wandlung auslösen, also in Hardware und ohne Interrupt. Ließ dazu mal Kapitel 2.8 von http://focus.ti.com/lit/ug/spru791e/spru791e.pdf Grüße, 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.