Hi, I’m trying to use the AS5047P encoder in SPI mode, but the MISO line is always high on the Odrive PRO. It stays high even when the encoder is disconnected. Is there a way to set the MISC IO 11 to input or to set another pin as the MISO pin? The other signal seems fine on the scope.
I tried adding a 10k series resistor on the MISO line, and the side connected to the AS5047P is OK, but the Odrive side is high (3.0V). The MOSI line seems to work, but max voltage is 2.2V.
There is a receiver biasing network on J14 pin 11/12, to be able to do both single ended SPI connections and SPI-over-RS422. So it is expected that pin 11 floats high when you are not driving it. However it should be possible for the SPI encoder to drive it low. Can you show a scope capture of what you see?
I would suggest to not put a series resistor.
The first issue is that you are using the incorrect ground, please use the J14 pin 6 GND. The Feedback J8 ground is separated by a ferrite and capacitor filter. That should likely clean up the clock signal crosstalk seen.
This injected ground lift may also explain the power issue, but hard to say. Try with the fixed ground and we can see how that goes.
I can’t say this with any authority, but my AS5047P didn’t work with MOSI connected to the ODrive, because my ODrive never clocked out any instruction on MOSI. The ODrive docs suggest you tie MOSI to 3v3 at the encoder end rather than connecting it, which forces it into blindly sending its position register over and over rather than waiting for a command the ODrive never sends…
Your MOSI does appear to be pulling high some time after CS drops, but it might be too late to trigger the register to read without clocking out an instruction…