0
\$\begingroup\$

I'm working on a project where I need to interface an AS5311 high-resolution magnetic linear encoder with an ESP32. The AS5311 uses an SSI (Synchronous Serial Interface), which is somewhat similar to SPI, but with key differences. I want to ensure I capture high-precision data, as sub mili meter positional accuracy.

Project Requirements:

Precision: I need to achieve sub mili metre accuracy in linear measurements. Communication: The ESP32 will be the main controller, ideally receiving data over I2C or SPI for simplicity. Distance: Measuring piston extension, where the sensor's alignment with a magnetic strip will be critical. My Questions:

Is it feasible to emulate SSI using the ESP32’s SPI interface? I understand that SSI and SPI are similar but have timing differences. I’m concerned about maintaining data integrity and speed without additional hardware.

Should I consider using an SSI-to-SPI bridge

Any recommendations for handling data parsing or calibration when reading SSI data on the ESP32, especially if I go with bit-banging or use SPI? The AS5311 has a high resolution, so I want to avoid losing data or introducing errors.

Any insights or recommended approaches would be greatly appreciated, especially if you’ve worked with the AS5311 or similar SSI encoders! Thank you!

\$\endgroup\$
7
  • \$\begingroup\$ Can you edit the question to summarise what the differences between SSI and SPI? Having a quick look at the AS5311 datasheet the SSI interface looks compatible with SPI, but I could be missing something. \$\endgroup\$ Commented Nov 1, 2024 at 23:00
  • \$\begingroup\$ Their "SSI" does not appear to be the same as SSI/BiSS used in industrial encoders- there's a /CS signal involved, same as SPI. \$\endgroup\$ Commented Nov 1, 2024 at 23:16
  • \$\begingroup\$ There are two request types, one with CLK idle high and one with CLK idle low and there are 18 bits to transfer. Will be fun to implement that using typical SPI hardware, but absolute possible. \$\endgroup\$ Commented Nov 2, 2024 at 3:08
  • \$\begingroup\$ To increase precision, you can consider applying filtering algorithms. That can smooth out readings and reduce noise. \$\endgroup\$ Commented Nov 2, 2024 at 15:27
  • \$\begingroup\$ @liaifat85 can you please explain more about the filter i should add. thank you \$\endgroup\$ Commented Nov 3, 2024 at 13:32

0

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.