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.

AM2634: Communication protocol support inquiry

Part Number: AM2634

Hey Sitara MCU team,

I have a customer evaluating the Sitara MCU platform for a new project and we were hoping your team could provide guidance on some questions that we have regarding the PRU. Please see below for a summary of our inquiry!

We know that the PRU in the Sitara can communicate with a Hiperface-DSL encoder.
However there are other encoder communication protocols which can be summarized as:

  • UART framing with differential Manchester Encoding
    • Before encoding basic messages are 1 start bit, 8 data bit, odd parity
    • 2.5 MBaud
    • RS-485 half duplex, single pair
  • Two special symbols
    • Preamble symbol to start a message
    • Idle symbol sent when no message is being transmitted

Could you please comment on whether the PRU can implement the protocols described above?

-Matt Calvo

  • Hi Matt,

    Apologies for the delay,

    I will get back with details on the protocols by tomorrow.

  • Hi Matt,

    I need below details:

    1. How many instances are needed?
    2. Do we need to continuously send idle symbol when no activity is ongoing?
    3. Is preamble symbol sent before start bit? If you can share a sample data pattern for send and receive, it will be helpful.

    Also who is the customer here? Any use case details like end product or block diagram?

  • Hey Nilabh,

    Please tie off with me offline for specific customer and project info.

    I've gone ahead and notified the customer of your follow-up questions and will have them comment back directly on this thread with answers!

    -Matt

  • Sure Matt, 

    I will follow up with you offline.

  • Hey Nilabh,

    We received responses back from the customer on your questions which you can find below! Do you need any further info to determine whether the PRU inside the AM2634 can be suitable for my customers requirements? 

    1. How many instances are needed?

    Obviously at least 1. 2 would be great but not essential.


    2. Do we need to continuously send idle symbol when no activity is ongoing?

    Yes, we need to send idle symbol continuously when not actively talking or listening. Idle is just 50% duty at 1/2 baud rate or 1.25 MHz square wave.


    3. Is preamble symbol sent before start bit? If you can share a sample data pattern for send and receive, it will be helpful.

    One preamble is sent before the start bit of the first byte in the packet. The preamble is 4 edge transitions spaced 1.5 baud periods apart. Basically a 2.5/3 MHz square with 2 full periods just before the start bit of the first byte.

    Below is a typical exchange. “Position Request” would come from the Sitara and the “Position Response” comes from the encoder.

    Note that this protocol is not just byte oriented. It is 4 byte packets oriented. Within the 4 byte position response there is a 5 bit packet CRC.

    Best regards,

    Matt

  • Matt

    Based on the details you shared, it seem technically feasible to implement using Three Channel Peripheral Interface of PRU-ICSS IP. PRU-ICSSM on AM263x has PRU-ICSSM has 2 PRU cores, and each PRU core has one Three Channel Peripheral Interface. 

    We have implemented Tamagawa interface on PRU-ICSSG of AM243x, which is also UART based. You can take that software as a reference. The firmware present in AM243x SDK is for PRU-ICSSG, but should work as is on AM263x PRU-ICSSM IP. We have a developer guide in SDK documentation which talks about modifying Tamagawa code for custom use-cases. 

    Links to SDK documentation:

    Regards

    Dhaval