Forum: Mikrocontroller und Digitale Elektronik AVR32 EVK1100 freie Zuordnung Peripherie <-> GPIO


von Johannes (Gast)


Lesenswert?

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

von Matthias J. (maja)


Lesenswert?

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

von John (Gast)


Lesenswert?

Nope, nicht beliebig, siehe "12.7 Peripheral Multiplexing on I/O lines".

von Johannes (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.