Hi Leute, ich hab mal eine Frage dazu, wie man die DSP-Einheit des XC167 mit C-Code (mittels Keil µVision) nutzen kann? Momentan ist mir nur bekannt, wie man sie mit Assembler-Code anspricht. Jedoch wäre es für die Programmierung deutlich einfacher, wenn man auch die Funktionen in C-Code schreiben kann. Ich habe mit der Suchfunktion danach gesucht und leider nichts gefunden. Wenn doch schon ein Thread dazu existiert, dann verweist mich bitte darauf. Vielen Dank im Vorraus.
Hatte noch keiner ein ähnliches Problem oder hab ich meine Frage zu unkonkret oder ins falsche Forum gestellt? Ich hoffe auf eure Antworten ;-)
Was für eine DSP-Einheit soll der XC167 haben?
Hallo Michael, Keil unterstützt meines Wissens nach leider nicht direkt die MAC-Unit. Hier muss man über inline-Assembler arbeiten. Bei Tasking haben die das in der VX-Toolchain integriert (wie es dort geht müsste ich aber auch erst nachschauen). Zum Teil geht es auch in der Classic-Toolchain schon. Noch habe ich die MAC-unit nicht selber gebraucht. Kannst du uns am Rande verraten für was du die nutzt? @pamuli78 Das ist kein Standard DSP-Core, sondern nur eine kleine Recheneinheit ähnlich den alten Co-Prozessoren. Man hat halt eine handvoll Registern mit denen man die "Multiply and Accumulate Unit" füttern und steuern kann. Gruß, TManiac
Ja, die kenne ich. War nur ein wenig wegen "DSP" überrascht. Wird die Unit nicht automatisch beim Multiplizieren und Dividieren vom Compiler aus unterstützt (ohne dass ich das explizit aktivieren müsste)? Es handelt sich schließlich ja nur um eine Rechenbeschleunigungs-Unit.
Hallo Jens und pamuli78, ich hätte nie gedacht, dass ich zu dem Thema je noch eine Antwort bekomme. Die Frage habe ich ja vor fast 2 Jahren gestellt ;-) Gebraucht habe ich das damals für meine Diplomarbeit. Weil ich mich momentan mit ganz anderen Dinge beschäftige, mußte ich da jetzt selbst erst einmal nachschauen. Und zwar hab ich nach der Möglichkeit gesucht, die MAC-Unit direkt mit C-Befehlen im KeilµVision anzusprechen, um nicht umständlich ein Programm in Assembler-Code schreiben zu müssen. Der Vorteil der Geschwindigkeitserhöhung durch Nutzung der MAC-Unit liegt klar auf der Hand. Den Leuten in meinem Fachgebiet war dazu auch keine Möglichkeit bekannt. Programmiert habe ich in Assembler-Code eine DT1-Funktion. Gebraucht habe ich das ganze wie schon gesagt für meine Diplomarbeit, in der es um die feldorientierte Regelung einer Asynchronmaschine mit Hilfe des erwähnten XC167 geht. Unter anderem hab ich die gleiche Regelung auch mit einem DSP von Texas Instruments (TMS320F2808) programmiert und im Falle der Realisierung mit Hilfe des XC167 die Ansteuerung des Wechselrichters von einem FPGA Spartan 3 übernehmen lassen. Ich hoffe, deine Frage soweit beantwortet zu haben. Wenn du was genaueres wissen willst, frag einfach :-) Grüße Michael
Oha, nun bin ich auch in ein Ausgrabungsloch gefallen. :-) Ich habe mal nicht auf des Datum der Themeneröffnung geschaut. Aber trotzdem prima, dass man noch erfahren hat für was du es benutzt hast. Und deine Anwendung (DT1 für feldorientierte Regelung ) ist ja somit ein typischer Fall für was die MAC gedacht ist. Aber das hier versteh ich nicht ganz: > im Falle der Realisierung mit Hilfe des XC167 die Ansteuerung des > Wechselrichters von einem FPGA Spartan 3 übernehmen lassen. Was hat der Spartan da noch machen müssen? Reglung hast du geschrieben im XC (MAC-Unit) gemacht. Und für das Dreiphasen-Ansteuern haben die 166er doch die CapCom2. Gruß, TManiac
Hallo Jens, ja, du hast vollkommen recht mit der CapCom2-Einheit. Dennoch sollte ich die Funktion dieser Einheit und die Erzeugung der Ausgabewerte im FPGA programmieren. Dabei war es auch notwendig, die Kommunikation zwischen dem FPGA und dem XC167 zu realisieren. Das Board mit dem ich programmiert habe, ist für ein Praktikum ausgelegt, in dem Studenten lernen sollen, wie die feldorientierte Regelung in der Praxis funktioniert. Grüße Michael
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.