在玩了zedboard一段时间之后,这两天又回到了最基础的gpio,axi_gpio,mio,emio.也把ug585的部分章节,看了看,又有了许多新的发现,可能学习就是这样吧,温故而知新,说不定下一次在回过头来看mio的时候,又会有不一样的理解。
好了回到正题,gpio,axi_gpio,mio,emio其实关系有点,只是一直被搞混了,记录一下。
Gpio 通用外设io,在以前的单片机中,印象就是外面的引脚啊,比如可以连接到lcd,连接到数码管。。。,而在zynq中有点不一样,但就使用的话似乎区别也不大,主要是里面包含了FPGA,整体算是一个soc。他可以使用下面的mio或者emio,当然具体的外设可能对两者有要求。
Mio复用io,直接由ps部分引出,
Emio 外部扩展复用io,把ps部分挂不下的外设,放到pl部分所使用的io叫emio,而这也是一种ps,pl通信的方式,
Axi_gpio 这个就是pl部分的一个ip核,ps,pl就通过它连接到外设。
外设就是我们所常用到的串口啊,usb啊,xx控制器啊什么的。
与zynq有物理的连接,
而里面所用到的引脚约束就是告诉芯片,具体连接到哪一个引脚。
把指导手册上的一些描述顺便也搬上来。
Key features of the GPIO peripheral are summarized as follows:
• 54 GPIO signals for device pins (routed through the MIO multiplexer)
° Outputs are 3-state capable
• 192 GPIO signals between the PS and PL via the EMIO interface
° 64 Inputs, 128 outputs (64 true outputs and 64output enables)
• The function of each GPIO can be dynamically programmed on an individual orgroup basis
• Enable, bit or bank data write, output enable and direction controls
• Programmable interrupts on individual GPIO basis
° Status read of raw and masked interrupt
° Selectable sensitivity: Level-sensitive (High orLow) or edge-sensitive (positive, negative, or
both)
As shown in Figure 14-1, the GPIOmodule is divided into four banks:
• Bank0: 32-bit bank controlling MIO pins[31:0]
• Bank1: 22-bit bank controlling MIO pins[53:32]
Note: Bank1is limited to 22 bits because the MIO has a total of 54 pins.
• Bank2: 32-bit bank controlling EMIO signals[31:0]
• Bank3: 32-bit bank controlling EMIO signals[63:32]
四个bank,bank0和bank1被mio使用,54个引脚,32+22,
Bank0 3.3v,bank11.8v不知道为什么还不同。
至于bank2,bank3就是emio了。
对两者的使用基本相同,但配置有一些区别。
Example: Configure MIO pin 6as a GPIO signal
1. Select MIO pin as GPIO: Set L0_SEL, L1_SEL, L2_SEL, L3_SEL = 0.
2. Set TRI_ENABLE = 0.
3. LVCMOS18 (refer to the register definition for other voltage options).
4. Slow CMOS edge.
5. Enable internal pull-up resistor.
6. Disable HSTL receiver.