SLAU929A April 2024 – June 2025 MSPM0C1104 , MSPM0G3505 , MSPM0G3506 , MSPM0G3507 , MSPM0H3216 , MSPM0L1105 , MSPM0L1227 , MSPM0L1227-Q1 , MSPM0L1228 , MSPM0L1228-Q1 , MSPM0L1304 , MSPM0L1305 , MSPM0L1306 , MSPM0L2227 , MSPM0L2227-Q1 , MSPM0L2228 , MSPM0L2228-Q1
MSPM0 and Microchip 8-bit MCUs both support I2C. In MSPM0, the I2C functionality is handled by the I2C module. In Microchip devices, this is slightly different. In ATmega169/329 devices, I2C is handled by the Universal Serial Interface. In the ATmega48/88, it is managed by the 2-Wire Serial Interface. In the ATtiny, the two wire interface or TWI handles I2C communications.
| Feature | ATmega | ATtiny | MSPM0 |
|---|---|---|---|
| Controller and target modes | Yes | Yes | Yes |
| Multi-controller capability | Yes | Yes | Yes |
| Standard-mode (up to 100 kHz) | Yes | Yes | Yes |
| Fast-mode (up to 400 kHz) | Yes | Yes | Yes |
| Fast-mode Plus (up to 1 MHz) | No | Yes | Yes |
| Addressing mode | 7 bit | 7 or 10 bit | 7 or 10 bit |
| Peripheral addresses | 1 address | 1 address | 2 addresses |
| General call | No for ATmega 169/329, yes for ATmega48/88 | Yes | Yes |
| Programmable setup and hold times | No | No | No |
| Event management | No | No | Yes |
| Clock stretching | No for ATmega169/329, yes for ATmega48/88 | Yes | Yes |
| Software reset | Yes | Yes | Yes |
| FIFO/Buffer | No | No | TX: 8 byte |
| RX: 8 byte | |||
| DMA | No | No | Yes |
| Programmable analog and digital noise filters | NN/A for Atmega169/329, Input filter not programmable for ATmega48/88 | Input filter not programmable | Yes |
Information about I2C code examples can be found in the MSPM0 SDK examples guide.