i have to use an absolute encoder which can give upto 13 bit data for the input clock provided by the master.
so i am writing the code for master as whenever i need data from encoder the master will supply 14 clocks to slave(absolute encoder),
and the slave will latch its data with the clock and send the 13 bits of data to master.
my question is the encoder i'm using will give 13 bits of data for 2500rpm and if the speed is increased to 5000 rpm it will provide only 12 bit, this continues and for the speed of 20000 rpm it will give only 10 bit data.
the following waveform shows for 13 bit data.
clk---------------___----___----___----___----___----___----___----___----___----___----___----___----___--------------
(13-bit)data''''''''''''''d12----d11----d10-----d9-----d8-----d7-----d6------d5-----d4-----d3------d2-----d1-----d0
--------------------MSB------------------------------------------------------------------------------------------LSB
lets take an example of 10000 rpm, the encoder will provide a 11 bits of data,
clk---------------___----___----___----___----___----___----___----___----___----___----___----___----___--------------
(11-bit)data -------d10-----d9-----d8-----d7-----d6------d5-----d4-----d3------d2-----d1-----d0
--------------------MSB--------------------------------------------------------------------------LSB
as shown in the above wave form the master doesnt know at what speed the encoder shaft is rotating so the master will send the 14 clocks as usual
and reads the data even for last two clocks where the data is zero '0' which changes the value sent by encoder, i.e., 11111111111(binary for 2047) the master will receive the data as (1111111111100) binary value for 8188.
please provide me solution for my problem
Q.how a 11 bit data is sent by a 13 bit absolute encoder?