Hi
??but I think the BBBw can easily sample at this ????rate, right?
Asking about ARM/linux side ? or 
PRU side 
Polling or Interrupt?
Explain you delay details at least delay duration  and what your app does with 
data would help.
The calculation I mentioned seeing people reply about were on the PRU.
Keep in mind there's overhead to get Data from PRU to ARM.
The timing becomes critical when you need to react from the  data you  read  
quickly. If that's not the case your just talking about how many sample's you 
use to control right? That's why I would expand a bit on your application.
I've worked on  stuff that read and reacted in 10 microseconds closed loop 
plastic pressing for example that was easily achieved in 1988 microprocessor 
speeds 
I've also worked on control loops that ran faster than 1  micro second on a 
similar processor OMAP L138 in that case the code ran on the DSP I forget the 
clock speed. In this case the motor control ran every 100 nanosecond I believe 
but it's used TI RTOS. 
If the delay on Linux isn't acceptable add some details I mentioned hopefully 
the two guys who calculated PRU latencies will reply or I will find that post 
if possible.
Again it's probably highly  likely even a polled PRU app can read Data quickly 
dependant on conversation rates time I'm assuming you need the ARM to get Data 
in 100 microseconds?
I'm not sure the transfer rate between PRU and ARM us determistic if linux is 
used .
Hopefully this makes sense if not ask but I'd follow up with more detail
Mark


 
From: "beagleboard@googlegroups.com" <beagleboard@googlegroups.com> on behalf 
of Walter Cromer <walt...@edenconceptsllc.com>
Reply-To: "beagleboard@googlegroups.com" <beagleboard@googlegroups.com>
Date: Friday, April 9, 2021 at 12:29 PM
To: BeagleBoard <beagleboard@googlegroups.com>
Subject: Re: [beagleboard] Re: Periodic delay reading analog inputs with C, 
will PRUs solve it and is it worth it?
 
  
 
Thanks, I'll check that out!
 
On Friday, April 9, 2021 at 11:19:47 AM UTC-4 pierric...@gadz.org wrote:
 

Hi, 
 
I believe there are some simple ADC-read example directly in the image under 
/var/lib/cloud9/Techlab/.challenges, or here: 
https://github.com/beagleboard/cloud9-examples/blob/master/PocketBeagle/TechLab/.challenges/analogIn.pru0.c
 
They are labeled for PocketBeagle but it's the same ti-am335x chip so they 
should work easily on the BBB. 
 
Hope it helps! 
 
Pierrick 
 
Le vendredi 9 avril 2021 à 10:57:32 UTC-4, wal...@edenconceptsllc.com a écrit :
 

Understood.  Our application won't require FAA or FDA approval but it 
definitely needs the more deterministic performance of a bare bones app so I'm 
heading in the direction of the ADC being read by a PRU program and 
communicating back to the ARM for other processes (UI, reading other 
non-time-sensitive inputs, etc.).   
 
On Friday, April 9, 2021 at 10:23:26 AM UTC-4 lazarman wrote:
 

1) 
 
Linux is not a real-time operating system (OS) in and of itself. ... “The idea 
is to run critical applications like the control loop on VxWorks and then run 
non-deterministic analytics on Linux.
 
  
 
Hard realtime apps like closed loop positioning used in pressing 
plants,automation,fighter planes etc etc don't use Linux. Determinism required 
by safety critical systems certified by FAA would require you found delay 
measured it to calculate worst case as well as validated software.
 
  
 
https://www.automationworld.com/products/control/blog/13318614/clarifying-the-linux-real-time-issue#:~:text=Linux%20is%20not%20a%20real,OS)%20in%20and%20of%20itself.&text=%E2%80%9CThe%20idea%20is%20to%20run,non%2Ddeterministic%20analytics%20on%20Linux.
 
  
 
  
 
  
 
What makes the Linux scheduler seem unpredictable?
 
| 
| 
| 
|  |  |

 |

 |
| 
|  | 
What makes the Linux scheduler seem unpredictable?
 
The question refers to the output of a multi-threaded application, where each 
thread merely prints its ID (user assigned number) on the standard output. Here 
all threads have equal priority and com...
  |  |

 |

 |


  
 
  
 
2) I say no depends on how much delay is acceptable there are buses between 
shared memory etc it will improve over using ARM.
 
  
 
Ideal situation is a barebone app designed with minimal interrupt latency 
followed by an RTOS that's guaranteed to meet latency specs especially one 
certified by FAA or FDA  of course these are expensive 
 
  
 
  
 
  
 
Sent from Yahoo Mail on Android
 
  
 

On Fri, Apr 9, 2021 at 8:23 AM, TJF
 
<jeli.f...@gmail.com> wrote:
 


  
 
wal...@edenconceptsllc.com schrieb am Freitag, 9. April 2021 um 14:41:00 UTC+2:
 

I'm looking at some example code and there references to ADC_TSC.  I realize 
this is a reference to the Touchscreen controller which provides the ADC 
functionality.  And I suspect this refers to the base memory address of the 
chip but I cannot find where that is defined in any header files anywhere.  It 
would help me to follow these examples if I knew where that reference was.
 

  
 
Find high-level code (FreeBASIC) in files src/pruio/pruio_adc.[bas|bi] and low 
level code (assembler) in file src/pruio/pruio_adc.p.
 
  
 

  
 
Unfortunately, too, the examples are Python and I'm not a Python programmer.    
I work in C.  So I'm having to dig through this and learn some Python at the 
same time.  Not a bad thing but time consuming!
 

  
 
Python examples are in folder src/python. FreeBASIC examples are in folder 
src/examples. And C examples are in folder src/c_examples. Find an overview at
 
  
 
https://users.freebasic-portal.de/tjf/Projekte/libpruio/doc/html/ChaExamples.html
 
  
 
Regards
 
  
 


-- 
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/04caf3a3-cd8c-449e-9fd7-9ed6df33f99en%40googlegroups.com
 
.
 




-- 
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 
tobeagleboard+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/a50a177c-ba59-47d7-aaab-8352868a3199n%40googlegroups.com.


 

-- 
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/DBBPR03MB6988AE54BE71B8EFDAD8A4BDA7739%40DBBPR03MB6988.eurprd03.prod.outlook.com.
  
#yiv5888052173 #yiv5888052173 -- _filtered {} _filtered {} _filtered 
{}#yiv5888052173 #yiv5888052173 p.yiv5888052173MsoNormal, #yiv5888052173 
li.yiv5888052173MsoNormal, #yiv5888052173 div.yiv5888052173MsoNormal 
{margin:0in;font-size:11.0pt;font-family:sans-serif;}#yiv5888052173 h2 
{margin-right:0in;margin-left:0in;font-size:18.0pt;font-family:sans-serif;font-weight:bold;}#yiv5888052173
 a:link, #yiv5888052173 span.yiv5888052173MsoHyperlink 
{color:blue;text-decoration:underline;}#yiv5888052173 
span.yiv5888052173Heading2Char {color:#2F5496;}#yiv5888052173 
span.yiv5888052173EmailStyle20 
{font-family:sans-serif;color:windowtext;}#yiv5888052173 
.yiv5888052173MsoChpDefault {font-size:10.0pt;} _filtered {}#yiv5888052173 
div.yiv5888052173WordSection1 {}#yiv5888052173 

-- 
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/426420093.172935.1617989895589%40mail.yahoo.com.

Reply via email to