stm32: Change USART port to USART6 for stm32f746 discovery board
This change is to remove a halt at about 200KiB while sending a large(1MiB) binary to a micro controller using USART1. USART1 is connected to a PC via an on-board ST-Link debugger that also functions as a USB-Serial converter. However, it seems to loss some data occasionally. So I changed the serial port to USART6 and connected it to the PC using an FTDI USB-Serial cable, therefore the transmission was successfully completed. Signed-off-by: Toshifumi NISHINAGA <tnishinaga.dev@gmail.com>
This commit is contained in:
parent
25c1b1353c
commit
4b2fd720a7
|
@ -17,11 +17,13 @@
|
||||||
enum periph_id {
|
enum periph_id {
|
||||||
UART1_GPIOA_9_10 = 0,
|
UART1_GPIOA_9_10 = 0,
|
||||||
UART2_GPIOD_5_6,
|
UART2_GPIOD_5_6,
|
||||||
|
UART6_GPIOC_6_7,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum periph_clock {
|
enum periph_clock {
|
||||||
USART1_CLOCK_CFG = 0,
|
USART1_CLOCK_CFG = 0,
|
||||||
USART2_CLOCK_CFG,
|
USART2_CLOCK_CFG,
|
||||||
|
USART6_CLOCK_CFG,
|
||||||
GPIO_A_CLOCK_CFG,
|
GPIO_A_CLOCK_CFG,
|
||||||
GPIO_B_CLOCK_CFG,
|
GPIO_B_CLOCK_CFG,
|
||||||
GPIO_C_CLOCK_CFG,
|
GPIO_C_CLOCK_CFG,
|
||||||
|
|
|
@ -245,6 +245,9 @@ void clock_setup(int peripheral)
|
||||||
case USART1_CLOCK_CFG:
|
case USART1_CLOCK_CFG:
|
||||||
setbits_le32(RCC_BASE + RCC_APB2ENR, RCC_ENR_USART1EN);
|
setbits_le32(RCC_BASE + RCC_APB2ENR, RCC_ENR_USART1EN);
|
||||||
break;
|
break;
|
||||||
|
case USART6_CLOCK_CFG:
|
||||||
|
setbits_le32(RCC_BASE + RCC_APB2ENR, RCC_ENR_USART6EN);
|
||||||
|
break;
|
||||||
case GPIO_A_CLOCK_CFG:
|
case GPIO_A_CLOCK_CFG:
|
||||||
setbits_le32(RCC_BASE + RCC_AHB1ENR, RCC_ENR_GPIO_A_EN);
|
setbits_le32(RCC_BASE + RCC_AHB1ENR, RCC_ENR_GPIO_A_EN);
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -32,7 +32,7 @@ const struct stm32_gpio_ctl gpio_ctl_usart = {
|
||||||
.otype = STM32_GPIO_OTYPE_PP,
|
.otype = STM32_GPIO_OTYPE_PP,
|
||||||
.speed = STM32_GPIO_SPEED_50M,
|
.speed = STM32_GPIO_SPEED_50M,
|
||||||
.pupd = STM32_GPIO_PUPD_UP,
|
.pupd = STM32_GPIO_PUPD_UP,
|
||||||
.af = STM32_GPIO_AF7
|
.af = STM32_GPIO_AF8
|
||||||
};
|
};
|
||||||
|
|
||||||
const struct stm32_gpio_ctl gpio_ctl_fmc = {
|
const struct stm32_gpio_ctl gpio_ctl_fmc = {
|
||||||
|
@ -251,8 +251,8 @@ int dram_init(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct stm32_gpio_dsc usart_gpio[] = {
|
static const struct stm32_gpio_dsc usart_gpio[] = {
|
||||||
{STM32_GPIO_PORT_A, STM32_GPIO_PIN_9}, /* TX */
|
{STM32_GPIO_PORT_C, STM32_GPIO_PIN_6}, /* TX */
|
||||||
{STM32_GPIO_PORT_B, STM32_GPIO_PIN_7}, /* RX */
|
{STM32_GPIO_PORT_C, STM32_GPIO_PIN_7}, /* RX */
|
||||||
};
|
};
|
||||||
|
|
||||||
int uart_setup_gpio(void)
|
int uart_setup_gpio(void)
|
||||||
|
@ -260,8 +260,7 @@ int uart_setup_gpio(void)
|
||||||
int i;
|
int i;
|
||||||
int rv = 0;
|
int rv = 0;
|
||||||
|
|
||||||
clock_setup(GPIO_A_CLOCK_CFG);
|
clock_setup(GPIO_C_CLOCK_CFG);
|
||||||
clock_setup(GPIO_B_CLOCK_CFG);
|
|
||||||
for (i = 0; i < ARRAY_SIZE(usart_gpio); i++) {
|
for (i = 0; i < ARRAY_SIZE(usart_gpio); i++) {
|
||||||
rv = stm32_gpio_config(&usart_gpio[i], &gpio_ctl_usart);
|
rv = stm32_gpio_config(&usart_gpio[i], &gpio_ctl_usart);
|
||||||
if (rv)
|
if (rv)
|
||||||
|
@ -273,7 +272,7 @@ out:
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct stm32x7_serial_platdata serial_platdata = {
|
static const struct stm32x7_serial_platdata serial_platdata = {
|
||||||
.base = (struct stm32_usart *)USART1_BASE,
|
.base = (struct stm32_usart *)USART6_BASE,
|
||||||
.clock = CONFIG_SYS_CLK_FREQ,
|
.clock = CONFIG_SYS_CLK_FREQ,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -292,7 +291,7 @@ int board_early_init_f(void)
|
||||||
int res;
|
int res;
|
||||||
|
|
||||||
res = uart_setup_gpio();
|
res = uart_setup_gpio();
|
||||||
clock_setup(USART1_CLOCK_CFG);
|
clock_setup(USART6_CLOCK_CFG);
|
||||||
if (res)
|
if (res)
|
||||||
return res;
|
return res;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue