正点原子ZYNQ PS端GPIO部分内容总结
正点原子视频上的笔记:
- GPIO是一个外设,用来对器件的引脚作观测以及控制
- MIO(Multiuse I/O),将来自PS外设和静态存储器接口的问题多路复用到PS的接口上。
- GPIO可以独立且动态的编程,作为输入/输出 以及中断模式。
- GPIO被分成了4个Bank. Bank0,Bank1通过MIO连接到PS的引脚,Bank2/Bank3通过EMO连接到PL
- 软件通过一组存储映射的寄存器来控制GPIO。
- 寄存器组
DATA RO.用来反映器件引脚的状态。
DATA,在GPIO被配置成输出的时候,该寄存器可以控制输出的数值
MASK DATA LSW, 用于屏蔽DATA的低16位
MASK DATA MSW, 用于屏敲DAIA的高16位DRM,
DIRM,用于控制I/O引脚是作为输入还是输出。
0:关闭输出驱动: 1:使能输出驱动
OEN,当M/O被配置成输出时,该寄存器用于打开/关闭输出使能。0:关闭输出使能;1:打开输出使能
7、**Mio[8:7]**在系统复位过程中作为VMDOE引脚(作为输入),用于配置 MIO Bank的电压复位结束后,MIO[8:7]只能作为输出信号,所以正点的板子给LED用。
MIO[8:7]用于配置gpio bank0, bank1是用什么电平。所以我们在配置的过程中,bank0 =3.3V, bank1 选择1.8V
笔者的笔记:
参考的文档:
\8_ZYNQ&FPGA参考资料\Xilinx\User Guide\ug585-Zynq-7000-TRM.pdf
最重要的一个框图:P27
这张图可由中间的那条红线,将整个框图分成PS,PL部分。 PS端就是和ARM相关,PL就是和FPGA相关。
PS/PL部分内容:
Processing System (PS)
° Application processor unit (APU)
° Memory interfaces
° I/O peripherals (IOP)
° Interconnect
Programmable Logic (PL)
GPIO位于I/O Peripherals I/O外设中,I/O Peripherals连到了MIO和EMIO。MIO 是多功能复用的意思,因为I/O peripherals有很多的功能引脚,而MIO一共只有54pin,所以一些引脚功能需要复用一些功能。(这一点有点像STM32的I/O复用)。如果引脚还不够用,就可以使用EMIO(E是extend 扩展的意思),使用PL端的一些引脚来扩展GPIO。
这里GPIO可以分成4个BANK,bank0,1 属于MIO, bank2,3属于EMIO。 P386页的框图。 bank0,1的位宽不同,bank0的位宽32Bit, bank1的位宽22bit.
0
看完了整体,我们要如何控制GPIO引脚呢? ZYNQ PS说到底还是ARM,所以还是用寄存器来控制GPIO。这里的内容就很像STM32那里的GPIO了。有使能,状态,高低字节掩码。
这里寄存器的作用在上面正点原子笔记的第6条。
接着讲到了14.2.3 bank0 ,bit[8:7] are outputs
主要是MIO[8:7],选择BANK0,1的电平,像这种很重要的功能(选择电平肯定是核心嘛),所以Xilinx规定这两个位只能够输出,不能输入。由这两个位控制bank0,1的电平。
PS:之前hello world实验中,配置ZYNQ7那个block的时候,有个bank1配置1.8V,bank0需要配置3.3V我都不知道为什么这么配置。看了这里才知道他的来源。
正点这里是说两个电平不同更加灵活(也没说具体原因。。。。)