On 10 February 2015 at 01:24, Charles Steinkuehler
<
cha...@steinkuehler.net> wrote:
> IIRC, index homing uses some sort of special I/O pin to handle the
> request/acknowledge handshake with the HAL layer. Is this true (and is
> it required that indexing work this way)?
The easy version of index homing just needs you to enable it in the
INI for the axis in question.
This assumes that the axis position feedback is from the encoder, and
that the encoder counter component index-enable pin is netted to the
axis.N.index-enable pin (and, to avoid bumps, to the
pid.N.index-enable)
The way this works is that on hitting the home-switch the index-enable
pin is set by the motion component, then when index is seen the
encoder counter component resets the index-enable pin and
(importantly) zeros the encoder counts. On the next servo-period the
motion component sees the change in index-enable state and uses the
encoder counts (which is probably non-zero again by this point) as an
absolute measure of the current distance from the home position.
(Thinking about it, it doesn't actually have to do anything with this
information, it all works out).
Using the encoder index in this way requires an encoder component that
resets index-enable on seeing the index. I don't _think_ it is
technically necessary for the encoder to be counting a/b pulses, it
would still work as a simple latch. However the encoder counter does
need to be running fast enough to be able to spot the very short index
pulse.
I think it would be possible to use the software encoder counter with
only the index connected as long as homing was slow enough to always
catch the pulse. PRU encoders and actual position feedback just makes
it better.
--
atp
If you can't fix it, you don't own it.
http://www.ifixit.com/Manifesto