Guten Abend alle zusammen! An der Uni prokel ich grade mit dem Tricore 1796 rum und habe das Application Note "3-phase complementary PWM with hardware triggered ADC conversion" (AP32135) als Grundlage genommen, um eine schicke Raumzeigermodulation draufzusetzen. Das funktioniert auch alles ganz prima (habe die Signale schon am eigenen 3ph. Umrichter anliegen und kann einen schönen Sinusstrom am Ausgang sehen), ABER leider nur, wenn ich das Programm unter CrossView laufen lasse. Wenn ich dasselbe Programm als hex in den internen Flash speicher und allein vom TriCore aus ausführen lasse, passiert ein seltsames Phänomen: Regelmäßig werden einzelne Pulse "vergessen", ausgeschaltet zu werden, was zu einem Zweig-Kurzschluss führt (mit geregeltem Netzteil zum Glück erst mal kein Drama..). Wenn ich bspw. einen sin-Strom mit 1 Hz als Ausgangsstrom generiere, passieren solche Patzer ca. 3 mal pro Periode. Taktfrequenz der PWM ist 16kHz; bei 13kHz oder weniger läuft es dann auch als geflashte Variante. Ich habe schon sämtliche (so meine ich..) Variationen im Tasking Compiler durchgespielt, immer mit dem gleichen Ergebnis. Es wäre einfach riesig, wenn jm. evtl. eine nette Idee hätte, hänge da schon ein paar Tage dran... Gerne schreibe ich noch weitere Details, wenn gewünscht. Vielen Dank schon mal fürs Durchlesen :) Viele Grüße, Stefan!
Also, da du ja ein Profi zu sein scheinst, ist das vielleicht eine blöde Frage. Und ich kenne auch den Tricore nicht, man möge mir meine Blauäugigkeit somit wohl verzeihen. ABER: bist du sicher, dass du z.B. den Watchdog ausgeschaltet hast? ich hatte mal mit nem anderen MC ein ähnliches Problem. Im Debugger lief das Programm; kaum entfernte man das Debug-Kabel, stürzte das Programm in regelmässigen Intervallen ab. Das lag dann daran, dass der Watchdog des MC's im Debug-Modus deaktiviert war; beim normalen Programmablauf jedoch nicht. Der Watchdog resettete den MC somit regelmässig und das Programm stürzte vermeintlich ab. Also, Watchdog prüfen.
Hallo Walz! Uni nicht gleich Profi ;) Daher ist das gar keine blöde Frage... Leider ist's dennoch nicht der WD, hätte aber durchaus sein können. Danke für die Idee! Vielleicht noch als Zusatzinfo: Ich nutze zur Berechnung der Raumzeiger im Moment den Aufruf der PWM-Update Interruptroutine. D.h. die Berechnungen (sind ja im Wesentlichen ja nur 2 Gleichungen mit je einem sin() + ein switch-Konstrukt zur Sektorauswahl) werden mit der PWM Frequenz (16kHz) aufgerufen. Da das Ganze im Crossview korrekt läuft, gehe ich davon aus, dass dies nicht zuviel für den Interrupt ist, oder mache ich da einen Denkfehler? Viele Grüße Stefan
Hallo Stefan, ich vermute dein Interruptbearbeitung dauert zu lange!
Frag mal beim Infineon Service Center nach. Mail unter www.infineon.com/tricore > 'Contact us' oder Phone www.infineon.com/service.
Moin mal wieder! Sorry für die rel. lange Zeit des nicht-Antwortens... Das Problem ist jetzt gelöst. Und zwar gabs da wohl nen kleinen Dreher im AppNote. Nachdem der "entdreht" war, klappt's wi es soll! Besten Dank für die Antworten und Anregungen hier! Viele Grüße, Stefan!
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.