wiki:Specs/I²C/Protocol

Version 4 (modified by ph3-der-loewe, 11 years ago) (diff)

+ more infos on Bank 0.

Standard I²C Protocol for RoarAudio Devices

Overview

RoarAudio Devices with I²C interface provide a standard Memory interface on the bus. Communication with the device is done by reading and writing to memory cells. The Memory is organized into diffrent banks. Each bank is used to access a single command or feature.

The memory structure is as following:

Offset Description
0 Interface Version
1 Device Status
2 Command/Bank ID
3 Device Error
4 Bank data

Interface Version

This is the version of the Interface. This document describes version 0.

Device Status

This is a overall status byte.

Bit Description
0 Device Ready
1 Selfcheck passed
2 Selfcheck returned error
3 Updates since last read
4 Reserved
5 Reserved
6 Reserved
7 Reserved

If bit 1 and 2 is zero selfcheck is currently running. Bit 3 is set after value changes of ADC pins or GPI pins. It is reset when the correspdoning bank (holding the updated value) is selected.

Command/Bank ID

This is the ID of the selected memory bank.

Device Error

This is the device's error code. It is updated after every command/bank change and may be updated on writing command specific parameters. The values are standard RoarAudio Error Values. See Specs/ErrorValues

Bank 0: Device Info

The memory bank 0 holds general device information and status.

The structure is as following:

Offset Length Description
3 2 Device Status
5 1 Vendor ID
6 1 Device Type
7 1 Device Sub-Type
8 1 Device Revision
9 1 Parent Vendor ID
10 1 Parent Device Type
11 1 Parent Device Sub-Type
12 3 Device Capabilities
15 16 Device Serial

Vendor ID, Device Type, Device Sub-Type, Device Revision

...

Parent Vendor ID, Parent Device Type, Parent Device Sub-Type

...

Device Status, Device Capabilities

Those parameters' meaning is depending on Device's Vendor ID, type and sub-type as well as parent device vendor ID, type and sub-type ID.

Device Serial

The serial of the device is given as a 16 byte bitstring. This is intended to be used to store an UUID as device serial. If a vendor uses some other numbering a schema neets to be established that maps those serials to the device serial field. A mapping should be chosen that complies with the current UUID standard.