Skip to content

Commit 182a28a

Browse files
authored
Merge pull request #579 from facchinm/spi_fix_maxclock
Limit max SPI clock frequency to F_CPU/2
2 parents ad95d3c + 738a0e9 commit 182a28a

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

libraries/SPI/SPI.cpp

+7-2
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,13 @@ void SPIClass::config(SPISettings settings)
9393
this->settings = settings;
9494
_p_sercom->disableSPI();
9595

96-
_p_sercom->initSPI(_padTx, _padRx, SPI_CHAR_SIZE_8_BITS, getBitOrder(settings));
97-
_p_sercom->initSPIClock(getDataMode(settings), settings.getClockFreq());
96+
uint32_t clock_freq = settings.getClockFreq();
97+
if (clock_freq > F_CPU/2) {
98+
clock_freq = F_CPU/2;
99+
}
100+
101+
_p_sercom->initSPI(_padTx, _padRx, SPI_CHAR_SIZE_8_BITS, getBitOrder(settings));
102+
_p_sercom->initSPIClock(getDataMode(settings), clock_freq);
98103

99104
_p_sercom->enableSPI();
100105
}

0 commit comments

Comments
 (0)