Hi,
ich bin gerade an der Uni dazu gezwungen meinen Prozessor zu wechseln
und zwar auf einen AVR32UC3... . Ich hab jetzt mein Board bekommen. Der
Digitalteil ist nicht auf meinem Mist gewachsen und läuft (mit
FreeRTOS). Meine Aufgabe ist es jetzt den Analogteil anzusteuern und ihm
Messwerte zu entlocken. Dinge mit denen ich umgehen muss sind 6
SPI-Devices, 1-2 Timer und Interrupts. Rein theoretisch alles kein
Problem, viel Code existiert schon und es müssen z.B. nur Ports
angepasst werden.
Problem:
Mein Problem ist, dass ich keine sinnvolle Dokumentation habe/finde, die
mir Grundlegendes erklärt.
Beispiel:
Die SPI-Kommunikation für meinen LTC2756 ist eigentlich fertig. Er hängt
nur an anderen Ports.
Der Code in 'user_board.h' sagt:
1 | #define SPI0_SCK_PIN AVR32_SPI0_SCK_2_PIN //PB12
|
2 | #define SPI0_SCK_FUNC AVR32_SPI0_SCK_2_FUNCTION
|
3 | #define SPI0_NPCS1_PIN AVR32_SPI0_NPCS_1_1_PIN //PA13
|
4 | #define SPI0_NPCS1_FUNC AVR32_SPI0_NPCS_1_1_FUNCTION
|
Mein LTC2756 hängt an CS0 des SPI0, also muss da sowas wie:
1 | #define SPI0_NPCS0_PIN AVR32_SPI0_NPCS_0_?_PIN //PA13
|
2 | #define SPI0_NPCS0_FUNC AVR32_SPI0_NPCS_0_?_FUNCTION
|
zwischen. Das ? ist in dem Fall evtl. noch zu erraten, da die Folgepins
mit den anderen CSs alle eine 1 haben. Beim AVR32 sind die Funktionen an
den Pins gemultiplext, somit wird wohl durch die richtige Zahl
eingestellt, welcher Pin an welchem Port der ein CS_0 für SPI0
übernehmen kann das tut.
Das Datenblatt sagt, dass die Muxerei der Pins über PMRn Register
gesteuert werden.
Im mir vorliegenden Code, werden diese Register nicht benutzt, bzw.
maximal Indirekt durch AVR32_SPI0_NPCS_0_?_PIN
Ich habe z.B. nach 'AVR32_SPI0_NPCS_1_1_PIN' im gesamten Projekt
gesucht, um ggf. eine Datei zu finden, in der das mapping steht.
Fehlanzeige.
Ich hab in der Toolchain die 'io.h' gesucht, die eigentlich nur je nach
Prozessor auf andere Dateien verweist. Den Eintrag für meinen Prozessor
hab ich gefunden. Die Datei nicht.
Frage:
Wo finde ich eine ordentliche Dokumentation zum AVR32, wo diese Basics
erklärt sind? Die Datenblätter kenne ich, helfen aber nicht, wenn
Registerzugriffe hinter defines und Makros versteckt sind. Wenn ich
irgendwas zum AVR32 googel, finde ich Tonnen zu den 8-bit-AVRs, aber
wenig bis nichts Hilfreiches zum AVR32.
Umgebung:
Ich nutze AVRStudio 6 auf Windows. Dem konnte ich bis jetzt aber noch
nicht mal eine ordentliche Hilfe entlocken. Immer wenn ich die Hilfe
aufrufe kann ich weitere Bücher für VisualStudio installieren.
Viele Grüße, Stephan