On Wed, 7 Oct 2015 17:20:26 -0700, you wrote:

>Oh and dahm, one more thing heh. Sorry people I'm kind of remembering this
>as I think about it. Normally I keep notes, but was up late attempting to
>track this issue down. So, I'm reasonably sure the FIFO is not refreshing,
>as if I flush the data value manually ( value address &= ~0xFFFF ), it
>never gets repopulated.
>
>Once more, if I read out the sample in order based on channel id, the
>values stay the same form one iteration to the next. But If I burst read in
>whatever comes from the FIFO next, the values do change, but repeat after
>many read. Which let us just assume, for now, it's the length of the buffer
>I set through iio:device0.
>
>*Perhaps* I just need to enable / disable the ADC once the buffer fills -
>via iio ? I'm not sure, as I've only been working with the ADC for about
>what ? A week now ? With no prior experience . . .

You're working with two things, FIFO and ADC.

What does the ADC do when the FIFO is full?

What does the FIFO do when it is full?

How do you know?

Do you record it?

Harvey


>
>On Wed, Oct 7, 2015 at 5:10 PM, William Hermans <[email protected]> wrote:
>
>> More info on the issues I'm having with the FIFO. The data seems to
>> repeat, and never changes between system reboots. I'm not sure if this is
>> my fault, or the fault of something to do with this Linux kernel, the iio
>> user space drivers, or something else. For now, I'm assuming it is my
>> fault. Things that I am noticing:
>>
>> When reading the values out of the ADC via mmap() versus using iio, the
>> values read out are not in the same range. Using sysfs, the floating
>> voltage values are around ~4000. But with mmap() these values vary starting
>> from as low as in the hundreds, or up close to, but not passing 4000. The
>> ID field for the ADC's *always* stay in the correct range though. Which is
>> why I think I'm not flushing / clearing the FIFO correctly - More on this
>> later.
>>
>> It does not matter how I configure the ADC( sysfs or mmap() ) in this
>> case. What I've been experimenting with is a header file originally written
>> for the Beaglebone white, but I checked the base address / offset
>> constants( against the TRM ), and they seem to be exactly the same. Here,
>> my problem lies in not completely understanding the hardware, and how
>> various things interact inside of, or with Linux. Writing the software for
>> all this once understood. For me, will be trivial.
>>
>> What does make sense to me with this problem is that I do not understand
>> how to flush the buffer, and then tell the ADC "hey send more samples". But
>> I am not exactly sure this is what my problem is. This is just a guess on
>> my behalf, that makes the most sense.
>>
>> Another thing that did occur to me is that I'm reading from the FIFO too
>> fast. But there are many factors here, including but not limited to:
>> Averaging, stepping, clock divider, and ADC clock cycles needed to read out
>> a correct value. These are the things that are foremost on my mind right
>> now, of which I have limited understanding of - so far.
>>
>> On Wed, Oct 7, 2015 at 4:44 PM, William Hermans <[email protected]> wrote:
>>
>>> *Have  you experimented with buffer size? is there any optimal value
>>>> calculation? Would it have any impact on the result, Like if we keep a
>>>> larger buffer and than directly take that buffer that way it would be
>>>> faster? I have currently kept 1k.*
>>>
>>>
>>> Yeah sorry, I'm kind of in my own world here at the moment. Anyway, like
>>> I mentioned above I was speaking of the ADC FIFO. As for buffering into
>>> system RAM, this is certainly possible, and very likely preferable. This
>>> can also be done, very easily, using POSIX shared memory. Potentially, this
>>> is a problem, as once the data is in RAM, how do you get it back out for
>>> transport. Without using additional CPU cycles, or using the PRU's ? Not
>>> using the PRU's for this by the way, is a constraint I've placed on myself.
>>> Just to see if it is *reasonably* possible. Indeed, I do believe it is
>>> possible, but not quite sure  how reasonable that possibility *is*. - Yet.
>>>
>>> On Wed, Oct 7, 2015 at 4:34 PM, William Hermans <[email protected]>
>>> wrote:
>>>
>>>> Well, the buffer I'm talking about is the ADC buffer. I've been looking
>>>> through others code for PRU -> ADC, and have been attempting to translate
>>>> that. I'm afraid my ASM skills are very lacking for this task( I have not
>>>> written ASM code in years ). However the constants used in much of the code
>>>> out there, are the same. So while I do not yet know what LBBO, and stuff
>>>> liek r0-r31 mean for program flow, I can figure out the addressing very
>>>> quickly. Not to mention that the TRM has this information too, but the TRM
>>>> is very terse reading for many things. It's great for "cherry picking"
>>>> offsets, but much of the information is not presented in an order that
>>>> makes the most sense to me. ie, you have to bounce around too much form one
>>>> place to another in this *huge* manual . . .
>>>>
>>>> So, I may have to take a break, and get to know the PRU assembly
>>>> language well before proceeding much further. Which is something I intended
>>>> on doing anyhow, just not right at this moment. One thing that has me
>>>> excited here is an idea that came to me last night. Concerning using the
>>>> PRU's in a way I've not seen anyone else do - yet. Well, I've seen mention
>>>> of others touching on the subject I suppose, but . . . yeah I do not want
>>>> to let my "secrete" out just yet.
>>>>
>>>> On Wed, Oct 7, 2015 at 2:48 PM, Rathin Dholakia <
>>>> [email protected]> wrote:
>>>>
>>>>> Hi William,
>>>>>
>>>>> Oh, I had already seen that and experimented with it..!!but had
>>>>> forgotten, after watching your link I recollected. I am really sorry for
>>>>> silly question.
>>>>>
>>>>> Have  you experimented with buffer size? is there any optimal value
>>>>> calculation? Would it have any impact on the result, Like if we keep a
>>>>> larger buffer and than directly take that buffer that way it would be
>>>>> faster? I have currently kept 1k.
>>>>>
>>>>> And yes, Priority is a priority!! I though you were on break from
>>>>> BBB,...!! :-)
>>>>>
>>>>> Sincerely,
>>>>> Rathin
>>>>>
>>>>> --
>>>>> 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].
>>>>> 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].
For more options, visit https://groups.google.com/d/optout.

Reply via email to