Как я понял (может неправильно) каждая периферия может быть отображена на различные линии с помощью четырех функций.
Я запрограммировал порт USART3 - он у меня работает, но вот настройку GPIO для него я делал как шаман с бубном.
На моей плате USART3 выведен с выводов RxD - PX57 и TxD - PX58
смотрю по даташыту-
Each GPIO line can be assigned to one of 4 peripheral functions; A, B, C, or D. The following
table define how the I/O lines on the peripherals A, B, C, or D are multiplexed by the GPIO.
так оно и есть, выводы RxD и TxD USART выведены на PX57 и PX58 и периферийная функция "C"
Потом смотрю файл avr32/uc3a256.h
CODE
/* USART3 */
#define AVR32_USART3_ADDRESS 0xFFFF2000
#define AVR32_USART3 (*((volatile avr32_usart_t*)AVR32_USART3_ADDRESS))
#define AVR32_USART3_IRQ 256
#define AVR32_USART3_PDCA_ID_RX 3
#define AVR32_USART3_PDCA_ID_TX 14
#define AVR32_USART3_CLK_0_PIN 30
#define AVR32_USART3_CLK_0_FUNCTION 1
#define AVR32_USART3_CTS_0_0_PIN 67
#define AVR32_USART3_CTS_0_0_FUNCTION 1
#define AVR32_USART3_CTS_0_1_PIN 28
#define AVR32_USART3_CTS_0_1_FUNCTION 2
#define AVR32_USART3_RTS_0_0_PIN 66
#define AVR32_USART3_RTS_0_0_FUNCTION 1
#define AVR32_USART3_RTS_0_1_PIN 27
#define AVR32_USART3_RTS_0_1_FUNCTION 2
#define AVR32_USART3_RXD_0_0_PIN 36
#define AVR32_USART3_RXD_0_0_FUNCTION 1
#define AVR32_USART3_RXD_0_1_PIN 59
#define AVR32_USART3_RXD_0_1_FUNCTION 1
#define AVR32_USART3_RXD_0_2_PIN 108
#define AVR32_USART3_RXD_0_2_FUNCTION 2
#define AVR32_USART3_TXD_0_0_PIN 29
#define AVR32_USART3_TXD_0_0_FUNCTION 1
#define AVR32_USART3_TXD_0_1_PIN 60
#define AVR32_USART3_TXD_0_1_FUNCTION 1
#define AVR32_USART3_TXD_0_2_PIN 105
#define AVR32_USART3_TXD_0_2_FUNCTION 1
#define AVR32_USART3_TXD_0_3_PIN 109
#define AVR32_USART3_TXD_0_3_FUNCTION 2
Что это за числа здесь стоят в описании пинов и функций - Х.З.
То есть я рассуждал так, если функция С то и нужно брать второй пин и вторую функцию
но с такими настройками не работает
потом когда выбрал
CODE
/* USART Settings */
#define EXAMPLE_USART (&AVR32_USART3)
#define EXAMPLE_USART_RX_PIN AVR32_USART3_RXD_0_2_PIN
#define EXAMPLE_USART_RX_FUNCTION AVR32_USART3_RXD_0_2_FUNCTION
/* Передача 3-го усарта на 3-й функции! */
#define EXAMPLE_USART_TX_PIN AVR32_USART3_TXD_0_3_PIN
#define EXAMPLE_USART_TX_FUNCTION AVR32_USART3_TXD_0_3_FUNCTION
#define EXAMPLE_USART_IRQ AVR32_USART3_IRQ
#define EXAMPLE_USART_BAUDRATE 9600
Все заработало. Но все равно, как правильно установить функцию мне не понятно, поясните кто знает!
Щас пытаюсь разобраться с SD картой, но вот с этими функциями то же не могу разобраться.