WF200 Registers
This section describes the registers exposed by WFx to the host. The section focuses on the registers involved in the WF200 FMAC driver. Those registers can be accessed both using SPI or SDIO using the two modes described in Host Interface (HIF) .
1. Address Map
Name | SPI Address | SDIO Address | Description |
---|---|---|---|
Config | 0x00 | 0x00 | Configuration register |
Control | 0x01 | 0x04 | Control register |
Direct Mode Address | 0x02 | 0x08 | Shared RAM memory address offset |
Shared RAM data port | 0x05 | 0x14 | Direct Shrared RAM port access |
2. CONFIG Register
Name | Size (bits) | SPI address | SDIO address |
---|---|---|---|
CONFIG | 32 | 0x00 | 0x00 |
Bit | Reset | Read/Write | description |
---|---|---|---|
31-24 | 0x1 | R | Device identification information |
23-20 | Reserved | ||
19 | 0x0 | R/W |
SPI: Unused
SDIO: Disable CRC check on data. -0: Normal CRC check behaviour. -1: Disable CRC check on data transfers (CRC result assumed always correct). |
18 | 0x0 | R/W |
SPI: Dout_posedge_enable (1: enable, 0: disable).
SDIO: Dout_posedge_enable (1: enable, 0: disable). This is intended to be used with 50MHz SDIO clock speed. |
17:16 | 0x0 | R/W |
00: both irq’s disabled
01: data irq enable 10: wlan rdy irq enable 11: both irq’s enabled |
15 | 0x0 | R/W |
SPI: 0 (normal functional mode)
SDIO: Disable DAT1 interrupt mechanism -0: Normal DAT1 interrupt behaviour. -1: Disable DAT1 interrupts. Interrupt to host are still available on WIRQ pin. |
14 | 0x1 | R/W | Cpu_reset (1: cpu reset, 0: cpu non_reset) |
13 | 0x0 | R/W | Direct_pre_fetch Shared RAM (1: busy, 0: data ready) |
12 | 0x1 | R/W | Cpu_clk_disable (1: disable clk, 0: enable clk) |
11 | 0x0 | R/W | Reserved |
10 | 0x1 | R/W | Direct_access_mode (0: queue mode, 1: direct access mode) |
9:8 |
0x0
0x2 |
R/W
R |
Mode0 (“00”) : 4 bytes are sent : B1,B0,B3,B2
Mode1 (“01”) : 4 bytes are sent : B3,B2,B1,B0 This only make sense if the HOST works in 32-bit mode (SW-controlled) Mode2 (“10”) : 4 bytes are sent : B0,B1,B2,B3 Note: In SPI, the config register access will always be in word_mode 0, regardless of the real value of word mode. |
7 |
0x0
0x0 |
R/W
R |
SPI: chip select framing disable (1: spi_cs is not checked, 0: spi_cs is checked)
SDIO: Err 7 (1: host misses CRC error, 0: no error) |
6 | 0x0 | R | Err 6 (1: host tries to send data with no hif input queue entry programmed, 0: no error) |
5 | 0x0 | R | Err 5 (1: host tries to send data larger than hif input buffer, 0: no error) |
4 | 0x0 | R | Err 4 (1: host tries to send data when hif buffers overrun, 0: no error) |
3 | 0x0 | R | Err 3 (1: host tries to read data with no hif output queue entry programmed, 0: no error) |
2 | 0x0 | R | Err 2 (1: host tries to read data less than output message length, 0: no error) |
1 | 0x0 | R | Err 1 (1: host tries to read data when hif buffers underrun, 0: no error) |
0 |
0x0
0x0 |
R
R |
SPI: Err 0 (1: CSN Framing error ,0: no error)
SDIO: Err 0 (1: Buffer number mismatch, 0: no error) |
3. CONTROL Register
Name | Size (bits) | SPI Address | SDIO Address |
---|---|---|---|
CONTROL | 16 | 0x01 | 0x4 |
Bit | Reset | Read/Write | description |
---|---|---|---|
15:14 | 0x0 | R |
Frame type information:
00: Confirmation message 01: Indication message 10: Management message 11: Ethernet data packet |
13 | 0x0 | R | Wlan_rdy (1: wlan is ready, 0: wlan not ready) |
12 | 0x0 | R/W | Wlan_wup (1: prevent to go to sleep, 0: allow to go to sleep) |
11:0 | 0x0 | R | Next output Queue item length |
4. Card Common Control Register (SDIO specific)
Name | Size (Bytes) | Address |
---|---|---|
CCCR | 256 | 0x00000 |
Offset | Reset | Read/Write | description |
---|---|---|---|
0x00 | 0x11 | R/O | CCCR/SDIO Revision |
0x01 | 0x0 | R/O | SD Specification Revision |
0x02 | 0x0 | R/W | I/O Function Enable |
0x03 | 0x0 | R/O | I/O Function Ready |
0x04 | 0x0 | R/W | Interrupt Enable (7 functions and 1 master) |
0x05 | 0x0 | R/O | Interrupt Pending for each function |
0x06 | 0x0 | W/O | I/O Function Abort |
0x07 | 0x0 | R/W* | Bus Interface Control |
0x08 | 0x1F | R/W* | Card Capability |
0x09-0x0B | 0x1000 | R/O | Common CIS Pointer |
0x0C | 0x0 | R/W* | Bus Suspend |
0x0D | 0x0 | R/W* | Function Select |
0x0E | 0x0 | R/O | Function Execution Flags |
0x0F | 0x0 | R/O | Function Ready Flags |
0x10-0x11 | 0x0 | R/W | Function0 Block Size |
0x12 | 0x0 | R/W* | Power Control |
0x13-0xEF | unused – Reserved for Future Use | ||
0xF0-0xFF | unused – Reserved for Vendors |
R/W*: There are also R/O bits
5. Function Basic Registers (FBR) of Function1 (SDIO specific)
Register Name | Size (Bytes) | Address |
---|---|---|
FBR | 256 | 0x00100 |
Offset | Reset | Read/Write | description |
---|---|---|---|
0x00 | 0x0 | R/O | Function1 Standard SDIO Function Interface Code |
0x01 | 0x0 | R/O | Function1 Standard SDIO Function Interface Code |
0x02 | 0x0 | R/W* | Power Selection |
0x03-0x08 | Reserved | ||
0x09-0x0B | 0x2000 | R/O | Pointer to Function1 Card Information Pointer (CIS) |
0x0C-0x0E | 0x0 | R/O | Pointer to Function1 Code Storage Area (CSA) |
0x0F | 0x0 | R/O | Data Access Window to CSA |
0x10-0x11 | 0x0 | R/W | Function1 Block Size |
0x12-0xFF | Reserved |
R/W*: There are also R/O bits