Lepton: move SPI PRESCALER to omg_boardconfig.h.

This commit is contained in:
iabdalkader 2018-06-04 16:36:16 +02:00
parent 3e0b605bea
commit 158813452e
2 changed files with 10 additions and 17 deletions

View File

@ -183,4 +183,6 @@
#define WINC_CS_LOW() HAL_GPIO_WritePin(WINC_CS_PORT, WINC_CS_PIN, GPIO_PIN_RESET) #define WINC_CS_LOW() HAL_GPIO_WritePin(WINC_CS_PORT, WINC_CS_PIN, GPIO_PIN_RESET)
#define WINC_CS_HIGH() HAL_GPIO_WritePin(WINC_CS_PORT, WINC_CS_PIN, GPIO_PIN_SET) #define WINC_CS_HIGH() HAL_GPIO_WritePin(WINC_CS_PORT, WINC_CS_PIN, GPIO_PIN_SET)
// SPI1/2/3 clock source is PLL2 (160MHz/8 == 20MHz).
#define LEPTON_SPI_PRESCALER (SPI_BAUDRATEPRESCALER_8)
#endif //__OMV_BOARDCONFIG_H__ #endif //__OMV_BOARDCONFIG_H__

View File

@ -458,23 +458,14 @@ int lepton_init(sensor_t *sensor)
{ {
memset(&SPIHandle, 0, sizeof(SPIHandle)); memset(&SPIHandle, 0, sizeof(SPIHandle));
SPIHandle.Instance = SPI3; SPIHandle.Instance = SPI3;
SPIHandle.Init.Mode = SPI_MODE_MASTER; SPIHandle.Init.NSS = SPI_NSS_SOFT;
SPIHandle.Init.Direction = SPI_DIRECTION_2LINES_RXONLY; SPIHandle.Init.Mode = SPI_MODE_MASTER;
SPIHandle.Init.DataSize = SPI_DATASIZE_8BIT; SPIHandle.Init.Direction = SPI_DIRECTION_2LINES_RXONLY;
SPIHandle.Init.CLKPolarity = SPI_POLARITY_HIGH; SPIHandle.Init.DataSize = SPI_DATASIZE_8BIT;
SPIHandle.Init.CLKPhase = SPI_PHASE_2EDGE; SPIHandle.Init.CLKPhase = SPI_PHASE_2EDGE;
SPIHandle.Init.NSS = SPI_NSS_SOFT; SPIHandle.Init.CLKPolarity = SPI_POLARITY_HIGH;
SPIHandle.Init.BaudRatePrescaler = LEPTON_SPI_PRESCALER;
uint32_t prescale = HAL_RCC_GetPCLK1Freq() / 20000000;
if (prescale <= 2) { SPIHandle.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2; }
else if (prescale <= 4) { SPIHandle.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_4; }
else if (prescale <= 8) { SPIHandle.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_8; }
else if (prescale <= 16) { SPIHandle.Init.BaudRatePrescaler= SPI_BAUDRATEPRESCALER_16; }
else if (prescale <= 32) { SPIHandle.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_32; }
else if (prescale <= 64) { SPIHandle.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_64; }
else if (prescale <= 128) { SPIHandle.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_128; }
else { SPIHandle.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_256; }
__HAL_RCC_SPI3_CLK_ENABLE(); __HAL_RCC_SPI3_CLK_ENABLE();
if (HAL_SPI_Init(&SPIHandle) != HAL_OK) { if (HAL_SPI_Init(&SPIHandle) != HAL_OK) {