hardware flow control(?)
This commit is contained in:
parent
8e62dd794b
commit
c7ec7a1752
|
@ -48,8 +48,10 @@ void cdc_uart_init(void) {
|
||||||
|
|
||||||
gpio_set_function(PINOUT_UART_TX, GPIO_FUNC_UART);
|
gpio_set_function(PINOUT_UART_TX, GPIO_FUNC_UART);
|
||||||
gpio_set_function(PINOUT_UART_RX, GPIO_FUNC_UART);
|
gpio_set_function(PINOUT_UART_RX, GPIO_FUNC_UART);
|
||||||
|
gpio_set_function(PINOUT_UART_CTS, GPIO_FUNC_SIO);
|
||||||
|
gpio_set_function(PINOUT_UART_RTS, GPIO_FUNC_SIO);
|
||||||
uart_init(PINOUT_UART_INTERFACE, lc_brate/*PINOUT_UART_BAUDRATE*/);
|
uart_init(PINOUT_UART_INTERFACE, lc_brate/*PINOUT_UART_BAUDRATE*/);
|
||||||
uart_set_hw_flow(PINOUT_UART_INTERFACE, hwflow, hwflow);
|
//uart_set_hw_flow(PINOUT_UART_INTERFACE, hwflow, hwflow);
|
||||||
uart_set_format(PINOUT_UART_INTERFACE, lc_data, lc_stop, lc_parity);
|
uart_set_format(PINOUT_UART_INTERFACE, lc_data, lc_stop, lc_parity);
|
||||||
|
|
||||||
bi_decl(bi_2pins_with_func(PINOUT_UART_TX, PINOUT_UART_RX, GPIO_FUNC_UART));
|
bi_decl(bi_2pins_with_func(PINOUT_UART_TX, PINOUT_UART_RX, GPIO_FUNC_UART));
|
||||||
|
@ -58,6 +60,8 @@ void cdc_uart_deinit(void) {
|
||||||
uart_deinit(PINOUT_UART_INTERFACE);
|
uart_deinit(PINOUT_UART_INTERFACE);
|
||||||
gpio_set_function(PINOUT_UART_TX, GPIO_FUNC_NULL);
|
gpio_set_function(PINOUT_UART_TX, GPIO_FUNC_NULL);
|
||||||
gpio_set_function(PINOUT_UART_RX, GPIO_FUNC_NULL);
|
gpio_set_function(PINOUT_UART_RX, GPIO_FUNC_NULL);
|
||||||
|
gpio_set_function(PINOUT_UART_CTS, GPIO_FUNC_NULL);
|
||||||
|
gpio_set_function(PINOUT_UART_RTS, GPIO_FUNC_NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
void cdc_uart_task(void) {
|
void cdc_uart_task(void) {
|
||||||
|
@ -90,6 +94,8 @@ bool cdc_uart_get_hwflow(void) {
|
||||||
bool cdc_uart_set_hwflow(bool enable) {
|
bool cdc_uart_set_hwflow(bool enable) {
|
||||||
hwflow = enable;
|
hwflow = enable;
|
||||||
//uart_set_hw_flow(PINOUT_UART_INTERFACE, enable, enable);
|
//uart_set_hw_flow(PINOUT_UART_INTERFACE, enable, enable);
|
||||||
|
// TODO: CTS
|
||||||
|
gpio_put(PINOUT_UART_RTS, enable);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
#define PINOUT_JTAG_TCK 2 // == SWCLK
|
#define PINOUT_JTAG_TCK 2 // == SWCLK
|
||||||
#define PINOUT_JTAG_TMS 3 // == SWDIO
|
#define PINOUT_JTAG_TMS 3 // == SWDIO
|
||||||
#define PINOUT_JTAG_TDI 4
|
#define PINOUT_JTAG_TDI 4
|
||||||
#define PINOUT_JTAG_TDO 5
|
#define PINOUT_JTAG_TDO 5 // == SWO
|
||||||
#define PINOUT_JTAG_nTRST 6
|
#define PINOUT_JTAG_nTRST 6
|
||||||
#define PINOUT_JTAG_nRESET 7
|
#define PINOUT_JTAG_nRESET 7
|
||||||
#define PINOUT_JTAG_PIO_DEV pio0
|
#define PINOUT_JTAG_PIO_DEV pio0
|
||||||
|
|
|
@ -469,3 +469,16 @@ struct mode m_01_default = {
|
||||||
};
|
};
|
||||||
// clang-format on
|
// clang-format on
|
||||||
|
|
||||||
|
#if defined(DBOARD_HAS_UART)
|
||||||
|
// FIXME: use mode-specific callback here?
|
||||||
|
void tud_cdc_line_state_cb(uint8_t itf, bool dtr, bool rts) {
|
||||||
|
(void)dtr;
|
||||||
|
|
||||||
|
if (mode_current != &m_01_default) return;
|
||||||
|
|
||||||
|
if (itf == CDC_N_UART) {
|
||||||
|
cdc_uart_set_hwflow(rts);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue