In the field of precision motion control, the requirements for pulse frequency, interpolation accuracy, and real-time response of the system are becoming increasingly stringent. ADLINK's PCI-8154 is an advanced 4-axis motion control card based on ASIC architecture, using a 32-bit PCI bus and supporting up to 6.55 MPPS pulse output, 2-4 axis linear interpolation, 2-axis arc and spiral interpolation, 13 return to origin modes, online speed/position changes, and position comparison triggering, among other advanced functions. This article provides a complete deployment and development reference for motion control engineers, covering hardware installation, signal connection, motion mode principles, MotionCreatorPro debugging tool, and function library programming.
Overview of Card Board and Hardware Installation
PCI-8154 adopts a compact PCB design (185 × 100 mm), with a dedicated motion control ASIC onboard. It integrates a pulse generator, encoder interface, comparator, counter, and various mechanical switch interfaces. Its core performance indicators include:
Pulse output: 6.55 MPPS (programmable in OUT/DIR, CW/CCW, AB phase modes)
Encoder input: up to 3.2 MHz (CW/CCW or AB × 1), up to 6.5 MHz in AB × 4 mode
Counter: 28 bits (0~268435455 or ± 134217728)
Isolation: All I/O signals are optically isolated at 2500Vrms
External power supply:+24V DC ± 5%, 500mA (for I/O power supply)
Installation steps:
Turn off the PC power, select an idle 32-bit PCI slot, insert and secure the card board.
Connect the CN3 main connector (100 pin SCSI-II) to an external terminal board (such as DIN-814M compatible with Panasonic/Mitsubishi/Yaskawa servo).
Connect the CN1 external+24V power supply (with accompanying cable).
Set the card ID (0~15) through the SW1 DIP switch, supporting up to 12 cards (48 axes) in the same system.
Select the pulse output type through JP2~JP9 jumper: default 1-2 short circuit is differential drive; 2-3 short circuit is an open set output (note that the current should be ≤ 20mA).
Debugging prompt: If the system cannot recognize the card, check if the Windows Device Manager enumeration is successful; If IRQ conflicts, PCI resource allocation can be adjusted in BIOS.
Detailed explanation of signal connection and interface
CN3 is the main connector, which includes pulse output for all axes, encoder feedback, limit/origin/deceleration, servo interface, and multifunctional I/O.
2.1 Pulse output (OUT ±, DIR ±)
Two pairs of differential signals (OUT+/- and DIR+/-) for each axis, select the mode through software _8154_det_pls_outmode():
OUT/DIR mode: OUT output pulse, DIR level direction.
CW/CCW mode: OUT is a forward pulse, DIR is a reverse pulse.
AB phase mode: OUT and DIR output pulse pairs with a phase difference of 90 ° (used for certain stepper drives).
Jumper settings: JP2~JP9 correspond to the DIR and OUT signals of each axis, with differential drive by default. If using open set output, it is necessary to short-circuit 2-3 pins and use the OUT -/DIR - pins (it is recommended to connect a 470 Ω current limiting resistor in series).
2.2 Encoder feedback (EA ±, EB ±, EZ ±)
Three pairs of differential inputs, supporting CW/CCW or AB phase (1 ×/2 ×/4 ×). The input circuit requires a differential voltage of ≥ 3.5V and a driving current of ≥ 8mA. If the encoder is an open set output, an external pull-up resistor (0 Ω for+5V, 1.5k Ω for+12V, and 3.0k Ω for+24V) is required.
2.3 Mechanical switches (ORG, PEL/MEL, SD)
ORG: Origin signal, used for 13 return to origin modes.
PEL/MEL: Positive/negative limit, stop pulse after triggering and output ERC to clear servo deviation.
SD: deceleration signal, triggered to forcibly reduce to the starting speed.
The above switches all use a+24V source, with an input current of ≥ 8mA and internal optocoupler isolation.
2.4 Servo interfaces (INP, ALM, ERC, SVON, RDY)
INP (In Place Signal): Can be configured as a motion completion condition.
ALM (Alarm): Can be configured to immediately stop or decelerate to stop.
ERC (Deviation Zeroing): Automatically outputs (pulse width adjustable) upon completion of zeroing, limit triggering, alarm, or emergency stop.
SVON (servo enable output) and RDY (servo ready input) are universal I/O.
2.5 Multi functional I/O (DO/CMP, DI/LTC/SD/PCS/CLR/EMG)
DO/CMP: Can be configured as a universal digital output or position comparison trigger output (CMP), used for camera triggering, etc.
DI/LTC/SD/PCS/CLR/EMG: Each multifunctional input can be independently configured as a digital input, latch (LTC), deceleration (SD), position change (PCS), counter reset (CLR), or emergency stop (EMG).
2.6 Handwheel (CN4) and synchronous start stop (K1/K2)
CN4: Differential split wheel input (PA ±/PB ±), supports AB phase or CW/CCW, can set multiplication and division.
K1/K2: Used for synchronous start stop of multiple cards, it is necessary to connect K2 of the previous card to K1 of the next card.
Motion control mode and operating principle
PCI-8154 provides a complete motion mode from single axis to multi axis interpolation, with all calculations completed by ASIC without consuming CPU resources.
3.1 Speed Curve
T-Curve: 1st order linear acceleration and deceleration, suitable for conventional positioning.
S-curve: 2nd order curve acceleration and deceleration to reduce mechanical impact.
Bell Curve: Inserting linear segments into an S-curve, balancing smoothness and fast response.
3.2 Single axis positioning
Relative/Absolute: _8154_Sart_tr_move() (relative trapezoid), _8154_Sart_ta_move() (absolute trapezoid), _8154_Srt_str_move() (relative S-curve), _8154_Srt_sta_move() (absolute S-curve).
Speed mode: _8154_tv-mov() continues to output until _8154_std_stop().
Online speed/position change: _8154_Speed_override() can adjust the speed percentage in real time; _8154_position override () can dynamically change the target position (note that the relative pulse number of the new target is not less than the required pulse for deceleration).
3.3 Multi axis interpolation
2-4 axis linear interpolation: functions such as _8154_strt_tr_line2/3/4(), specifying axis and position arrays, with vector velocity defined by StrVel/MaxVel.
2-axis arc interpolation: _8154_strt_tr_arc_xy() (XY axis relative arc), etc., requires specifying the center offset, endpoint offset, and direction (CW/CCW).
Spiral interpolation: _8154_dart_tr_helice() adds Z-axis linear motion on the basis of XY arc, suitable for thread machining, etc.
3.4 Return to Origin (13 Modes)
Configure the mode (0~12) through _8154_det_home_comfig(), including:
Only ORG triggers stop (mode 0)
After triggering ORG, wait for EZ signal to stop (modes 1/2/3)
Reverse search after reaching the limit (mode 6/7/8)
Equipped with automatic search function (_8154_ home_dearch())
_8154_ home_mave() returns to zero, ez_comunt can specify the number of Z-phase counts.
3.5 Handwheel and Continuous Motion
Handwheel mode: _8154_pulser-vmove() (speed following) or _8154_pulser_pmove() (fixed length following), with adjustable magnification/division.
Continuous motion: enabled through _8154_continuus_move (1), utilizing a three-level command cache to achieve a seamless trajectory.
3.6 Comparison and Trigger
Position Comparison Output (CMP): _8154_det_trigger_comperator() Set the comparison source (command/feedback/error/universal counter) and comparison value. After triggering, the CMP pin outputs a pulse, which can be used for triggering high-speed cameras.
Position Latch (LTC): _8154_ set_ latch source () Select the latch trigger source (LTC pin ORG、 Universal comparator or trigger comparator), _8154_get_1atch_data() reads the latch value.

MotionCreatorPro Debugging Tool
MotionCreatorPro is a graphical configuration and debugging software based on Windows (with a resolution of ≥ 1024 × 768), which greatly simplifies system verification.
4.1 Main menu and card information
Display all installed PCI-8154 cards and their card IDs, base addresses IRQ。
Support saving configuration to 8154.ini and 8154MC.ini, which can be loaded in the user program through _8154_comfig_from_2().
4.2 Configuration Menu
IO_Cnfig.1: Configure ALM logic/response mode, INP enable/logic, ERC logic/pulse width, EL response mode, ORG/EZ logic.
IO_Cnfig.2: Configure LTC logic and latch source, SD logic/latch/mode, PCS logic, GPIO input function and logic.
Pulse&INT_Config: Configure pulse output/input mode, shift ratio, interrupt factor.
4.3 Single axis operation menu
Real time display of command position, feedback position, position error, target position, and current speed.
Supports absolute/relative positioning, speed mode, handwheel mode, and zero return mode.
Support trapezoidal/S-shaped curve selection, repetitive motion, and real-time display of speed curves.
SVON and GPIO outputs can be set to monitor all I/O status (indicated by LED).
4.4 2D Sports Menu
Linear interpolation: Specify the target position and click to run.
Arc interpolation: Specify the center, endpoint, and direction, and click to run.
Continuous/incremental jog: used for manual verification.
Configuration saving technique: After clicking "Save Config" in the configuration menu, the configuration file is saved in the Windows system directory. The user program can call _8154_comfig-from_2() to automatically complete all I/O logic settings, greatly simplifying the initialization code.
Wiring examples and debugging points
The manual provides dedicated terminal boards (DIN-814P-A4, DIN-814M, DIN-814M-J3A, DIN-814Y) for servo drives such as Panasonic MINAS A4, Mitsubishi J2/J3A, and Yaskawa Sigma II, which can be directly plugged in.
Universal wiring:
OUT+→PULS+,OUT-→PULS-; DIR+→ SIGN+, DIR - → SIGN -.
EA+/EA - → OA+/OA -, EB+/EB - → OB+/OB -.
ALM, INP, RDY, SVON are connected according to servo pin definitions.
External+24V connection to CN3's E24V and EXGND.
Debugging suggestions:
Use MotionCreatorPro to test single axis motion and observe if the command/feedback positions are consistent.
Check the conversion of speed units: for example, if the encoder has 2000 lines per revolution and 8000 pulses per revolution after 4 times the frequency, if the maximum speed is 3000 rpm, then the maximum frequency=3000/60 × 8000=400000 pps.
If the direction of returning to the origin is incorrect, adjust the MaxVel sign.
If there is no output triggered by CMP, check if the polarity setting of _8154_det_trigger-logic() matches the external device.
Common troubleshooting
Possible causes and solutions for the phenomenon
Motor does not rotate, pulse output mode does not match or jumper error check _8154_det_pls_outmode(); Confirm JP jumper
Encoder reading is abnormal, differential voltage is insufficient, or wiring is reversed to measure EA+/EA - differential ≥ 3.5V; use pls_logic to reverse
Stop the limit immediately. The EL logic setting does not match the actual switch. Set it to normally open/normally closed using _8154_det_limit-logic()
Return to origin failed ORG/EZ logic or mode configuration error check parameter _8154_det_home_comfig(); Capture ORG signal with oscilloscope
Arc interpolation is not circular, and reasonable vector velocity or acceleration is not set to ensure that MaxVel and Tacc make the tangent velocity reasonable
CMP has no pulse output comparison source or the comparison value is set improperly. Confirm that the comparison source is feedback or command counter; Check CmpMethod
Multi card synchronization failed due to K1/K2 connection error or duplicate card IDs. Cascade according to section 2.6; Ensure that each card's SW1 is unique
Premature stop of movement triggered by soft limit or ALM effective check_8154_get-io_status(); Disable soft limit testing
