Hm. 

Sorry, but unfortunately I'm still quite a bit lost. What should I be doing 
to dev/iio:device0 (open?) in order to do the following:
echo 1 > in_voltage0_en
echo 1 > buffer/enable

I'm assuming that I should be able to see in_voltage0_en and buffer in the 
folder /sys/bus/iio/devices/iio:device0 but I currently do not see those 
attributes/drivers/folders/buffers/whatever-you-want-to-call-them.

Typing 
root@beaglebone:/dev# open iio:device0
doesn't seem to do anything.

Do you think you could break your steps down even further?

Thanks.

On Friday, March 18, 2016 at 3:49:39 PM UTC-4, john3909 wrote:
>
> It is a driver, so you can open, poll and read from /dev/iio:device0
>
> For a quick test, do the following: After you enable the various 
> scan_channels, start the buffer and then do the following:
>
> dd if=/dev/iio:device0 of=~/test.txt
>
> Press ctrl-C to stop capture.
>
> Use hexdump to view the file. 
>
> Regards,
> John
>
>
>
>
> On Mar 18, 2016, at 12:37 PM, Audrey <ao...@smith.edu <javascript:>> 
> wrote:
>
> It says:
> root@beaglebone:/dev# cd iio:device0
> -bash: cd: iio:device0: Not a directory
> root@beaglebone:/dev# cat iio:device0
> cat: iio:device0: Invalid argument
>
>
> On Friday, March 18, 2016 at 3:25:13 PM UTC-4, john3909 wrote:
>>
>> The buffer is available here:
>>
>> /dev/iio:device0
>>
>> Because the driver uses interrupts, you won’t get the speed you want. The 
>> driver has to be updated to use DMA if you want to use full speed. Reading 
>> from the buffer will reduce your CPU load compared to using LDR_PATH 
>> because this interface blocks until a sample is available, but not long 
>> enough for the thread to sleep. To use DMA, IIO have introduced a DMA 
>> framework and most of what you need is already available. However, IIO are 
>> going to be updating the IIO DMA framework to do zero copy between the 
>> kernel module and the socket interface, using MMU maps. 
>>
>> Regards,
>> John
>>
>>
>>
>>
>> On Mar 18, 2016, at 11:21 AM, Audrey <ao...@smith.edu> wrote:
>>
>> Hi everyone,
>>
>> First of all, thank you everyone for trying to help me. I appreciate 
>> everyone's input.
>>
>> I took everyone's advice, and have moved away from bash to C++. It's 
>> clocking at about 2 milliseconds, but I would really like it to go down 
>> into the microsecond range:
>>
>>> /** Simple LDR Reading Application
>>> * Written by Derek Molloy for the book "Exploring BeagleBone: Tools and
>>> * Techniques for Building with Embedded Linux" by John Wiley & Sons, 2014
>>> * ISBN 9781118935125. Please see the file README.md in the repository 
>>> root
>>> * directory for copyright and GNU GPLv3 license information.           
>>>  */
>>>  
>>> #include<iostream>
>>> #include<fstream>
>>> #include<string>
>>> #include<sstream>
>>> using namespace std;
>>>  
>>> #define LDR_PATH "/sys/bus/iio/devices/iio:device0/in_voltage"
>>>  
>>> int readAnalog(int number)
>>> {
>>>    stringstream ss;
>>>    ss << LDR_PATH << number << "_raw";
>>>    fstream fs;
>>>    fs.open(ss.str().c_str(), fstream::in);
>>>    fs >> number;
>>>    fs.close();
>>>    return number;
>>> }
>>>  
>>> int main(int argc, char* argv[])
>>> {
>>>    cout << "Starting the readLDR program" << endl;
>>>    int value;
>>>    int i=1;
>>>    while (true)
>>>    {
>>>      float value = (float)readAnalog(0)/4095*1.8;
>>>      cout <<"V= " << value << endl;
>>>      cout << i << endl;
>>>      i++;
>>>    }
>>>    return 0;
>>> }
>>>
>>
>> Thank you TJF for pointing me to libpruio. I'll use it later if I need 
>> it, but for now I rather not use the PRU if I don't need to.
>>
>> So I noticed this thing where I can't see the buffer, or scan_elements, 
>> or mode in iio:device0, and I wonder if I'm not enabling the adc dto 
>> properly or something:
>>
>>> root@beaglebone:/sys/bus/iio/devices/iio:device0# ls -l
>>> total 0
>>> -r--r--r-- 1 root root 4096 Mar  1 20:51 dev
>>> -rw-r--r-- 1 root root 4096 Mar  1 22:03 in_voltage0_raw
>>> -rw-r--r-- 1 root root 4096 Mar  1 22:03 in_voltage1_raw
>>> -rw-r--r-- 1 root root 4096 Mar  1 22:03 in_voltage2_raw
>>> -rw-r--r-- 1 root root 4096 Mar  1 22:03 in_voltage3_raw
>>> -rw-r--r-- 1 root root 4096 Mar  1 22:03 in_voltage4_raw
>>> -rw-r--r-- 1 root root 4096 Mar  1 22:03 in_voltage5_raw
>>> -rw-r--r-- 1 root root 4096 Mar  1 22:03 in_voltage6_raw
>>> -rw-r--r-- 1 root root 4096 Mar  1 22:03 in_voltage7_raw
>>> -r--r--r-- 1 root root 4096 Mar  1 20:51 name
>>> drwxr-xr-x 2 root root    0 Mar  1 20:51 power
>>> lrwxrwxrwx 1 root root    0 Mar  1 20:50 subsystem -> 
>>> ../../../../../bus/iio
>>> -rw-r--r-- 1 root root 4096 Mar  1 20:50 uevent
>>
>>
>> This is what I've been doing to "enable" the adc (although I don't really 
>> know what it is doing. I can't find the file cape-bone-iio in bbb, and if I 
>> try echo cape-bone-iio > test.txt, it is just a regular string.):
>> echo cape-bone-iio > /sys/devices/bone_capemgr.*/slots
>>
>> I tried searching for /driver/iio/adc/ti_am335x_adc.c, but I can't find 
>> it (there's nothing in root@beaglebone:/sys/bus/iio/drivers#). Could you 
>> perhaps specify the full filepath?
>>
>> 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 beagleboard...@googlegroups.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 beagleboard...@googlegroups.com <javascript:>.
> 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+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to