I/O Map (WIP)

GPIO Port (Base: 0x48000000)

RegisterOffsetDescription
Data In0x0014 pins only
Data Out0x0414 pins only
Pull Up Enable0x08Currently not used
Pull Down Enable0x0CCurrently not used
Direction0x101: Input, 0: Output
Interrupt Mask0x14

UART Modules (UART0 Base: 0x40100000, UART1 Base: 0x40200000)

RegisterOffsetDescription
TX/RX Data0x00Read/Write from/to RX/TX FIFOs
STATUS0x04Read only
CONTROL0x04Write only
PRESCALER0x08Prescaler for the baud rate generator
Interrupts Mask0x0C
TX FIFO Threshold0x10
RX FIFO Threshold0x14

SPI Modules (SPI0 Base: 0x40200000, SPI1 Base: 0x40300000 )

RegisterOffsetDescription
Data
Control
Configuration
Status
Interrupt Mask

I2C Modules (I2C0 Base: 0x40400000, I2C1 Base: 0x40500000)

RegisterOffsetDescription

Pulse Width Modulors (PWM0 Base: 0x40600000, PWM1 Base: 0x40700000)

RegisterOffsetDescription
CMP10x04Compare 1 Register (period)
CMP20x08Compare 2 Register (level change)
PRESCALER0x10Prescaler Register, tmr_clk = clk / (PRESCALER+1)
CTRL0x20Control Register, 0: Enable PWM

PWM Period = (CMP1 + 1)/tmr_clk = (CMP1 + 1)*(PRESCALER + 1)/clk

PWM Duty Cyle = 1 - (CMP1 + 1)/(CMP2 + 1)

32-bit Timer Modules (Base: 0x40800000, 0x40900000, 0x40A00000, 0x40B00000)

RegisterOffsetDescription
TIMER0x00Current Count
Prescaler0x04
Compare0x08Compare Register
Status
Overflow Clear
Timer Enable
Interrupt Mask

32-bit Watch Dog Timer Modules (Base: 0x40C00000, 0x40D00000)

RegisterOffsetDescription