From: Brendan M. <mag...@gm...> - 2007-02-10 09:56:41
|
Hey, I'm trying to write a program which runs a certain section of code which accesses the GPIO pins on the gumstix at a rate of 500Hz (every 2ms). There will also be one other process running on the device at the same time. At the moment I'm having problems since the scheduler does not switch between the tasks fast enough. I found this page http://docwiki.gumstix.org/Tips_and_tricks#Change_Timer.2FScheduler_Frequencyand I'm gonna try changing the HZ |
From: Brendan M. <mag...@gm...> - 2007-02-10 09:59:39
|
Hey, I'm trying to write a program which runs a certain section of code which accesses the GPIO pins on the gumstix at a rate of 500Hz (every 2ms). There will also be one other process running on the device at the same time. At the moment I'm having problems since the scheduler does not switch between the tasks fast enough. I found this page http://docwiki.gumstix.org/Tips_and_tricks#Change_Timer.2FScheduler_Frequencyand I'm gonna try changing the HZ value to see if it makes any difference but I don't think it will. My question is has anyone tried running a real time application at this speed on the gumstix before and if so how did you achieve this? Also is there any on board timers that I could use as timer interrupt to run this section of code every 2ms regardless of scheduler state? I know the right way to do this would be to use a real time kernel but its a college project and i don't have the time to start messing about at that. Regards, Brendan |
From: Brendan M. <mag...@gm...> - 2007-02-10 20:34:20
|
Hey, Thanks for all the replies. I had a look at the sched_setscheduler method. It may work ok for this project but its not quite there. The timer interrupt route seems to be the way to go if i can get it working in time. > You'll probably need to make the 500Hz thing driven by a timer. > I seem to recall that at least one of the timers is available. IIRC > the pxa255 has 3. Any idea on where to find out about the pxa255's timers? I googled a few sites but I'm not finding anything of much use. Can this be done easily using C? I haven't went down to this low level of programming using timers in about 2 years and even then it was very basic stuff using assembly language. Regards, Brendan |
From: Dave H. <dhy...@gm...> - 2007-02-11 06:21:41
|
Hi Brendan, > Any idea on where to find out about the pxa255's timers? I googled a few > sites but I'm not finding anything of much use. Can this be done easily > using C? I haven't went down to this low level of programming using timers > in about 2 years and even then it was very basic stuff using assembly > language. I think all of the kernel stuff for timers is done in C. The pxa255 developer's manual talks about the various timers. I think only one of them is used, for the system tick. -- Dave Hylands Vancouver, BC, Canada http://www.DaveHylands.com/ |
From: Brendan M. <mag...@gm...> - 2007-02-12 00:20:28
|
Does anyone have any simple example C code for using the one of the timer interrupts? I've been looking around for ages and I'm not getting anywhere with this! I'd be very grateful if someone could just post up the code that would enable the interrupt to execute a small isr function. Thanks, Brendan |
From: Areth Foster-W. <ar...@ar...> - 2007-02-12 02:10:04
|
I think something went very wrong. I just plugged in my gumstix to the computer and got a message about a power surge on the USB hub. Also the 8 pinned IC on the opposite side of the hirose connector was insanely hot. It seems as though I have a short but I can't figure out where. I unplugged it immediately. Any suggestions? -Areth |
From: Dave H. <dhy...@gm...> - 2007-02-12 02:25:25
|
Hi Areth, On 2/11/07, Areth Foster-Webster <ar...@ar...> wrote: > I think something went very wrong. I just plugged in my gumstix to the > computer and got a message about a power surge on the USB hub. Also the > 8 pinned IC on the opposite side of the hirose connector was insanely > hot. It seems as though I have a short but I can't figure out where. I > unplugged it immediately. Any suggestions? What board do you have? Were you powering via USB or via the wall wart? If you happen to be using the breakout-gs or audiostix2, and you're NOT powering via USB, you may need to remove a ferrite bead, This is mentioned here: <http://docswiki.gumstix.com/Isolating_USB_from_VBatt_on_Audiostix2_or_Breakoutgs> -- Dave Hylands Vancouver, BC, Canada http://www.DaveHylands.com/ |
From: Ian S. <it...@cs...> - 2007-02-12 03:55:12
|
is there a listing or a picture that says which serial ports are where on the breakout gs? -Ian |
From: DJ D. <dj...@de...> - 2007-02-12 04:02:02
|
Ian Smith <it...@cs...> writes: > is there a listing or a picture that says which serial ports are where > on the breakout gs? http://docwiki.gumstix.com/Breakout |
From: Areth Foster-W. <ar...@ar...> - 2007-02-12 05:02:35
|
It is a Basix 400XM. I actually noticed that something was wrong when it was attached to just the tweener and the wall socket. With that configuration the little ic on the opposite side of the hirose got really hot and burned my finger. I unplugged it, disconnected the wall power and the tweener and plugged it into the GPSstix 2 with just USB attached (thinking it was an issue with wall power) I felt the chip and it heated up again and I got the USB power surge message. I am afraid I burned that little IC out (I think it is marked TP10 or U32) out and now have a permanent short...which would suck...although I have had my eye on the 400xm-bt. -Areth Dave Hylands wrote: > Hi Areth, > > On 2/11/07, Areth Foster-Webster <ar...@ar...> wrote: > >> I think something went very wrong. I just plugged in my gumstix to the >> computer and got a message about a power surge on the USB hub. Also the >> 8 pinned IC on the opposite side of the hirose connector was insanely >> hot. It seems as though I have a short but I can't figure out where. I >> unplugged it immediately. Any suggestions? >> > > What board do you have? > > Were you powering via USB or via the wall wart? > > If you happen to be using the breakout-gs or audiostix2, and you're > NOT powering via USB, you may need to remove a ferrite bead, This is > mentioned here: > <http://docswiki.gumstix.com/Isolating_USB_from_VBatt_on_Audiostix2_or_Breakoutgs> > > |
From: Chris P. <par...@ie...> - 2007-02-12 05:56:47
|
Have you got the tweener the right way around on the gumstix? You need to connect them so that they are NOT stacked right on top of each other. The tweener sticks out from one side of the hirose, and the gumstix goes the other way, if you look at the connector from the narrow side, like this: http://docwiki.gumstix.org/ Connecting_via_Serial_-_Linux On 11-Feb-07, at 10:02 PM, Areth Foster-Webster wrote: > It is a Basix 400XM. I actually noticed that something was wrong when > it was attached to just the tweener and the wall socket. With that > configuration the little ic on the opposite side of the hirose got > really hot and burned my finger. I unplugged it, disconnected the > wall > power and the tweener and plugged it into the GPSstix 2 with just USB > attached (thinking it was an issue with wall power) I felt the chip > and > it heated up again and I got the USB power surge message. I am > afraid I > burned that little IC out (I think it is marked TP10 or U32) out > and now > have a permanent short...which would suck...although I have had my eye > on the 400xm-bt. > -Areth > > Dave Hylands wrote: >> Hi Areth, >> >> On 2/11/07, Areth Foster-Webster <ar...@ar...> wrote: >> >>> I think something went very wrong. I just plugged in my gumstix >>> to the >>> computer and got a message about a power surge on the USB hub. >>> Also the >>> 8 pinned IC on the opposite side of the hirose connector was >>> insanely >>> hot. It seems as though I have a short but I can't figure out >>> where. I >>> unplugged it immediately. Any suggestions? >>> >> >> What board do you have? >> >> Were you powering via USB or via the wall wart? >> >> If you happen to be using the breakout-gs or audiostix2, and you're >> NOT powering via USB, you may need to remove a ferrite bead, This is >> mentioned here: >> <http://docswiki.gumstix.com/ >> Isolating_USB_from_VBatt_on_Audiostix2_or_Breakoutgs> >> >> > > > ---------------------------------------------------------------------- > --- > Using Tomcat but need to do more? Need to support web services, > security? > Get stuff done quickly with pre-integrated technology to make your > job easier. > Download IBM WebSphere Application Server v.1.0.1 based on Apache > Geronimo > http://sel.as-us.falkag.net/sel? > cmd=lnk&kid=120709&bid=263057&dat=121642 > _______________________________________________ > gumstix-users mailing list > gum...@li... > https://lists.sourceforge.net/lists/listinfo/gumstix-users |
From: Areth Foster-W. <ar...@ar...> - 2007-02-12 14:18:41
|
Yes they were on correctly, it was just the tweener and the gumstix, no board on the other side of the tweener, that wouldn't cause a problem would it? Chris Parker wrote: > Have you got the tweener the right way around on the gumstix? You > need to connect them so that they are NOT stacked right on top of > each other. The tweener sticks out from one side of the hirose, and > the gumstix goes the other way, if you look at the connector from the > narrow side, like this: http://docwiki.gumstix.org/ > Connecting_via_Serial_-_Linux > > On 11-Feb-07, at 10:02 PM, Areth Foster-Webster wrote: > > >> It is a Basix 400XM. I actually noticed that something was wrong when >> it was attached to just the tweener and the wall socket. With that >> configuration the little ic on the opposite side of the hirose got >> really hot and burned my finger. I unplugged it, disconnected the >> wall >> power and the tweener and plugged it into the GPSstix 2 with just USB >> attached (thinking it was an issue with wall power) I felt the chip >> and >> it heated up again and I got the USB power surge message. I am >> afraid I >> burned that little IC out (I think it is marked TP10 or U32) out >> and now >> have a permanent short...which would suck...although I have had my eye >> on the 400xm-bt. >> -Areth >> >> Dave Hylands wrote: >> >>> Hi Areth, >>> >>> On 2/11/07, Areth Foster-Webster <ar...@ar...> wrote: >>> >>> >>>> I think something went very wrong. I just plugged in my gumstix >>>> to the >>>> computer and got a message about a power surge on the USB hub. >>>> Also the >>>> 8 pinned IC on the opposite side of the hirose connector was >>>> insanely >>>> hot. It seems as though I have a short but I can't figure out >>>> where. I >>>> unplugged it immediately. Any suggestions? >>>> >>>> >>> What board do you have? >>> >>> Were you powering via USB or via the wall wart? >>> >>> If you happen to be using the breakout-gs or audiostix2, and you're >>> NOT powering via USB, you may need to remove a ferrite bead, This is >>> mentioned here: >>> <http://docswiki.gumstix.com/ >>> Isolating_USB_from_VBatt_on_Audiostix2_or_Breakoutgs> >>> >>> >>> >> ---------------------------------------------------------------------- >> --- >> Using Tomcat but need to do more? Need to support web services, >> security? >> Get stuff done quickly with pre-integrated technology to make your >> job easier. >> Download IBM WebSphere Application Server v.1.0.1 based on Apache >> Geronimo >> http://sel.as-us.falkag.net/sel? >> cmd=lnk&kid=120709&bid=263057&dat=121642 >> _______________________________________________ >> gumstix-users mailing list >> gum...@li... >> https://lists.sourceforge.net/lists/listinfo/gumstix-users >> > > > ------------------------------------------------------------------------- > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job easier. > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > _______________________________________________ > gumstix-users mailing list > gum...@li... > https://lists.sourceforge.net/lists/listinfo/gumstix-users > > |
From: Brendan M. <mag...@gm...> - 2007-02-13 14:33:35
|
Hey, Still looking for help with the below if anyone has any info? >Does anyone have any simple example C code for using the one of the timer >interrupts? I've been looking around for ages and I'm not getting anywhere >with this! I'd be very grateful if someone could just post up the code that >would enable the interrupt to execute a small isr function. I also tried changing the HZ value in /gumstix-buildroot/build_arm_nofpu/linux-2.6.18gum/arch/arm/Kconfig to 1000 to see if I could make the scheduler swap tasks faster and therefore run my code often enough but when I compiled the new filesystem and reflashed the device it still seems to be running with the HZ value of 100. Heres the output of this program: int main() { struct sched_param sp; int periods; int ms; long i; struct timespec ts; struct timeval tv; ts.tv_sec = 0; ts.tv_nsec = 10; sp.sched_priority = sched_get_priority_max( SCHED_FIFO ) - 1; if( sched_setscheduler( 0, SCHED_FIFO, &sp ) == -1 ) { printf("Cannot set scheduler\n" ); return(1); } for(i = 0; i < 10000000; i++) { nanosleep(&ts, NULL); gettimeofday(&tv, NULL); printf("%d\n", tv.tv_usec); } return(0); } Output: 870000 880000 890000 900000 910000 920000 930000 940000 950000 960000 970000 As can be seen it is still loosing processor time for 10ms at a time. Any ideas? Thanks, Brendan |
From: Dave H. <dhy...@gm...> - 2007-02-13 15:19:33
|
Hi Brendan, > I also tried changing the HZ value in > /gumstix-buildroot/build_arm_nofpu/linux-2.6.18gum/arch/arm/Kconfig > to 1000 to see if I could make the scheduler swap tasks faster and therefore > run my code often enough but when I compiled the new filesystem and > reflashed the device it still seems to be running with the HZ value of 100. Are you sure the kernel was rebuilt? After changing the Kconfig value, you should cd gumstix-buildroot rm build_arm_nofpu/linux-2.6.18gum/arch/arm/boot/compressed/vmlinux make grep HZ .config and see that CONFIG_HZ has a value of 1000 -- Dave Hylands Vancouver, BC, Canada http://www.DaveHylands.com/ |
From: G E. <gel...@gm...> - 2007-02-15 10:36:37
|
can i offer a different way of going about this? i had a very similar problem, though i'm only reading at 140hz (but very time critical). my solution was to offload that processing to a pic chip that communicates via serial. i also offloaded some algorithms onto the pic so that much of the heavy lifting was done in outside of the gumstix, then the pic would send relevant data to the gumstix as needed. its cheap, robust, and fast. if you're interested in pursuing this type of solution, i'd be happy to let you know how i worked it out. greg.elliott arts.computation.engineering university.of.california.irvine On Feb 13, 2007, at 6:33 AM, Brendan Maguire wrote: > Hey, > > Still looking for help with the below if anyone has any info? > > >Does anyone have any simple example C code for using the one of > the timer > >interrupts? I've been looking around for ages and I'm not getting > anywhere > >with this! I'd be very grateful if someone could just post up the > code that > >would enable the interrupt to execute a small isr function. > > I also tried changing the HZ value in /gumstix-buildroot/ > build_arm_nofpu/linux-2.6.18gum/arch/arm/Kconfig to 1000 to see if > I could make the scheduler swap tasks faster and therefore run my > code often enough but when I compiled the new filesystem and > reflashed the device it still seems to be running with the HZ value > of 100. Heres the output of this program: > > int main() > { > struct sched_param sp; > int periods; > int ms; > long i; > > struct timespec ts; > struct timeval tv; > > ts.tv_sec = 0; > ts.tv_nsec = 10; > > sp.sched_priority = sched_get_priority_max( SCHED_FIFO ) - 1; > > if( sched_setscheduler( 0, SCHED_FIFO, &sp ) == -1 ) > { > printf("Cannot set scheduler\n" ); > return(1); > } > > for(i = 0; i < 10000000; i++) > { > nanosleep(&ts, NULL); > gettimeofday(&tv, NULL); > printf("%d\n", tv.tv_usec); > } > > return(0); > } > > Output: > > 870000 > 880000 > 890000 > 900000 > 910000 > 920000 > 930000 > 940000 > 950000 > 960000 > 970000 > > As can be seen it is still loosing processor time for 10ms at a > time. Any ideas? > > Thanks, > Brendan > ---------------------------------------------------------------------- > --- > Using Tomcat but need to do more? Need to support web services, > security? > Get stuff done quickly with pre-integrated technology to make your > job easier. > Download IBM WebSphere Application Server v.1.0.1 based on Apache > Geronimo > http://sel.as-us.falkag.net/sel? > cmd=lnk&kid=120709&bid=263057&dat=121642______________________________ > _________________ > gumstix-users mailing list > gum...@li... > https://lists.sourceforge.net/lists/listinfo/gumstix-users |
From: EXT-McGhehey, M. J <Mar...@bo...> - 2007-02-15 19:10:59
|
Elliot, I find that to be a very intriguing concept and I have also begun to persue such an implementation. I am working on a system that requires sensor sample rates as high as 5000Hz and so far I have not been able to achieve this with only a single 400xm BT Gumstix. =20 I would be very interested in hearing more from you about this and hopefully maybe I can contribute something also. =20 Thanks. =20 Mark=20 ________________________________ From: G Elliott [mailto:gel...@gm...]=20 Sent: Thursday, February 15, 2007 2:36 AM To: General mailing list for gumstix users. Subject: Re: [Gumstix-users] Critical Real Time on the gumstix can i offer a different way of going about this? i had a very similar problem, though i'm only reading at 140hz (but very time critical). =20 my solution was to offload that processing to a pic chip that communicates via serial. i also offloaded some algorithms onto the pic so that much of the heavy lifting was done in outside of the gumstix, then the pic would send relevant data to the gumstix as needed. its cheap, robust, and fast. if you're interested in pursuing this type of solution, i'd be happy to let you know how i worked it out. greg.elliott arts.computation.engineering university.of.california.irvine On Feb 13, 2007, at 6:33 AM, Brendan Maguire wrote: Hey, =09 Still looking for help with the below if anyone has any info? =09 >Does anyone have any simple example C code for using the one of the timer >interrupts? I've been looking around for ages and I'm not getting anywhere=20 >with this! I'd be very grateful if someone could just post up the code that >would enable the interrupt to execute a small isr function. =09 I also tried changing the HZ value in /gumstix-buildroot/build_arm_nofpu/linux-2.6.18gum/arch/arm/Kconfig to 1000 to see if I could make the scheduler swap tasks faster and therefore run my code often enough but when I compiled the new filesystem and reflashed the device it still seems to be running with the HZ value of 100. Heres the output of this program:=20 =09 int main() { struct sched_param sp; int periods; int ms; long i; =20 =09 struct timespec ts; struct timeval tv; =20 ts.tv_sec =3D 0; ts.tv_nsec =3D 10; =20 sp.sched_priority =3D sched_get_priority_max( SCHED_FIFO ) - 1; =20 if( sched_setscheduler( 0, SCHED_FIFO, &sp ) =3D=3D -1 ) { printf("Cannot set scheduler\n" ); return(1);=20 } =09 for(i =3D 0; i < 10000000; i++) { nanosleep(&ts, NULL); gettimeofday(&tv, NULL); printf("%d\n", tv.tv_usec); } =09 return(0); } =09 Output: =09 870000 880000 890000 900000 910000 920000 930000 940000 950000 960000 970000 =09 As can be seen it is still loosing processor time for 10ms at a time. Any ideas? =09 Thanks, Brendan =09 =09 ------------------------------------------------------------------------ - Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier. Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo =09 http://sel.as-us.falkag.net/sel?cmd=3Dlnk&kid=3D120709&bid=3D263057&dat=3D= 121642 _______________________________________________ gumstix-users mailing list gum...@li... https://lists.sourceforge.net/lists/listinfo/gumstix-users |
From: Eric G. <eg...@te...> - 2007-02-15 19:28:20
|
Elliot, Good thinking based on the sampling rate your trying to achieve. Our control and measurement modules have a processor and a custom ASIC to handle high speed measurements and communications (CSI CR1000). High speed measurements are used in a variety of applications (Boyen Ratio systems, Flux Networks and Thermocouple applications). Even with our design there are issues due to using an RTOS with a single processor with respect to IP and Serial communication. Measurements always have the highest priority but communications can fail from time to time based on the sample rate used. The other challenge you might face with higher sampling rates is noise (60/50hz can be painful). I want to do something similar and have to develop a low cost control/measurement board with its own processor. This would allow for high speed measurements and would also buffer the data and pipe data to the gumstix for further processing based on the next available time slice. The gumstix will act as the communication platform between other devices, algorithms etc. Didn't there were that many people doing measurements the gumstix, cool! Eric _____ From: gum...@li... [mailto:gum...@li...] On Behalf Of EXT-McGhehey, Mark J Sent: February 15, 2007 12:08 PM To: General mailing list for gumstix users. Subject: *TELUS Detected Spam*Re: [Gumstix-users] Critical Real Time on the gumstix Elliot, I find that to be a very intriguing concept and I have also begun to persue such an implementation. I am working on a system that requires sensor sample rates as high as 5000Hz and so far I have not been able to achieve this with only a single 400xm BT Gumstix. I would be very interested in hearing more from you about this and hopefully maybe I can contribute something also. Thanks. Mark _____ From: G Elliott [mailto:gel...@gm...] Sent: Thursday, February 15, 2007 2:36 AM To: General mailing list for gumstix users. Subject: Re: [Gumstix-users] Critical Real Time on the gumstix can i offer a different way of going about this? i had a very similar problem, though i'm only reading at 140hz (but very time critical). my solution was to offload that processing to a pic chip that communicates via serial. i also offloaded some algorithms onto the pic so that much of the heavy lifting was done in outside of the gumstix, then the pic would send relevant data to the gumstix as needed. its cheap, robust, and fast. if you're interested in pursuing this type of solution, i'd be happy to let you know how i worked it out. greg.elliott arts.computation.engineering university.of.california.irvine On Feb 13, 2007, at 6:33 AM, Brendan Maguire wrote: Hey, Still looking for help with the below if anyone has any info? >Does anyone have any simple example C code for using the one of the timer >interrupts? I've been looking around for ages and I'm not getting anywhere >with this! I'd be very grateful if someone could just post up the code that >would enable the interrupt to execute a small isr function. I also tried changing the HZ value in /gumstix-buildroot/build_arm_nofpu/linux-2.6.18gum/arch/arm/Kconfig to 1000 to see if I could make the scheduler swap tasks faster and therefore run my code often enough but when I compiled the new filesystem and reflashed the device it still seems to be running with the HZ value of 100. Heres the output of this program: int main() { struct sched_param sp; int periods; int ms; long i; struct timespec ts; struct timeval tv; ts.tv_sec = 0; ts.tv_nsec = 10; sp.sched_priority = sched_get_priority_max( SCHED_FIFO ) - 1; if( sched_setscheduler( 0, SCHED_FIFO, &sp ) == -1 ) { printf("Cannot set scheduler\n" ); return(1); } for(i = 0; i < 10000000; i++) { nanosleep(&ts, NULL); gettimeofday(&tv, NULL); printf("%d\n", tv.tv_usec); } return(0); } Output: 870000 880000 890000 900000 910000 920000 930000 940000 950000 960000 970000 As can be seen it is still loosing processor time for 10ms at a time. Any ideas? Thanks, Brendan ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier. Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk <http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642___ ____________________________________________> &kid=120709&bid=263057&dat=121642___________________________________________ ____ gumstix-users mailing list gum...@li... https://lists.sourceforge.net/lists/listinfo/gumstix-users |
From: Jesse W. <jes...@gm...> - 2007-02-15 19:45:36
|
Is this a production model (ie cost sensitive) or prototype/research? If cost isn't a issue I would go with a robostix because the development environment is already there with the gumstix. But I agree. For a 5000Hz sampling rate I would use more hardware. But I'm an armature and often wrong...... On 2/15/07, EXT-McGhehey, Mark J <Mar...@bo...> wrote: > > > Elliot, > I find that to be a very intriguing concept and I have also begun to > persue such an implementation. I am working on a system that requires > sensor sample rates as high as 5000Hz and so far I have not been able to > achieve this with only a single 400xm BT Gumstix. > > I would be very interested in hearing more from you about this and > hopefully maybe I can contribute something also. > > Thanks. > > Mark > > ________________________________ > From: G Elliott [mailto:gel...@gm...] > Sent: Thursday, February 15, 2007 2:36 AM > To: General mailing list for gumstix users. > Subject: Re: [Gumstix-users] Critical Real Time on the gumstix > > > can i offer a different way of going about this? i had a very similar > problem, though i'm only reading at 140hz (but very time critical). > > > my solution was to offload that processing to a pic chip that communicates > via serial. i also offloaded some algorithms onto the pic so that much of > the heavy lifting was done in outside of the gumstix, then the pic would > send relevant data to the gumstix as needed. its cheap, robust, and fast. > > > if you're interested in pursuing this type of solution, i'd be happy to let > you know how i worked it out. > > > > greg.elliott > arts.computation.engineeringuniversity.of.california.irvine > > > > > > > On Feb 13, 2007, at 6:33 AM, Brendan Maguire wrote: > > Hey, > > Still looking for help with the below if anyone has any info? > > >Does anyone have any simple example C code for using the one of the timer > >interrupts? I've been looking around for ages and I'm not getting anywhere > >with this! I'd be very grateful if someone could just post up the code that > >would enable the interrupt to execute a small isr function. > > I also tried changing the HZ value in > /gumstix-buildroot/build_arm_nofpu/linux-2.6.18gum/arch/arm/Kconfig > to 1000 to see if I could make the scheduler swap tasks faster and therefore > run my code often enough but when I compiled the new filesystem and > reflashed the device it still seems to be running with the HZ value of 100. > Heres the output of this program: > > int main() > { > struct sched_param sp; > int periods; > int ms; > long i; > > struct timespec ts; > struct timeval tv; > > ts.tv_sec = 0; > ts.tv_nsec = 10; > > sp.sched_priority = sched_get_priority_max( SCHED_FIFO ) - 1; > > if( sched_setscheduler( 0, SCHED_FIFO, &sp ) == -1 ) > { > printf("Cannot set scheduler\n" ); > return(1); > } > > for(i = 0; i < 10000000; i++) > { > nanosleep(&ts, NULL); > gettimeofday(&tv, NULL); > printf("%d\n", tv.tv_usec); > } > > return(0); > } > > Output: > > 870000 > 880000 > 890000 > 900000 > 910000 > 920000 > 930000 > 940000 > 950000 > 960000 > 970000 > > As can be seen it is still loosing processor time for 10ms at a time. Any > ideas? > > Thanks, > Brendan > > ------------------------------------------------------------------------- > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job > easier. > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642_______________________________________________ > gumstix-users mailing list > gum...@li... > https://lists.sourceforge.net/lists/listinfo/gumstix-users > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys-and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > gumstix-users mailing list > gum...@li... > https://lists.sourceforge.net/lists/listinfo/gumstix-users > > |
From: Eric G. <eg...@te...> - 2007-02-15 21:13:01
|
If you are looking for a cost effective programmable measurement/control module to be used in conjunction with the gumstix take a look at Axys (Watchman) out of BC, Canada. Another is ACR Systems out of BC and Yukon, Canada, not as flexible as the Watchman module, but nice and small. They supply pre-written drivers but you can write your own using C with their SDK. Something I was looking at instead of re-inventing the wheel. Eric -----Original Message----- From: gum...@li... [mailto:gum...@li...] On Behalf Of Jesse Welling Sent: February 15, 2007 12:45 PM To: General mailing list for gumstix users. Subject: Re: [Gumstix-users] Critical Real Time on the gumstix Is this a production model (ie cost sensitive) or prototype/research? If cost isn't a issue I would go with a robostix because the development environment is already there with the gumstix. But I agree. For a 5000Hz sampling rate I would use more hardware. But I'm an armature and often wrong...... On 2/15/07, EXT-McGhehey, Mark J <Mar...@bo...> wrote: > > > Elliot, > I find that to be a very intriguing concept and I have also begun to > persue such an implementation. I am working on a system that requires > sensor sample rates as high as 5000Hz and so far I have not been able to > achieve this with only a single 400xm BT Gumstix. > > I would be very interested in hearing more from you about this and > hopefully maybe I can contribute something also. > > Thanks. > > Mark > > ________________________________ > From: G Elliott [mailto:gel...@gm...] > Sent: Thursday, February 15, 2007 2:36 AM > To: General mailing list for gumstix users. > Subject: Re: [Gumstix-users] Critical Real Time on the gumstix > > > can i offer a different way of going about this? i had a very similar > problem, though i'm only reading at 140hz (but very time critical). > > > my solution was to offload that processing to a pic chip that communicates > via serial. i also offloaded some algorithms onto the pic so that much of > the heavy lifting was done in outside of the gumstix, then the pic would > send relevant data to the gumstix as needed. its cheap, robust, and fast. > > > if you're interested in pursuing this type of solution, i'd be happy to let > you know how i worked it out. > > > > greg.elliott > arts.computation.engineeringuniversity.of.california.irvine > > > > > > > On Feb 13, 2007, at 6:33 AM, Brendan Maguire wrote: > > Hey, > > Still looking for help with the below if anyone has any info? > > >Does anyone have any simple example C code for using the one of the timer > >interrupts? I've been looking around for ages and I'm not getting anywhere > >with this! I'd be very grateful if someone could just post up the code that > >would enable the interrupt to execute a small isr function. > > I also tried changing the HZ value in > /gumstix-buildroot/build_arm_nofpu/linux-2.6.18gum/arch/arm/Kconfig > to 1000 to see if I could make the scheduler swap tasks faster and therefore > run my code often enough but when I compiled the new filesystem and > reflashed the device it still seems to be running with the HZ value of 100. > Heres the output of this program: > > int main() > { > struct sched_param sp; > int periods; > int ms; > long i; > > struct timespec ts; > struct timeval tv; > > ts.tv_sec = 0; > ts.tv_nsec = 10; > > sp.sched_priority = sched_get_priority_max( SCHED_FIFO ) - 1; > > if( sched_setscheduler( 0, SCHED_FIFO, &sp ) == -1 ) > { > printf("Cannot set scheduler\n" ); > return(1); > } > > for(i = 0; i < 10000000; i++) > { > nanosleep(&ts, NULL); > gettimeofday(&tv, NULL); > printf("%d\n", tv.tv_usec); > } > > return(0); > } > > Output: > > 870000 > 880000 > 890000 > 900000 > 910000 > 920000 > 930000 > 940000 > 950000 > 960000 > 970000 > > As can be seen it is still loosing processor time for 10ms at a time. Any > ideas? > > Thanks, > Brendan > > ------------------------------------------------------------------------- > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job > easier. > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642____ ___________________________________________ > gumstix-users mailing list > gum...@li... > https://lists.sourceforge.net/lists/listinfo/gumstix-users > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys-and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > gumstix-users mailing list > gum...@li... > https://lists.sourceforge.net/lists/listinfo/gumstix-users > > ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ gumstix-users mailing list gum...@li... https://lists.sourceforge.net/lists/listinfo/gumstix-users |
From: Pascal <pa...@pa...> - 2007-02-15 23:38:00
|
EXT-McGhehey, Mark J wrote: > I find that to be a very intriguing concept and I have also begun to > persue such an implementation. I am working on a system that requires > sensor sample rates as high as 5000Hz and so far I have not been able to > achieve this with only a single 400xm BT Gumstix. 5000 Hz definitely sounds doable on Gumstix hardware, unless your application requires extremely low jitter on the sampling times or reads a lot of data per sample. Here is an attempt at summarizing the options for real-time data acquisition and processing without external hardware. 1. User-mode Linux program: Worst-case latency probably above 1 ms; scheduling resolution tied to HZ. 2. User-mode Linux program with RT/preemptible kernel: Should reduce latency and improve resolution. Might come close to 5000 Hz. 3. IRQ triggered by an OS timer (OSMR): Resolution 270 ns; worst-case latency still around 100 µs due to drivers disabling interrupts. 4. FIQ triggered by an OS timer: Will run with higher priority than the whole Linux system. Maximum latency is the time it takes to complete the current instruction plus any cache misses. 5. FIQ using the cache lockdown feature of the PXA255: Removes the latency from cache misses. Using this last approach I believe it is possible to sample GPIO lines at 100 kHz with jitter lower than 3 µs. I would not call any of this "critical real time" (of the kind that controls airbags and ABS brakes), though. To make such a claim, one should in principle audit the whole Linux source code, look at the hardware schematics of the motherboard and obtain more details about the internals of the CPU than are available in the datasheets). Pascal |
From: G E. <gel...@gm...> - 2007-02-20 00:02:02
|
EXT-McGhehey, Mark J wrote: > I find that to be a very intriguing concept and I have also begun to > persue such an implementation. I am working on a system that requires > sensor sample rates as high as 5000Hz and so far I have not been =20 > able to > achieve this with only a single 400xm BT Gumstix. 5000hz isn't bad (depending on your power constraints). $1 pic chips =20= (e.g. pic16f648a) can run at 20mhz or so. while the idea of doing it =20= all on the gumstix sounds fun and challenging, i think offloading it =20 to a separate processor is a whole lot easier (and cleaner). with the pic chip, you are in charge of just about everything that =20 goes on in the chip (except from some basic serial stuff that's done =20 for you). real-time is not an issue. my assembly code is timed to =20 the uS (microsecond), and i'm no assembly guru. microsecond timing =20 is essentially to real-time. it's tempting to want to use the linux kernel and do lots of this in =20 all inside the gumstix platform (i wanted to), but sometimes the best =20= and easiest solution is to consider an additional tool. pic chips =20 are easy to program, easy to write for, robust, definitely fast =20 enough for 5000hz, and are tiny (the SOIC versions are very small if =20 size is an issue). the only thing you might have to worry about is =20 power, as the speed of the pic chip depends on the voltage youre =20 giving it (for non-mobile solutions this is not an issue as you can =20 probably give it 5V easily). you can make a pic circuit with serial out with 4 components: pic =20 chip, xtal, and two 18pf capacitors. the pic 16f648a has a pin =20 dedicated to serial out and serial in. its all TTL level already, so =20= you can just wire the pic's serial out directly to a stty on the =20 gumstix (i'm using the audiostix2). i have several circuit diagrams of this exact circuit and all of my =20 assembly code online here: http://personalsoundtrack.blogspot.com please let me know if i can help in any other way. greg.elliott arts.computation.engineering university.of.california.irvine On Feb 15, 2007, at 3:37 PM, Pascal wrote: > EXT-McGhehey, Mark J wrote: >> I find that to be a very intriguing concept and I have also =20 >> begun to >> persue such an implementation. I am working on a system that =20 >> requires >> sensor sample rates as high as 5000Hz and so far I have not been =20 >> able to >> achieve this with only a single 400xm BT Gumstix. > > 5000 Hz definitely sounds doable on Gumstix hardware, unless your > application requires extremely low jitter on the sampling times or > reads a lot of data per sample. > > Here is an attempt at summarizing the options for real-time data > acquisition and processing without external hardware. > > 1. User-mode Linux program: Worst-case latency probably above 1 ms; > scheduling resolution tied to HZ. > > 2. User-mode Linux program with RT/preemptible kernel: Should reduce > latency and improve resolution. Might come close to 5000 Hz. > > 3. IRQ triggered by an OS timer (OSMR): Resolution 270 ns; worst-case > latency still around 100 =B5s due to drivers disabling interrupts. > > 4. FIQ triggered by an OS timer: Will run with higher priority than > the whole Linux system. Maximum latency is the time it takes to > complete the current instruction plus any cache misses. > > 5. FIQ using the cache lockdown feature of the PXA255: Removes the > latency from cache misses. > > Using this last approach I believe it is possible to sample GPIO lines > at 100 kHz with jitter lower than 3 =B5s. > I would not call any of this "critical real time" (of the kind that > controls airbags and ABS brakes), though. To make such a claim, one > should in principle audit the whole Linux source code, look at the > hardware schematics of the motherboard and obtain more details about > the internals of the CPU than are available in the datasheets). > > Pascal > > > ----------------------------------------------------------------------=20= > --- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to =20 > share your > opinions on IT & business topics through brief surveys-and earn cash > http://www.techsay.com/default.php?=20 > page=3Djoin.php&p=3Dsourceforge&CID=3DDEVDEV > _______________________________________________ > gumstix-users mailing list > gum...@li... > https://lists.sourceforge.net/lists/listinfo/gumstix-users |
From: DJ D. <dj...@de...> - 2007-02-20 00:40:52
|
G Elliott <gel...@gm...> writes: > 5000hz isn't bad (depending on your power constraints). As I posted earlier today, the 400xm can do 6,250 i2c transfers of 1addr+4payload bytes, so depending on how big your packet is, it may or may not be do-able. > while the idea of doing it all on the gumstix sounds fun and > challenging, i think offloading it to a separate processor is a > whole lot easier (and cleaner). My furnace project has five R8C MCUs managing all the wire interfaces and line protocols, and the i2c bus only transfers summaries and high-level commands between those and the gumstix. > and are tiny (the SOIC versions are very small if size is an issue). The R8Cs run at 20MHz and are in TSSOP-20 packages (er, about 6mm x 6mm footprint). They run on 3.3v or 5v, too. > you can make a pic circuit with serial out with 4 components: pic > chip, xtal, and two 18pf capacitors. Panasonic EFO-BM2005E5 (Digikey PX200BCT-ND) is a resonator with the caps built in. Much less board space, if you don't need extreme precision. > i have several circuit diagrams of this exact circuit and all of my > assembly code online here: > http://personalsoundtrack.blogspot.com I, too, have published my schematics: http://www.delorie.com/house/furnace/pcb2/ Although you'll need to install gEDA to read them. |
From: G E. <gel...@gm...> - 2007-02-20 13:10:30
|
whoa, what's up with the harsh tone, dj? are you trying to be a dick or did you just do it by accident? mark mcghehey asked me for more information, so i gave it. sure, my solution isn't the only one but it's cheap and easy and people seemed interested in it. not sure what you're on about. sorry if you were somehow offended by my informative suggestion, even though it was intended to help mark. greg On Feb 19, 2007, at 4:40 PM, DJ Delorie wrote: > > G Elliott <gel...@gm...> writes: >> 5000hz isn't bad (depending on your power constraints). > > As I posted earlier today, the 400xm can do 6,250 i2c transfers of > 1addr+4payload bytes, so depending on how big your packet is, it may > or may not be do-able. > >> while the idea of doing it all on the gumstix sounds fun and >> challenging, i think offloading it to a separate processor is a >> whole lot easier (and cleaner). > > My furnace project has five R8C MCUs managing all the wire interfaces > and line protocols, and the i2c bus only transfers summaries and > high-level commands between those and the gumstix. > >> and are tiny (the SOIC versions are very small if size is an issue). > > The R8Cs run at 20MHz and are in TSSOP-20 packages (er, about 6mm x > 6mm footprint). They run on 3.3v or 5v, too. > >> you can make a pic circuit with serial out with 4 components: pic >> chip, xtal, and two 18pf capacitors. > > Panasonic EFO-BM2005E5 (Digikey PX200BCT-ND) is a resonator with the > caps built in. Much less board space, if you don't need extreme > precision. > >> i have several circuit diagrams of this exact circuit and all of my >> assembly code online here: >> http://personalsoundtrack.blogspot.com > > I, too, have published my schematics: > http://www.delorie.com/house/furnace/pcb2/ > Although you'll need to install gEDA to read them. > > ---------------------------------------------------------------------- > --- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to > share your > opinions on IT & business topics through brief surveys-and earn cash > http://www.techsay.com/default.php? > page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > gumstix-users mailing list > gum...@li... > https://lists.sourceforge.net/lists/listinfo/gumstix-users |
From: DJ D. <dj...@de...> - 2007-02-20 14:53:48
|
G Elliott <gel...@gm...> writes: > whoa, what's up with the harsh tone, dj? are you trying to be a dick > or did you just do it by accident? > > mark mcghehey asked me for more information, so i gave it. sure, my > solution isn't the only one but it's cheap and easy and people seemed > interested in it. not sure what you're on about. sorry if you were > somehow offended by my informative suggestion, even though it was > intended to help mark. Excuse me? I don't know how you got a harsh tone out of my reply. You provided some information, I provided additional information. I was trying to add to the options the original poster had, and perhaps offer some ideas to you and everyone else also, just as I get ideas from other people's postings. I didn't mean to imply that my ideas were better than yours. If you were somehow offended by my reply to your mail, I honestly and sincerely apologize, and I will try not to reply to your emails in the future unless I am directly commenting on something you said (yours was a well-structured email, which gave me a good basis for my contribution). |
From: Dave H. <dhy...@gm...> - 2007-02-20 15:25:25
|
Hi guys, > Excuse me? I don't know how you got a harsh tone out of my reply. > You provided some information, I provided additional information. I went back a re-read DJ's email, and the only part I could see that might cause a reaction was the the opening "As I posted earlier today", which could be interpreted as a statement of fact, or as my wife often does with the stuff I say, she reads more into it. It can be difficult to write emails that come across the way you want them to. So lets not over-react. I know I try to be careful not to step on peolpes toes, but its inevitable, and almost always unintentional. So lets calm down, take a step back and chill. -- Dave Hylands Vancouver, BC, Canada http://www.DaveHylands.com/ |