芯路恒电子技术论坛

 找回密码
 立即注册
热搜: 合集
查看: 3845|回复: 3

基于Zynq的裸机系统设计小练习

[复制链接]
  • TA的每日心情
    慵懒
    2021-2-24 10:16
  • 425

    主题

    785

    帖子

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    15869
    QQ
    发表于 2021-11-26 22:02:42 | 显示全部楼层 |阅读模式

    基于ACZ702设计一个综合的应用系统

    目标

    通过该系统掌握各种常用外设的使用方法,并构建出一套实用的软件应用库。

    硬件平台

    1. 1、ACZ702 Zynq开发板
    2. 2、EDA扩展板-V3

    基本功能

    1. 1、使用PS的SPI通过EMIO导出后驱动数码管 2、使用PL的SPI驱动ADC 3、使用PIO读取拨码开关的值 4、将采集的数据存储到SD卡,使用文件系统 5、使用按键控制数码管上显示的内容,按键的检测使用中断 6、使用自定义IP核实现DDS功能 7、使用数码管显示时间 8、支持电压表功能 9、支持连续采集功能 10、使用串口接收指令 11、使用串口发送数据到电脑
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2021-2-24 10:16
  • 425

    主题

    785

    帖子

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    15869
    QQ
     楼主| 发表于 2021-11-26 22:16:36 | 显示全部楼层

    外设功能定义

    我是二楼

    ❤️

    外设功能定义

    既然已经知道了需求,下一步就是在Vivado中去创建工程,创建PL+PS的块设计文件(Block Design)了。添加完Zynq Processing System之后,看着绿绿的Zynq页面,我就开始疑问,我需要添加哪些外设,第一个疑问,我要添加的外设功能,根据一楼的任务计划,可以明确是需要添加:

    功能 外设控制器 位置 备注
    数码管 SPI PS 配合定时器实现定时刷新
    ADC SPI PL 可以选择切换使用高速连续控制器(Verilog驱动)和SPI通用控制器
    拨码开关 IO PL 都行,节约EMIO吧
    按键 IO PS 用到中断,使用EMIO方便一些
    SD卡 SDIO PS 这个控制器比较复杂,用PS自带的要方便省事很多,PL实现代价比较大
    DAC 自定义IP PL DDS 需要使用PL逻辑实现
    调试串口 UART PS PS侧串口实现调试信息打印
    数据串口 UART PL PL侧串口比较灵活,一般不会与调试串口的硬件绑定,可以随意 ,远端可以是电脑,也可以是各种MCU或应用处理器

    外设编号确定

    当确定了各个功能使用PS或PL中的哪个控制器后,下一步就是确定硬件映射,例如对于PS侧的串口,PS侧总共有2个串口,这两个串口又能够分别映射到多组MIO,这个时候,选择哪个串口,以及选择哪组MIO,就需要根据硬件板卡来确定了,因为对于一个确定的硬件板卡,各个功能所对应的IO就都已经是限定好了。需要按照硬件电路的设计去对应选择控制器和对应的MIO。

    我们目前提供的Zynq全功能教学平台型号为ACZ702,在该开发板上,UART1使用MIO48和MIO49这两个IO,通过CP2104型USB转串口芯片,实现调试串口的功能,所以PS侧的串口只能使用UART1,对应IO为MIO48和MIO49,具体的对应关系我是从“Zynq SoC 嵌入式设计和开发教程的硬件介绍部分查到的。

    以下为本案例中各个外设控制器的进一步使用情况。

    功能 外设控制器 位置 控制器编号 管脚 备注
    数码管 SPI PS SPI0 EMIO 配合定时器实现定时刷新
    ADC SPI PL 可以选择切换使用高速连续控制器(Verilog驱动)和SPI通用控制器
    拨码开关 IO PL 都行,节约EMIO吧
    按键 IO PS EMIO 用到中断,使用EMIO方便一些
    SD卡 SDIO PS SD0 MIO40-45 这个控制器比较复杂,用PS自带的要方便省事很多,PL实现代价比较大
    DAC 自定义IP PL DDS 需要使用PL逻辑实现
    调试串口 UART PS UART1 MIO48-49 PS侧串口实现调试信息打印
    数据串口 UART PL PL侧串口比较灵活,一般不会与调试串口的硬件绑定,可以随意 ,远端可以是电脑,也可以是各种MCU或应用处理器
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2021-2-24 10:16
  • 425

    主题

    785

    帖子

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    15869
    QQ
     楼主| 发表于 2021-12-1 13:14:47 | 显示全部楼层


    1. set_property IOSTANDARD LVCMOS33 [get_ports UART_RTL_rxd]
    2. set_property IOSTANDARD LVCMOS33 [get_ports UART_RTL_txd]
    3. set_property IOSTANDARD LVCMOS33 [get_ports {ADC_SPI_ss_io[0]}]
    4. set_property IOSTANDARD LVCMOS33 [get_ports ADC_SPI_io0_io]
    5. set_property IOSTANDARD LVCMOS33 [get_ports ADC_SPI_io1_io]
    6. set_property IOSTANDARD LVCMOS33 [get_ports ADC_SPI_sck_io]
    7. set_property IOSTANDARD LVCMOS33 [get_ports HEX8_SPI_io0_io]
    8. set_property IOSTANDARD LVCMOS33 [get_ports HEX8_SPI_io1_io]
    9. set_property IOSTANDARD LVCMOS33 [get_ports HEX8_SPI_sck_io]
    10. set_property IOSTANDARD LVCMOS33 [get_ports HEX8_SPI_ss1_o]
    11. set_property IOSTANDARD LVCMOS33 [get_ports HEX8_SPI_ss2_o]
    12. set_property IOSTANDARD LVCMOS33 [get_ports HEX8_SPI_ss_io]
    13. set_property IOSTANDARD LVCMOS33 [get_ports {SW_tri_i[7]}]
    14. set_property IOSTANDARD LVCMOS33 [get_ports {SW_tri_i[6]}]
    15. set_property IOSTANDARD LVCMOS33 [get_ports {SW_tri_i[5]}]
    16. set_property IOSTANDARD LVCMOS33 [get_ports {SW_tri_i[4]}]
    17. set_property IOSTANDARD LVCMOS33 [get_ports {SW_tri_i[3]}]
    18. set_property IOSTANDARD LVCMOS33 [get_ports {SW_tri_i[2]}]
    19. set_property IOSTANDARD LVCMOS33 [get_ports {SW_tri_i[1]}]
    20. set_property IOSTANDARD LVCMOS33 [get_ports {SW_tri_i[0]}]
    21. set_property IOSTANDARD LVCMOS33 [get_ports {KEY_tri_io[3]}]
    22. set_property IOSTANDARD LVCMOS33 [get_ports {KEY_tri_io[2]}]
    23. set_property IOSTANDARD LVCMOS33 [get_ports {KEY_tri_io[1]}]
    24. set_property IOSTANDARD LVCMOS33 [get_ports {KEY_tri_io[0]}]
    25. set_property PACKAGE_PIN J16 [get_ports UART_RTL_rxd]
    26. set_property PACKAGE_PIN K16 [get_ports UART_RTL_txd]
    27. set_property PACKAGE_PIN M19 [get_ports ADC_SPI_io0_io]
    28. set_property PACKAGE_PIN M20 [get_ports ADC_SPI_io1_io]
    29. set_property PACKAGE_PIN L19 [get_ports ADC_SPI_sck_io]
    30. set_property PACKAGE_PIN M18 [get_ports {ADC_SPI_ss_io[0]}]
    31. set_property PACKAGE_PIN D20 [get_ports HEX8_SPI_io0_io]
    32. set_property PACKAGE_PIN E19 [get_ports HEX8_SPI_sck_io]
    33. set_property PACKAGE_PIN F17 [get_ports HEX8_SPI_ss1_o]
    34. set_property PACKAGE_PIN E17 [get_ports {SW_tri_i[7]}]
    35. set_property PACKAGE_PIN D18 [get_ports {SW_tri_i[6]}]
    36. set_property PACKAGE_PIN H15 [get_ports {SW_tri_i[5]}]
    37. set_property PACKAGE_PIN F16 [get_ports {SW_tri_i[4]}]
    38. set_property PACKAGE_PIN J14 [get_ports {SW_tri_i[3]}]
    39. set_property PACKAGE_PIN G14 [get_ports {SW_tri_i[2]}]
    40. set_property PACKAGE_PIN L15 [get_ports {SW_tri_i[1]}]
    41. set_property PACKAGE_PIN K14 [get_ports {SW_tri_i[0]}]
    42. set_property PACKAGE_PIN J19 [get_ports {KEY_tri_io[3]}]
    43. set_property PACKAGE_PIN J20 [get_ports {KEY_tri_io[2]}]
    44. set_property PACKAGE_PIN H16 [get_ports {KEY_tri_io[1]}]
    45. set_property PACKAGE_PIN H20 [get_ports {KEY_tri_io[0]}]

    复制代码

    管脚分配如上所述,另外由于部分IO没有使用,例如通过EMIO导出的PS的SPI0,其中SS1和SS2,以及MISO都没有使用,所以需要设置这些信号不检查管脚约束,使用下面的语句:

    1. set_property SEVERITY {Warning} [get_drc_checks NSTD-1]
    2. set_property SEVERITY {Warning} [get_drc_checks RTSTAT-1]
    3. set_property SEVERITY {Warning} [get_drc_checks UCIO-1]

    复制代码

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2021-2-24 10:16
  • 425

    主题

    785

    帖子

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    15869
    QQ
     楼主| 发表于 2021-12-2 23:32:38 | 显示全部楼层
    Zynq_Go.rar (2.28 MB, 下载次数: 146)
    工程构建完了,跑了个hello word,剩下的就是写各个驱动了。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|小黑屋|Archiver|芯路恒电子技术论坛 |鄂ICP备2021003648号

    GMT+8, 2024-5-3 02:50 , Processed in 0.154789 second(s), 37 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

    快速回复 返回顶部 返回列表