QDEC - Quadrature Decoder

The QDEC block handles the encoder Decoding

Fields

Name Type Description
LINKUP_INCR param bit link up incremental coder signal
A bit_mux Quadrature A
B bit_mux Quadrature B
Z bit_mux Z index channel
RST_ON_Z param bit Zero position on Z rising edge
SETP write int Set point
HOMED read bit Quadrature homed status
OUT pos_out Output position

Counting

The quadrature decoder counts, incrementing at each rising or falling edge of the sequence. If the sequence is reversed the count will decrease at each edge. The initial value is set to the value of the SETP input.

(Source code, png, hires.png, pdf)

../_images/qdec_doc-1.png

(Source code, png, hires.png, pdf)

../_images/qdec_doc-2.png

Resetting

Whilst counting, it can be reset to ‘0’ on while the Z input is high, provided that this functionality is enabled by setting the RST_ON_Z input to ‘1’. If the SETP input is changed the count value changes to the new value.

(Source code, png, hires.png, pdf)

../_images/qdec_doc-3.png

Limitations

The block can continue to count when there is not a constant period between the pulses.

(Source code, png, hires.png, pdf)

../_images/qdec_doc-4.png

The output takes three clock pulses to update. If the inputs are changing faster than this, inputs can be lost.

(Source code, png, hires.png, pdf)

../_images/qdec_doc-5.png