QDEC — Quadrature decoder

The Quadrature decoder (QDEC) provides buffered decoding of quadrature-encoded sensor signals. It is suitable for mechanical and optical sensors.

The sample period and accumulation are configurable to match application requirements. The QDEC provides the following:

  • Decoding of digital waveform from off-chip quadrature encoder.
  • Sample accumulation eliminating hard real-time requirements to be enforced on application.
  • Optional input de-bounce filters.
  • Optional LED output signal for optical encoders.
Figure 1. Quadrature decoder configuration
Quadrature decoder configuration

Sampling and decoding

The QDEC decodes the output from an incremental motion encoder by sampling the QDEC phase input pins (A and B).

The off-chip quadrature encoder is an incremental motion encoder outputting two waveforms, phase A and phase B. The two output waveforms are always 90 degrees out of phase, meaning that one always changes level before the other. The direction of movement is indicated by which of these two waveforms that changes level first. Invalid transitions may occur, that is when the two waveforms switch simultaneously. This may occur if the wheel rotates too fast relative to the sample rate set for the decoder.

The QDEC decodes the output from the off-chip encoder by sampling the QDEC phase input pins (A and B) at a fixed rate as specified in the SAMPLEPER register.

If the SAMPLEPER value needs to be changed, the QDEC shall be stopped using the STOP task. SAMPLEPER can be then changed upon receiving the STOPPED event, and QDEC can be restarted using the START task. Failing to do so may result in unpredictable behaviour.

It is good practice to change other registers (LEDPOL, REPORTPER, DBFEN and LEDPRE) only when the QDEC is stopped.

When started, the decoder continuously samples the two input waveforms and decodes these by comparing the current sample pair (n) with the previous sample pair (n-1).

The decoding of the sample pairs is described in the table below.

Table 1. Sampled value encoding
Previous sample pair(n - 1)Current samples pair(n)SAMPLE registerACC operationACCDBL operationDescription
ABAB    
00000No changeNo changeNo movement
00011IncrementNo changeMovement in positive direction
0010-1DecrementNo changeMovement in negative direction
00112No changeIncrementError: Double transition
0100-1DecrementNo changeMovement in negative direction
01010No changeNo changeNo movement
01102No changeIncrementError: Double transition
01111IncrementNo changeMovement in positive direction
10001IncrementNo changeMovement in positive direction
10012No changeIncrementError: Double transition
10100No changeNo changeNo movement
1011-1DecrementNo changeMovement in negative direction
11002No changeIncrementError: Double transition
1101-1DecrementNo changeMovement in negative direction
11101IncrementNo changeMovement in positive direction
11110No changeNo changeNo movement

LED output

The LED output follows the sample period, and the LED is switched on a given period before sampling and switched off immediately after the inputs are sampled. The period the LED is switched on before sampling is given in the LEDPRE register.

The LED output pin polarity is specified in the LEDPOL register.

For using off-chip mechanical encoders not requiring a LED, the LED output can be disabled by writing value 'Disconnected' to the CONNECT field of the PSEL.LED register. In this case the QDEC will not acquire access to a LED output pin and the pin can be used for other purposes by the CPU.

Debounce filters

Each of the two-phase inputs have digital debounce filters.

When enabled through the DBFEN register, the filter inputs are sampled at a fixed 1 MHz frequency during the entire sample period (which is specified in the SAMPLEPER register), and the filters require all of the samples within this sample period to equal before the input signal is accepted and transferred to the output of the filter.

As a result, only input signal with a steady state longer than twice the period specified in SAMPLEPER are guaranteed to pass through the filter, and any signal with a steady state shorter than SAMPLEPER will always be suppressed by the filter. (This is assumed that the frequency during the debounce period never exceeds 500 kHz (as required by the Nyquist theorem when using a 1 MHz sample frequency).

The LED will always be ON when the debounce filters are enabled, as the inputs in this case will be sampled continuously.

Note that when when the debounce filters are enabled, displacements reported by the QDEC peripheral are delayed by one SAMPLEPER period.

Accumulators

The quadrature decoder contains two accumulator registers, ACC and ACCDBL, that accumulate respectively valid motion sample values and the number of detected invalid samples (double transitions).

The ACC register will accumulate all valid values (1/-1) written to the SAMPLE register. This can be useful for preventing hard real-time requirements from being enforced on the application. When using the ACC register the application does not need to read every single sample from the SAMPLE register, but can instead fetch the ACC register whenever it fits the application. The ACC register will always hold the relative movement of the external mechanical device since the previous clearing of the ACC register. Sample values indicating a double transition (2) will not be accumulated in the ACC register.

An ACCOF event will be generated if the ACC receives a SAMPLE value that would cause the register to overflow or underflow. Any SAMPLE value that would cause an ACC overflow or underflow will be discarded, but any samples not causing the ACC to overflow or underflow will still be accepted.

The accumulator ACCDBL accumulates the number of detected double transitions since the previous clearing of the ACCDBL register.

The ACC and ACCDBL registers can be cleared by the READCLRACC and subsequently read using the ACCREAD and ACCDBLREAD registers.

The ACC register can be separately cleared by the RDCLRACC and subsequently read using the ACCREAD registers.

The ACCDBL register can be separately cleared by the RDCLRDBL and subsequently read using the ACCDBLREAD registers.

The REPORTPER register allows automating the capture of several samples before it can send out a REPORTRDY event in case a non-null displacement has been captured and accumulated, and a DBLRDY event in case one or more double-displacements have been captured and accumulated. The REPORTPER field in this register selects after how many samples the accumulators contents are evaluated to send (or not) REPORTRDY and DBLRDY events.

Using the RDCLRACC task (manually sent upon receiving the event, or using the DBLRDY_RDCLRACC shortcut), ACCREAD can then be read.

In case at least one double transition has been captured and accumulated, a DBLRDY event is sent. Using the RDCLRDBL task (manually sent upon receiving the event, or using the DBLRDY_RDCLRDBL shortcut), ACCDBLREAD can then be read.

Output/input pins

The QDEC uses a three-pin interface to the off-chip quadrature encoder.

These pins will be acquired when the QDEC is enabled in the ENABLE register. The pins acquired by the QDEC cannot be written by the CPU, but they can still be read by the CPU.

The pin numbers to be used for the QDEC are selected using the PSEL.n registers.

Pin configuration

The Phase A, Phase B, and LED signals are mapped to physical pins according to the configuration specified in the PSEL.A, PSEL.B, and PSEL.LED registers respectively.

If the CONNECT field value 'Disconnected' is specified in any of these registers, the associated signal will not be connected to any physical pin. The PSEL.A, PSEL.B, and PSEL.LED registers and their configurations are only used as long as the QDEC is enabled, and retained only as long as the device is in ON mode. When the peripheral is disabled, the pins will behave as regular GPIOs, and use the configuration in their respective OUT bit field and PIN_CNF[n] register.

To secure correct behavior in the QDEC, the pins used by the QDEC must be configured in the GPIO peripheral as described in GPIO configuration before enabling peripheral before enabling the QDEC. This configuration must be retained in the GPIO for the selected IOs as long as the QDEC is enabled.

Only one peripheral can be assigned to drive a particular GPIO pin at a time. Failing to do so may result in unpredictable behavior.

Table 2. GPIO configuration before enabling peripheral
QDEC signalQDEC pinDirectionOutput valueComment
Phase AAs specified in PSEL.AInputNot applicable 
Phase BAs specified in PSEL.BInputNot applicable 
LEDAs specified in PSEL.LEDInputNot applicable 

Registers

Table 3. Instances
Base addressPeripheralInstanceDescriptionConfiguration
0x40012000QDECQDEC

Quadrature decoder

  
Table 4. Register overview
RegisterOffsetDescription
TASKS_START0x000

Task starting the quadrature decoder

 
TASKS_STOP0x004

Task stopping the quadrature decoder

 
TASKS_READCLRACC0x008

Read and clear ACC and ACCDBL

 
TASKS_RDCLRACC0x00C

Read and clear ACC

 
TASKS_RDCLRDBL0x010

Read and clear ACCDBL

 
EVENTS_SAMPLERDY0x100

Event being generated for every new sample value written to the SAMPLE register

 
EVENTS_REPORTRDY0x104

Non-null report ready

 
EVENTS_ACCOF0x108

ACC or ACCDBL register overflow

 
EVENTS_DBLRDY0x10C

Double displacement(s) detected

 
EVENTS_STOPPED0x110

QDEC has been stopped

 
SHORTS0x200

Shortcuts between local events and tasks

 
INTENSET0x304

Enable interrupt

 
INTENCLR0x308

Disable interrupt

 
ENABLE0x500

Enable the quadrature decoder

 
LEDPOL0x504

LED output pin polarity

 
SAMPLEPER0x508

Sample period

 
SAMPLE0x50C

Motion sample value

 
REPORTPER0x510

Number of samples to be taken before REPORTRDY and DBLRDY events can be generated

 
ACC0x514

Register accumulating the valid transitions

 
ACCREAD0x518

Snapshot of the ACC register, updated by the READCLRACC or RDCLRACC task

 
PSEL.LED0x51C

Pin select for LED signal

 
PSEL.A0x520

Pin select for A signal

 
PSEL.B0x524

Pin select for B signal

 
DBFEN0x528

Enable input debounce filters

 
LEDPRE0x540

Time period the LED is switched ON prior to sampling

 
ACCDBL0x544

Register accumulating the number of detected double transitions

 
ACCDBLREAD0x548

Snapshot of the ACCDBL, updated by the READCLRACC or RDCLRDBL task

 

TASKS_START

Address offset: 0x000

Task starting the quadrature decoder

When started, the SAMPLE register will be continuously updated at the rate given in the SAMPLEPER register.

Bit number313029282726252423222120191817161514131211109876543210
ID                               A
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
AW

TASKS_START

  

Task starting the quadrature decoder

When started, the SAMPLE register will be continuously updated at the rate given in the SAMPLEPER register.

   

Trigger

1

Trigger task

TASKS_STOP

Address offset: 0x004

Task stopping the quadrature decoder

Bit number313029282726252423222120191817161514131211109876543210
ID                               A
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
AW

TASKS_STOP

  

Task stopping the quadrature decoder

   

Trigger

1

Trigger task

TASKS_READCLRACC

Address offset: 0x008

Read and clear ACC and ACCDBL

Task transferring the content of ACC to ACCREAD and the content of ACCDBL to ACCDBLREAD, and then clearing the ACC and ACCDBL registers. These read-and-clear operations will be done atomically.

Bit number313029282726252423222120191817161514131211109876543210
ID                               A
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
AW

TASKS_READCLRACC

  

Read and clear ACC and ACCDBL

Task transferring the content of ACC to ACCREAD and the content of ACCDBL to ACCDBLREAD, and then clearing the ACC and ACCDBL registers. These read-and-clear operations will be done atomically.

   

Trigger

1

Trigger task

TASKS_RDCLRACC

Address offset: 0x00C

Read and clear ACC

Task transferring the content of ACC to ACCREAD, and then clearing the ACC register. This read-and-clear operation will be done atomically.

Bit number313029282726252423222120191817161514131211109876543210
ID                               A
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
AW

TASKS_RDCLRACC

  

Read and clear ACC

Task transferring the content of ACC to ACCREAD, and then clearing the ACC register. This read-and-clear operation will be done atomically.

   

Trigger

1

Trigger task

TASKS_RDCLRDBL

Address offset: 0x010

Read and clear ACCDBL

Task transferring the content of ACCDBL to ACCDBLREAD, and then clearing the ACCDBL register. This read-and-clear operation will be done atomically.

Bit number313029282726252423222120191817161514131211109876543210
ID                               A
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
AW

TASKS_RDCLRDBL

  

Read and clear ACCDBL

Task transferring the content of ACCDBL to ACCDBLREAD, and then clearing the ACCDBL register. This read-and-clear operation will be done atomically.

   

Trigger

1

Trigger task

EVENTS_SAMPLERDY

Address offset: 0x100

Event being generated for every new sample value written to the SAMPLE register

Bit number313029282726252423222120191817161514131211109876543210
ID                               A
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
ARW

EVENTS_SAMPLERDY

  

Event being generated for every new sample value written to the SAMPLE register

   

NotGenerated

0

Event not generated

   

Generated

1

Event generated

EVENTS_REPORTRDY

Address offset: 0x104

Non-null report ready

Event generated when REPORTPER number of samples has been accumulated in the ACC register and the content of the ACC register is not equal to 0. (Thus, this event is only generated if a motion is detected since the previous clearing of the ACC register).

Bit number313029282726252423222120191817161514131211109876543210
ID                               A
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
ARW

EVENTS_REPORTRDY

  

Non-null report ready

Event generated when REPORTPER number of samples has been accumulated in the ACC register and the content of the ACC register is not equal to 0. (Thus, this event is only generated if a motion is detected since the previous clearing of the ACC register).

   

NotGenerated

0

Event not generated

   

Generated

1

Event generated

EVENTS_ACCOF

Address offset: 0x108

ACC or ACCDBL register overflow

Bit number313029282726252423222120191817161514131211109876543210
ID                               A
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
ARW

EVENTS_ACCOF

  

ACC or ACCDBL register overflow

   

NotGenerated

0

Event not generated

   

Generated

1

Event generated

EVENTS_DBLRDY

Address offset: 0x10C

Double displacement(s) detected

Event generated when REPORTPER number of samples has been accumulated and the content of the ACCDBL register is not equal to 0. (Thus, this event is only generated if a double transition is detected since the previous clearing of the ACCDBL register).

Bit number313029282726252423222120191817161514131211109876543210
ID                               A
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
ARW

EVENTS_DBLRDY

  

Double displacement(s) detected

Event generated when REPORTPER number of samples has been accumulated and the content of the ACCDBL register is not equal to 0. (Thus, this event is only generated if a double transition is detected since the previous clearing of the ACCDBL register).

   

NotGenerated

0

Event not generated

   

Generated

1

Event generated

EVENTS_STOPPED

Address offset: 0x110

QDEC has been stopped

Bit number313029282726252423222120191817161514131211109876543210
ID                               A
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
ARW

EVENTS_STOPPED

  

QDEC has been stopped

   

NotGenerated

0

Event not generated

   

Generated

1

Event generated

SHORTS

Address offset: 0x200

Shortcuts between local events and tasks

Bit number313029282726252423222120191817161514131211109876543210
ID                         GFEDCBA
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
ARW

REPORTRDY_READCLRACC

  

Shortcut between event REPORTRDY and task READCLRACC

   

Disabled

0

Disable shortcut

   

Enabled

1

Enable shortcut

BRW

SAMPLERDY_STOP

  

Shortcut between event SAMPLERDY and task STOP

   

Disabled

0

Disable shortcut

   

Enabled

1

Enable shortcut

CRW

REPORTRDY_RDCLRACC

  

Shortcut between event REPORTRDY and task RDCLRACC

   

Disabled

0

Disable shortcut

   

Enabled

1

Enable shortcut

DRW

REPORTRDY_STOP

  

Shortcut between event REPORTRDY and task STOP

   

Disabled

0

Disable shortcut

   

Enabled

1

Enable shortcut

ERW

DBLRDY_RDCLRDBL

  

Shortcut between event DBLRDY and task RDCLRDBL

   

Disabled

0

Disable shortcut

   

Enabled

1

Enable shortcut

FRW

DBLRDY_STOP

  

Shortcut between event DBLRDY and task STOP

   

Disabled

0

Disable shortcut

   

Enabled

1

Enable shortcut

GRW

SAMPLERDY_READCLRACC

  

Shortcut between event SAMPLERDY and task READCLRACC

   

Disabled

0

Disable shortcut

   

Enabled

1

Enable shortcut

INTENSET

Address offset: 0x304

Enable interrupt

Bit number313029282726252423222120191817161514131211109876543210
ID                           EDCBA
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
ARW

SAMPLERDY

  

Write '1' to enable interrupt for event SAMPLERDY

   

Set

1

Enable

   

Disabled

0

Read: Disabled

   

Enabled

1

Read: Enabled

BRW

REPORTRDY

  

Write '1' to enable interrupt for event REPORTRDY

Event generated when REPORTPER number of samples has been accumulated in the ACC register and the content of the ACC register is not equal to 0. (Thus, this event is only generated if a motion is detected since the previous clearing of the ACC register).

   

Set

1

Enable

   

Disabled

0

Read: Disabled

   

Enabled

1

Read: Enabled

CRW

ACCOF

  

Write '1' to enable interrupt for event ACCOF

   

Set

1

Enable

   

Disabled

0

Read: Disabled

   

Enabled

1

Read: Enabled

DRW

DBLRDY

  

Write '1' to enable interrupt for event DBLRDY

Event generated when REPORTPER number of samples has been accumulated and the content of the ACCDBL register is not equal to 0. (Thus, this event is only generated if a double transition is detected since the previous clearing of the ACCDBL register).

   

Set

1

Enable

   

Disabled

0

Read: Disabled

   

Enabled

1

Read: Enabled

ERW

STOPPED

  

Write '1' to enable interrupt for event STOPPED

   

Set

1

Enable

   

Disabled

0

Read: Disabled

   

Enabled

1

Read: Enabled

INTENCLR

Address offset: 0x308

Disable interrupt

Bit number313029282726252423222120191817161514131211109876543210
ID                           EDCBA
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
ARW

SAMPLERDY

  

Write '1' to disable interrupt for event SAMPLERDY

   

Clear

1

Disable

   

Disabled

0

Read: Disabled

   

Enabled

1

Read: Enabled

BRW

REPORTRDY

  

Write '1' to disable interrupt for event REPORTRDY

Event generated when REPORTPER number of samples has been accumulated in the ACC register and the content of the ACC register is not equal to 0. (Thus, this event is only generated if a motion is detected since the previous clearing of the ACC register).

   

Clear

1

Disable

   

Disabled

0

Read: Disabled

   

Enabled

1

Read: Enabled

CRW

ACCOF

  

Write '1' to disable interrupt for event ACCOF

   

Clear

1

Disable

   

Disabled

0

Read: Disabled

   

Enabled

1

Read: Enabled

DRW

DBLRDY

  

Write '1' to disable interrupt for event DBLRDY

Event generated when REPORTPER number of samples has been accumulated and the content of the ACCDBL register is not equal to 0. (Thus, this event is only generated if a double transition is detected since the previous clearing of the ACCDBL register).

   

Clear

1

Disable

   

Disabled

0

Read: Disabled

   

Enabled

1

Read: Enabled

ERW

STOPPED

  

Write '1' to disable interrupt for event STOPPED

   

Clear

1

Disable

   

Disabled

0

Read: Disabled

   

Enabled

1

Read: Enabled

ENABLE

Address offset: 0x500

Enable the quadrature decoder

Bit number313029282726252423222120191817161514131211109876543210
ID                              A
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
ARW

ENABLE

  

Enable or disable the quadrature decoder

When enabled the decoder pins will be active. When disabled the quadrature decoder pins are not active and can be used as GPIO .

   

Disabled

0

Disable

   

Enabled

1

Enable

LEDPOL

Address offset: 0x504

LED output pin polarity

Bit number313029282726252423222120191817161514131211109876543210
ID                               A
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
ARW

LEDPOL

  

LED output pin polarity

   

ActiveLow

0

Led active on output pin low

   

ActiveHigh

1

Led active on output pin high

SAMPLEPER

Address offset: 0x508

Sample period

Bit number313029282726252423222120191817161514131211109876543210
ID                            AAAA
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
ARW

SAMPLEPER

  

Sample period. The SAMPLE register will be updated for every new sample

   

128us

0

128 us

   

256us

1

256 us

   

512us

2

512 us

   

1024us

3

1024 us

   

2048us

4

2048 us

   

4096us

5

4096 us

   

8192us

6

8192 us

   

16384us

7

16384 us

   

32ms

8

32768 us

   

65ms

9

65536 us

   

131ms

10

131072 us

SAMPLE

Address offset: 0x50C

Motion sample value

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
AR

SAMPLE

 

[-1..2]

Last motion sample

The value is a 2's complement value, and the sign gives the direction of the motion. The value '2' indicates a double transition.

REPORTPER

Address offset: 0x510

Number of samples to be taken before REPORTRDY and DBLRDY events can be generated

Bit number313029282726252423222120191817161514131211109876543210
ID                            AAAA
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
ARW

REPORTPER

  

Specifies the number of samples to be accumulated in the ACC register before the REPORTRDY and DBLRDY events can be generated

The report period in [us] is given as: RPUS = SP * RP Where RPUS is the report period in [us/report], SP is the sample period in [us/sample] specified in SAMPLEPER, and RP is the report period in [samples/report] specified in REPORTPER .

   

10Smpl

0

10 samples / report

   

40Smpl

1

40 samples / report

   

80Smpl

2

80 samples / report

   

120Smpl

3

120 samples / report

   

160Smpl

4

160 samples / report

   

200Smpl

5

200 samples / report

   

240Smpl

6

240 samples / report

   

280Smpl

7

280 samples / report

   

1Smpl

8

1 sample / report

ACC

Address offset: 0x514

Register accumulating the valid transitions

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
AR

ACC

 

[-1024..1023]

Register accumulating all valid samples (not double transition) read from the SAMPLE register

Double transitions ( SAMPLE = 2 ) will not be accumulated in this register. The value is a 32 bit 2's complement value. If a sample that would cause this register to overflow or underflow is received, the sample will be ignored and an overflow event ( ACCOF ) will be generated. The ACC register is cleared by triggering the READCLRACC or the RDCLRACC task.

ACCREAD

Address offset: 0x518

Snapshot of the ACC register, updated by the READCLRACC or RDCLRACC task

Bit number313029282726252423222120191817161514131211109876543210
IDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
AR

ACCREAD

 

[-1024..1023]

Snapshot of the ACC register.

The ACCREAD register is updated when the READCLRACC or RDCLRACC task is triggered

PSEL.LED

Address offset: 0x51C

Pin select for LED signal

Bit number313029282726252423222120191817161514131211109876543210
IDC                         AAAAA
Reset 0xFFFFFFFF11111111111111111111111111111111
IDAccessFieldValue IDValueDescription
ARW

PIN

 

[0..31]

Pin number

CRW

CONNECT

  

Connection

   

Disconnected

1

Disconnect

   

Connected

0

Connect

PSEL.A

Address offset: 0x520

Pin select for A signal

Bit number313029282726252423222120191817161514131211109876543210
IDC                         AAAAA
Reset 0xFFFFFFFF11111111111111111111111111111111
IDAccessFieldValue IDValueDescription
ARW

PIN

 

[0..31]

Pin number

CRW

CONNECT

  

Connection

   

Disconnected

1

Disconnect

   

Connected

0

Connect

PSEL.B

Address offset: 0x524

Pin select for B signal

Bit number313029282726252423222120191817161514131211109876543210
IDC                         AAAAA
Reset 0xFFFFFFFF11111111111111111111111111111111
IDAccessFieldValue IDValueDescription
ARW

PIN

 

[0..31]

Pin number

CRW

CONNECT

  

Connection

   

Disconnected

1

Disconnect

   

Connected

0

Connect

DBFEN

Address offset: 0x528

Enable input debounce filters

Bit number313029282726252423222120191817161514131211109876543210
ID                               A
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
ARW

DBFEN

  

Enable input debounce filters

   

Disabled

0

Debounce input filters disabled

   

Enabled

1

Debounce input filters enabled

LEDPRE

Address offset: 0x540

Time period the LED is switched ON prior to sampling

Bit number313029282726252423222120191817161514131211109876543210
ID                       AAAAAAAAA
Reset 0x0000001000000000000000000000000000010000
IDAccessFieldValue IDValueDescription
ARW

LEDPRE

 

[1..511]

Period in us the LED is switched on prior to sampling

ACCDBL

Address offset: 0x544

Register accumulating the number of detected double transitions

Bit number313029282726252423222120191817161514131211109876543210
ID                            AAAA
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
AR

ACCDBL

 

[0..15]

Register accumulating the number of detected double or illegal transitions. ( SAMPLE = 2 ).

When this register has reached its maximum value the accumulation of double / illegal transitions will stop. An overflow event ( ACCOF ) will be generated if any double or illegal transitions are detected after the maximum value was reached. This field is cleared by triggering the READCLRACC or RDCLRDBL task.

ACCDBLREAD

Address offset: 0x548

Snapshot of the ACCDBL, updated by the READCLRACC or RDCLRDBL task

Bit number313029282726252423222120191817161514131211109876543210
ID                            AAAA
Reset 0x0000000000000000000000000000000000000000
IDAccessFieldValue IDValueDescription
AR

ACCDBLREAD

 

[0..15]

Snapshot of the ACCDBL register. This field is updated when the READCLRACC or RDCLRDBL task is triggered.

Electrical specification

QDEC Electrical Specification

SymbolDescriptionMin.Typ.Max.Units
tSAMPLE

Time between sampling signals from quadrature decoder

128131072µs
tLED

Time from LED is turned on to signals are sampled

0511µs