What is the fastest way to create parallel outputs from the PRU?

Hi all,
First of all, I am new to the BBB.
Recently, I tried to communicate the BBB to a fast DAC 12-bit which needs 20MHz sampling clock.
What I have tried is
I use PRU0_0 (P9_31) as a output clock then toggle PRU1_0 - PRU1_11 to start outputs the data in parallel (refer the method from Synchronizing Two PRUs, PRU Cookbook) but I can only get it less than 10 MHz
are there any other way/method to achieve it

Thank you in advance

If you want to benefit from full PRUSS capabilities, forget about rproc or cookbooks.

There’s no need for both PRUSS, one can do it all (perhaps one input line for trigger?). 20 MHz means 10 PRU cycles. You wont need an external clock, usually the PRU clock is sufficient (or use the PRU-IEP timer to synchronize).

Find an example at


It toogles a pin at 40 MHz (and CAP measures it). It’s easy to add further output lines and slow down the code to 20 MHz, reading data from an array in DRam/SRam.

Thank you for your reply. I haven’t found this one, will learn from this resource. Thanks again.