Stop second guessing what I mean by what I type, and just read that dammed
datasheet. I even pasted a quote of the relevant information, and it's
quite clear.

On Mon, Jun 20, 2016 at 5:06 PM, <[email protected]> wrote:

> > You're not understanding correctly . . . the ADC module is rated for
> 200ksps only. Not 1M, not 2M, 200ksps.
>
> So your "7 channel simultaneously" comment had nothing to do with the
> total sample rate, but merely indicates that this 200 KSPS rate was
> achieved even though some additional overhead (e.g. distributing the
> captured data into 7 different buffers) was present.  Is that correct?
>
> But in that case, I'm confused by john3909's link, wherein a TI spokesman
> stated that the 200 kSPS value is for 3 MHz ADC clock, though the maximum
> ADC clk frequency is 24 MHz.  A further clarification was that the 24 MHz
> ADC clk could only be achieved when the master oscillator is 24 MHz, but I
> confirmed at
> https://github.com/CircuitCo/BeagleBone-Black/blob/master/BBB_SCH.pdf?raw=true
> that Y2 is indeed 24 MHz on production boards.
>
> On Monday, June 20, 2016 at 4:45:04 PM UTC-7, William Hermans wrote:
>>
>> However, Mr. Hermans, who clearly knows what he is talking about, stated
>>> "I've proven that /dev/mem + mmap() can work for reading 200ksps for 7
>>> channel simultaneously."
>>> It's reasonable to assume that he would not have included the "7 channel
>>> simultaneously" part unless it was somehow relevant to the performance he
>>> observed.
>>>
>>
>> You're not understanding correctly . . . the ADC module is rated for
>> 200ksps only. Not 1M, not 2M, 200ksps.
>>
>> On Mon, Jun 20, 2016 at 4:40 PM, <[email protected]> wrote:
>>
>>> I'm well aware of the analog mux and fully understand that if N channels
>>> are being sampled, the maximum sample rate for each channel is reduced by a
>>> factor of N.
>>>
>>> However, Mr. Hermans, who clearly knows what he is talking about, stated
>>> "I've proven that /dev/mem + mmap() can work for reading 200ksps for 7
>>> channel simultaneously."
>>> It's reasonable to assume that he would not have included the "7 channel
>>> simultaneously" part unless it was somehow relevant to the performance he
>>> observed.
>>>
>>> And, if the ADC is actually capable of doing conversions at a 1.6 MHz
>>> rate, then it could sample all 8 channels at 200KSPS each, and maybe that's
>>> what Mr. Hermans was observing.
>>>
>>>
>>> On Monday, June 20, 2016 at 3:39:09 PM UTC-7, Wulf Man wrote:
>>>>
>>>> um no the 7 channels go into a analog mux and you can only have one
>>>> selected input at a time.
>>>>
>>>> On 6/20/2016 3:35 PM, [email protected] wrote:
>>>>
>>>> Wow, I think that /dev/mem + mmap() is the easy solution!  Many thanks.
>>>>
>>>> But can you please confirm that by "200ksps for 7 channel
>>>> simultaneously" you mean that each of the 7 channels is being sampled 200k
>>>> times per second.  If so, that's 1.4M captures per second, enough for my
>>>> project.
>>>>
>>>> > But CPU usage is so high, that you're not going to be able to do a
>>>> whole lot more in addition to reading the ADC in this fashion.
>>>>
>>>> This is essentially a lab experiment.  The program only needs to run
>>>> correctly once (though it will take many executions to get all the external
>>>> factors right).  On each run, the BBB has no other tasks to perform.  It
>>>> won't start writing the results to a file until after the capture is
>>>> complete.  If CPU usage during the capture is 95%, that's fine.  If it's
>>>> 105%, I'll slow the sample rate a bit to avoid losing samples.  But if it's
>>>> 250%, then I'm in trouble.
>>>>
>>>> If not missing samples requires running in single-user mode with no
>>>> networking and only a serial console, that's IMO a minor nuisance compared
>>>> to learning about PRU, etc. and debugging a much more complex program.
>>>>
>>>> On Monday, June 20, 2016 at 2:53:47 PM UTC-7, William Hermans wrote:
>>>>>
>>>>> The ADC module is a 200ksps SAR module . . .You're only going to be
>>>>> able to sample 200k samples per second . . .
>>>>>
>>>>> Additionally you can use:
>>>>>
>>>>>
>>>>>    1. PRUs ( Programmable Real-time Units )
>>>>>    2. IIO ( industrial IO )
>>>>>    3. /dev/mem/ + mmap()
>>>>>
>>>>>
>>>>> To read 200ksps. Personally, I've proven that /dev/mem + mmap() can
>>>>> work for reading 200ksps for 7 channel simultaneously. But CPU usage is so
>>>>> high, that you're not going ot be able to do a whole lot more in addition
>>>>> to reading the ADC in this fashion. Hence, the PRU are best used, as this
>>>>> offers hardware offload( very little CPU load needed - and only when
>>>>> reading values out  ).
>>>>>
>>>>> On Mon, Jun 20, 2016 at 12:00 PM, Stewart <[email protected]> wrote:
>>>>>
>>>>>> I'm looking to write a simple app for BBB.  When started from the
>>>>>> command line, it would set up the ADC in continuous mode and read ~1 M
>>>>>> samples from e.g. AN0 into memory.  After the capture is complete, it 
>>>>>> would
>>>>>> write the data to a file and exit.
>>>>>>
>>>>>> Ideally, it would run at the hardware limit of 1.6 MSPS (15 cycles of
>>>>>> 24 MHz adc_clk per sample).  If that's not practical, 800 KSPS or better
>>>>>> would be acceptable.
>>>>>>
>>>>>> What is an easy way to do this?  Most Beaglebone ADC examples sample
>>>>>> at kilohertz rates or slower.
>>>>>>
>>>>>> This guide:
>>>>>> http://processors.wiki.ti.com/index.php/Linux_Core_ADC_User%27s_Guide
>>>>>> speaks of 200 KSPS.  What is the limitation here?
>>>>>>
>>>>>> I've seen various suggestions to use the PRU, but don't understand
>>>>>> why.  I would think that since DMA would be required anyway, there should
>>>>>> be no requirement to otherwise access the hardware with tight timing.  If
>>>>>> PRU is indeed necessary, is there a suitable example or tutorial?  (None 
>>>>>> of
>>>>>> the libpruio built-in examples deal with rapid sampling or large amounts 
>>>>>> of
>>>>>> data.)
>>>>>>
>>>>>> Any other ideas for a simple way to capture data fast will be
>>>>>> gratefully appreciated.
>>>>>>
>>>>>> Thanks.
>>>>>>
>>>>>> --
>>>>>> 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 [email protected].
>>>>>> To view this discussion on the web visit
>>>>>> <https://groups.google.com/d/msgid/beagleboard/aeaf9852-fb4c-4fd1-9594-8aad0ad5fd3c%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>> https://groups.google.com/d/
>>>>>> msgid/beagleboard/aeaf9852-fb4c-4fd1-9594-8aad0ad5fd3c%
>>>>>> 40googlegroups.com.
>>>>>> 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 [email protected].
>>>> To view this discussion on the web visit
>>>> <https://groups.google.com/d/msgid/beagleboard/2ff2e93c-ca65-46ec-a755-5c7f830da2b1%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> https://groups.google.com/d/msgid/beagleboard/2ff2e93c-ca65-46ec-a755-5c7f830da2b1%40googlegroups.com
>>>> .
>>>> 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 [email protected].
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/beagleboard/c2736249-fdeb-4673-80c6-4182ba741ca3%40googlegroups.com
>>> <https://groups.google.com/d/msgid/beagleboard/c2736249-fdeb-4673-80c6-4182ba741ca3%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>>> 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 [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/beagleboard/aa4a8a4e-56d1-4c14-ab99-42fa2ae3a07b%40googlegroups.com
> <https://groups.google.com/d/msgid/beagleboard/aa4a8a4e-56d1-4c14-ab99-42fa2ae3a07b%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> 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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/CALHSORonKTt%2BKu127Fyw63vTsjO4pGpuves9ogv5YWZ_Y_ynrQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to