Hallo, ich unternehme gerade die ersten Schritte dem AVR32 UC3A0512A auf einem EVK1100 und hier mit der USART-Funktionalität. Die Ausgabe funktioniert mit den Funktionen des SW-Frameworks auch problemlos, auch wenn man die Buchse direkt am Testpad auf PA00/PA01 anlötet und zwei Geräte ohne MAX koppelt. Aus Interesse, und weil es uns im Bezug auf andere Peripheriebausteine evtl. noch extrem nützlich sein könnte, habe ich versucht, für RX/TX anstelle der Standardpins PA00/01 die Pins PA29/30 (normalerweise TWI) zu verwenden und die USART_PINs in der Initialisierung entsprechend zu überschreiben. Dies funktioniert jedoch leider nicht. Deshalb die grundsätzliche Frage: Ist es möglich, beim UC3 die Peripheriefunktionen an beliebige IO-Ports zu binden? Die Busstruktur im Blockdiagramm des Datenblattes (p.5) sowie die Ausführungen über Peripheral Multiplexing im GPIO-Kapitel lassen diesen Schluss zu. Oder übersehe ich da etwas? Vielen Dank, viele Grüße Johannes
Hey Johannes, ich weiß nicht ob ich dich richtig verstehe, aber der Gedankengang dass du JEDEM Pin eine beliebige Peripherie zuweisen kannst ist falsch! Schau dir den Abschnitt "Peripheral Multiplexing on I/O lines" auf Seite 45 des Datenblatt an. Du kannst jedem Pin nur eine der 3 angegebenen Funktionen (A,B,C) zuweisen. Also im Fall von PA00 und PA01 liefert Funktion A das gewünschte Ergebnis (Rx und Tx von UART0). Alternativ könntest du aber auch PX00 und PX01 in der Funktion B verwenden. Die Zuweisung der Pins geschieht mit Hilfe der GPIO maps. Die können zum Beispiel so aussehen: [c] static const gpio_map_t USART_GPIO_MAP = { {RX_PIN, RX_FUNCTION}, {TX_PIN, TX_FUNCTION} }; [\c] Mit RX_PIN = AVR32_PIN_PA05 TX_PIN = AVR32_PIN_PA06 RX_FUNCTION = 0 TX_FUNCTION = 0 kannst du zum Beispiel RX und TX des UART1 aktivieren. (Funktion A=0, B=1, C=2) Hoffe ich konnte dir etwas weiterhelfen. Grüße, matthias
Nope, nicht beliebig, siehe "12.7 Peripheral Multiplexing on I/O lines".
Vielen Dank, jetzt sehe ich klarer. Viele Grüße, Johannes
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.