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
Counter at top
0 1 2 3
IRQ
CC_A
0 1 2
CC_A latched
Figure 110. Each
counter wrap causes
the interrupt request
signal to assert. The
processor enters its
interrupt handler,
writes to its copy of
the CC register, and
clears the interrupt.
When the counter
wraps again, the
latched version of the
CC register is
instantaneously
updated with the most
recent value written by
software, and this
value controls the duty
cycle for the next
period. The IRQ is
reasserted so that
software can write
another fresh value to
its copy of the CC
register.
There is no limitation on what values can be written to CC or TOP, or when they are written. In normal PWM mode
(CSR_PH_CORRECT is 0) the latched copies are updated when the counter wraps to 0, which occurs once every TOP + 1
cycles. In phase-correct mode (CSR_PH_CORRECT is 1), the latched copies are updated on the 0 to 0 count transition, i.e. the
point where the counter stops counting downward and begins to count upward again.
4.5.2.4. Clock Divider
Each slice has a fractional clock divider, configured by the DIV register. This is an 8 integer bit, 4 fractional bit clock
divider, which allows the count rate to be slowed by up to a factor of 256. The clock divider allows much lower output
frequencies to be achieved — approximately 7.5 Hz from a 125 MHz system clock. Lower frequencies than this will
require a system timer interrupt (Section 4.6)
It does this by generating an enable signal which gates the operation of the counter.
.0
DIV_FRAC
1
DIV_INT
.0
DIV_FRAC
Counter enable
3
DIV_INT
Counter enable
.5
DIV_FRAC
Counter enable
2
DIV_INT
Figure 111. The clock
divider generates an
enable signal. The
counter only counts on
cycles where this
signal is high. A clock
divisor of 1 causes the
enable to be asserted
on every cycle, so the
counter counts by one
on every system clock
cycle. Higher divisors
cause the count
enable to be asserted
less frequently.
Fractional division
achieves an average
fractional counting
rate by spacing some
enable pulses further
apart than others.
The fractional divider is a first-order delta-sigma type.
The clock divider also allows the effective count range to be extended, when using level-sensitive or edge-sensitive
modes to take duty cycle or frequency measurements.
4.5.2.5. Level-sensitive and Edge-sensitive Triggering
RP2040 Datasheet
4.5. PWM 547