RHS2116#

Authors:

Jonathan P. Newman

Version:

1

IO:

Frame Source, Register Access

ONIX ID:

31

Description#

The RHS2116 device acquires data and controls stimulation from an Intan RHS2116 bioamplifier and stimulator chip.

  • Fixed sampling rate: 30193.236714975847 kHz/channel

  • Real-time control of stimulation sequences

  • Real-time control of many acquisition registers (e.g. filter settings, artifact recovery parameters, etc.)

Register Programming#

Managed Registers#

Managed register access is provided at offset 0x10000.

Managed Registers#

Address

Name

Access

Time of Effect

POR Value

Reset Action

Description

0x10000

ENABLE

R/W

On Reset

Implementation dependent, see hub documentation

None

The LSB is used to enable or disable the device data stream:

  • 0x0: data output disabled

  • 0x1: data output enabled

0x10001

MAXDELTAS

R

N/A

Implementation dependent, see hub documentation

None

Maximum number of deltas in the delta table

0x10002

NUMDELTAS

R/W

Immediate

0

None

Number of deltas in the delta table. Valid values are 0-MAXDELTAS.

0x10003

DELTAIDXTIME

W

Immediate

0

None

The delta table index and corresponding application delta application time. Time value should increase monontonically with Index value. SEQERROR will be set to ‘1’ and headstage reset will be required, along with corrected stimulus defintion, in order to apply stimuli.

  • 32-bits: [index_9, index_8, …, index_0, time_21, time_20, …, time_0]

  • index_x: The index of the delta table to program with Time and DELTAPOLEN values.

  • time_x: Time in units of stim_seq_clk_i cycles, following a trigger, at which the DELTAPOLEN value[Index] is applied.

0x10004

DELTAPOLEN

W

Immediate

0

None

The polarity and enable vectors applied at time DELTATIMESAMPLES at DELTAIDXANDTIME[index]

  • 32 bits: [pol_15, pol_14, …, pol_o, en_15, en_14, …, en_0]

  • pol_x = ‘0’: channel x is negative, pol_x = ‘1’: channel x is positive

  • en_x = ‘0’: channel x is disabled, pol_x = ‘1’: channel x is enabled

0x10005

SEQERROR

R

N/A

0

0

Invalid sequence encountered, the device requires a reset with an updated sequence definition. Stimulation on all channels in disabled until this occurs.

0x10006

TRIGGER

W

Immediate

0

0

Writing 1 to this register will trigger a stimulation sequence for this device.

0x10007

FASTSETTLESAMPLES

R/W

Immediate

10

None

Number of round-robbin samples to apply charge balance following the conclusion of a stimulus pulse. 30 (1 msec) is the maximum. Typically set the 2.5/f_{h} where f_{h} is upper analog bandwidth of setting.

0x10008

RESPECTSTIMACTIVE

W

Immediate

1

None

Determines when artifact recovery sequence is applied to this chip.

  • 0x00: This device only cares about recovering from stimuli that it itself creates.

  • 0x01: This device will apply the LPB version of the low pass filter if stim_active_i goes high, regardless of whether this device created the stimulus.

Unmanaged Registers#

Read and write access is provided to the registers detailed in the RHS2116 series datasheet.

  • Registers are 32-bits wide

  • Addresses and functions are determined by the RHS2116 datasheet

  • Reading and writing is not direct. Register values are stored in RAM and applied when the SPI controller encounters them.

  • Registers have various designations indicating when they are applied. The table below uses the following labels to define when a register change takes effect.

    RESET

    Register value is applied after a reset.

    RT (Real-time)

    Register value can be changed during operation. There is worst-case delay of ~400 usec for the application to occur. This occurs if there are concurrent SEQ register applications, which take precedence. Typically, the delay is ~170 usec.

    SEQ (Sequence)

    Register programming is handled by the internal stimulus sequencer, which itself is configured using managed registers. These should not be manipulated externally.

Unmanaged Registers#

Address

Name

Description

POR Bits

POR Value

Time of Effect

Access

0x00

BIAS

ADC and MUX bias currents

0000000011000100

ADC buffer bias = 3; MUX bias = 4 -> fs >440 kS/s

RESET

R/W

0x01

FORMAT

Conversion format

0000010110001111

Unsigned

RESET

R/W

0x02

ZCHECK

Impediace check

0000000000000000

Disabled

RESET

R/W

0x03

DAC

Impedance check DAC

0000000000000000

Disabled

RESET

R/W

0x04

BW0

Upper analog bandwidth 1

0000000000010001

RH1: sel2: 0; sel1: 17 -> upper cutoff 10 kHz

RT

R/W

0x05

BW1

Upper analog bandwidth 2

0000000000010000

RH2: sel2: 0; sel1: 16 -> upper cutoff 10 kHz

RT

R/W

0x06

BW2

Lower analog bandwidth A

0011111000010000

RL_A: sel3: 1; sel2: 60; sel1: 16 -> lower cutoff 0.1 Hz

RT

R/W

0x07

BW3

Lower analog bandwidth B

0000000000010001

RL_B: sel3: 0; sel2: 0; sel1L: 17 -> lower cutoff 250 Hz

RT

R/W

0x08

PWR

Low-noise ephys amplifier power

1111111111111111

All on

RESET

R/W

0x09

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x0A

SETTLE

Amplifier fast settel state

0000000000000000

No fast settle

SEQ

R/W

0x0B

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x0C

LOWAB

Select between RL_A and RL_B for each amplifier.

1111111111111111

RL_A for every channel

SEQ

R/W

0x0D

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x0E

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x0F

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x10

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x11

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x12

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x13

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x14

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x15

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x16

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x17

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x18

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x19

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x1A

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x1B

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x1C

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x1D

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x1E

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x1F

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x20

STIMENA

Stim enable magic word A.

1010101010101010

Enabled

RESET

R/W

0x21

STIMENB

Stim enable magic word B. Enabled.

0000000011111111

Enabled

RESET

R/W

0x22

STEPSZ

Stimulator current step size

0000000010100110

sel3: 0; sel2: 0; sel1: 38 -> 5 uA step

RESET

R/W

0x23

STIMBIAS

Stimulator circuit bias current

0000000011101110

Pbias: 14; Nbias: 14 -> optimal for 5uA step

RESET

R/W

0x24

RECVOLT

Charge recovery target voltage

0000000000000000

0 volts

RESET

R/W

0x25

RECCUR

Charge recovery current limit

0000000000001001

sel3: 0; sel2: 0; se11: 9 -> 1uA

RESET

R/W

0x26

DCPWR

DC amplifier power

1111111111111111

All on

RESET

R/W

0x27

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x28

COMPLI

Compliance monitor. Not currently implemented, register valye does not reflect COMPLI state.

0000000000000000

N/A

N/A

R/W

0x29

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x2A

STIMON

Stimulation on/off.

0000000000000000

All off

SEQ

R/W

0x2B

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x2C

STIMPOL

Stimulation polarity.

0000000000000000

All negative

SEQ

R/W

0x2D

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x2E

RECOV

Charge recovery switch state. Open.

0000000000000000

Open

SEQ

R/W

0x2F

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x30

LIMREC

Current-lmited charge recovery switch state. Open.

0000000000000000

Open

SEQ

R/W

0x31

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x32

FAULT

Fault current detector. Not currently implemented, register valye does not reflect FAULT state.

0000000000000000

N/A

N/A

R/W

0x33

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x34

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x35

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x36

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x37

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x38

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x39

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x3A

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x3B

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x3C

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x3D

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x3E

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x3F

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x40

NEG00

Negative Stimulation Current Magnitude

0000000000000000

0

RT

R/W

0x41

NEG01

Negative Stimulation Current Magnitude

0000000000000000

0

RT

R/W

0x42

NEG02

Negative Stimulation Current Magnitude

0000000000000000

0

RT

R/W

0x43

NEG03

Negative Stimulation Current Magnitude

0000000000000000

0

RT

R/W

0x44

NEG04

Negative Stimulation Current Magnitude

0000000000000000

0

RT

R/W

0x45

NEG05

Negative Stimulation Current Magnitude

0000000000000000

0

RT

R/W

0x46

NEG06

Negative Stimulation Current Magnitude

0000000000000000

0

RT

R/W

0x47

NEG07

Negative Stimulation Current Magnitude

0000000000000000

0

RT

R/W

0x48

NEG08

Negative Stimulation Current Magnitude

0000000000000000

0

RT

R/W

0x49

NEG09

Negative Stimulation Current Magnitude

0000000000000000

0

RT

R/W

0x4A

NEG10

Negative Stimulation Current Magnitude

0000000000000000

0

RT

R/W

0x4B

NEG11

Negative Stimulation Current Magnitude

0000000000000000

0

RT

R/W

0x4C

NEG12

Negative Stimulation Current Magnitude

0000000000000000

0

RT

R/W

0x4D

NEG13

Negative Stimulation Current Magnitude

0000000000000000

0

RT

R/W

0x4E

NEG14

Negative Stimulation Current Magnitude

0000000000000000

0

RT

R/W

0x4F

NEG15

Negative Stimulation Current Magnitude

0000000000000000

0

RT

R/W

0x50

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x51

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x52

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x53

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x54

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x55

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x56

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x57

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x58

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x59

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x5A

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x5B

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x5C

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x5D

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x5E

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x5F

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x60

POS00

Positive Stimulation Current Magnitude

0000000000000000

0

RT

R/W

0x61

POS01

Positive Stimulation Current Magnitude

0000000000000000

0

RT

R/W

0x62

POS02

Positive Stimulation Current Magnitude

0000000000000000

0

RT

R/W

0x63

POS03

Positive Stimulation Current Magnitude

0000000000000000

0

RT

R/W

0x64

POS04

Positive Stimulation Current Magnitude

0000000000000000

0

RT

R/W

0x65

POS05

Positive Stimulation Current Magnitude

0000000000000000

0

RT

R/W

0x66

POS06

Positive Stimulation Current Magnitude

0000000000000000

0

RT

R/W

0x67

POS07

Positive Stimulation Current Magnitude

0000000000000000

0

RT

R/W

0x68

POS08

Positive Stimulation Current Magnitude

0000000000000000

0

RT

R/W

0x69

POS09

Positive Stimulation Current Magnitude

0000000000000000

0

RT

R/W

0x6A

POS10

Positive Stimulation Current Magnitude

0000000000000000

0

RT

R/W

0x6B

POS11

Positive Stimulation Current Magnitude

0000000000000000

0

RT

R/W

0x6C

POS12

Positive Stimulation Current Magnitude

0000000000000000

0

RT

R/W

0x6D

POS13

Positive Stimulation Current Magnitude

0000000000000000

0

RT

R/W

0x6E

POS14

Positive Stimulation Current Magnitude

0000000000000000

0

RT

R/W

0x6F

POS15

Positive Stimulation Current Magnitude

0000000000000000

0

RT

R/W

0x70

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x71

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x72

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x73

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x74

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x75

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x76

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x77

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x78

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x79

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x7A

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x7B

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x7C

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x7D

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x7E

Reserved

N/A

0000000000000000

N/A

N/A

R/W

0x7F

Reserved

N/A

0000000000000000

N/A

N/A

R/W

Device To Host Data Frames#

Each frame transmitted to the host consists of a 16x AC ephys samples and 16x high-voltage DC samples for monitoring compliance and stimulation waveforms.

Host To Device Data Frames#

This device does not accept input frames. All write attempts will fail with an error.