AVR32 EVK1100 freie Zuordnung Peripherie <-> GPIO

Gast #2103014
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
#2103038
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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.