Society of Robots - Robot Forum
Electronics => Electronics => Topic started by: ib1yysguy on February 10, 2009, 02:37:08 AM
-
Does anyone have recommendations for specific microcontroller chips that clocks 300 mhz or faster? I believe I may need a fast system clock for a long distance laser range finder and vision systems. Would such a chip be too complicated for a non-Computer Science degree holder to rig up?
-
Have you considered using a regular PC motherboard or a laptop? It takes up some space, yes, but I think it is the easiest/cheapest way to reach that speed.
-
Perhaps an FPGA?
-
ARM9's are reaching some pretty fast speeds right now. I have an ARM7 running at 200mhz from analog devices
-
You could use a GumStix or a Micro-ITX, as they're pretty tiny, but have a lot of grunt when you need it ;D.
-HyperNerd
-
They have to exist because they do time of flight measurements for handheld laser rangefinders... right?
-
Paul was correct:
ARM9 microcontroller with DSP
Microcontroller has a 600 MHz 16/32-bit dual-MAC DSP core and a 300 MHz ARM9 RISC core; includes 16-Mbit DRAM, eFPGA block, reconfigurable interfaces, plus a wide range of peripherals such as A/D and D/A; targets wireless infrastructure equipment.
STW22000
ea/large qty, $30
-
Where did you find this? it would be interesting to look further at the onchip eFPGA
-
Maltik,
I did some looking and I can't find where to buy one of these. Any clue?
Also, this may be a newbie question but is this going to be more difficult (close to impossible) for someone to work with? It looks like they need to run an OS to process code unless you program in Java. For someone who knows C, can one of these chips work with code like a commercially available microcontroller like Axon? What I mean is, can you program the thing with a hard-line programmer and operate servos, etc, in the same way or is it a totally different ballgame?
-
from what a friend tells me tools to work with arm9's directly are very expensive, so look into NDS programming and they show you some pretty good techniques using the simpler method of using the NDS's arm7 to talk to the arm9.
-
The STW22000 is apparently discontinued. I cannot find it in ST's database.
-
Hi,
[...] chips that clocks 300 mhz or faster? I believe I may need a fast system clock for a long distance laser range finder and vision systems.
Speed of light = 299,792,458 m/s
For a resolution of eg. 100 mm, each counter step should be 334 ps and if you want, say 5% tolerance max, you need jitter and other timing errors to be under 16.7 ps.
Even if you meant 300 MHz and if each oscillatorcycle was worth a system clock cycle, your clock would be 3,3 ns (and the tolerance??), so even with single clock instructions it won't cut it the way you are planning.
There is a reason that T.O.F. LASER rangers cost a soul (when on offer) and I can guarantee you that you need quite a bit of (discreete) high speed circuitry under your west before you even think of beginning a T.O.F. design.
Go slow and get a triangulating LASER to work for starters, that should keep you from boredom for quite a while, if you want to design it from the ground up.
-
I apologize for the information, I contacted them at st.info at st dot com regarding if this product is still on sale, because I too need one because I am building a laser rangefinder as well and have been researching for a butt load of time But for now I use an Atmega644 ...
Ill get back to ya
you can contact them yourselves if ya dont wanna wait for me:
STMicroelectronics
Lexington, MA
Information 781-861-2650
Fax 781-861-2664
-
How are you using the Atmega644 for laser range finding?
Perhaps there's an easier way than time of flight. What about paralax measurements? Seems like you'd need some hefty equipment for that as well.
What's the easiest way to determine distance from 1-500 yards?
-
Hi,
[...] chips that clocks 300 mhz or faster? I believe I may need a fast system clock for a long distance laser range finder and vision systems.
Speed of light = 299,792,458 m/s
For a resolution of eg. 100 mm, each counter step should be 334 ps and if you want, say 5% tolerance max, you need jitter and other timing errors to be under 16.7 ps.
Even if you meant 300 MHz and if each oscillatorcycle was worth a system clock cycle, your clock would be 3,3 ns (and the tolerance??), so even with single clock instructions it won't cut it the way you are planning.
There is a reason that T.O.F. LASER rangers cost a soul (when on offer) and I can guarantee you that you need quite a bit of (discreete) high speed circuitry under your west before you even think of beginning a T.O.F. design.
Go slow and get a triangulating LASER to work for starters, that should keep you from boredom for quite a while, if you want to design it from the ground up.
Thats not entirely true... I built a successful TOF laser rangefinder circuit a couple months ago able to determine distances up to 15m
This was with an Atmega8
Even though distance wasnt too much, it all depends on the sensors and lasers you used
For example, if I increased the voltage to the photo transistors I used, this would increase the range of detection
if I increased the laser's intensity (plan on going from 5nw up) then I could increase the range
and the minimum processing speed I could use it on (switching chips while switching wiring and altering code a bit) I found that 8MHZ is the minimum for accuracy. Beyond that, its like an asymptope if I were to graph it, it would slowly and slowly get closer to a fixed "distance" but never approach it
-
Hi,
[...] chips that clocks 300 mhz or faster? I believe I may need a fast system clock for a long distance laser range finder and vision systems.
Speed of light = 299,792,458 m/s
For a resolution of eg. 100 mm, each counter step should be 334 ps and if you want, say 5% tolerance max, you need jitter and other timing errors to be under 16.7 ps.
Even if you meant 300 MHz and if each oscillatorcycle was worth a system clock cycle, your clock would be 3,3 ns (and the tolerance??), so even with single clock instructions it won't cut it the way you are planning.
There is a reason that T.O.F. LASER rangers cost a soul (when on offer) and I can guarantee you that you need quite a bit of (discreete) high speed circuitry under your west before you even think of beginning a T.O.F. design.
Go slow and get a triangulating LASER to work for starters, that should keep you from boredom for quite a while, if you want to design it from the ground up.
Thats not entirely true... I built a successful TOF laser rangefinder circuit a couple months ago able to determine distances up to 15m
This was with an Atmega8
Even though distance wasnt too much, it all depends on the sensors and lasers you used
For example, if I increased the voltage to the photo transistors I used, this would increase the range of detection
if I increased the laser's intensity (plan on going from 5nw up) then I could increase the range
and the minimum processing speed I could use it on (switching chips while switching wiring and altering code a bit) I found that 8MHZ is the minimum for accuracy. Beyond that, its like an asymptope if I were to graph it, it would slowly and slowly get closer to a fixed "distance" but never approach it
I'm really curious to know how you timed a value of a few nanoseconds with a 8MHz micro-controller...
-
Thats not entirely true... I built a successful TOF laser rangefinder circuit a couple months ago able to determine distances up to 15m
This was with an Atmega8
Even though distance wasnt too much, it all depends on the sensors and lasers you used
For example, if I increased the voltage to the photo transistors I used, this would increase the range of detection
if I increased the laser's intensity (plan on going from 5nw up) then I could increase the range
and the minimum processing speed I could use it on (switching chips while switching wiring and altering code a bit) I found that 8MHZ is the minimum for accuracy. Beyond that, its like an asymptope if I were to graph it, it would slowly and slowly get closer to a fixed "distance" but never approach it
How the heck did you do it? If it can be done with the ATmega8 then surely one could do it with the ATmega640.
-
Read up on my mate's documenation:
http://letsmakerobots.com/node/2989
(sorry for linking a competitor robot site)
what I did was preprogram my Atmega8, swap out the Picaxe and connect all the necessary ports to the chip, the algorithm was actually really difficult I had to go from his .BAS to a C++:
#picaxe 14m
scanmotor:
pwmout 2,249,0 'turn off motor in preparation for direction change
let w2=w1/b6 'store distance result in w2
debug
b6=0 'sample counter used for averaging
w1=0 'samples are added together and stored here.
pause 10 'gives scan motor time to stop before changing direction
readadc10 4,w0 'read position of laser
pin1=bit9 'bit9=512 (about halfway) if position >=512 then relay is on
pwmout 2,249,140 'turn on motor at 14% to start up
pause 40 'wait 40mS for motor to start up
pwmout 2,249,80 'drop motor speed to 8% (slow scan)
b7=1 'this flag indicates that the scan motor is out of scan range
scanloop:
readadc10 4,w0 'read position of laser
if pin3=0 then 'has laser been detected by sensor?
let w1=w1+w0 'add its position for averaging
inc b6 'inc number of samples
end if
if w0>20 and w0<1000 then 'is laser within scan range?
b7=0 'reset out of range flag and continue scan
goto scanloop
end if
if b7=1 then goto scanloop 'laser out of range and flag not reset (has not come into range yet)
goto scanmotor 'laser out of range and flag has been reset (just gone out of range)
Understanding the code was extremely time consuming though
And since I didnt feel like doing what he did, with adding a hall effect sensor, pot, and geared motor, I just added a x axis pan servo
-
It appears that you aren't calculating time of flight but are doing triangulation instead.
-
It appears that you aren't calculating time of flight but are doing triangulation instead.
Ahh your right, I wasnt thinking, but this still shows it is very possible, and you never mentioned you needed it to be TOF, although triangulation based rangefinders are very limited
-
You can program ARM's straight with C using a compiler and a editor like kiel. there are quite a few about.
The only downside with ARM's is that they are usually quite fine pitch pins so its difficult to home solder them. (bordering on close to impossible). You can usually get the on development or evaluation boards where they are presoldered and the pins are broken out.
As well as being programmed straight in c you can also run an operating system on them. as usual its likely that you can run the operating system and use that as a base to run your c code on (just like you can run c code in windows). so either or both at the same time can be done.
-
Is there an easier way than measuring picoseconds of flight time to determine long ranges?
-
http://www.analog.com/en/embedded-processing-dsp/blackfin/adsp-bf537/processors/product.html
How about using a Blackfin IC? 600 mhz.
-
Alright, how about this. You send out a laser pulse and modulate the wavelength at a constant speed. Then you measure the reflected wavelength, compare the difference between the current wavelength being transmitted and the reflected wavelength and determine the distance thusly.
-
You seem to be describing FMCW radar (FMCW = frequency modulated, continuous wave). That's what the consumer grade rangefinders are. They are not TOF. The circuitry is simpler. Do a search on FMCW radar. Also AMCW radar, since apparently there's a rangefinder that is AMCW.