summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Epler <jepler@unpythonic.net>2021-03-25 13:37:37 -0500
committerJeff Epler <jepler@unpythonic.net>2021-03-26 10:01:53 -0500
commit9e110f120a323eff9989463771d8ea8ece6e8906 (patch)
tree63d746d0c361f6dbc2248b0db8cc16c4f4e1a876
parent155b61f0275efc1eac805ed37070834e81bb32ba (diff)
mimxrt10xx: busio: cap SPI baudrate at 30MHz per datasheet
-rw-r--r--ports/mimxrt10xx/common-hal/busio/SPI.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/ports/mimxrt10xx/common-hal/busio/SPI.c b/ports/mimxrt10xx/common-hal/busio/SPI.c
index 1b72921d3..13a808618 100644
--- a/ports/mimxrt10xx/common-hal/busio/SPI.c
+++ b/ports/mimxrt10xx/common-hal/busio/SPI.c
@@ -234,6 +234,10 @@ void common_hal_busio_spi_deinit(busio_spi_obj_t *self) {
bool common_hal_busio_spi_configure(busio_spi_obj_t *self,
uint32_t baudrate, uint8_t polarity, uint8_t phase, uint8_t bits) {
+ if (baudrate > 30000000) {
+ baudrate = 30000000; // "Absolute maximum frequency of operation (fop) is 30 MHz" -- IMXRT1010CEC.pdf
+ }
+
LPSPI_Enable(self->spi, false);
uint32_t tcrPrescaleValue;
self->baudrate = LPSPI_MasterSetBaudRate(self->spi, baudrate, LPSPI_MASTER_CLK_FREQ, &tcrPrescaleValue);