Etape 3: Traitement des entrées d’utilisateur
Cette partie du dessin ou modèle est responsable de l’échantillonnage les entrées codeur et bouton. La vitesse « standard » PMOD servait à introduire ces signaux dans le Zynq. Entrées ont été échantillonnées simplement avec un module GPIO. Entrées d’encodeurs sont traitées par un bloc d’IP de codeur (écrit par moi) afin d’obtenir une valeur de "comptage" associée à combien l’encodeur a été tourné.
Étant donné que les encodeurs rotatifs mécaniques ont été utilisés, le commutateur et le codeur sorties pullup requis résistances (5k ohms) et un debouncing LP filter a également été ajouté. C’était probablement la partie la plus faible de ma conception et nécessite certainement peu plus de travail. J’ai eu de problème à obtenir la valeur de comptage précis de codeurs, malgré les simulations des blocs de matériel montrant le fonctionnement (images ci-joint). Je n’avais pas le temps de diagnostiquer ce problème avant la démo finale, donc il reste quelque chose que je vous conseille de prendre plus de temps pour concevoir que moi !
-encoder_btn_gpio : le canal 1 est entré, profitant de la valeur de comptage des trois codeurs et deux boutons
-encoder0, 1, 2: My IP pour interpréter les entrées en quadrature de codeurs rotatifs. Étapes du codeur sont enregistrés comme une valeur de « comptage » qui peut être positive ou négative. L’entrée de la TVD est présente pour réinitialiser la valeur de count, permettant le PS lire la valeur de count, puis réinitialiser. De cette façon, la valeur de count doit jamais déborder et donner des résultats étranges.