【声明】纯属原创,未经允许,禁止转载。
【接前文】
【问题】:目前还没有研究有个叫做EMIO的东西是什么,UART0的默认管脚配置的就是EMIO。有空再研究研究,它到底是几比特位宽。
【内存空间】
还有个问题就是看看DDR是否能够给剪裁掉。点击左侧“Page Navigator”列表中的“DDR Configuration”项目后,显示如下信息。
可以通过取消勾选“Enable DDR”项关闭DDR内存。但是目前不知道关闭DDR后,SDK编写的软件程序将会跑在什么内存空间中,本实验暂时不取消DDR,等有机会在验证对于简单的测试程序是否可以将DDR裁剪掉。
在Summary Viewer中看到的DDR的信息都是在该界面中可以配置的,配置完毕之后将会保存在xml文件中,如果没有xml文件导入,软件将会根据选择的开发板,加载一个默认配置。
【时钟】
再来看看时钟信息,点击“Clock Configuration”显示如下信息。
将来如果使用自行设计的电路板,驱动晶振就可以在Input Frequency中进行配置。其他的配置同样类似于普通ARM中的PLL配置一样,只是有了软件工具,不用自行计算各种分频寄存器、倍频寄存器的配置数 值,只需要写入目标频率,软件帮助计算了。So Easy,傻瓜式啊。
等得闲的时候在找找是哪几个寄存器吧,具体思路还是查看Summary Viewer的寄存器说明,是个力气活。
在Adcanced Clocking标签中就是纯ARM开发思维,通过配置各种寄存器来设计系统的时钟方案。
暂时还没有去找相应的技术文档,要想把时钟配置方案整透彻了,这里应该配一个类似于普通ARM芯片DataSheet中PLL一章的时钟树结构图,一个图就整明白所有配置了。
好在默认的配置就可以让Zynq跑起来,有空深究。
【中断】
再来看看中断控制信息,点击“Interrupts”项,可以看到,如果将来开发的用户程序需要向CPU发送中断,估计要配置相应的选项。
【其他】
还是回到“PS-PL Configuration”页面,里面有DMA Cotroller,将来使用VDMA的时候,是否需要配置这里呢?
还有GP Master AXI Interface,如果取消了M AXI GP0 interface的配置,后面挂载的AXI GPIO模块是不是就没法正常挂载了呢?这个应该是的,但是改成M AXI GP1 interface使能是不是应该也好使呢?
完成配置后,点击页面右下方的“OK”按钮,退出对于Zynq系统(即一个最小的普通ARM芯片)的定制工作。
完成后软件界面显示如下图所示:
【说明】由于写文档要不断验证自己的猜测,经常修改Zynq的配置,后记论述使用的Zynq配置如下,使用软件预设的zedboard配置,功能外设尽量 裁剪,只保留UART1和DDR,其余全部Cut掉,UART1的波特率修改为9600bps,UART1的MIO管教配置采用软件默认提供的。
配置完毕之后,必须点击一下上图中的“Run Block Automation”,显示如下界面信息,从描述中可以看出,该操作主要是进行zynq系统管脚与FPGA芯片管脚之间的绑定关系。即软件自动根据开始 选择的开发板型号进行FPGA芯片的外设管脚与Zynq子系统定义个功能管脚进行连接。
需要说明的是其中Apply Board Preset默认是勾选的,如果选择该项,软件会自动复位Zynq子系统,即等同于在Zynq内部配置时,执行如下指令。
之后弹出如下页面:
不勾选“Apply Board Preset”项,执行完毕的结果:
双击Zynq子系统图标,进入配置页面:
可以看出Zynq子系统的配置没有发生变化,还是跟前面设定的配置一致。
如果勾选“Apply Board Preset”项,执行完毕的结果如下所示:
多了我们已经删除掉的网口ENT0,USB口USB0和定时器/触发器TTC0的信息,双击Zynq图标返回Zynq的配置页面,显示如下:
一下回到解放前,之前的配置全都没了,甚至修改的串口波特率都没有了。
因此,经验之谈是,配置好Zynq后,运行“Run Block Automation”时一定要取消勾选“Apply Board Preset”项,否者后果很严重。
【经验】:对Zynq执行完一次“Run Block Automation”,该操作的入口就不在现实了,即使修改了Zynq的配置后,甚至是修改Zynq子系统的功能管脚,都不能再次唤出“Run Block Automation”的操作入口,处理方法有两个:
方法一:删除跟Zynq链接的所有外设pad,操作如下图所示:
全部PAD都删除后,才能再次唤出“Run Block Automation”的操作入口。
方法二:直接使用TCL指令,查看任何一个交互式操作的TCL指令,可以在Tcl Console窗口内查询,复制保存后,在需要的时候。
在前面配置是发现UART0的默认管脚是EMIO,而且UART1的管脚也可以绑定到EMIO上,尝试一下将UART1在Zynq子系统中的功能管脚绑定在EMIO上,看看什么情况。
在上图中通过界面配置的方法选择复用管脚的绑定。
在Peripheral I/O Pins页面中通过图像画的方式直观显示UART1绑定的管脚。
修改完Zynq的配置,点击OK保存退出后,显示结果如下:
【未完待续】又够20张图了,Zynq配置还有个小尾巴,下篇继续。
文章评论(0条评论)
登录后参与讨论