X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fstm%2Fao_spi_stm.c;h=7b4af96443f28af949669e2d1cf18c2a49d2db49;hb=a866431e9a063830b407f749ff97a730831e5e4e;hp=5b823e3e63648a136da3145cb7628b4c0538cba8;hpb=35cb2dc51708ab572a4c72422e5902a313eda58e;p=fw%2Faltos diff --git a/src/stm/ao_spi_stm.c b/src/stm/ao_spi_stm.c index 5b823e3e..7b4af964 100644 --- a/src/stm/ao_spi_stm.c +++ b/src/stm/ao_spi_stm.c @@ -276,19 +276,19 @@ ao_spi_disable_index(uint8_t spi_index) case STM_SPI_INDEX(1): switch (spi_index) { case AO_SPI_1_PA5_PA6_PA7: - stm_gpio_set(&stm_gpioa, 5, 0); + stm_gpio_set(&stm_gpioa, 5, 1); stm_moder_set(&stm_gpioa, 5, STM_MODER_OUTPUT); stm_moder_set(&stm_gpioa, 6, STM_MODER_INPUT); stm_moder_set(&stm_gpioa, 7, STM_MODER_OUTPUT); break; case AO_SPI_1_PB3_PB4_PB5: - stm_gpio_set(&stm_gpiob, 3, 0); + stm_gpio_set(&stm_gpiob, 3, 1); stm_moder_set(&stm_gpiob, 3, STM_MODER_OUTPUT); stm_moder_set(&stm_gpiob, 4, STM_MODER_INPUT); stm_moder_set(&stm_gpiob, 5, STM_MODER_OUTPUT); break; case AO_SPI_1_PE13_PE14_PE15: - stm_gpio_set(&stm_gpioe, 13, 0); + stm_gpio_set(&stm_gpioe, 13, 1); stm_moder_set(&stm_gpioe, 13, STM_MODER_OUTPUT); stm_moder_set(&stm_gpioe, 14, STM_MODER_INPUT); stm_moder_set(&stm_gpioe, 15, STM_MODER_OUTPUT); @@ -298,13 +298,13 @@ ao_spi_disable_index(uint8_t spi_index) case STM_SPI_INDEX(2): switch (spi_index) { case AO_SPI_2_PB13_PB14_PB15: - stm_gpio_set(&stm_gpiob, 13, 0); + stm_gpio_set(&stm_gpiob, 13, 1); stm_moder_set(&stm_gpiob, 13, STM_MODER_OUTPUT); stm_moder_set(&stm_gpiob, 14, STM_MODER_INPUT); stm_moder_set(&stm_gpiob, 15, STM_MODER_OUTPUT); break; case AO_SPI_2_PD1_PD3_PD4: - stm_gpio_set(&stm_gpiod, 1, 0); + stm_gpio_set(&stm_gpiod, 1, 1); stm_moder_set(&stm_gpiod, 1, STM_MODER_OUTPUT); stm_moder_set(&stm_gpiod, 3, STM_MODER_INPUT); stm_moder_set(&stm_gpiod, 4, STM_MODER_OUTPUT); @@ -425,12 +425,21 @@ ao_spi_init(void) #if HAS_SPI_1 # if SPI_1_PA5_PA6_PA7 stm_rcc.ahbenr |= (1 << STM_RCC_AHBENR_GPIOAEN); + stm_ospeedr_set(&stm_gpioa, 5, SPI_1_OSPEEDR); + stm_ospeedr_set(&stm_gpioa, 6, SPI_1_OSPEEDR); + stm_ospeedr_set(&stm_gpioa, 7, SPI_1_OSPEEDR); # endif # if SPI_1_PB3_PB4_PB5 stm_rcc.ahbenr |= (1 << STM_RCC_AHBENR_GPIOBEN); + stm_ospeedr_set(&stm_gpiob, 3, SPI_1_OSPEEDR); + stm_ospeedr_set(&stm_gpiob, 4, SPI_1_OSPEEDR); + stm_ospeedr_set(&stm_gpiob, 5, SPI_1_OSPEEDR); # endif # if SPI_1_PE13_PE14_PE15 stm_rcc.ahbenr |= (1 << STM_RCC_AHBENR_GPIOEEN); + stm_ospeedr_set(&stm_gpioe, 13, SPI_1_OSPEEDR); + stm_ospeedr_set(&stm_gpioe, 14, SPI_1_OSPEEDR); + stm_ospeedr_set(&stm_gpioe, 15, SPI_1_OSPEEDR); # endif stm_rcc.apb2enr |= (1 << STM_RCC_APB2ENR_SPI1EN); ao_spi_index[0] = AO_SPI_CONFIG_NONE; @@ -440,9 +449,15 @@ ao_spi_init(void) #if HAS_SPI_2 # if SPI_2_PB13_PB14_PB15 stm_rcc.ahbenr |= (1 << STM_RCC_AHBENR_GPIOBEN); + stm_ospeedr_set(&stm_gpiob, 13, SPI_2_OSPEEDR); + stm_ospeedr_set(&stm_gpiob, 14, SPI_2_OSPEEDR); + stm_ospeedr_set(&stm_gpiob, 15, SPI_2_OSPEEDR); # endif # if SPI_2_PD1_PD3_PD4 stm_rcc.ahbenr |= (1 << STM_RCC_AHBENR_GPIODEN); + stm_ospeedr_set(&stm_gpiod, 1, SPI_2_OSPEEDR); + stm_ospeedr_set(&stm_gpiod, 3, SPI_2_OSPEEDR); + stm_ospeedr_set(&stm_gpiod, 4, SPI_2_OSPEEDR); # endif stm_rcc.apb1enr |= (1 << STM_RCC_APB1ENR_SPI2EN); ao_spi_index[1] = AO_SPI_CONFIG_NONE;