Mechanical setup and testing
The evaluation of the AEAT-9955 encoder began with the preparation of two magnet configurations featuring diametrically polarized magnets. A custom on-shaft magnet holder was precision-manufactured using a lathe, and the stepper shaft was cut to accommodate the motor-encoder assembly while maintaining a 1mm gap between the magnet surface and sensor IC.
To allow for fine adjustments in case of magnetic field strength errors, a 3D-printed adapter with 250μm steps was created, enabling a distance range of 750μm to 1750μm. The evaluation setup included both on-shaft and side-shaft configurations, with the latter requiring a magnet ring and a 3D-printed shaft adapter.
Memory access and protocol testing
Initial testing revealed that memory access in SPI3 mode was possible after unlocking with the command 0x10 0xAB, allowing read access to registers 0x00-0x09. However, switching to SPI4-16a mode restricted this access to a single read before re-locking. Attempts to unlock memory access in SPI4-16a mode were unsuccessful. Absolute position readout was found to be impossible in SPI3 mode but achievable in SPI4-16a mode by reading from address 0x3F. The default configuration provided an 18-bit format, with 16383 values extractable from a 14-bit range when using a 16-bit packet.
Error handling and communication protocols
Despite attempts to access the error register at 0x21, it remained inaccessible in both SPI3 and SPI4-16a modes, even after removing memory protection. The SSI3 protocol was explored as an alternative, offering the potential for full 8-bit error register access within the data packet. Continuous readout in SSI3 mode initially failed but was resolved by adjusting the MOSI line configuration. Clock polarity issues were identified and addressed, with SPI MODE2 (data captured on falling edge, propagated on rising edge) working for SSI3.
Data Verification: CRC and Parity
Attempts to implement CRC (Cyclic Redundancy Check) for data verification were unsuccessful, with calculated values differing from those provided by the encoder. As an alternative, parity mode was enabled and found to work flawlessly, providing a means of data packet verification.
Magnet Configuration and Calibration
On-axis configuration worked immediately, while off-axis side-shaft configuration required EEPROM reconfiguration. Software calibration attempts were unsuccessful, and hardware calibration, despite being theoretically possible, showed no results even after enabling the feature.
Integration with TMC4671 Motor Driver
Integration testing with the TMC4671 motor driver revealed discrepancies in encoder settings and behavior. The AEAT-9955's default 2048 CPR (Counts Per Revolution) setting conflicted with the TMC4671's requirements, necessitating adjustments for synchronization.
EMI Considerations
Significant noise issues were observed during testing, particularly when the steppers were initialized and energized. This highlighted the need for a noise-immune interface between the encoder and driver, such as differential ABN or a digital interface with robust error checking.
Comparative Testing with CUI AMT10E3
Due to difficulties in achieving closed-loop control with the AEAT-9955, comparative testing was conducted using a CUI AMT10E3 encoder. This alternative encoder allowed successful tuning of torque, velocity, and position control loops, suggesting potential issues with the AEAT-9955's operation or compatibility.
Conclusion and Next Steps
The evaluation concluded that while the AEAT-9955 demonstrated basic functionality, critical features such as CRC verification and calibration procedures were non-functional. The encoder's integration with the TMC4671 driver proved challenging, with PID tuning and initialization issues persisting. Future steps include acquiring an AEAT-9955 evaluation kit for in-depth analysis, exploring alternative encoder options, seeking technical support from Broadcom, and conducting further tests with the AMT10E3 encoder on the Z-axis stepper motor.