BeagleBone Encoders

Asked by 3 months ago
This is a heads-up to anyone working on BeagleBone based interfaces for LinuxCNC. I am working on code to support encoders on the BeagleBone, allowing true servo operation (within limits). Encoders can be supported on the BeagleBone via hardware or software (via the PRU). There are three hardware encoders on the BeagleBone: * eQEP2, on P8 pins 11, 12, 15, 16 * eQEP0, on P9 pins 25, 27, 41.1, 42.1 (BeagleBone Black only) * eQEP1, on P8 pins 31, 31, 33, 35 (conflicts with HDMI) The eQEP2 pins conflict with the typical BeBoPr step/dir pinout (re-used by several CNC capes), but could be used if desired, since step/dir pins from the PRU can be freely assigned. The eQEP0 pins do not conflict with the standard BeBoPr pinout, and might make a good primary encoder input for the spindle or other high-speed axis. Sadly, eQEP1 cannot be used without disabling HDMI. :( I don't generally intend to run without a display, but I'll make sure the HAL BeagleBone encoder logic will support all three hardware encoders if you don't need a display. In addition to physical hardware support for encoders, it is possible to support encoders via the PRU. I expect to be able to fairly easily support up to 100 KHz or so count rates (25 KHz encoder A/B signals), and may be able to go as much as 10x faster, depending on how complex the PRU code becomes and how many channels are enabled. Regardless, the encoder A/B/Index signals will need to be on direct PRU input pins. On the BeagleBone Black, PRU0 has 9 direct inputs available on P9 (only 7 for the BeagleBone White), meaning it would be possible to support 3 encoders with index, or 4 plain encoders on the 'Black. Feel free to contact me directly if you are working on a design and are concerned about your pinout.

Your Answer