Al final va a ser por RS-485 por motivos de distancia.
En tu proyecto me surgen unas dudas.
Si los esclavos solamente se encargan de manejar un display de 8 dígitos:
- La velocidad de comunicación puede ser muy baja, ya que refrescar un display mas de 5 veces por segundo no tiene sentido porque no llegás a "entender" el número que ya cambió.
30cm puede ser problemático pero para velocidades altas con cablé común, pero acá no necesitás usarlas.
- Mas práctico que un microcontrolador me parece usar directamente un MAX7219.
Como bonus, en general vas a necesitar menos componentes externos que con un microcontrolador y de paso las salidas de digitos tienen mayor capacidad de corriente.
Tenés drivers para PICs en Github y el modelo en Proteus.
Si querés trabajar menos o para prototipo, vienen chinorris
displays de 8 dígitos con max7219 Respecto a la velocidad y procesamiento de los pulsos del encoder:
- Si los 200KHz se refieren a 5us de mínimo tiempo entre flancos, corresponde a un eje girando a 3000rpm.
Si son la frecuencia máxima de las fases, entonces el tiempo entre flancos es de 1.25us y se corresponde a un eje a 12000RPM
Si bien el tiempo alcanza para trabajarlo por interrupción, te deja poco margen.
No se que PIC pensás usar, pero apuntaría a uno con
QEI (quadrature encoder interface), que tienen un contador up/down manejado por señales en cuadratura, además de hacer un filtrado digital para evitar falsos pulsos.
Ejemplo:
El PIC18F4431 con el que te sobraría tiempo por todos lados.
Lástima que hoy es un mal momento para comprar componentes en Argentina, se consigue muy poco
Todo esto si el objetivo es medir posición, porque si se trata de
medir velocidad en ambos sentidos lo hacés con el PIC mas pedorro existente porque mandás las fases a las entradas D y clk de un flip flop D (detectás sentido de giro) y una fase a una entrada de conteo del PIC. Con eje detenido (o muy muy baja velocidad) se pueden generar falsos pulsos que hay que descartar por software.
Saludos.