NI 9505 Motor Output Pulse Width Considerations (FPGA Interface)
- Updated2025-12-16
- 2 minute(s) read
The NI 9505 commanded Motor terminal output and actual Motor terminal output differ by a small amount. The following figure shows the commanded signal sent and the offset for both clockwise and counterclockwise motor voltage. Time offsets indicated are typical.
| where | td1 = 750 ns + 170 ns | is the delay between the active edge of the commanded motor signal to the active edge of the actual motor voltage |
| td2 = 170 ns | is the delay between the falling edge of the commanded motor signal to the falling edge of the actual motor voltage | |
| tcmd_motor_on | is the time that the Motor terminal of the LabVIEW FPGA I/O node is TRUE; pulse width cannot be between 0 µs and 2 µs | |
| tcmd_motor_off | is the time that the Motor terminal of the LabVIEW FPGA I/O node FALSE signal; pulse width cannot be between 0 µs and 2 µs |
Note The PWM Generation — NI
9505 Example VI in the labview\examples\CompactRIO\Module
Specific\NI 9505 directory does not account for these signal delays.
Use the following equation to make sure the actual motor voltage matches your desired waveform:
tcmd_motor_on_calc = tdesired_motor_on + 750 ns
Where:
| where | tcmd_motor_on_calc | is an intermediate value used to determine the correct value of tcmd_motor_on |
| tdesired_motor_on | is the pulse width of the signal you require |
Once you determine the value of tcmd_motor_on_calc you need to also ensure that your pulse width is above the 2 µs minimum. Use the following table to help determine the value of tcmd_motor_on to use in your LabVIEW FPGA VI.
Note
The minimum pulse width requirement refers to the commanded motor signal and not to the actual motor voltage.
| tcmd_motor_on_calc | tcmd_motor_on |
|---|---|
| 0 µs | 0 µs |
| 0 to 2 µs | 2 µs* |
| 2 µs to (T† – 2 µs) | tcmd_motor_on_calc |
| (T – 2 µs) to T | T – 2 µs* |
Note The NI 9505 module cannot accept a pulse width less than 2 µs
(high or low). Doing so will result in unpredictable performance.
Note T is defined as the period of the commanded
motor signal.
Use the tcmd_motor_on time to set the Motor terminal of the LabVIEW FPGA I/O node TRUE to compensate for signal delays. Refer to NI 9505 Motor Output and Current Sense Example for a sample motor signal calculation.