AS5048 SPI Clock


I use AS5048 encoder with a gimball motor, everything works great when the cable between the encoder and the board is short. But now i need to increase the lenght of the encoder cable. I use a shielded cable and the shield is connected to ground but the connection is not robust, i experience a lot of encoder faults.

How can i decrease the SPI clk speed ? Is a command provided in the firmware or do i need to recompile the code firmware with a lower clock speed ?

Have a good day,

Best regards,

I’ve had a lot of problems with cable length vs encoder errors in the past. The solution that always seems to work for me (and a lot of other people) is to solder 22nF capacitors from the ODrive encoder pins to ground. Here is an entire thread detailing this. I know it’s not the answer you were looking for, but I hope it helps.

Jacob, you’re thinking of incremental (A/B/Z) encoders, not SPI encoders.
SPI encoders are a very diferent beast, and I have had endless problems with AMS ones in particular.

@Robin2906 I think the SPI clock speed is set in Firmware/Drivers/DRV8301/drv8301.cpp - the SPI bus is shared between the DRV8301 gate drivers and the absolute encoders