Datasheet
Table Of Contents
- RP2040 Datasheet
- Colophon
- Chapter 1. Introduction
- Chapter 2. System Description
- 2.1. Bus Fabric
- 2.2. Address Map
- 2.3. Processor subsystem
- 2.4. Cortex-M0+
- 2.5. DMA
- 2.6. Memory
- 2.7. Boot Sequence
- 2.8. Bootrom
- 2.9. Power Supplies
- 2.10. Core Supply Regulator
- 2.11. Power Control
- 2.12. Chip-Level Reset
- 2.13. Power-On State Machine
- 2.14. Subsystem Resets
- 2.15. Clocks
- 2.16. Crystal Oscillator (XOSC)
- 2.17. Ring Oscillator (ROSC)
- 2.18. PLL
- 2.19. GPIO
- 2.20. Sysinfo
- 2.21. Syscfg
- 2.22. TBMAN
- Chapter 3. PIO
- Chapter 4. Peripherals
- 4.1. USB
- 4.2. UART
- 4.3. I2C
- 4.3.1. Features
- 4.3.2. IP Configuration
- 4.3.3. I2C Overview
- 4.3.4. I2C Terminology
- 4.3.5. I2C Behaviour
- 4.3.6. I2C Protocols
- 4.3.7. Tx FIFO Management and START, STOP and RESTART Generation
- 4.3.8. Multiple Master Arbitration
- 4.3.9. Clock Synchronization
- 4.3.10. Operation Modes
- 4.3.11. Spike Suppression
- 4.3.12. Fast Mode Plus Operation
- 4.3.13. Bus Clear Feature
- 4.3.14. IC_CLK Frequency Configuration
- 4.3.15. DMA Controller Interface
- 4.3.16. Operation of Interrupt Registers
- 4.3.17. List of Registers
- 4.4. SPI
- 4.5. PWM
- 4.6. Timer
- 4.7. Watchdog
- 4.8. RTC
- 4.9. ADC and Temperature Sensor
- 4.10. SSI
- 4.10.1. Overview
- 4.10.2. Features
- 4.10.3. IP Modifications
- 4.10.4. Clock Ratios
- 4.10.5. Transmit and Receive FIFO Buffers
- 4.10.6. 32-Bit Frame Size Support
- 4.10.7. SSI Interrupts
- 4.10.8. Transfer Modes
- 4.10.9. Operation Modes
- 4.10.10. Partner Connection Interfaces
- 4.10.11. DMA Controller Interface
- 4.10.12. APB Interface
- 4.10.13. List of Registers
- Chapter 5. Electrical and Mechanical
- Appendix A: Register Field Types
- Appendix B: Errata
- Appendix C: Documentation Release History
unpredictable states would occur.
An example of high-speed mode devices are LCD displays, high-bit count ADCs, and high capacity EEPROMs. These
devices typically need to transfer large amounts of data. Most maintenance and control applications, the common use
for the I2C bus, typically operate at 100 kHz (in standard and fast modes). Any DW_apb_i2c device can be attached to
an I2C-bus and every device can talk with any master, passing information back and forth. There needs to be at least
one master (such as a microcontroller or DSP) on the bus but there can be multiple masters, which require them to
arbitrate for ownership. Multiple masters and arbitration are explained later in this chapter. The I2C block does not
support SMBus and PMBus protocols (for System Management and Power management).
The DW_apb_i2c is made up of an AMBA APB slave interface, an I2C interface, and FIFO logic to maintain coherency
between the two interfaces. The blocks of the component are illustrated in Figure 64.
AMBA Bus
Interface Unit
Register File
Slave State
Machine
Master State
Machine
Clock Generator Rx Shift Tx Shift Rx Filter
Toggle Synchronizer DMA Interface
Interrupt
Controller
RX FIFO TX FIFO
DW_apb_i2c
Figure 64. I2C Block
diagram
The following define the functions of the blocks in Figure 64:
•
AMBA Bus Interface Unit — Takes the APB interface signals and translates them into a common generic interface
that allows the register file to be bus protocol-agnostic.
•
Register File — Contains configuration registers and is the interface with software.
•
Slave State Machine — Follows the protocol for a slave and monitors bus for address match.
•
Master State Machine — Generates the I2C protocol for the master transfers.
•
Clock Generator — Calculates the required timing to do the following:
◦
Generate the SCL clock when configured as a master
◦
Check for bus idle
◦
Generate a START and a STOP
◦
Setup the data and hold the data
•
Rx Shift — Takes data into the design and extracts it in byte format.
•
Tx Shift — Presents data supplied by CPU for transfer on the I2C bus.
•
Rx Filter — Detects the events in the bus; for example, start, stop and arbitration lost.
•
Toggle — Generates pulses on both sides and toggles to transfer signals across clock domains.
•
Synchronizer — Transfers signals from one clock domain to another.
•
DMA Interface — Generates the handshaking signals to the central DMA controller in order to automate the data
transfer without CPU intervention.
•
Interrupt Controller — Generates the raw interrupt and interrupt flags, allowing them to be set and cleared.
RP2040 Datasheet
4.3. I2C 462