Paso 3: Procesamiento entrada de usuario
Esta porción del diseño es responsable para el muestreo de las entradas de encoder y botón. La "velocidad estándar" PMOD fue utilizado para poner estas señales en la Zynq. Entradas de botón se muestrearon simplemente con un módulo GPIO. Entradas de codificador son procesadas por un bloque IP de codificador (escrito por mí) con el fin de obtener un valor de "recuento" relacionadas con cuánto el codificador se ha convertido.
Puesto que fueron utilizados los codificadores rotatorios mecánicos, el interruptor y el codificador salidas pullup requiere resistores (5k Ohm) y un filtro LP añadió también contra rebotes. Esto era probablemente la parte más débil de mi diseño y sin duda requiere un trabajo más. He tenido problemas para obtener valores de conteo preciso de los codificadores, a pesar de simulaciones de los bloques de hardware que muestra funcionamiento (adjuntadas imágenes). No tengo tiempo para diagnosticar este problema antes de la demostración final, por lo que permanece como algo que te aconsejo que tome más tiempo para el diseño que yo!
-encoder_btn_gpio: canal 1 de entrada, tomando valores de cuenta de los tres codificadores y dos botones
-encoder0, 1, 2: mi IP para interpretar entradas cuadratura de codificadores rotatorios. Pasos del codificador se registran como un valor de "recuento" que puede ser positiva o negativa. La primera entrada está presente para restablecer el valor de la cuenta, permitiendo que el PS leer el valor de la cuenta, y luego reiniciarlo. De esta manera, el valor de la cuenta nunca debe desbordar y causar resultados extraños.