1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-26 01:35:41 +03:00

Run SPI FLASH at full speed

This commit is contained in:
Steve Evans 2020-08-25 08:34:15 +01:00
parent 60c008b20b
commit 41a0ca43d1
39 changed files with 276 additions and 193 deletions

View file

@ -240,6 +240,25 @@ void spiBusSetInstance(busDevice_t *bus, SPI_TypeDef *instance)
bus->busdev_u.spi.instance = instance;
}
uint16_t spiCalculateDivider(uint32_t freq)
{
#if defined(STM32F4) || defined(STM32G4) || defined(STM32F7)
uint32_t spiClk = SystemCoreClock / 2;
#elif defined(STM32H7)
uint32_t spiClk = 100000000;
#else
#error "Base SPI clock not defined for this architecture"
#endif
uint16_t divisor = 2;
spiClk >>= 1;
for (; (spiClk > freq) && (divisor < 256); divisor <<= 1, spiClk >>= 1);
return divisor;
}
void spiBusSetDivisor(busDevice_t *bus, uint16_t divisor)
{
spiSetDivisor(bus->busdev_u.spi.instance, divisor);