Motion Control and Motor Drives

Showing results for 
Search instead for 
Did you mean: 

Motion Assistant and PXI-7354 PWM output



I have a PXI-7354 Motion Controller in a PXI-1033 rack and I'm trying to prototype a product which has a digital motor controller IC, A3906 by Allegro. The IC is controlled with PWM signals by varying the duty cycle. Now, in the NI 7350 User Manual on page 5-17, it says that "These signals (PWM) are configured in software and are in no way associated with the PID servo control loop." My question is, can I programmatically associate the output of the control loop with a PWM output duty cycle?


I'm new to Motion Assistant and PXI motion controllers and I appreciate any input.


Miika Lönnqvist
Electronics designer, CLAD
Biohit Oyj R&D
0 Kudos
Message 1 of 4



as you have already found in the manual, the PWM output of the 7354 is just a static output, that can't be used for motion control, but maybe there are alternative solutions. Could you please provide some more detailed information about your application?


  1. What type of motor are you going to control?
  2. What type of control do you need? Position control, velocity control, torque control...?
  3. Which part of the control is located on the A3906 and what are your feedback signals?
  4. Did you plan to use the PXI-7354 for closed loop control?
  5. Anything that helps to better understand your needs.

Thanks and kind regards,

Jochen Klier

National Instruments

0 Kudos
Message 2 of 4



1. The motor is a brushed DC motor with a supply voltage of 3,7 V.

2. For now, position and velocity control.

3. The A3906 is just the drive stage for the motor, it does not participate in the motor control. Feedback is provided by a quadrature encoder without an index pulse.

4. Yes, the quadrature encoder provides the speed and location information.

5. The motor controller chip is controlled by two PWM lines called IN1/3, active low and IN2/4, active low. When IN1/3 is held high and IN2/4 is fed a PWM signal, the motor runs forward. When IN2/4 is held high and IN1/3 is fed a PWM signal, the direction is reversed. The duty cycle of the PWM determines the amount of current in the motor windings. Hopefully we can use this motion controller to find out what the optimal PID constants are. 


I hope this helps, thank you for your reply.


Miika Lönnqvist
Electronics designer, CLAD
Biohit Oyj R&D
0 Kudos
Message 3 of 4



thank you for the information, but there is no way for the 7354 to drive control signals directly in this fashion. So here are some alternative approaches that could help:


  1. The 7354 outputs a +/- 10 V control signal. You could build your own circuitry to adapt this signal to the control input requirements of your drive (two voltage to PWM converters; one driven by positive voltage values, the other one driven by negative voltage values).
  2. Replace the 7354 with an R-Series board. The FPGA on these devices can be programmed graphically with LabVIEW FPGA and it provides both, real-time control and complete flexibility in terms of I/O mapping and control algorithms. Motion control with special requirements is a typcial usecase for these devices.
    You can select from a variety of R-Series boards with different FPGA sizes and I/O setups. If you don't need any analog inputs or outputs, the reasonable lowest cost entry point for your application is probably a PXI-7811R

Both approaches add some complexity to your current setup. While the first approach is hardware centric, the second approach adds some complexity on the software side. My personal preference is option two, as this provides the highest level of flexibility, which is typically very desirable for a prototyping system.

In any case I recommend to contact your local NI contact for a more detailed consulting.


Kind regards,



0 Kudos
Message 4 of 4