It was really a ping-pong buffer, not a ring.
I did check the timing with an Agilent 54846B scope.
this is snipped from a backup copy, I have re-purposed the BBB
I did comment about this here already a year ago or so.
My memory about that gets fuzzy...
volatile register unsigned int __R30;
;
>
>
>
>
> *From:* beagleboard@googlegroups.com
> *On Behalf Of *Andrew P. Lentvorski
> *Sent:* Thursday, April 22, 2021 5:01 AM
> *To:* BeagleBoard
>
> *Subject:* [beagleboard] Re: PRU I/O max speed
>
>
>
> I would be stunned if the GPIOs don't
limit.
*From:* beagleboard@googlegroups.com
*On Behalf Of *Andrew P. Lentvorski
*Sent:* Thursday, April 22, 2021 5:01 AM
*To:* BeagleBoard
*Subject:* [beagleboard] Re: PRU I/O max speed
I would be stunned if the GPIOs don't have synchronizer flip-flops as
they are sampling a signal
stopped working. There is
definitely a speed limit.
From: beagleboard@googlegroups.com On Behalf Of
Andrew P. Lentvorski
Sent: Thursday, April 22, 2021 5:01 AM
To: BeagleBoard
Subject: [beagleboard] Re: PRU I/O max speed
I would be stunned if the GPIOs don't have synchronizer flip-flops
I would be stunned if the GPIOs don't have synchronizer flip-flops as they
are sampling a signal asynchronous to the 200MHz clock. That would account
for 2 clocks. You probably need one extra to clock data into R31. And
then one clock to read R31.
50MHz is a pretty smoking speed for
With a sample size of one, r31 appears to be 4 instructions behind the
state of the pin.
On Thursday, February 25, 2021 at 12:26:16 PM UTC-5 Paul Beam wrote:
> I am, unfortunately, bit-banging SPI with the PRU, and I seem to be
> running into a speed limit < 50 MHz I desire. I can certainly
Thanks Brandon. I did get some of the pins working, but am getting all
zeros on PRU1_R31 0 through 7. I'm trying to use the interacto pru code
to capture images from a CMOS camera, which I've copied into my own
repo:
Here's mine:
/dts-v1/;
/ {
compatible = ti,beaglebone, ti,beaglebone-black;
part-number = AQ-PRU-MDIO;
exclusive-use = P8.43, P8.44, P8.45, P8.46, P8.39, P8.40,
P8.41, P8.42, P8.27, P8.28, P8.29, P8.30, pru1;
fragment@0 {
target = 0xdeadbeef;
__overlay__ {
pinmux_pru_mdio_pins {