0x00 |
Base Register Address |
This module provides hardware specific information, status, and soft reset.
Register Address |
Register Name |
Register Size |
Access |
0x01 |
HW_ID |
1 byte |
R |
0x02 |
VERSION |
4 bytes |
R |
0x03 |
OPTIONS |
4 bytes |
R |
0x04 |
TEMP |
4 bytes |
R |
0x7F |
SWRST |
0 bytes |
W |
Byte 0 |
Hardware ID Code |
A single byte value that provides the hardware specific Hardware ID Code.
Byte 0 |
Byte 1 |
Byte 2 |
Byte 3 |
Product Code MSB |
Product Code LSB |
Date Code MSB |
Date Code LSB |
The Product Code is a unique 16 bit number assigned to each product.
The Date Code is a 16 bit value that indicates the year, month, and day of the firmware build:
- Top 5 bits are day of the month (1-31)
- Middle 4 bits are month (1-12)
- Bottom 7 bits are 20xx year (00-99)
Here's a Python function for decoding a Date Code into year, month, and day:
def datecode_decode(code): year = code & 0x7F // bottom 7 bits are 20xx year (00-99) month = (code >> 7) & 0x0F // middle 4 bits are month (1-12) day = (code >> 11) & 0x1F // top 5 bits are day of month (1-31) return year, month, day
Byte 0 |
Byte 1 |
Byte 2 |
Byte 3 |
Options MSB |
Options |
Options |
Options LSB |
Options is a 32 bit field register indicating if a specific option (ADC, PWM, etc.) has been enabled or not within the firmware. If enabled, the bit reads a 1, otherwise 0.
Bit locations for options are defined below:
#define SEESAW_STATUS_BASE 0x00 #define SEESAW_GPIO_BASE 0x01 #define SEESAW_SERCOM0_BASE 0x02 #define SEESAW_SERCOM1_BASE 0x03 #define SEESAW_SERCOM2_BASE 0x04 #define SEESAW_SERCOM3_BASE 0x05 #define SEESAW_SERCOM4_BASE 0x06 #define SEESAW_SERCOM5_BASE 0x07 #define SEESAW_TIMER_BASE 0x08 #define SEESAW_ADC_BASE 0x09 #define SEESAW_DAC_BASE 0x0A #define SEESAW_INTERRUPT_BASE 0x0B #define SEESAW_DAP_BASE 0x0C #define SEESAW_EEPROM_BASE 0x0D #define SEESAW_NEOPIXEL_BASE 0x0E #define SEESAW_TOUCH_BASE 0x0F #define SEESAW_KEYPAD_BASE 0x10 #define SEESAW_ENCODER_BASE 0x11
Byte 0 |
Byte 1 |
Byte 2 |
Byte 3 |
Temperature MSB |
Temperature |
Temperature |
Temperature LSB |
The on board Temperature of the device, as a signed 32 bit integer.
Writing to the register address will initiate a software reset.
Page last edited March 08, 2024
Text editor powered by tinymce.