This isn't directly from TI but I found essentially the same code on in a 
TI lab or online somewhere.  

https://www.element14.com/community/community/designcenter/single-board-computers/next-genbeaglebone/blog/2019/08/12/beaglebone-pru-timer-functionality



On Wednesday, April 21, 2021 at 4:07:31 PM UTC-4 lazarman wrote:

> Hello Walter 
>
> Which TI  PRU examples are you using I've seen so many examples I've lost 
> track. I've seen the archive that contains  the labs1 to labs 6. 
>
>
>
> Sent from Yahoo Mail on Android 
> <https://go.onelink.me/107872968?pid=InProduct&c=Global_Internal_YGrowth_AndroidEmailSig__AndroidUsers&af_wl=ym&af_sub1=Internal&af_sub2=Global_YGrowth&af_sub3=EmailSignature>
>
> On Wed, Apr 21, 2021 at 2:55 PM, Walter Cromer
> <wal...@edenconceptsllc.com> wrote:
>
> Well the solution to the overflow was actually simple.   I had used some 
> example code from TI where they use the value 0xFFFFFFFF to clear the IEP's 
> counter.  That didn't really make sense to me except of course if your very 
> next instruction was to start the timer which would cause it to overflow 
> immediately and start counting in the main processing sequence at 0.   In 
> my case, my next step, also borrowed from their examples, was to reset the 
> overflow event flag.  Which, of course was immediately set back high 
> because the counter incremented AFTER this reset instruction and not 
> before.   So when I issued the overflow event reset, the counter was still 
> at 0xFFFFFFFF which caused an immediate overflow event. 
>
> Ugh.  Live and learn.
>
> On Wednesday, April 21, 2021 at 12:28:14 PM UTC-4 Walter Cromer wrote:
>
> I'm attempting something very similar to what you were working on.  If you 
> are willing, please share how you eventually did this.  Did you use the IEP 
> clock or the PRU's cycle counter?  I have IEP working with the iep_clk 
> (although I'm having terrible RPMSG problems right now).
>
> Also, I can't seem to correctly check the overflow bit in 
> IEP_TMR_GLB_STS.  I would bit 0 would be 1 if there has been an overflow 
> but even at startup, when the counter only has maybe 1000 counts in it, the 
> bit is 1 when I read it.  Maybe I'm not reading it correctly?
>
>
> On Monday, January 9, 2017 at 12:45:08 AM UTC-5 justin....@gmail.com 
> wrote:
>
> On Thu, Jan 5, 2017 at 5:30 PM, Justin Pearson <justin....@gmail.com> 
> wrote:
>
> Thanks Charles, that's very helpful. I didn't know about the IEP timer. 
> TRM section 4.4.3.1 says I can hook up the IEP clock source to 
> either iep_clk or ocp_clk. Which one of those clocks drives the PRU cycle 
> counter? 
>
>
>
> Maybe a better question is: Can the PRU read the IEP clock as 
> deterministically as it reads its own cycle counter (always 1 cycle)? Or 
> does it access the IEP clock over some bus that introduces 
> non-deterministic delays due to contention issues (like accessing the 512MB 
> RAM)? I'm concerned because I'm using the cycle counter for time-stamping 
> sensor and actuator measurements. If I switch to the IEP clock, I'd like to 
> know I'll have the same timing guarantees.
>
> Thanks,
> Justin
>
>  
>
>
> Thanks,
> Justin
>
>
>
> On Thu, Dec 22, 2016 at 1:43 PM, Charles Steinkuehler <
> cha...@steinkuehler.net> wrote:
>
> On 12/22/2016 10:45 AM, Justin Pearson wrote:
> > I have the same question.
> >
> > I'm using the PRU's 200 MHz cycle counter to timestamp sensor 
> measurements. At
> > 200 MHz, this 32-bit counter overflows in 20 seconds. I would like to 
> notify a C
> > program running on the 1GHz host ARM processor as soon as it overflows.
> >
> > *Is it possible to configure the PRU cycle counter to trigger an 
> interrupt in
> > the host ARM when it overflows?*
>
> Do you mean the Cycle register (offset 0x0C in the PRU_ICSS_PRU_CTRL
> register bank)?  If so, this counter doesn't even wrap around (it
> automatically stops when it hits 0xFFFFFFFF) much less generate an
> interrupt.
>
> > I know how to write PRU code to make the PRU trigger an interrupt in the 
> host,
> > but that's not quite what I want, since my PRU will be busy doing other 
> things.
> > I would like the cycle counter to trigger an interrupt automatically, 
> without
> > the PRU having to check if it has overflowed.
>
> Try using the IEP timer.  It will wrap automatically, and you can even
> setup a configurable period by using compare register zero and setting
> the CMP0_RST_CNT_EN bit.  You can also route an IEP timer event
> (pr1_iep_tim_cap_cmp_pend) to the ARM core to generate an interrupt.
>
> --
> Charles Steinkuehler
> cha...@steinkuehler.net
>
>
> --
> For more options, visit http://beagleboard.org/discuss
> ---
> You received this message because you are subscribed to the Google Groups 
> "BeagleBoard" group.
>
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to beagleboard...@googlegroups.com.
>
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/beagleboard/3e1b910f-6ec3-06d1-ab1c-fd10dd3c7856%40steinkuehler.net
> .
> For more options, visit https://groups.google.com/d/optout.
>
> -- 
> For more options, visit http://beagleboard.org/discuss
> --- 
> You received this message because you are subscribed to the Google Groups 
> "BeagleBoard" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to beagleboard...@googlegroups.com.
> To view this discussion on the web visit 
>
>
> https://groups.google.com/d/msgid/beagleboard/fc0c68cb-7308-44ce-bef6-8f476f4b6b78n%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/beagleboard/fc0c68cb-7308-44ce-bef6-8f476f4b6b78n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
>

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to beagleboard+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/e59e0dd2-0ef1-4918-8bd2-de43e448bf58n%40googlegroups.com.

Reply via email to