1. Información general
La Pluto-P es una placa FPGA que contiene el chip ACEX1K de Altera.
1.1. Requisitos
-
Una placa Pluto-P
-
Un puerto paralelo compatible con EPP, configurado en modo EPP en el BIOS del sistema o una tarjeta puerto paralelo PCI compatible con EPP.
|
Note
|
La placa Pluto P requiere modo EPP. Los chips Netmos98xx no funcionan en modo EPP. La placa Pluto P funcionará en algunas computadoras y en otras no. No hay un patrón conocido de cuáles computadoras funcionarán y cuáles no. |
Para más información sobre tarjetas PCI de puerto paralelo compatibles con EPP ver la página de Hardware compatible con LinuxCNC en la wiki.
1.2. Conectores
-
La placa Pluto-P se envía con el conector izquierdo presoldado, con la muesca en la posición indicada. Los otros conectores están vacíos. No parecen conectores IDC estándar de 12 pines, pero algunos de los pines de un conector 16P pueden quedar fuera de la placa al lado de QA3/QZ3.
-
Los conectores inferior y derecho están en la misma cuadrícula de .1", mas no el conector izquierdo. Si no se necesitan OUT2…OUT9 un solo conector IDC puede abarcar el conector inferior y las dos filas inferiores del conector derecho.
1.3. Pines físicos
-
Leer la hoja de especificaciones para información de los límites de voltajes de entrada y salida. Todos los pines están configurados en modo LVTTL/LVCMOS y son generalmente compatibles con lógica TTL de 5V.
-
Antes de configurar y después de salir de LinuxCNC, todos los pines de Pluto-P están en tercer estado con resistencias pull-up débiles (20 kΩ mín., 50 kΩ máx.). Si el temporizador del perro guardián esta activo (lo predeterminado), estos pines también quedan en tercer estado después de una interrupción de comunicación entre LinuxCNC y la placa. El temporizador del perro guardián tarda aproximadamente 6.5 ms en activarse. Sin embargo, defectos en el software del firmware de pluto_servo o de LinuxCNC pueden dejar los pines de Pluto-P en un estado indefinido.
-
En modo pwm+dir, dir es predeterminadamente Alto para valores negativos y Bajo para valores positivos. Para hacer Alto para valores positivos y Bajo para valores negativos, establecer el parámetro correspondiente dout-NN-invert en Verdadero para invertir la señal.
-
La entrada de índice es disparada en el flanco ascendente. Pruebas iniciales han mostrado que las entradas de QZx son particularmente sensibles al ruido por ser sondeadas cada 25 ns. Se ha agregado filtrado digital para filtrar pulsos más cortos que 175 ns (siete tiempos de sondeo). Es recomendable agregar filtrado externo en todos los pines de entrada, como un búfer o inversor Schmitt, filtro RC o receptor diferencial (si aplica).
-
Los pines IN1…IN7 tienen resistencias en serie de 22 Ω con sus pines FPGA asociados. Ningún otro pin tiene algún tipo de protección para voltajes o corrientes fuera de especificación. Depende del integrador el agregar aislamiento y protección apropiados. Las placas de aislamiento óptico tradicionales de puerto paralelo no funcionan con pluto_servo debido a la naturaleza bidireccional del protocolo EPP.
1.4. LED
-
Cuando el dispositivo no está programado el LED brilla tenuemente. Cuando el dispositivo está programado el LED brilla según el ciclo de trabajo de PWM0 (LED = UP0 xor DOWN0) o STEPGEN0 (LED = STEP0 xor DIR0).
1.5. Energía
-
Se puede obtener un poco de corriente de VCC. La corriente disponible depende de la entrada DC desregulada a la placa. Alternativamente, se pueden suministrar al FPGA +3.3VDC regulados mediante estos pines VCC. La corriente requerida aún se desconoce, pero es probable que ronde por 50mA más la corriente de E/S.
-
El regulador en la placa Pluto-P es del tipo de baja caída de tensión. Suministrar 5V al conector de alimentación permitirá al regulador funcionar apropiadamente.
1.6. Interfaz con la PC
-
Solo una placa pluto_servo o pluto_step es soportada.
1.7. Recompilación del firmware FPGA
Los subdirectorios src/hal/drivers/pluto_servo_firmware/ y src/hal/drivers/pluto_step_firmware/ contienen el código fuente Verilog además de archivos adicionales usados por Quartus para los firmwares FPGA. El software Quartus II de Altera es necesario para recompilar el firmware FPGA. Para recompilar el firmware a partir de .hdl y otros archivos fuente abre el archivo .qpf y presiona CTRL-L. Luego recompila LinuxCNC.
Como el controlador de hardware HAL, el firmware FPGA está licenciado bajo los términos de la Licencia pública general de GNU.
The gratis version of Quartus II runs only on Microsoft Windows, although there is apparently a paid version that runs on Linux.
1.8. For more information
Some additional information about it is available from KNJC LLC and from the developer’s blog.
2. Pluto Servo
The pluto_servo system is suitable for control of a 4-axis CNC mill with servo motors, a 3-axis mill with PWM spindle control, a lathe with spindle encoder, etc. The large number of inputs allows a full set of limit switches.
This driver features:
-
4 quadrature channels with 40 MHz sample rate. The counters operate in 4x mode. The maximum useful quadrature rate is 8191 counts per LinuxCNC servo cycle, or about 8 MHz for LinuxCNC’s default 1 ms servo rate.
-
4 PWM channels, up/down or pwm+dir style. 4095 duty cycles from -100% to +100%, including 0%. The PWM period is approximately 19.5 kHz (40 MHz / 2047). A PDM-like mode is also available.
-
18 digital outputs: 10 dedicated, 8 shared with PWM functions. (Example: A lathe with unidirectional PWM spindle control may use 13 total digital outputs)
-
20 digital inputs: 8 dedicated, 12 shared with Quadrature functions. (Example: A lathe with index pulse only on the spindle may use 13 total digital inputs.)
-
EPP communication with the PC. The EPP communication typically takes around 100 µs on machines tested so far, enabling servo rates above 1 kHz.
2.1. Asignación de pines
-
UPx - The up (up/down mode) or pwm (pwm+direction mode) signal from PWM generator X. May be used as a digital output if the corresponding PWM channel is unused, or the output on the channel is always negative. The corresponding digital output invert may be set to TRUE to make UPx active low rather than active high.
-
DNx - The down (up/down mode) or direction (pwm+direction mode) signal from PWM generator X. May be used as a digital output if the corresponding PWM channel is unused, or the output on the channel is never negative. The corresponding digital output invert may be set to TRUE to make DNx active low rather than active high.
-
QAx, QBx - The A and B signals for Quadrature counter X. May be used as a digital input if the corresponding quadrature channel is unused.
-
QZx - The Z (index) signal for quadrature counter X. May be used as a digital input if the index feature of the corresponding quadrature channel is unused.
-
INx - Dedicated digital input #x
-
OUTx - Dedicated digital output #x
-
GND - Ground
-
VCC - +3.3V regulated DC
| Primary function | Alternate Function | Behavior if both functions used |
|---|---|---|
UP0 |
PWM0 |
When pwm-0-pwmdir is TRUE, this pin is the PWM output |
OUT10 |
XOR’d with UP0 or PWM0 |
|
UP1 |
PWM1 |
When pwm-1-pwmdir is TRUE, this pin is the PWM output |
OUT12 |
XOR’d with UP1 or PWM1 |
|
UP2 |
PWM2 |
When pwm-2-pwmdir is TRUE, this pin is the PWM output |
OUT14 |
XOR’d with UP2 or PWM2 |
|
UP3 |
PWM3 |
When pwm-3-pwmdir is TRUE, this pin is the PWM output |
OUT16 |
XOR’d with UP3 or PWM3 |
|
DN0 |
DIR0 |
When pwm-0-pwmdir is TRUE, this pin is the DIR output |
OUT11 |
XOR’d with DN0 or DIR0 |
|
DN1 |
DIR1 |
When pwm-1-pwmdir is TRUE, this pin is the DIR output |
OUT13 |
XOR’d with DN1 or DIR1 |
|
DN2 |
DIR2 |
When pwm-2-pwmdir is TRUE, this pin is the DIR output |
OUT15 |
XOR’d with DN2 or DIR2 |
|
DN3 |
DIR3 |
When pwm-3-pwmdir is TRUE, this pin is the DIR output |
OUT17 |
XOR’d with DN3 or DIR3 |
|
QZ0 |
IN8 |
Read same value |
QZ1 |
IN9 |
Read same value |
QZ2 |
IN10 |
Read same value |
QZ3 |
IN11 |
Read same value |
QA0 |
IN12 |
Read same value |
QA1 |
IN13 |
Read same value |
QA2 |
IN14 |
Read same value |
QA3 |
IN15 |
Read same value |
QB0 |
IN16 |
Read same value |
QB1 |
IN17 |
Read same value |
QB2 |
IN18 |
Read same value |
QB3 |
IN19 |
Read same value |
2.2. Input latching and output updating
-
PWM duty cycles for each channel are updated at different times.
-
Digital outputs OUT0 through OUT9 are all updated at the same time. Digital outputs OUT10 through OUT17 are updated at the same time as the pwm function they are shared with.
-
Digital inputs IN0 through IN19 are all latched at the same time.
-
Quadrature positions for each channel are latched at different times.
2.3. HAL Functions, Pins and Parameters
A list of all loadrt arguments, HAL function names, pin names and parameter names is in the manual page, pluto_servo.9.
2.4. Compatible driver hardware
A schematic for a 2A, 2-axis PWM servo amplifier board is available from the (the software developer). The L298 H-Bridge can be used for motors up to 4A (one motor per L298) or up to 2A (two motors per L298) with the supply voltage up to 46V. However, the L298 does not have built-in current limiting, a problem for motors with high stall currents. For higher currents and voltages, some users have reported success with International Rectifier’s integrated high-side/low-side drivers.
3. Pluto Step
Pluto-step is suitable for control of a 3- or 4-axis CNC mill with stepper motors. The large number of inputs allows for a full set of limit switches.
The board features:
-
4 step+direction channels with 312.5 kHz maximum step rate, programmable step length, space, and direction change times
-
14 dedicated digital outputs
-
16 dedicated digital inputs
-
EPP communication with the PC
3.1. Asignación de pines
-
STEPx - The step (clock) output of stepgen channel x
-
DIRx - The direction output of stepgen channel x
-
INx - Dedicated digital input #x
-
OUTx - Dedicated digital output #x
-
GND - Ground
-
VCC - +3.3V regulated DC
While the extended main connector has a superset of signals usually found on a Step & Direction DB25 connector—4 step generators, 9 inputs, and 6 general-purpose outputs—the layout on this header is different than the layout of a standard 26-pin ribbon cable to DB25 connector.
3.2. Input latching and output updating
-
Step frequencies for each channel are updated at different times.
-
Digital outputs are all updated at the same time.
-
Digital inputs are all latched at the same time.
-
Feedback positions for each channel are latched at different times.
3.3. Step Waveform Timings
The firmware and driver enforce step length, space, and direction change times. Timings are rounded up to the next multiple of 1.6μs, with a maximum of 49.6μs. The timings are the same as for the software stepgen component, except that dirhold and dirsetup have been merged into a single parameter dirtime which should be the maximum of the two, and that the same step timings are always applied to all channels.
3.4. HAL Functions, Pins and Parameters
A list of all loadrt arguments, HAL function names, pin names and parameter names is in the manual page, pluto_step.9.