
02-02-2006, 13:27
|
 |
La Caņada High School
 FRC #2429
Team Role: Mentor
|
|
Join Date: Jan 2002
Rookie Year: 2001
Location: La Caņada, California
Posts: 1,335
|
|
|
Re: Encoder counting randomly off by x4 factor
Quote:
|
Originally Posted by jgeorge
Hi all,
I am using Grayhill 63K64 because I have a high speed shaft, 2000rpm, and wanted the ball bearing version of encoder. I am running it directly from the encoder to the 2006 RC input (no flip flop to buffer B phase) using two 3' servo cables. I am also using Kevin's latest version of encoder code (BTW, thanks Kevin, it is good stuff). The interrupt stuff is as is. In the slow loop, I read the encoder counts, do a delta between readings to get velocity at 26.2ms rate, and try to make decisions. Everything compiles and counts except.....
Every time I start the RC, I am never sure if the encoder will count a magnitude off by 4 times or not. For example, when measuring the rotation of spinning beam, I sometimes read vel of 16 ticks/loop or 64 ticks/loop for the same PWM setting to the motor. It appears random, possible related to software changes, but I have not isolated it to whether it is due to my changes or inherent in my hardware setup.
What I mean by random is that with one version, but multiple resets, it appears error repeats itself, always 16 or always 64. When I rewrite code and download, it could change but between resets, the new factor sticks. I do not know why main line coding should affect it because counter is in interrupt. Unless it is because I am using printf statement and the serial drivers (Kevin's, not IFI's) is using interrupts and is higher priority than the encoder interrupt and interfering somehow. I am only printing out about 25 chars every 26.2ms at 115K baud.
I also tried reversing the input 1 and input 11 signals, no luck. I tried moving to encoder 3 (pin 3 and 13, no luck). I have not tried short cable.
Any ideas?
Thanks in advance.
Jacob
|
As I pointed out in the encoder_readme.txt file, you may need a line driving circuit at high count rates (2100/sec is high) to drive the capacitance of the cabling. Try it at lower spin rates and see if the problem goes away. If you can find a way to gear it down, that would be good. You can also use a 74ACT244 or 74LS244 IC mounted close to the encoder to send the signals through the cabling.
-Kevin
__________________
Kevin Watson
Engineer at stealth-mode startup
http://kevin.org
|