I am using the AD2S1210 for the velocity of a BLDC and position of the stepper motor, I am using the SPI communication here I am getting the position register value is varying from 0-0x7FFF for 0-180 degrees and position register value is becoming the zero and varying from 0-0x7FFF for remaining 180 degrees (180 -360) is these values are correct or not.

Here I am using the 8-bit mode for SPI communication and resolution 10-bit, Excitation frequency as 10KHz. Please help me for calculating the speed also.

Looking forward to your reply,


B.Durga sivarkishna

  • Hello,

    There are two likely possibilities for what you are seeing.

    1. The resolver you are using is a multipole pair resolver. For each mechanical 360 degree rotation you can see multiple electrical rotations. The AD2S1210 will output 0-360 degree per electrical revolution. So if you have a two pole pair resolver then you would see a scenario like you describe.

    2. If the interface is not setup correctly you may be missing the MSB from the data you read back. This would also appear as two rotations. The output of the part is 16-bit and you mentioned that the max output you see is 0x7FFF. If that is the case then it is possible you are missing the MSB from the data transmission.

    A good method to debug what you are seeing is to probe the north marker (NM) pin while you rotate the resolver. If the north marker pin pulses twice per mechanical 360 degrees then you are in scenario #1 above. If you only get 1 pulse per 360 degree mechanical rotation then it is most likely scenario #2. If #2 consult the data sheet Figure 32 to compare your implementation to the recommended implementation.