Skip to content

Commit

Permalink
Merge pull request #6067 from sgauche/spi_polarity_pullupdown
Browse files Browse the repository at this point in the history
Set SPI CLK pin pull up/down in SPI Configure based on SPI polarity config
  • Loading branch information
tannewt authored Feb 22, 2022
2 parents e2f56e9 + 6827586 commit 40b430e
Showing 1 changed file with 9 additions and 0 deletions.
9 changes: 9 additions & 0 deletions ports/stm/common-hal/busio/SPI.c
Original file line number Diff line number Diff line change
Expand Up @@ -293,6 +293,15 @@ bool common_hal_busio_spi_configure(busio_spi_obj_t *self,
self->handle.Init.CLKPolarity = (polarity) ? SPI_POLARITY_HIGH : SPI_POLARITY_LOW;
self->handle.Init.CLKPhase = (phase) ? SPI_PHASE_2EDGE : SPI_PHASE_1EDGE;

// Set SCK pull up or down based on SPI CLK Polarity
GPIO_InitTypeDef GPIO_InitStruct = {0};
GPIO_InitStruct.Pin = pin_mask(self->sck->pin->number);
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = (polarity) ? GPIO_PULLUP : GPIO_PULLDOWN;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.Alternate = self->sck->altfn_index;
HAL_GPIO_Init(pin_port(self->sck->pin->port), &GPIO_InitStruct);

self->handle.Init.BaudRatePrescaler = stm32_baud_to_spi_div(baudrate, &self->prescaler,
get_busclock(self->handle.Instance));

Expand Down

0 comments on commit 40b430e

Please sign in to comment.