Table of Contents

Přípravek MicroZed APO

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.

Popis hardware použité procesorové desky MicroZed

Rozhraní přístupná přímo na desce MicroZed

tlačítko a reset tlačítko

Popis rozhraní vývojového kitu MZ_APO

Na výukovém modulu jsou vyvedené v logickém návrhu obsloužené následující periferie

Tabulka bázových adres jednotlivých periferií

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)

Blok otočných voličů, maticové klávesnice a RGB LED

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.

Paralelní LCD display

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.

Výstupu na modelářská serva nebo pro PS2 klávesnici/myš

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.

PWM audio výstup

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.

Další periferie

Uživatelské tlačítko na procesorovém modulu

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

Uživatelská LED na procesorovém modulu

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

Odkazy