boards/samr21-xpro: add uart hw cts/rts

This commit is contained in:
Francisco Molina 2020-06-12 11:26:52 +02:00
parent 52bcdff113
commit 39f073e71f
No known key found for this signature in database
GPG Key ID: 3E94EAC3DBDEEDA8
4 changed files with 29 additions and 4 deletions

View File

@ -19,5 +19,6 @@ config BOARD_SAMR21_XPRO
select HAS_PERIPH_SPI select HAS_PERIPH_SPI
select HAS_PERIPH_TIMER select HAS_PERIPH_TIMER
select HAS_PERIPH_UART select HAS_PERIPH_UART
select HAS_PERIPH_UART_HW_FC
select HAS_PERIPH_USBDEV select HAS_PERIPH_USBDEV
select HAS_RIOTBOOT select HAS_RIOTBOOT

View File

@ -10,6 +10,7 @@ FEATURES_PROVIDED += periph_rtt
FEATURES_PROVIDED += periph_spi FEATURES_PROVIDED += periph_spi
FEATURES_PROVIDED += periph_timer FEATURES_PROVIDED += periph_timer
FEATURES_PROVIDED += periph_uart FEATURES_PROVIDED += periph_uart
FEATURES_PROVIDED += periph_uart_hw_fc
FEATURES_PROVIDED += periph_usbdev FEATURES_PROVIDED += periph_usbdev
# Put other features for this board (in alphabetical order) # Put other features for this board (in alphabetical order)

View File

@ -157,6 +157,21 @@ specific board like this:
BOARD=samr21-xpro SERIAL="ATML2127031800002124" make debug BOARD=samr21-xpro SERIAL="ATML2127031800002124" make debug
## Accessing STDIO via UART
STDIO is available through the edbg debugger.
Use the `term` target to open a terminal:
make BOARD=samr21-xpro -C examples/hello-world term
RTS / CTS hardware flow control is available on `UART_DEV(0)` and
`UART_DEV(1)`. This is unavailable when using STDIO directly through
the debugger since it does not support it. Therefore to use hardware
flow control an external FTDI device must be connected to the board's
rx, tx, cts & rts matching pin headers, eg. for `UART_DEV(0)` to
`PA5`, `PA4`, `PA6` & `PA7` (respectively) on EXT1 headers.
## Supported Toolchains ## Supported Toolchains

View File

@ -147,12 +147,16 @@ static const uart_conf_t uart_config[] = {
.rx_pin = GPIO_PIN(PA,5), .rx_pin = GPIO_PIN(PA,5),
.tx_pin = GPIO_PIN(PA,4), .tx_pin = GPIO_PIN(PA,4),
#ifdef MODULE_PERIPH_UART_HW_FC #ifdef MODULE_PERIPH_UART_HW_FC
.rts_pin = GPIO_UNDEF, .rts_pin = GPIO_PIN(PA,6),
.cts_pin = GPIO_UNDEF, .cts_pin = GPIO_PIN(PA,7),
#endif #endif
.mux = GPIO_MUX_D, .mux = GPIO_MUX_D,
.rx_pad = UART_PAD_RX_1, .rx_pad = UART_PAD_RX_1,
#ifdef MODULE_PERIPH_UART_HW_FC
.tx_pad = UART_PAD_TX_0_RTS_2_CTS_3,
#else
.tx_pad = UART_PAD_TX_0, .tx_pad = UART_PAD_TX_0,
#endif
.flags = UART_FLAG_NONE, .flags = UART_FLAG_NONE,
.gclk_src = SAM0_GCLK_MAIN, .gclk_src = SAM0_GCLK_MAIN,
}, },
@ -161,12 +165,16 @@ static const uart_conf_t uart_config[] = {
.rx_pin = GPIO_PIN(PA,23), .rx_pin = GPIO_PIN(PA,23),
.tx_pin = GPIO_PIN(PA,22), .tx_pin = GPIO_PIN(PA,22),
#ifdef MODULE_PERIPH_UART_HW_FC #ifdef MODULE_PERIPH_UART_HW_FC
.rts_pin = GPIO_UNDEF, .rts_pin = GPIO_PIN(PB,22),
.cts_pin = GPIO_UNDEF, .cts_pin = GPIO_PIN(PB,23),
#endif #endif
.mux = GPIO_MUX_D, .mux = GPIO_MUX_D,
.rx_pad = UART_PAD_RX_1, .rx_pad = UART_PAD_RX_1,
#ifdef MODULE_PERIPH_UART_HW_FC
.tx_pad = UART_PAD_TX_0_RTS_2_CTS_3,
#else
.tx_pad = UART_PAD_TX_0, .tx_pad = UART_PAD_TX_0,
#endif
.flags = UART_FLAG_NONE, .flags = UART_FLAG_NONE,
.gclk_src = SAM0_GCLK_MAIN, .gclk_src = SAM0_GCLK_MAIN,
} }