HostMot2 - rmu75/linuxcnc-wiki GitHub Wiki
HostMot2 is an FPGA configuration developed by [Mesa Electronics] for their line of "Anything I/O" motion control cards. The firmware is open source, portable and flexible. It can be configured (at compile-time) with zero or more instances of each of several Modules: encoders (quadrature counters), PWM generators, and step/dir generators. The firmware can be configured (at run-time) to connect each of these instances to pins on the boards' I/O headers. I/O pins not driven by a Module instance revert to general-purpose bi-directional digital I/O.
Several pre-compiled HostMot2 firmware binaries are available for the different Anything I/O boards. (This list may be incomplete, check the LinuxCNC distribution and Mesa's web site for more up-to-date firmware lists.)
7i43 (48 I/O pins):
- 8-channel servo (8 PWM generators & 8 encoders)
- 4-channel servo plus 4 step/dir generators
5i20, 5i23, 4i65, 4i68 (72 I/O pins):
- 12-channel servo
- 8-channel servo plus 4 step/dir generators
- 4-channel servo plus 8 step/dir generators
5i22 (96 I/O pins):
- 16-channel servo
- 8-channel servo plus 24 step/dir generators
The LinuxCNC support for the HostMot2 firmware is split into a generic driver called "hostmot2" and two low-level I/O drivers for the Anything I/O boards. The low-level I/O drivers are "hm2_7i43" and "hm2_pci" (for all the PCI- and PC-104/Plus-based "Anything I/O" boards). The hostmot2 driver must be loaded first, using a HAL command like this: loadrt hostmot2 See the hostmot2(9) man page (online [here]) for details.
The hostmot2 driver by itself does nothing, it needs access to actual boards running the HostMot2 firmware. The low-level I/O drivers provide this access. The low-level I/O drivers are loaded with commands like this: loadrt hm2_pci config="firmware=hm2/5i20/SVST8_4.BIT num_encoders=3 num_pwmgens=3 num_stepgens=1"
The config modparam is described in the [hostmot2 man page].