DS90UB9X Raw Device#
- Authors:
Aarón Cuevas López
- Version:
3
- IO:
Frame Source, Register Access
- ONIX ID:
24
- ONIX Hubs:
Description#
The DS90UB9X Raw Device can be used to receive raw data from and control DS90UB9x SERDES pairs. This device is useful for acquiring data from instruments that use DS90UB9x3 serializers, which are physically compatible with ONIX host hardware, but do not implement ONIX Serization protocol. For example, third party devices such as UCLA Miniscope and its derivatives.
Register Programming#
Managed Registers#
Managed register access is provided at offset 0x8000.
Address |
Name |
Access |
Time of Effect |
POR Value |
Reset Action |
Description |
---|---|---|---|---|---|---|
0x8000 |
ENABLE |
R/W |
On Reset |
Implementation dependent, see hub documentation |
None |
The LSB is used to enable or disable the device data stream:
|
0x8001 |
READSZ |
R/W |
On Reset |
1280 |
None |
Amount of data to read into a frame
|
0x8002 |
TRIGGER |
R/W |
On Reset |
0 |
None |
The LSBs determines the data capture start tigger
|
0x8003 |
TRIGGEROFF |
R/W |
On Reset |
0 |
None |
Offset, in samples, that are skipped following trigger. |
0x8004 |
DATAGATE |
R/W |
On Reset |
0 |
None |
The LSBs are used to determine how data is gated
|
0x8005 |
SYNCBITS |
R/W |
On Reset |
0 |
None |
The LSB determines if HSYNC and VSYNC bits are included in the data word along with parallel port state. If included, bit 13 is HSYNC and bit 14 is VSYNC.
|
0x8006 |
MARK |
R/W |
On Reset |
0 |
None |
If enabled, mark bit 15 of all data words in a frame after a choosen sync edge. Note that words in a frame still respect TRIGGER and GATE properties. Therefore this property provides a means to mark the first frame in a multi-frame sample (e.g. the first row in a camera image).
|
0x8007 |
MAGIC_MASK |
R/W |
On Reset |
0 |
None |
Bitmask for magic word detection and related options.
|
0x8008 |
MAGIC |
R/W |
On Reset |
0 |
None |
After trigger, if magic_mask is not 0, wait until a specific word in the stream to start a frame. (Bits 0-15) |
0x8009 |
MAGIC_WAIT |
R/W |
On Reset |
0 |
None |
Max number of samples to wait from trigger to mask detection before canceling and going back to trigger detection. 0 means wait indefinitely |
0x800A |
DATAMODE |
R/W |
On Reset |
0 |
None |
Data operation mode
|
0x800B |
DATALINES0 |
R/W |
On Reset |
0 |
None |
Input lines for serial stream 0. Each 4 bits specify the input:
|
0x800C |
DATALINES1 |
R/W |
On Reset |
0 |
None |
Input lines for serial stream 1. Each 4 bits specify the input: 0x0-0xB: Data lines 0-11. 0xC: Hsync, 0xD: Vsync, 0xE: Reserved 0xF: zero-input |
0x8010 |
GPIO_DIR |
R/W |
Immediate |
0 |
None |
Bits 0-3 determine the direction of GPIO 0-3. For each bit:
|
0x8011 |
GPIO_VAL |
R/W |
Immediate |
0 |
None |
Bits 0-3 determine the value of GPIO 0-3. For each bit:
|
0x8012 |
LINK_STATUS |
R |
On DS90UBX LOCK or PASS pin state change |
N/A |
None |
Access the DS90UBX LOCK and PASS pin state to determine if the SERDES is operating normally.
|
0x8013 |
DS90UBX_I2C_LAST_L |
R |
On I2C access |
N/A |
None |
Acquisition clock counter value of last i2c raw access (low 32 bits) |
0x8014 |
DS90UBX_I2C_LAST_H |
R |
On I2C access |
N/A |
None |
Acquisition clock counter value of last i2c raw access (high 32 bits) |
Unmanaged Registers#
Unmanaged read and write access is provided to the SERDES I2C bus when using register addresses less than 0x8000.
Device To Host Data Frames#
Each frame transmitted to the host consists of a READSZ-sample frame.
Host To Device Data Frames#
This device does not accept input frames. All write attempts will fail with an error.