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.

LP-AM243: PRU GPO Shift-Out

Part Number: LP-AM243

Regarding the PRU’s GPO Shift-Out mode capability.

I see there is a Fixed Packet Length Mode.

Is it possible to ping-pong with just 10-bits in SH0/SH1?

 

For example:

Write data to R30[9:0] and put in SH0; re-write R30[9:0] and put in SH1.

Enable shift-out, and after SH0[9] is shifted out, the PRU will move to SH1[0]?

(est.10~20Mbps data rates)

 

The 16-bit buffer is great for data bytes (8-bits), but trying to send out encoded data (i.e. 4B/5B or 8B/10B) gets complicated.

Being able to ping-pong with 10-bits would be a huge help – is that capability possible?

 

I know there are “hacks” like watching SHIFT_CLK to count when 10-bits were shifted, then disable/enable the peripheral while moving data around, etc…

But all that added processing takes away from time budget.

  • Hi Masahiro,

    Apologies for delay in response, Allow me till Tuesday to get back on this.

  • Hi Masahiro,

    Is it possible to ping-pong with just 10-bits in SH0/SH1?

    No,it is not possible to configure size of SH0/SH1 buffers to 10bits

    The possible Indirect way to shift only R30[0:9] 10 bits would be as follows:-

    After precondition step mentioned in Technical Reference manual(6.4.5.2.2.3.4.2), follow as below:-

    send data:

    Load data into GPO_SH0 (R30[0:9]=actual data ,R30[10:15] can be zero's ,R30[29]=1 and R30[30]=0 and R[31]=1)

    Configure ICSSG_GPECFG0_REG[15-8] to 0x10h(no fof bits to shift out)

    set R30[31]=1h(enable shift)

    active data:

    poll on SH1_SEL, if SH1_SEL=0h load new 16 bits(R30[0:9]=actual data ,R30[10:15] can be zero's ,R30[29]=0 and R30[30]=1 and R[31]=1) of data to GP0_SH1

    poll on SH1_SEL, if SH1_SEL=1h load new 16 bits(R30[0:9]=actual data ,R30[10:15] can be zero's ,R30[29]=1 and R30[30]=0 and R[31]=1) of data to GP0_SH0

    Go to next packet if PRU0_GPO_SHIFT_CLK_DONE bit is clear


    next packet:

    write 1h to PRU0_GPO_SHIFT_CLK_DONE bit to reset

    branch to active data

    References:- 

    6.4.5.2.2.3.4.2 of am243 technical reference manual