MicroSD 啟動
當(dāng)使用者將 MicroSD 插入到 J4 的 SD 卡槽,并設(shè)定好 JP5 的跳線的話,我們可以透過 MicroSD 來進(jìn)行開機的動作。
若你希望透過 MicroSD 進(jìn)行開機,你需要先設(shè)定好你的 SD 卡:
1. 透過計算機格式化 MicroSD 卡成 FAT32 文件格式
2. 復(fù)制從 Xilinx SDK 制作出來的 Zynq Boot Image 到 MicroSD 卡上
3. 將 Zynq Boot Image 命名為 BOOT.bin
4. 將 MicroSD 卡從計算機移除,并插入到 Zybo Board 的 J4 SD 卡槽上
5. 接上電源,并設(shè)定好 JP7 (Power Source Select)
6. 將 JP5 的跳線 (Jumper) 調(diào)整到 MicroSD 模式 (板上標(biāo)示為 SD 的那個)
7. 啟動電源。接下來 Zybo Board 就會從 MicroSD 卡啟動。
QSPI 啟動
在 Zybo board 上有一顆 128-Mbit Quad-SPI (QSPI) 的 NOR Flash,我們可以透過 Xilinx ISE 和 Vivado 等工具去將 Zynq Boot Image 下載到 QSPI Flash 上。
當(dāng)下載完成后,照這樣的步驟即可透過 QSPI 啟動:
1. 接上電源,并設(shè)定好 JP7 (Power Source Select)
2. 將 JP5 的跳線 (Jumper) 調(diào)整到 QSPI 模式 (板上標(biāo)示為 QSPI 的那個)
3. 啟動電源。接下來 Zybo Board 就會從 QSPI 卡啟動。
JTAG 啟動
當(dāng)你將 JP5 設(shè)定為 JTAG 啟動模式,Zynq 內(nèi)的 Cortex-A9 處理器會等到計算機端的 Xilinx 工具加載了要執(zhí)行的程序之后,再執(zhí)行預(yù)執(zhí)行的程序,或是啟用一步一步(step-by-step)的執(zhí)行模式來方便我們除錯。
除此之外,我們也可以透過 iMPACT 或是 Vivado Hardware Server 透過 JTAG 來設(shè)定可程序邏輯區(qū)塊 (Programmable Logic, PL)。
Zybo Board 默認(rèn)是開機啟動 Cascaded JTAG 模式,在這種模式下 處理器系統(tǒng) (Processing System, PS) 和 可程序邏輯區(qū)塊 (Programmable Logic, PL) 可以透過同一個 JTAG 去進(jìn)行控制。如果你將 JP6 短路,則可以讓 JTAG 僅看得到 可程序邏輯區(qū)塊 (Programmable Logic, PL),在這種狀況下,使用者可以透過 EMIO (Extended multiplexed I/O) 將 PJTAG 拉出,讓外部的設(shè)備可以和 處理器系統(tǒng) (Processing System, PS) 進(jìn)行溝通。
SPI Flash
Zybo Board 內(nèi)建了 4-bit SPI (QSPI) NOR Flash,硬件型號為 Spansion S25FL128S。
假設(shè) JP5 設(shè)定為 NOR Flash 開機,則我們可以透過這顆 NOR Flash 來初始化處理器系統(tǒng)(Processing System, PS)以及可程序邏輯區(qū)塊(Programmable Logic, PL)。除此之外,當(dāng)開機完成后,我們可以使用 Spansion 文件系統(tǒng)(Spansion Flash File System, FFS) 來對檔案進(jìn)行讀寫的處理。
?
從電路圖我們可以看到 SPI Flash 是直接連到 Zynq 處理器上的 Quad-I/O SPI interface。
DDR 內(nèi)存
Zybo Board 使用的是 Micron MT41J128M16JT-125 或是 MT41K128M16JT-125 這兩種 DDR3 內(nèi)存組件,在 Zybo Board 上我們共有 512MB 的內(nèi)存空間可以使用。
根據(jù) Zynq-7000 All Programmable SoC Technical Reference Manual,DDR3 內(nèi)存是直接連接到處理器系統(tǒng) (Processing System, PS)。
USB UART 接口
Zybo Board 并未將 UART 串行端口拉出,取而代之的它采用了 FTDI FT2232HQ 這款 USB 轉(zhuǎn) UART 的 IC 讓你的計算機可以和 Zybo Board 進(jìn)行溝通。
?
如果你是 Linux 使用者,在安裝完 Vivado 后,你會需要手動安裝 udev 設(shè)定好讓 Linux 可以偵測到這個 USB 轉(zhuǎn) UART 設(shè)備(共兩組,/dev/ttyUSB0, /dev/ttyUSB1),假設(shè)你的 vivado 安裝在 /opt/Xilinx/Vivado/2016.1的話,我們可以透過以下程序來安裝 udev 設(shè)定。
?
MicroSD 插槽
在 Zybo Board 的背面,我們可以看到 Micro SD 插槽(J4),根據(jù) Zynq-7000 All Programmable SoC Technical Reference Manual ,Zynq 的 SDIO 控制器僅支持 1-bit 或是 4-bit 傳輸模式 (Host Modes),不支持 SPI 模式。
?
而 Micro SD 使用到的 MIO (Multiplexed I/O) 信息如下:
?
USB OTG
Zybo Board 提供了一組 USB OTG 支持,在這個界面中使用了 Microchip 的 USB3320 這顆 IC 來作為端口物理層 (Port Physical Layer, PHY),要注意到的是,你不可以 同時 將 USB 主機 (HOST) 以及 USB 設(shè)備 (Device) 接到 USB OTG 端口上。
(也就是不要同時接上設(shè)備到 J9 以及 J10)
?
而在 USB OTG 的功能上,我們則是用掉了 MIO 28 ~ 39 的位置。
另外,由于 USB 2.0 的規(guī)格是 USB 主機最多可以提供 500mA 的電流,當(dāng)你設(shè)定為 USB 主機的模式時,在 J11的電源端 必須 改用外接電源或是電池輸入,避免電流不夠的情況發(fā)生。
Ethernet PHY
Zybo Board 使用 Realtek RTL8211E-VL PHY 來實現(xiàn) 10/100/1000 網(wǎng)絡(luò)傳輸?shù)墓δ?。具體使用到的 MIO 以及 EMIO 接腳信息如下:
?
我們可以透過在 RJ45 附近的 LED 來觀察流量 (LD7) 以及聯(lián)機狀態(tài) (LD6) 的信息
?
網(wǎng)卡的 MAC 地址則是存放在 Micrichip 24AA02E48 這顆 EEPROM 上面,Zynq 處理器透過 EMIO 上的 I?C 接口來和 EEPROM 進(jìn)行溝通。
?
HDMI Source/Sink
Zybo Board 的 HDMI 接口并未透過外部 IC 去驅(qū)動,因此我們必須透過可程序邏輯(Programmable Logic, PL) 去實現(xiàn)影片編碼 (Encoding)與譯碼(Decoding)的功能。
?
由于 Zybo Board 的 HDMI 接口支持 HDMI 來源裝置(HDMI Source) 以及 HDMI 目標(biāo)裝置 (HDMI Sink) 的功能,我們也須注意訊號的方向變化。
?
根據(jù) ZYBO FPGA Board Reference Manual 可知 Zyboard Board 的 HDMI 至少支持到 720p (1280x720) 的分辨率。
VGA
Zybo Board 的 VGA 輸出也是沒有透過外部 IC 將數(shù)字訊號轉(zhuǎn)換為模擬訊號,取而代之的,它采用了 R–2R resistor ladder 這種分壓的方式將數(shù)字訊號變成了 VGA 用的模擬訊號。
?
頻率源 (Clock Sources)
ZYBO board 提供了 50MHZ 的頻率到 Zynq 處理器的 PS_CLK 接腳,基本連接信息如下:
?
要注意到的一點是,由于 Ethernet PHY 會接收 50HMZ 頻率輸入,并輸出 125HMZ 到 Zyna 處理器上,當(dāng) Ethernet PHY 重置(reset)的時候,CLK125 的輸出會被取消。
基本輸入/輸出 (I/O)
Zybo board 板上有一些預(yù)先定義好的 IO, 比如指撥開關(guān) (Switch)、LED 燈、無段按鈕等。
?
聲音 (Audio)
Zybo Board 上有三組聲音相關(guān)的 IO,分別是耳機孔輸出(Headphone Out)、麥克風(fēng)輸入(Microphone In)、音源轉(zhuǎn)錄功能(Line In),這些 IO 會連接到 Ananlog Device 的 SSM2603 音頻譯碼器上。
?
SSM2603 則是透過 I?C 接口來將數(shù)據(jù)傳送給 Zynq 處理器去。
?
Pmod 接腳
在 Zybo Board 的周遭,共有 6 個 2x6 母排座,用來將多余的 GPIO 拉出。每個 Pmod 提供了兩個 3.3 VCC 電源、兩個 GND 訊號以及 8 個 IO 可以用。在 Pmod 上的 VCC 以及 GND 最多可以提供到 1A 的電流(但要記得外接電源)。
不同的 Pmod 用途則可能不同,詳情請參見下表:
?
延伸閱讀
[1]?ZYBO FPGA Board Reference Manual
[2]?The Principles of FPGAs | FPGAs content from Electronic Design
[3]?Zynq-7000 All Programmable SoC Technical Reference Manual
[4]?Xilinx - Zynq Architecture
評論