\subsection{Delta Tau Power PMAC}
%
\textit{Platform: Power PMAC controllers running PowerPC Linux}
\newline

The Power PMAC series of motor controllers from
\MxLink{http://www.deltatau.com/}{Delta Tau Data Systems}
of Chatsworth, California is their newest series of motor controllers.
The special feature of this series of controllers is that they are
implemented using a PowerPC based system using Linux together with
Xenomai extensions for real-time control.  Fortunately, they are using
a fairly standard version of the Debian 5.0 (Lenny) distribution for
\textbf{powerpc}.  Although they provide a Cygwin-based cross compiler
system for Windows, the Debian Linux installation on the Power PMAC
itself comes complete with development tools like GCC, GDB, and Make.
Thus, it is possible to do Power PMAC software development directly
on the Power PMAC itself.

The MX \textit{powerpmac} series of drivers is designed to run under
Linux on the Power PMAC's CPU.  Instead of using \textbf{gpascii},
the MX drivers use the Delta Tau-provided \textit{gplib.h} include file
and directly link to Delta Tau's /opt/ppmac/libppmac.so library.
This provides direct access to features like the Power PMAC shared memory
interface.

So far all of the software development has been done directly on the
Power PMAC itself.  However, we do all of
our work on an SD card installed in the Power PMAC's SD slot to avoid
unnecessary changes to the Power PMAC root partition and to avoid
unnecessary wear on the Power PMAC's flash memory.

At present, the following MX drivers are available:
\newline\newline
\begin{tabular}{lp{12cm}}
    \textit{powerpmac} &
      Interface driver for controlling the Power PMAC controller.\\
  
    \textit{powerpmac\_motor} &
      Motor driver for controlling a single motor of a Power PMAC controller. \\
\end{tabular}
%
\newline\newline
Analog and digital I/O drivers, coordinate system drivers,
multichannel encoder drivers, multichannel scaler drivers,
and variable drivers are planned but not yet implemented.

\subsubsection{MX Power PMAC drivers}
%
% "powerpmac" interface records
%
\textbf{powerpmac} driver

        \textit{Powerpmac} interface records are used to control one or more
	PMAC motor controllers attached to a given external interface.
	An example \textit{powerpmac} record looks like
\begin{verbatim}
ppmac1 interface controller powerpmac "" ""
\end{verbatim}

	Note that the \textit{powerpmac} does not have \textit{any}
	driver specific fields.  This is because the driver is able
	to autoconfigure itself by directly querying the Power PMAC
	libraries.

%
% "powerpmac_motor" motor records
%
\ \newline
\textbf{powerpmac\_motor} driver

    	A \textit{pmac\_motor} record refers to one particular motor
	in a PMAC motor controller.  The motor is controlled mostly via
	PMAC ``jog'' mode commands except for certain features not available
	via jog commands.

	An example \textit{pmac\_motor} record looks like
\begin{verbatim}
x1 device motor powerpmac_motor "" "" 0 0 -10000000 10000000 0 -1 -1 0.05 0 um ppmac1 4

\end{verbatim}
	which describes a motor called \textbf{x1} which belongs to
	controller 0, axis 4 of PMAC interface \textbf{pmac1}.
	The example motor uses a scale factor of 0.05 $\mu$-meters per step
	and raw motion limits of $\pm$ 10000000 steps.
%
	\newline
	\newcommand{\MxFieldPowerpmacZmotorPowerpmacZrecord}
	{Name of the Power PMAC interface record that controls this motor.}
	\newcommand{\MxFieldPowerpmacZmotorMotorZnumber}
	{The Power PMAC motor number for this specific motor.}
	%
	\MxPowerpmacZmotorDriverFields
	\newline
%

Here is an example database for the Power PMAC:
\begin{verbatim}
ppmac1 interface controller powerpmac "" ""
m1     device motor powerpmac_motor "" "" 0 0 -10000000 10000000 0 -1 -1 0.0001 0 um ppmac1 1
m2     device motor powerpmac_motor "" "" 0 0 -10000000 10000000 0 -1 -1 0.0001 0 um ppmac1 2
m3     device motor powerpmac_motor "" "" 0 0 -10000000 10000000 0 -1 -1 0.0001 0 um ppmac1 3
m4     device motor powerpmac_motor "" "" 0 0 -10000000 10000000 0 -1 -1 0.0001 0 um ppmac1 4
\end{verbatim}

