Tato stránka obsahuje podrobný popis hardware a periferií připravených pro cvičení a semestrální úlohy. Návody jak se se k přípravku připojit naleznete na stránce Nápověda k práci s přípravkem MicroZed APO.
Rozhraní přístupná přímo na desce MicroZed
tlačítko a reset tlačítko
Na výukovém modulu jsou vyvedené v logickém návrhu obsloužené následující periferie
Fyzická adresa | Rozsah | Symbolické označení | Popis |
---|---|---|---|
0x43c40000 | 0x4000 | SPILED_REG_BASE_PHYS | Blok periferií, otočných voličů, maticové klávesnice a RGB LED |
0x43c00000 | 0x4000 | PARLCD_REG_BASE_PHYS | Paralelní LCD display |
0x43c50000 | 0x4000 | SERVOPS2_REG_BASE_PHYS | Řízení až čtyř modelářských serv, alternativně PS2 |
0x43c60000 | 0x4000 | AUDIOPWM_REG_BASE_PHYS | Jednoduchý audio výstup (zatím jen PWM) |
Sada registrů začíná na fyzické adrese SPILED_REG_BASE_PHYS
Ofset registru | Symbolické označení | Bity | Popis |
---|---|---|---|
0x004 | SPILED_REG_LED_LINE_o | 31 .. 0 | Řádka 32 žlutých LED diod mapovaná přímo do paměti |
0x010 | SPILED_REG_LED_RGB1_o | 23 .. 0 | Zápis RGB hodnot do PWM registrů pro RGB LED 1 |
23 .. 16 | Červená složka R | ||
15 .. 8 | Zelená složka G | ||
7 .. 0 | Modrá složka B | ||
0x014 | SPILED_REG_LED_RGB2_o | 23 .. 0 | Zápis RGB hodnot do PWM registrů pro RGB LED 2 |
23 .. 16 | Červená složka R | ||
15 .. 8 | Zelená složka G | ||
7 .. 0 | Modrá složka B | ||
0x018 | SPILED_REG_LED_KBDWR_DIRECT_o | 31 .. 0 | Přímý zápis do LED a výstupu/scanu klávesnice |
2 .. 0 | Přímý výstup (or) na R, G a B diody RGB LED 1 | ||
5 .. 3 | Přímý výstup (or) na R, G a B diody RGB LED 2 | ||
6 | Samostatná stavová LED dioda | ||
7 | Samostatná stavová LED dioda | ||
11 .. 8 | Výběr řady klávesnice | ||
0x020 | SPILED_REG_KBDRD_KNOBS_DIRECT_o | 31 .. 0 | Zpětná odezva klávesnice a otočných voličů |
3 .. 0 | Zpětná odezva klávesnice | ||
16 | Nefiltrovaný stav kanálu A modrého voliče B | ||
17 | Nefiltrovaný stav kanálu B modrého voliče B | ||
18 | Nefiltrovaný stav tlačítka modrého voliče B | ||
19 | Nefiltrovaný stav kanálu A zeleného voliče G | ||
20 | Nefiltrovaný stav kanálu B zeleného voliče G | ||
21 | Nefiltrovaný stav tlačítka zeleného voliče G | ||
22 | Nefiltrovaný stav kanálu A červeného voliče R | ||
23 | Nefiltrovaný stav kanálu B červeného voliče R | ||
24 | Nefiltrovaný stav tlačítka červeného voliče R | ||
0x024 | SPILED_REG_KNOBS_8BIT_o | 31 .. 0 | Filtrované hodnoty voličů jako 8 bit čísla |
7 .. 0 | Relativní natočení modrého voliče B | ||
15 .. 8 | Relativní natočení zeleného voliče G | ||
23 .. 16 | Relativní natočení červeného voliče R | ||
24 | Filtrovaná hodnota tlačítka modrého voliče B | ||
25 | Filtrovaná hodnota tlačítka zeleného voliče G | ||
26 | Filtrovaná hodnota tlačítka červeného voliče R |
Další informace pro zájemce o vlastní návrh periferie pro integrovaný procesor v hradlovém poli
Implementace periferie se nachází v adresáři /system/ip/spi_leds_and_enc_1.0/hdl. Protože se v případě LED diod a otočných voličů jedná o pomalé periferie a množství pinů využitelných pro zajímavější a rychlejší rozhraní jako jsou kamery je velké, tak jsou pro přenesení vstupně výstupních signálů z a do pomalých periferií využité sériově (SPI sběrnice) připojené GPIO expandery. Přenášená je v obou směrech posloupnost 48 bitů. O přenos se stará instance spi_leds_and_enc_v1_0_spi_fsm_inst komponenty spi_leds_and_enc_v1_0_spi_fsm. O realizaci sady registrů připojených k CPU sběrnicí AXI se pak stará komponenta spi_leds_and_enc_v1_0_S00_AXI. V odkazované části na konci zdrojového kódu je zřetelně vidět, jak jsou jednotlivé logické signály a jejich skupiny mapované do bitů a bitových polí v jednotlivých registrech AXI periferie.
Sada registrů začíná na fyzické adrese PARLCD_REG_BASE_PHYS
Ofset registru | Symbolické označení | Bity | Popis |
---|---|---|---|
0x000 | PARLCD_REG_CR_o | 31 .. 0 | Řídicí registr periferie |
1 | Generování signálu reset pro display | ||
0x008 | PARLCD_REG_CMD_o | 7 .. 0 | Generování řídicího cyklu/zápis příkazu do řadiče LCD |
0x00C | PARLCD_REG_DATA_o | 15 .. 0 | Generování datového 16-bit cyklu/zápis příkazu do řadiče LCD |
0x00C | PARLCD_REG_DATA_o | 31 .. 0 | Generování dvou datových cyklů pro řadič (15 .. 0) a (31 .. 16) |
Implementace periferie se nachází v adresáři /system/ip/display_16bit_cmd_data_bus_1.0/hdl.
Sada registrů začíná na fyzické adrese SERVOPS2_REG_BASE_PHYS
Ofset registru | Symbolické označení | Bity | Popis |
---|---|---|---|
0x000 | SERVOPS2_REG_CR_o | 31 .. 0 | Řídicí registr periferie a přímé ovládání |
0 | Nastavení klidové hodnoty (H/L) pro LED/SERVO1 | ||
1 | Nastavení klidové hodnoty (H/L) pro LED/SERVO2 | ||
2 | Nastavení klidové hodnoty (H/L) pro LED/SERVO3 | ||
překrývá se s PS2 Clock | |||
3 | Nastavení klidové hodnoty (H/L) pro LED/SERVO4 | ||
překrývá se s PS2 Data, defaultně třetí stav | |||
8 | řízení směru signálu SERVO4/PS DATA, 0 .. in, 1 .. out | ||
0x00C | SERVOPS2_REG_PWMPER_o | 23 .. 0 | Perioda PWM cyklu v kroku 10 ns |
0x010 | SERVOPS2_REG_PWM1_o | 23 .. 0 | Plnění PWM signálu SERVO1 v kroku 10 |
0x014 | SERVOPS2_REG_PWM2_o | 23 .. 0 | Plnění PWM signálu SERVO2 v kroku 10 |
0x018 | SERVOPS2_REG_PWM3_o | 23 .. 0 | Plnění PWM signálu SERVO3 v kroku 10 |
0x01C | SERVOPS2_REG_PWM4_o | 23 .. 0 | Plnění PWM signálu SERVO4 v kroku 10 |
Implementace periferie se nachází v adresáři /system/ip/servo_led_ps2_1.0/hdl.
Sada registrů začíná na fyzické adrese AUDIOPWM_REG_BASE_PHYS
Ofset registru | Symbolické označení | Bity | Popis |
---|---|---|---|
0x000 | AUDIOPWM_REG_CR_o | 31 .. 0 | Řídicí registr periferie |
0x008 | AUDIOPWM_REG_PWMPER_o | 23 .. 0 | Perioda PWM cyklu v kroku 10 ns |
0x00C | AUDIOPWM_REG_PWM_o | 23 .. 0 | Plnění PWM signálu v kroku 10 |
Implementace periferie se nachází v adresáři /system/ip/audio_single_pwm_1.0/hdl.
Tlačítko je přivedené na pin PS_MIO51_501 SoC Zynq. V jádru Linux je pro MIO nastaven offset 906.
Pro přístup k uživatelskému tlačítku je tedy potřeba přistupovat k GPIO pinu 957 (= 906 + 51).
echo 957 > /sys/class/gpio/export cat /sys/class/gpio/gpio957/value
LED je přivedená na pin PS_MIO47_501 SoC Zynq. V jádru Linux je pro MIO nastaven offset 906.
Pro přístup k uživatelské LED je tedy potřeba přistupovat k GPIO pinu 953.
echo 953 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio953/direction echo 1 > /sys/class/gpio/gpio953/value