cogoman wrote:
> What is the sequence of messages sent and received to an FPGA parallel 
> port servo card at each servo interval?  I looked on the wiki and 
> couldn't find this information.  What all goes on when controlling 3 
> servos over the parallel port?
>   
Some of this may be considered sort of proprietary, and certainly 
doesn't need to be documented
for the general user or even integrator.

I will try to describe it in general terms for my 3 products.

First, the driver sends a command to the board(s) to latch their encoder 
counts.  Then, all encoder
counts are read in, and the digital inputs.  The HAL file then executes 
the PID algorithm, and
then writes out the velocities and the digital outputs.

As for the exact transactions on the parallel port, my boards use the 
EPP or IEEE-1284 mode,
where a read or write to a specific X-86 I/O port address performs a 
handshaked transfer
of either an address or data byte.  My boards have an auto-incrementing 
address counter,
so consecutive data bytes can be transferred without additional address 
transfers.
So, to read out 4 axes of 24-bit encoder counts, you send the address of 
the first register,
and then perform 12 INB instructions to the EPP data address.

You can always look at the code in src/hal/drivers/hal_ppmc.c if you 
need more detail.

For the general overview, you can look at 
configs/univpwm/univpwm_load.hal to see the
sequence of procedures invoked in the servo thread.

Jon

------------------------------------------------------------------------------
FREE DOWNLOAD - uberSVN with Social Coding for Subversion.
Subversion made easy with a complete admin console. Easy 
to use, easy to manage, easy to install, easy to extend. 
Get a Free download of the new open ALM Subversion platform now.
http://p.sf.net/sfu/wandisco-dev2dev
_______________________________________________
Emc-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to