Smart ZYNQ (SP 版) 资料汇总

包含Smart Zynq (SP 版)的原理图,注意事项,以及后续更新的转接板的原理图等一些资料

首先感谢各位的关注和支持,有任何问题可以咸鱼APP中搜索用户: 超级大电工,或者taobao店铺 hellofpga

备注 本站所有的资料都是基于VIVADO2018.3版本的,如果不熟悉开发过程,版本尽量保持一致

另外备注 本页是 SP 版本的 资料,如果是Smart ZYNQ 标准版 或者 SL版 的主板 请看对应的内容

主板资料

主板型号Smart Zynq SPSmart Zynq SL 相同
主控芯片XC7Z020XC7Z020
DDR内存256M x 16bit (512MB)256M x 16bit (512MB)
FLASH128Mbits (16MB)128Mbits (16MB)
EEPROM24C02 2kbits24C02 2kbits
时钟PS端 :33.33M有源晶振
PL端 : 50M有源晶振
PS端 :33.33M有源晶振
PL端 : 50M有源晶振
板子层数8层8层
TF卡槽一路TF卡槽一路TF卡槽
网络功能千兆网络 X1
(接PL端,PS也可使用)
千兆网络 X1
(接PL端,PS也可使用)
HDMI接口带一路HDMI输出接口(IO模拟)带一路HDMI输出接口(IO模拟)
按键可编程按键(PL端) X2
RST复位按键 X1
可编程按键(PL端) X2
RST复位按键 X1
LED指示灯可编程LED 指示灯 X2
DONE指示灯 X1
电源指示灯 X1
可编程LED 指示灯 X2
DONE指示灯 X1
电源指示灯 X1
启动选项
拨码开关
带一个双路拨码开关
负责启动方式的选择
带一个双路拨码开关
负责启动方式的选择
排针引出68路 可编程GPIO(全都由PL端引出,PS可通过EMIO方式映射)
所有引出的管脚均以差分线方式两两引出(差分线内等长)
管脚间距2.54mm
68路 可编程GPIO(全都由PL端引出,PS可通过EMIO方式映射)
所有引出的管脚均以差分线方式两两引出(差分线内等长)
管脚间距2.54mm
BANK电压
是否可调
引出的GPIO中 其中一边的bank电压可调引出的GPIO中 其中一边的bank电压可调
串口自带一路串口 TYPE C接口自带一路串口 TYPE C接口
USB板子自带USB 功能,可作为USB HOST,或USB SLAVE不带USB 功能×
LCD板子自带一个1.47寸的 SPI LCD屏,接在PL测(PS也可使用)不带板载LCD功能×
JTAG
下载器
板子集成了 xilinx jtag下载器部分功能,无需额外配置不带板载下载器,需要外接下载器×
资源汇总TYPE C :JTAG + UART(供电)
TYPE C :USB SLAVE (供电)
USB A : USB HOST

LCD :1.47寸 彩色
TF :TF 卡槽 (可启动)
RJ45 :千兆以太网
HDMI : HDMI OUT
40PIN 排针 X2 (68个PL GPIO)
可编程LED X2
可编程按键 X2
POR复位按键 X1
ZYNQ 7020 芯片
512MB DDR
2Kbits EEPROM
16MB FLASH(可启动)
晶振 33.33M (PS) 50M(PL)
一路bank电压可调

TYPE C :UART(供电)
TF :TF 卡槽 (可启动)
RJ45 :千兆以太网
HDMI : HDMI OUT
40PIN 排针 X2 (68个PL GPIO)
可编程LED X2
可编程按键 X2
POR复位按键 X1
ZYNQ 7020 芯片
512MB DDR
2Kbits EEPROM
16MB FLASH(可启动)
一路bank电压可调
晶振 33.33M (PS) 50M(PL)
备注:(SL款需要额外配下载器)
×

SP 和SL 版 相同资源的程序 是可以完全兼容的,管脚和GPIO的线序也完全一致,除USB HOST ,USB SLAVE 以及 板载 LCD 等SL版没有的功能外 其余资料相通

主板原理图如下:(最新更新 2023年5月1日)

尺寸图

板子上排针的 引脚长度报告:(备注 差分线 组内都做了等长,组外没有做等长,如果设计底板过程中对等长有要求,请参考下列长度报告)

板子上所有功能IC 的数据手册:

7010 和7020的PL资源 如下图所示

注意事项

1)Smart ZYNQ SP与 SL 版 V1.0 的板子上的Uart的丝印标注是标反的,TX–>L17, RX–>M17 (大家使用的时候以原理图为准)

2)Smart ZYNQ SP板子上的USB SLAVE 和 USB HOST 是共用ZYNQ的USB资源的,所以同一时间只能使用一种功能(USB HOST 和USB SLAVE 不可同时外接设备)

3) 板子上的两个TYPE C接口都可为板子进行供电,板子排针上的VCC口也可以外接5V 为板子进行供电,USB和外接供电互不冲突(USB有二极管作电源防倒流保护)

4) 部分笔记本以及老电脑的USB口输出功率低于5V 500ma,如遇板子因供电问题导致的功能不稳定,请尝试更换数据线,或者更换USB口再尝试 ,也可以通过外接转接板单独为板子提供5V电源(排针的VCC脚)

5) 排针上的VCC口可作为电源输入,也可作为电源输出

  • 作为输入时,可外接5V电源(即通过转接板,或者底板为板子供电,如用杜邦线供电效果不好
  • 作为输出时(没有外接5V电源,仅通过USB供电时)可以输出4.5-4.7V的电压(即主板为转接板供电)

6) 板子上的 POR RST 是整个硬件的复位按钮 (优先级高于任何程序,只要此按键按下整个系统将根据BOOT启动方式重新启动)

8) 关于BANK33的电压, BANK 33电压可以通过调整背面两颗0805大小的电阻(板子上丝印标注为RA RB)来实现电压的调整(出厂默认是3.3V)

9)BANK35 因为连接了板子上的各种外设,所以BANK35电压不可调固定为3.3V

10) 如果需要画上方扩展板 请务必要注意RJ45接口的高度,预留RJ45的槽,否则上拓展板将无法插入

随板预下载的演示程序介绍 (boot模式选择 QSPI FLASH再上电)

  • HDMI输出720p的 测试彩色条纹
  • 1.4寸屏幕输出测试彩色条纹
  • UART以一秒钟为间隔发送 “hello world”
  • LED灯在上电后以流水灯的方式 来回点亮 (一旦按下KEY1 KEY2 任意按键,则流水灯停止,程序切换到对应按键方向的灯亮起)
  • USB slave 接口用数据线和电脑连接 可以看到一个ram 映射的255MB的 虚拟U盘(因为是RAM映射的,所以断电数据会丢失,请不要存放重要数据,仅供测试)

可供测试的 TF固件

(使用方法:将文件下载并解压缩,将内容复制到FAT32格式的TF卡的根目录,并插入到主板上,拨码开关设置成SD启动,并按下板子上的POR复位键盘)

1.全功能测试

  • 所有的GPIO (排针输出端)进行流水灯闪烁
  • HDMI输出720p的 测试彩色条纹
  • 1.4寸屏幕输出彩色图片
  • UART以一秒钟为间隔发送 “hello world”
  • LED灯在上电后以流水灯的方式 来回点亮 (一旦按下KEY1 KEY2 任意按键,则流水灯停止,程序切换到对应按键方向的灯亮起)
  • USB slave 接口用数据线和电脑连接 可以看到一个ram 映射的255MB的 虚拟U盘(因为是RAM映射的,所以断电数据会丢失,请不要存放重要数据,仅供测试)

2. 网络和USB HOST测试固件(linux 进入账号root 密码 root)

已整理的一些图文例程(持续更新中)

下面是linux部分的图文教程资料(持续更新中)

下面是PYNQ 部分的图文教程资料(已跑通,镜像在章节三, 还在整理测试中 2023年8月21日 )

备注 PYNQ部分仍然还在测试中,不一定完善,感兴趣的大家自行测试 2023年8月21日

Xillinux 图形化操作系统重磅来袭(资料更新中)

Xillinux 桌面操作系统演示图片

Xillinux 桌面操作系统演示图片

“Smart ZYNQ (SP 版) 资料汇总”的15个回复

    1. 是主芯片吗?ZYNQ本身功耗不低的,如果是主芯片发热,但是功能正常的话,那属于正常情况(一般逻辑复杂的话主芯片上到50-60度都是可能的),板子出厂时候带的demo也会微微发热,把包裹里送的散热片一起贴上。
      如果是其他芯片发热,或者主芯片异常发热(不能正常工作),那有可能是调试的时候某种情况造成板子烧坏了(通常这种情况会伴随各路电源短路的情况),如果你自己不能判断问题的话,就在购买的店铺联系我。或者寄回来我帮你检查

  1. 如果要用到usb口来实时传输数据,应该参考哪个例程呢?开发板上似乎并没有usb协议相关的芯片比如ft2232等,我如果要将8路数据从usb口发出到pc端,需要自行通过rtl编写数据包封包过程吗?

      1. 请问大概需要如何操作呢?将数据存到ps端的DDR中后要如何通过usb口发出呢?例程中似乎没有如何使用usb口的介绍,只有一个如何将usb slave改为模拟U盘的例程

  2. Smart ZYNQ (SP 版) OTG_USB 无法拉低
    static unsigned int mio_base = 0;
    #define MIO_BASE 0xE000A000
    #define MIO_SIZE 0x1000
    #define MIO_DIRM_1 (unsigned int *)(0x00000244 + mio_base)
    #define MIO_OEN_1 (unsigned int *)(0x00000248 + mio_base)
    #define MIO_DATA_1 (unsigned int *)(0x00000044 + mio_base)

    static unsigned int clk_base = 0;
    #define CLK_BASE 0xF8000000
    #define CLK_SIZE 0x1000
    #define APER_CLK_CTRL (unsigned int *)(0xF800012C – CLK_BASE + clk_base)

    mio_base = (unsigned int)ioremap(MIO_BASE, MIO_SIZE);
    clk_base = (unsigned int)ioremap(CLK_BASE, CLK_SIZE);

    if(mio_base && clk_base){
    *APER_CLK_CTRL |= (0x1U << 22);

    *MIO_DIRM_1 |= (0x1U << 14);
    printk("MIO_DIRM_1:%08x\r\n",*MIO_DIRM_1);
    *MIO_OEN_1 |= (0x1U << 14);
    printk("MIO_OEN_1:%08x\r\n",*MIO_OEN_1);
    *MIO_DATA_1 &= ~(0x1U << 14);
    printk("MIO_DATA_1:%08x\r\n",*MIO_DATA_1);
    }

    日志
    MIO_DIRM_1:00004000
    MIO_OEN_1:00004000
    MIO_DATA_1:003f0000

    看原理图被3.3V上拉,VIVADO MIO46 只有LVCMOS1.8V

    1. USB_RESET
      在VIVADO MIO46脚 是可以设置成LVCMOS3.3的, 默认就是3.3 不知道您那边出现什么情况只能设置成1.8
      另外我电路上 设备只能作为HOST 或者SLAVE ,而具体用哪种方式是由程序决定的。 硬件本身并不能作为OTG形式去识别电路是HOST 还是SLAVE
      您可以使用我的测试工程试试,USB的SLAVE和HOST功能是否正常,再去查询程序的问题看看

      1. USB SLVAE 的功能正常,但是USB3320 ULPI PHY需要在重启时复位一次,偶尔软重启后,会认不到PHY。

      2. 通过示波器看,测量OTG_USB始终是高电平。软重启后一直维持高电平。

        1. 你说的是哪个信号线 ,USB部分电路并没有 OTG_USB这个信号线,你是说USB 复位信号?
          USB_RESET这个信号 在VIVADO 中设置的,默认是自动完成复位操作的
          如果你那边工程一直有问题, 你也可以在VIVADO里 取消 USB_RESET 信号, 手动添加MIO46,然后在你的程序中 对MIO46进行手动复位(MI46 对应硬件上的 USB_RESET)

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注