Reading from AR1010

I’m using a Bus Pirate to talk to the AR1010 module, but when I read from it I don’t get anything close to the default register values listed on page 14 of the programming guide (RDN_R6952 v.0.81).

Here’s what I get:

HiZ>m
1. HiZ
2. 1-WIRE
3. UART
4. I2C
5. SPI
6. JTAG
7. RAW2WIRE
8. RAW3WIRE
9. PC KEYBOARD
10. LCD
(1) >4
Mode selected
Set speed:
 1. ~50KHz
 2. ~100KHz
 3. ~400KHz
(1) >3
READY
I2C>W
POWER SUPPLIES ON
I2C>p
 1. Pull-ups off
 2. Pull-ups on
(1) >2
Pull-up resistors ON
I2C>v
Voltage monitors: 5V: 4.98 | 3.3V: 3.28 | VPULLUP: 3.29 |
I2C>(1)
Searching 7bit I2C address space. 
   Found devices at:
0x20(0x10 W) 0x21(0x10 R) 
I2C>[0x21 r:18]
I2C START BIT
WRITE: 0x21 ACK
READ 0x12 BYTES:
0xFF ACK 0xFE ACK 0xC1 ACK 0x7F ACK 0xCC ACK 0x00 ACK 0x80 ACK 0x00 ACK 0xC4 ACK 0x00 ACK 0x28 ACK 0xAA ACK 0x00 ACK 0x00 ACK 0x1C ACK 0x00 ACK 0x01 ACK 0x40 NACK
I2C STOP BIT
I2C>

What am I doing wrong? I also noticed that the defaults table lists 2 bytes for every memory address, but the Bus Pirate only seems to read one byte per address. What is the proper way to address all the registers?

Doh! It turns out the AR1010 was working fine, but I was expecting to see the “default values” from the datasheet.

I didn’t realize that it’s not actually configured at power-up in any useful way.