Ah, you didn't mention you were synchronizing the PRUs in your first mail!
Note that use of the MAC is not that obvious, and there is (was?) little
documentation.
Some issues I found had to do with the overflow/carry flag. It seems to
lag one cycle and it cannot be cleared without clearing the
Thanks for the help Bas!
I guess i found the problem:
In my code, I used PRU0 simply as a timer with the code
LOOP:
WAIT(250 cycles)
XOUT 14,r5,4 //transfer register r5 from PRU0 to PRU1
JMP LOOP
In the meantime, PRU1 did some tasks, including multiplication using
XOUT/XIN 0,r25,1 and simila
Hi, thanks for the reply. I also noticed something else which might be
related: To synchronize both PRU's, one sends every 250 clock cycles some
data with a command
XOUT 10,r13,4
which the other receives via
XIN 10,r13,4.
This works well. If however i mismatch the registers, that is i combine
XOU
On 16-4-2014 18:31, Lenny wrote:
Hi,
I started using the Multiply-and-Accumulate module of the PRU of my
Beaglebone Black to construct a real-time digital filter. But as soon
as I insert an instruction of the type, with any data or any of the
MAC registers (r25-r29) in the code, I induce some
Hi,
I started using the Multiply-and-Accumulate module of the PRU of my
Beaglebone Black to construct a real-time digital filter. But as soon as I
insert an instruction of the type, with any data or any of the MAC
registers (r25-r29) in the code, I induce some non-negligeable latency.
MOV