This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM2431: Encoder emulation on AM243x

Part Number: AM2431

Tool/software:

We are using the AM2431. On one of the PRU-ICSSG, we use one slice for Biss-C and one slice for sigma delta.

We now need to add support for encoder emulation. This means pulse and direction output or AqB output that follows the position reported by the Biss-C encoder.

Does TI already have an existing implementation for this feature?

Should we implement this feature in the same PRU-ICSSG or slice as the Biss-C or in a separate one (we have one unused PRU-ICSSG)?

Please share important consideration points (communication between slices or PRU-ICSSG modules, pin allocation, usage of PWM for pulse generation or without PWM)

Thank you for your support. We would appreciate a quick feedback even if partial.

  • pulse and direction output or AqB output that follows the position reported by the Biss-C encoder.

    Does TI already have an existing implementation for this feature?

    No, TI does not

    Should we implement this feature in the same PRU-ICSSG or slice as the Biss-C or in a separate one (we have one unused PRU-ICSSG)?

    Same PRU-ICSSG or slice shall be ok if you have enough ICSSG_PWM pins available from that slice/ICSSG.

    communication between slices or PRU-ICSSG modules

    You can make PRU handling BISS to write to other PRU-ICSSG memory the position data to reduce access latency (otherwise, it may take up to 40 cycles to read). Otherwise, entire memory map is visible from both PRU-ICSSG instances

    pin allocation, usage of PWM for pulse generation or without PWM)

    Pin allocation depends on your use case. Selection of BISS and SDFM limits PRU IO pinmux from that ICSSG. But still ICSSG PWM pins may be available depending on your use case. If ICSSG_PWM does not help to implement encoder emulation, then the best option will be to use unused PRU-ICSSG.

  • Folks it is worth noting that BiSS can be a simple SPI interface that is read only but run with RS-485 differential interfaces. If you need greater than 32 bits (including overhead of CRC, etc) then you will likely need to use PRU-ICSSG to get as 64 bits.    en.wikipedia.org/.../BiSS_interface