http://sp.utia.cz
Technická zpráva
Řadiče periferií pro vývojovou desku Spartan3E Starter Kit Jaroslav Stejskal, Jiří Svozil, Leoš Kafka, Jiří Kadlec
[email protected]
Obsah 1. Úvod................................................................................................................ 2 2. Popis modulů .................................................................................................. 2 2.1 LCD............................................................................................................... 2 2.2 PWM ............................................................................................................. 3 2.3 ADC .............................................................................................................. 4 2.4 DAC .............................................................................................................. 4 2.5 FREQ_CNT................................................................................................... 5 2.6 FREQ_GEN .................................................................................................. 5 2.7 NOR_FLASH................................................................................................. 6 2.8 SPI_FLASH................................................................................................... 6 3. Použité/Potřebné vybavení a nástroje ............................................................. 7 4. Obsah a popis přiloženého balíku ................................................................... 7 5. Reference........................................................................................................ 8
Revize Revize 0 1 2
Datum 8.12.2008
Autor L.K.
Popis změn v dokumentu Vytvoření dokumentu
© 2007 ÚTIA AV ČR, v.v.i. All disclosure and/or reproduction rights reserved.
1. Úvod Tato zpráva popisuje sadu modulů pro ovládání periferií na vývojové desce Spartan3E Starter Kit (S3ESK) [1]. Moduly umožňují ovládání těchto periferií na vyšší úrovni i bez znalostí konkrétního hardware, čímž usnadňují použití těchto periferií v aplikacích na FPGA a urychlují vývoj těchto aplikací. Vývoj modulů byl inspirován příklady [2] pro vývojovou desku S3ESK.
2. Popis modulů Sada zahrnuje celkem osm modulů. Označení a popis modulů je v tabulce Tabulka 1. Všechny moduly jsou založeny na konfigurovatelném wrapperu 8-bitového procesoru Xilinx PicoBlaze [3]. Popis tohoto wrapperu, označovaného jako Universal/UTIA PicoBlaze Wrapper (UPB), je v [4]. Tabulka 1 - seznam modulů Označení
Popis
LCD
Modul pro řízení znakového LCD displeje s řadičem HD44780
PWM
Modul osmi-kanálové PWM
ADC
Řadič dvoukanálového A/D převodníku LTC1407A-1 a programovatelného zesilovače LTC6912-1
DAC
Řadič čtyřkanálového D/A převodníku LTC2624
FREQ_CNT
Modul čítače frekvence 10Hz - 200MHz
FREQ_GEN
Modul generátoru frekvence 20kHz - 25MHz
NOR_FLASH
Modul řadiče paměti 128Mbit Intel StrataFlash parallel NOR Flash PROM
SPI_FLASH
Modul řadiče paměti M25P16 SPI Serial Flash
2.1 LCD Modul LCD slouží k ovládání znakového LCD displeje s řadičem HD44780. Uživatelské rozhranní představuje paměť RAM. Data zapsaná do této paměti se zobrazí na LCD displeji. Blokové schéma znázorňuje Obrázek 8. Wrapper UPB je nakonfigurován tak, že obsahuje vstupní paměť RAM o velikosti 32x8 bitů a výstupní 8-bitový registr pro řízení displeje. LCD CORE UPB ram_addr ram_din
RAM 32x8b
ram_addr
reg_dout
ram_dout
IO decoder reg_wen
ram_wen
lcd_data lcd_e lcd_rs lcd_rw
ram_dout
clk en
PicoBlaze processor
Program ROM
Obrázek 1 Blokové schéma modulu LCD řadiče
http://sp.utia.cz
2/8 © 2007 ÚTIA AV ČR, v.v.i. All disclosure and/or reproduction rights reserved
2.2 PWM Modul PWM představuje řadič osmi-kanálové PWM. Uživatelský interface představuje 8 registrů, z nichž každý obsahuje hodnotu pro jeden kanál PWM, a jeden registr pro povolení zápisu do těchto 8 registrů. Blokové schéma je na obrázku Obrázek 2. Kromě wrapperu UPB byl v tomto případě použit čítač.
Obrázek 2 Blokové schéma modulu PWM
http://sp.utia.cz
3/8 © 2007 ÚTIA AV ČR, v.v.i. All disclosure and/or reproduction rights reserved
2.3 ADC Modul ADC je řadič dvoukanálového A/D převodníku a programovatelného zesilovače s rozhraním SPI. Uživatelský interface představují čtyři řídící signály a jedna výstupní paměť FIFO, do které jsou zapisována data přečtená z A/D převodníku. Blokové schéma znázorňuje Obrázek 3. Wrapper UPB je nakonfigurován tak, že obsahuje několik registrů pro uživatelský interface a pro komunikaci s převodníkem a jednu výstupní FIFO pro data.
Obrázek 3 Blokové schéma modulu A/D řadiče
2.4 DAC Modul DAC představuje univerzální řadiče D/A převodníku s rozhraním SPI. Uživatelský interface představují tři řídící signály a vstupní paměť FIFO, do které se zapisují data pro D/A převodník. Blokové schéma je na obrázku Obrázek 4. DA CORE UPB spi_sdo spi_ready
processor PicoBlaze
spi_clk spi_sdi spi_dac_cs spi_dac_clr
set_one set_cont
IO decoder
da_busy
channel_en
fifo_din
spi_request
FIFO 16x8b
fifo_empty fifo_full
fifo_wr clk en
Obrázek 4 Blokové schéma modulu D/A převodníku
http://sp.utia.cz
4/8 © 2007 ÚTIA AV ČR, v.v.i. All disclosure and/or reproduction rights reserved
2.5 FREQ_CNT Modul FREQ_CNT představuje HW modul univerzálního čítače frekvence. Modul umožňuje přesné měření frekvencí v rozsahu 10Hz až 200MHz s možností průměrování. Uživatelský interface představuje vstupní signál měřeného kmitočtu freq_for_meas, vstupní registr pro počet průměrkovaných vzorků a výstupní registr obsahující naměřenou frekvenci. Blokové schéma modulu je na obrázku Obrázek 5. Kromě wrapperu UPB obsahuje modul ještě čítač pro přesné generování časové základny a čítač pro měření periody vstupního signálu.
Obrázek 5 Blokové schéma modulu čítače frekvence
2.6 FREQ_GEN Modul FREQ_GEN představuje univerzální generátor frekvence. Modul generátoru umožňuje dělení vstupní uživatelské frekvence danou hodnotou. Výstupní frekvence je dána vztahem
clk _ out =
clk _ in , kde user_D je v rozsahu od 2 do 255. user _ D
Blokové schéma modulu znázorňuje Obrázek 8.
FG CORE clk_in user_D
control
D C M
clk_out
clk_50MHz en
UPB
clk_out_ready
Obrázek 6 Blokové schéma modulu generátoru frekvence
http://sp.utia.cz
5/8 © 2007 ÚTIA AV ČR, v.v.i. All disclosure and/or reproduction rights reserved
2.7 NOR_FLASH Modul NOR_FLASH představuje řadič paměti 128Mbit Intel StrataFlash parallel NOR Flash PROM. K ovládání modulu a jako datový vstup slouží vstupní paměť FIFO o volitelné délce. Jako datový výstup slouží výstupní FIFO, jejíž délka je také volitelná. Blokové schéma modulu znázorňuje Obrázek 8. NOR FLASH CORE UPB clk en
strataflash_oe strataflash_ce strataflash_we strataflash_byte
NOR Flash
strataflash_a [23:0] strataflash_sts
strataflash_d [7:0] fifo_in_empty fifo_in_full
fifo_in_din fifo_in_wr
FIFO in
FIFO out
fifo_out_rd
fifo_out_dout fifo_out_empty fifo_out_full
Obrázek 7 Blokové schéma modulu řadiče paměti NOR Flash
2.8 SPI_FLASH Modul SPI_FLASH představuje univerzální řadič paměti SPI Serial Flash. Uživatelský interface je shodný s modulem NOR_FLASH. K ovládání modulu a jako datový vstup slouží vstupní paměť FIFO o volitelné délce. Jako datový výstup slouží výstupní FIFO. Blokové schéma modulu znázorňuje Obrázek 8.
Obrázek 8 Blokové schéma modulu řadiče paměti SPI Flash
http://sp.utia.cz
6/8 © 2007 ÚTIA AV ČR, v.v.i. All disclosure and/or reproduction rights reserved
3. Použité/Potřebné vybavení a nástroje Moduly byly napsán v programovacím jazyce VHDL. Pro implementaci bylo použito vývojové prostředí Xilinx ISE (WebPack) verze 9.2.04i. Program procesoru PicoBlaze byl napsán v assembleru a k překladu byl použit assembler KCPSM3.exe, který je součástí balíčku procesoru PicoBlaze [3]. Testovací příklad byl vytvořen na vývojovém kitu Xilinx Spartan3E Starter kit (S3ESK) [1].
4. Obsah a popis přiloženého balíku Moduly jsou na CD umístěny v samostatných adresářích, jméno adresáře odpovídá označení modulu. V těchto adresářích jsou NGC netlisty, příklad pro vývojovou desku S3ESK a uživatelská dokumentace k modulu. CDROM/ appnote_s3esk_peripherals.pdf Tento dokument LCD PWM ADC DAC FREQ_CNT FREQ_GEN NOR_FLASH SPI_FLASH
Modul pro řízení znakového LCD displeje s řadičem HD44780 Modul osmi-kanálové PWM Řadič dvoukanálového A/D převodníku LTC1407A-1 a programovatelného zesilovače LTC6912-1 Řadič čtyřkanálového D/A převodníku LTC2624 Modul čítače frekvence 10Hz - 200MHz Modul generátoru frekvence 20kHz - 25MHz Modul řadiče paměti 128Mbit (16MByte) Intel StrataFlash parallel NOR Flash PROM Modul řadiče paměti M25P16 SPI Serial Flash
http://sp.utia.cz
7/8 © 2007 ÚTIA AV ČR, v.v.i. All disclosure and/or reproduction rights reserved
5. Reference [1] Xilinx Spartan3E Starter Kit, http://www.xilinx.com/products/devkits/HW-SPAR3E-SK-US-G.htm [2] Spartan-3E FPGA Starter Kit Board Design Examples, http://www.xilinx.com/products/boards/s3estarter/reference_designs.htm [3] Procesor PicoBlaze, http://www.xilinx.com/picoblaze, Xilinx [4] J. Stejskal, J. Svozil, L. Kafka, J. Kadlec, UPB – UTIA PicoBlaze Wrapper. Praha : ÚTIA AV ČR, 2008.
http://sp.utia.cz
8/8 © 2007 ÚTIA AV ČR, v.v.i. All disclosure and/or reproduction rights reserved