Smart ZYNQ (SP 版) 资料汇总

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

首先感谢各位的关注和支持,有任何问题可以直接在本站留言,或者在淘宝搜索店铺:杭海电子科技 。

另外备注 本页是 SP 版本的 资料,如果是Smart ZYNQ 标准版 或者SP2版 SL版 的主板 请看对应的内容 (SP2 和SP版的区别在于 屏幕不同SP2是1.3寸240×240屏,SP是1.47寸172*320屏,其他完全一致)

Smart ZYNQ SP 主板资源

  • 主芯片:ZYNQ XC7Z020-CLG484
  • 主板层数:8层(沉金工艺)
  • DDR内存 : 256M x 16bit (512MB)
  • FLASH : 128Mbits (16MB)(接PS端用于系统启动)
  • EEPROM: 24C02 2kbits
  • TF插槽:microSD 插槽 (TF卡插槽,可用于系统启动)
  • 时钟 : PS端:33.33M有源晶振 , PL端:50M有源晶振
  • 网络: 一路千兆以太网RTL8211E (接PL端,PS也可使用)
  • HDMI: 一路HDMI 接口(IO模拟)
  • JTAG: 板子集成了 xilinx jtag 下载器部分功能(板载)
  • USB: 板子自带USB2.0 PHY,可作USB HOST,或USB SLAVE
  • 串口: 带一路USB-UART(连接至PL端,PS端也可使用
  • 按键: 2个按键(PL端) + 1个POR硬件复位按键
  • LED: 2个可编程LED(PL端 )+Done 指示LED + 电源指示LED
  • LCD: SP2主板带一个1.47寸的 SPI LCD屏 320×172(接PL端,PS也可使用)
  • 拨码开关:双路拨码开关(负责启动方式选择)
  • 逻辑IO: 总共引出68个FPGA_IO,所有引出的管脚均以差分线方式两两引出(差分线内等长)(全都由PL端引出,PS可通过EMIO方式映射)
  • 引出的GPIO中 其中一边的bank电压单独可调(通过调整一个0805封装电阻)
  • 电源:主板可以通过TYPE C口(JTAG或 USB SLAVE)进行供电,或者用转接板通过排针给主板的VCC脚供上5V电源

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

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

尺寸图

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

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

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

注意事项

  1. 关于BANK33的电压, BANK 33电压可以通过调整背面两颗0805大小的电阻(板子上丝印标注为RA RB)来实现电压的调整(出厂默认是3.3V)
  2. Smart ZYNQ SP2板子上的USB SLAVE 和 USB HOST 是共用ZYNQ的USB资源的,所以同一时间只能使用一种功能(USB HOST 和USB SLAVE 不可同时外接设备,另当USB 功能作为HOST使用时如需要用USB SLAVE口为板子进行供电请接USB适配器而不是接电脑)。
  3. 板子上的两个TYPE C接口都可为板子进行供电,板子排针上的VCC口也可以外接5V 为板子进行供电,USB和排针外接供电互不冲突(USB有二极管作电源防倒流保护),另外备注:部分台式机前面的USB口线损较大,如用台式机的USB供电出现不稳定的情况,请尝试连接台式机背后的USB口。
  4. 部分笔记本和电脑的USB口输出电流限制在5V 500ma,这对于主板的运行已经足够了, 但如果主板需要外接模块,或者USB口外接功率较大的USB设备导致工作不稳定时,可以通过排针或者外接转接板单独为板子提供5V电源(排针的VCC脚)。另外外接USB设备或者模块时,建议先在断电情况下接好设备或模块,再对主板进行上电。
  5. 排针上的VCC口可作为电源输入,也可作为电源输出。作为输入时:可外接5V电源(即通过转接板,或者底板为板子供电,如用杜邦线供电效果会差一些)。作为输出时:(没有外接5V电源,仅通过USB供电时)可以输出4.5-4.7V的电压(即主板为转接板供电)。
  6. 板子上的 POR RST 是整个硬件的复位按钮 (优先级高于任何程序,只要此按键按下整个系统将根据BOOT启动方式重新启动)。

随板预下载的演示程序介绍 (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)

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

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

关于主板

基于Smart ZYNQ (SP SP2 SL) 的FPGA实验

基于Smart ZYNQ (SP SP2 SL) 的PS实验

十月之后开始对原先的基础工程进行再次整理,上述是整理后的工程,原先未整理的工程在下方:

Smart ZYNQ(SP版) 工程二十六 用zynq的PS的硬件SPI资源驱动彩色LCD (SL版不带此功能)

下面是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)

发表回复

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