Digitalt oscilloskop med Digilent Zybo styrelsen (3 / 6 steg)
Steg 3: Användarens indata bearbetning
Denna del av utformningen ansvarar för provtagning encoder och knappen ingångarna. "Standard hastighet" PMOD användes för att föra dessa signaler i Zynq. Knappen insatsvaror var urvalet enkelt med en GPIO modul. Encoder ingångar bearbetas av en kodare IP-block (skriven av mig) för att få ett "count" värde avser hur mycket kodaren har förvandlats.
Eftersom mekaniska roterande pulsgivare används, både switch och kodare utgångar krävs pullup motstånd (5k Ohm), och en debouncing LP filter lades också. Detta var förmodligen den svagaste delen av min design och definitivt kräver lite mer arbete. Jag hade problem att få korrekt räkna värden från kodare, trots simuleringar av hårdvara block visar korrekt funktion (bilder bifogas). Jag hade inte tid att diagnostisera detta problem förut sista demon, så det är fortfarande som något jag råda dig att ta mer tid att utforma än mig!
-encoder_btn_gpio: kanal 1 input, som i antal värden från tre kodare och två knappar
-encoder0, 1, 2: min IP för att tolka kvadratur ingångar från rotationsencoder. Steg för kodaren bokförs som en "count" värdet kan vara negativa eller positiva. Den första ingången är närvarande återställa räkna värdet, så att PS att läsa värdet räknas och sedan återställa den. På detta sätt, bör värdet räknas aldrig overflow och orsaka konstiga resultat.