SLAU966 February 2025 MSPM0C1103 , MSPM0C1103-Q1 , MSPM0C1104 , MSPM0C1104-Q1 , MSPM0C1105 , MSPM0C1106 , MSPM0C1106-Q1 , MSPM0G1106 , MSPM0G1107 , MSPM0G1506 , MSPM0G1507 , MSPM0G1518 , MSPM0G1519 , MSPM0G3106 , MSPM0G3106-Q1 , MSPM0G3107 , MSPM0G3107-Q1 , MSPM0G3506 , MSPM0G3506-Q1 , MSPM0G3507 , MSPM0G3507-Q1 , MSPM0G3518 , MSPM0G3518-Q1 , MSPM0G3519 , MSPM0G3519-Q1 , MSPM0H3216 , MSPM0L1105 , MSPM0L1106 , MSPM0L1116 , MSPM0L1117 , MSPM0L1227 , MSPM0L1227-Q1 , MSPM0L1228 , MSPM0L1228-Q1 , MSPM0L1303 , MSPM0L1304 , MSPM0L1304-Q1 , MSPM0L1305 , MSPM0L1305-Q1 , MSPM0L1306 , MSPM0L1306-Q1 , MSPM0L1343 , MSPM0L1344 , MSPM0L1345 , MSPM0L1346 , MSPM0L2228
MSPM0 and NXP's M0 MCUs both support serial peripheral interface (SPI). Overall, MSPM0 and S32K1xx/KEA128x/KM35x SPI support is comparable with the difference listed in Table 4-3.
| Feature | S32K1xx | KEA128x | KM35x | MSPM0 |
|---|---|---|---|---|
| Controller or peripheral operation | Yes | Yes | Yes | Yes |
| Data bit width (controller mode) | 8 bits | 8 bits | 8 to 16 bits | 4 to 16 bits |
| Data bit width (peripheral mode) | 8 bits | 8 bits | 8 to 16 bits | 7 to 16 bits |
| Maximum speed | 10MHz | 12MHz | 37.5 MHz | MSPM0C: 12 MHz |
| MSPM0L: 16MHz | ||||
| MSPM0G: 32MHz | ||||
| Full-duplex transfers | Yes | Yes | Yes | Yes |
| Half-duplex transfer (bidirectional data line) | Yes | No | Yes | No |
| Simplex transfers (unidirectional data line) | Yes | Yes | Yes | Yes |
| Hardware chip select management | Equivalent | Equivalent | Equivalent | Yes |
| Programmable clock polarity and phase | Yes | Yes | Yes | Yes |
| Programmable data order with MSB-first or LSB-first shifting | Yes | Yes | Yes | Yes |
| SPI format support | N/A | N/A | N/A | Motorola, TI, MICROWIRE |
| Hardware CRC | No | No | No | No, MSPM0 offers SPI parity mode |
| TX FIFO depth | 4 | N/A | 8 | 4 |
| RX FIFO depth | 4 | N/A | 8 | 4 |
SPI code examples
Information about SPI code examples can be found in the MSPM0 SDK examples guide.