I played with the AS5600 a bit trying to make a closed loop stepper.
As far as accuracy it matched the microstep positions up to about 1000 steps/rev. After that there seemed to be a lot of differences, some were periodic while others look like noise.
Then I read an article informing me that micro steps are not particularly position accurate, so I don’t know if the differences were caused by the stepper or the AS5600.
Microsteps are
not accurate! To run a closed loop stepper system you have to treat the motor as a two phase drive that requires 200 phase transitions for one revolution. That's linked to the feedback mechanism. Doesn't really matter what type of feedback system.
Think of a DC brushed servo motor with a quadrature encoder. In the case of the DC motor you apply a voltage that turns the motor until the encoder position is reached. It's closed loop in that the velocity is ramped up and down as the position is reached. PID and other methods make that all work so it doesn't overshoot or oscillate at the position.
A closed loop stepper isn't that much different other than now you have of course a number of phases to issue and when it reaches the position fine tune that final phase to reach the correct encoder position and not overshoot and not oscillate.
DC Servos have used resolvers and A/D converters to create a binary value to reach. The AS5600 could be used in the same way. The problem with steppers is the torque changes in between full steps.
The LMD18245s I used for the micro-stepping drive on my ELS have a good data sheet that show the current through the windings for each micro-step. The problem is the load and the friction can mean you have sometimes send it 3 or 4 micro-steps before the shaft rotates. Then it 'snaps' to that next stable position. The PID on a closed loop stepper doesn't care about the micro-steps. It just adjusts the two phase waveform until the armature reaches the target position.
If that makes sense...