You can always read/write to the gpio registers using mmap. This gets a somewhat unsteady 4MHz on-off-on-... toggle even with slow python.
On Friday, October 18, 2013 6:08:13 PM UTC-7, Paul Tan wrote: > I did the fseek because it didn't work without the fseek, and I agree that > it doesn't make sense to fseek a psuedo device. You might be right in that > the fseek was just adding delays or doing an fflush of the buffers. (The > other reason was that I found examples on the Internet using fseek) > > When I converted over to unix io, I no longer needed the seeks. > > I just wanted to get this working quickly and will probably convert over > to using the PRU later. > > Thanks for the input. > On 2013-10-18 9:00 PM, "Juanjo" <[email protected] <javascript:>> wrote: > >> I might be wrong but I think doing fseek() on a GPIO "device" isn't quite >> correct. >> >> A GPIO device is more like a char device not a block device were you can >> actually seek it. So you are only limited to write 1 or 0, the delay in >> between is set by you plus all the variance that a common not-RT OS adds to >> it. We know that these are exposed on /sys fs and not on /dev where you can >> actually see if you are dealing with a char or block device. >> >> For a more precise bit banging PRUSS is the way to do it IMHO. >> >> On Friday, October 18, 2013 7:22:17 PM UTC-3, Paul Tan wrote: >>> >>> Thanks, I'll try to see if there is a difference with libsoc or not. >>> However, I did manage to get it working with low level unix i/o (open, >>> write) instead of the buffered stream i/o (fopen, fwrite). It works >>> correctly, I didn't need a seek operation, and I was able to get pulse >>> widths down to 10uS reliably. Interesting difference though: fwrite >>> to "/sys/class/gpio/export" succeeds even if GPIO30 was already exported, >>> but write to "/sys/class/gpio/export" fails if GPIO30 was already exported. >>> >>> In case anyone's wondering why I'm trying to get really short pulses, >>> I'm trying to connect an iGaging DRO slides to a BeagleBone Black (yeah, >>> I'm trying to CNC my lathe using a DRO closed loop servo with my Dual Motor >>> Controller Capes). Scoping out my iGaging DRO, I found that the builtin >>> controller uses 24uS pulses with a 128uS duty cycle. I'm working off of >>> Yuriy's work on the Arduino (http://www.yuriystoys.com/p/** >>> android-dro.html <http://www.yuriystoys.com/p/android-dro.html>), but >>> trying it on the BeagleBone. >>> >>> Paul Tan. >>> http://exadler.com >>> http://exadler.blogspot.com >>> >>> >>> >>> On Friday, October 18, 2013 1:26:31 PM UTC-4, Jack Mitchell wrote: >>>> >>>> On 18/10/2013 18:14, Paul Tan wrote: >>>> > I'm having some weirdness that I don't quite understand. I'm trying >>>> to >>>> > just toggle a GPIO pin (GPIO30) on and off using C and just the file >>>> > subsystem. Everything seems to work if there is a delay between the >>>> > fseek and the fwrite. See this pastebin for the relevant code >>>> > http://pastebin.com/Ftvv0nvE. As it is, it works. If you uncomment >>>> the >>>> > code, instead of creating a square wave on the oscilloscope, it just >>>> > creates pulse spikes (i.e. short on times). Can someone explain what >>>> is >>>> > happening? I'm working off a stock BeagleBone Black, no updates (I >>>> > wanted to make sure the code worked on all versions, as people would >>>> be >>>> > getting their BBB and trying it directly). >>>> > >>>> > Paul Tan. >>>> > http://exadler.blogspot.com >>>> > http://exadler.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...@googlegroups.**com. >>>> > For more options, visit >>>> > https://groups.google.com/**groups/opt_out<https://groups.google.com/groups/opt_out>. >>>> > >>>> >>>> >>>> Hi Paul >>>> >>>> If you don't object to using a library there is libsoc[1] which is made >>>> for this exact purpose. If nothing else, you could see if the same >>>> behavior is observed using it? >>>> >>>> https://github.com/jackmitch/**libsoc<https://github.com/jackmitch/libsoc> >>>> >>>> Cheers, >>>> Jack. >>>> >>>> -- >>>> >>>> Jack Mitchell ([email protected]) >>>> Embedded Systems Engineer >>>> http://www.embed.me.uk >>>> >>>> -- >>>> >>> -- >> For more options, visit http://beagleboard.org/discuss >> --- >> You received this message because you are subscribed to a topic in the >> Google Groups "BeagleBoard" group. >> To unsubscribe from this topic, visit >> https://groups.google.com/d/topic/beagleboard/SLaa4HiC99A/unsubscribe. >> To unsubscribe from this group and all its topics, send an email to >> [email protected] <javascript:>. >> For more options, visit https://groups.google.com/groups/opt_out. >> > -- 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/groups/opt_out.
