首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
FPGA/CPLD可编程逻辑
» zedboard--Demo学习(五)
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
zedboard--Demo学习(五)
发短消息
加为好友
pengpengpang
(pengpengpang)
当前离线
UID
1023229
帖子
6106
精华
0
积分
3055
阅读权限
90
来自
中国
在线时间
156 小时
注册时间
2013-12-20
最后登录
2016-7-3
论坛元老
UID
1023229
来自
中国
1
#
打印
字体大小:
t
T
pengpengpang
发表于 2014-1-21 22:30
|
只看该作者
zedboard--Demo学习(五)
处理器
,
控制器
,
Logic
,
接口
,
通信
Zynq-7000实现了双核Cortex-A9 MPcore和最新的28nm 7系列可编程逻辑的紧密集成。Zynq芯片内部可以分为两部分PS(Processing System)和PL(Programmable Logic),其中PS部分有点像传统的处理器内部结构,包括CPU核、图形加速、浮点运算、存储控制器、各种通信接口外设以及GPIO外设,而PL部分就是传统的可编程逻辑和支持多种标准的IO,它们之间通过内部高速总线互联。这种架构既提高了系统性能(处理器和各种外设控制的”硬核“),又简化了系统的搭建(可编程的外设配置),同时提供了足够的灵活性(可编程逻辑)。
Zynq芯片的配置
因为是最新的芯片和开发套件,资料还是比较少的,而且基本都是大部头的英文。要用FPGA进行开发,首先要了解FPGA的配置过程。传统的SRAM型FPGA都是通过JTAG接口、外置非易失性存储器(PROM、FLASH)或者外部处理器一次性将程序下载到FPGA中配置。而Zynq芯片则不同,其内部集成了处理器硬核和可编程逻辑,所以它的配置启动是分阶段的。
Stage 0:bootROM过程,Zynq芯片PS部分有片上ROM和RAM,在芯片上电或者复位后,其中一个处理器会执行片上ROM的代码进行初始化,判断启动设备(boot device),将启动设备上的FSBL(first boot loader)代码拷贝到片上RAM内。
Stage 1:启动设备包括SPI FLASH、SD和JTAG,FSBL代码是用户自己定制的,拷贝到片上RAM后执行。包括初始化PS部分配置、配置PL部分逻辑、加载和执行SSBL(second boot loader)或应用程序。
Stage 2:上一阶段后硬件已经配置完成。这一阶段是可选的,完成Linux系统启动过程(U-BOOT)。
通过Zynq芯片的启动过程可以看到上电或者复位后片内处理器首先启动,然后根据MODE引脚判断启动方式,Zedboard的启动可以通过Quad-SPI FLASH、SD卡或者JTAG接口,如下表:
管脚
MIO6
MIO5
MIO4
MIO3
MIO2
跳线
JP11
JP10
JP9
JP8
JP7
JTAG Mode
Cascade JTAG
0
Independent JTAG
1
Boot Device
JTAG
0
0
0
Quad-SPI
1
0
0
SD card
1
1
0
PLL Mode
PLL used
0
PLL bypass
1
Zedboard上有两个JTAG,一个可以接Xilinx编程电缆,一个是USB转JTAG,我们使用的是usb转JTAG,在
zedboard--单独PL实验(四)
中仅仅使用了pl来完成实验,MIO【6:2】是全部接地的,使用的JTAG配置,这里的Demo有两种情况,从Quad-SPI FLASH启动和从SD卡启动。
1. 从Quad-SPI FLASH启动
板载SPI FLASH中预置了一个非常简单的程序,SPI-FLASH启动过程可以分为:
上电后,片上ROM程序执行,初始化后判断从SPI FLASH启动。
从SPI FLASH拷贝FSBL到片上RAM执行
FSBL执行,处理器从SPIFLASH读取比特流(bitstream)配置Zynq的PL部分
PL配置完成后执行,点亮LED
首先要MODE跳线选择在SPI FLASH启动模式,接通Zedboard电源,程序启动,因为是一个非常简单程序,所以启动配置过程非常快,蓝色LED(LD12)变亮说明Zynq芯片配置完成,程序执行后按照(10101010)逻辑点亮用户LED。
2. SD启动
随板附送的SD卡中有一个演示的Linux文件系统,而且在Linux系统下有一些脚本例程用来控制Zedboard板上各种外设的功能,这与之前的FPGA调试很不一样,显示了Zynq芯片软硬件开发的强大和灵活性。
首先搭好Zedboard平台,连接12V电源(J20)、USB-UART接口(J14)到计算机、插上SD卡(J12)、VGA(J19)或者HDMI(J9)。
该Linux文件系统没有图形界面或者控制台,所以必须通过串口或者ssh访问。如果没有安装过USB-UART驱动,可以先通电后安装USB串口驱动。安装好驱动后打开一个串口监视器,可以使用XP的超级终端或者其他的串口调试工具。
安装usb-uart串口驱动
zedboard使用的是Cypress的uart转usb芯片
https://secure.cypress.com/?mpn=CY7C64225-28PVXC
找到TechnicalDocuments and 下载the“Microsoft Certified USB UART Driver”不过要注册了才能下载,解压后有几个文件夹。
然后就是安装了,记住可能要安装两次就可以了,如果有人没有驱动可以给我留言,发到你邮箱。
安装成功后,打开SecureCTR,选择正确的com口,串口参数设为波特率115200、数据位8、停止位1、校验无。可以看到如下
可以输入命令了,如ls
从SD卡启动过程可以分为:
上电后,片上ROM程序执行,初始化后判断从SD卡启动。
从SD卡拷贝FSBL到片上RAM执行,FSBL配置FPGA,蓝色LED(LD12)变亮说明配置完成。
从SD读取SSBL,开始Uboot过程(启动Linux),启动过程中VGA输出了一个Demo演示图像。
串口监视程序会显示Linux启动过程(需要上电前打注意使用的命令的格式,我开始输错了两次。详细信息可以参考Zedboard 评测(一)——Demo演示开putty窗口),启动完成后,板上OLED会显示一个Digilent demo图像。
Linux系统启动后,现在可以上面做一些演示的实验以体验下Zynq芯片的应用。
1)控制GPIO
在/usr/bin目录下有一些脚本文件用来控制或读取一些外设的状态。
脚本read_sw用来读取板上8个开关的状态,在命令行输入read_sw会显示输出开关的状态值(16位进制和10进制)。
脚本write_led用来控制板载8个用户LED灯(LD0~LD7)的显示,输入write_led 后面加一个数值(可以是16位进制或者10位进制数,最大255),例如write_led 0xFF与write_led 255效果一样,都是点亮8个LED。
注意使用的命令的格式,我开始输错了两次。详细信息可以参考
Zedboard 评测(一)——Demo演示
本次学习的总结:
1:fpga配置完成后D12就是亮。
2:usb-uart驱动的安装。
3:zynq的启动引脚设置和启动过程。
4:两个Demo程序的运行。(SD卡已经有Demo了)
来源:
xzyfeixiang的专栏
收藏
分享
评分
记录学习中的点点滴滴,让每一天过的更加有意义!
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议