Presentation is loading. Please wait.

Presentation is loading. Please wait.

General Purpose Input Output GPIO ECE 699: Lecture 4.

Similar presentations


Presentation on theme: "General Purpose Input Output GPIO ECE 699: Lecture 4."— Presentation transcript:

1 General Purpose Input Output GPIO ECE 699: Lecture 4

2 Required Reading Chapter 2: The Zynq Device (“What is it?) The ZYNQ Book Tutorial 1: First Designs on ZYNQ The ZYNQ Book Tutorials Section 13: Basic I/O ZYBO Reference Manual LogiCORE IP AXI GPIO Product Specification LogiCORE IP AXI GPIO v2.0 Product Guide

3 ZYBO Board Source: ZYBO Reference Manual

4 ZYBO Board Components Source: ZYBO Reference Manual

5 Source: The Zynq Book Tutorials

6 ZYBO General Purpose Input Output (GPIO) Source: ZYBO Reference Manual

7 Mapping of an Embedded SoC Hardware Architecture to Zynq Source: Xilinx White Paper: Extensible Processing Platform

8 Mapping of an Embedded SoC Hardware Architecture to Zynq Source: The Zynq Book

9 A Simplified Model of the Zynq Architecture Source: The Zynq Book

10 Source: The Zynq Book Tutorials

11

12

13 ZYBO Board Source: ZYBO Reference Manual

14 ZYBO Board Components Source: ZYBO Reference Manual

15 The Zynq Processing System Source: The Zynq Book

16 Simplified Block Diagram of the Application Processing Unit (APU) Source: The Zynq Book

17 AXI GPIO Features Configurable single or dual GPIO channel(s) Each channel configurable to have from 1 to 32 bits Dynamic programming of each GPIO bit as input or output Individual configuration of each channel Independent reset values for each bit of all registers Optional interrupt request generation AXI4-Lite interface to Processing System

18 Block Diagram of AXI GPIO IPIC – IP Interconnect interface enabled only when the C_INTERRUPT_PRESENT generic set to 1 Source: LogiCORE IP AXI GPIO: Product Specification

19 GPIO Core Source: LogiCORE IP AXI GPIO: Product Specification

20 GPIO Core Parameters

21 Setting GPIO Core Parameters in Vivado

22

23 GPIO_DATA and GPIO2_DATA Registers Source: LogiCORE IP AXI GPIO: Product Specification

24 GPIO_TRI and GPIO2_TRI Registers Source: LogiCORE IP AXI GPIO: Product Specification

25 C_HIGHADDR – C_BASEADDR ≥ 0xFFF AXI GPIO System Parameters Source: LogiCORE IP AXI GPIO: Product Specification

26 Addresses of AXI GPIO Registers

27 Address Editor in Vivado

28 AXI Interconnects and Interfaces Source: The Zynq Book

29 /* Definitions for driver GPIO */ #define XPAR_XGPIO_NUM_INSTANCES 1 /* Definitions for peripheral AXI_GPIO_0 */ #define XPAR_AXI_GPIO_0_BASEADDR 0x41200000 #define XPAR_AXI_GPIO_0_HIGHADDR 0x4120FFFF #define XPAR_AXI_GPIO_0_DEVICE_ID 0 #define XPAR_AXI_GPIO_0_INTERRUPT_PRESENT 0 #define XPAR_AXI_GPIO_0_IS_DUAL 0 xparameters.h

30 /* Include Files */ #include "xparameters.h" #include "xgpio.h" #include "xstatus.h" #include "xil_printf.h" /* Definitions */ #define GPIO_DEVICE_ID XPAR_AXI_GPIO_0_DEVICE_ID /* GPIO device that LEDs are connected to */ #define LED 0x03/* Initial LED value */ #define LED_DELAY 10000000/* Software delay length */ #define LED_CHANNEL 1/* GPIO port for LEDs */ #define printf xil_printf/* smaller, optimized printf */ C Program (1)

31 XGpio Gpio;/* GPIO Device driver instance */ int LEDOutputExample(void) { volatile int Delay; int Status; int led = LED; /* Hold current LED value. Initialize to LED definition */ /* GPIO driver initialization */ Status = XGpio_Initialize(&Gpio, GPIO_DEVICE_ID); if (Status != XST_SUCCESS) { return XST_FAILURE; } /*Set the direction for the LEDs to output. */ XGpio_SetDataDirection(&Gpio, LED_CHANNEL, 0x00); C Program (2)

32 /* Loop forever blinking the LED. */ while (1) { /* Write output to the LEDs. */ XGpio_DiscreteWrite(&Gpio, LED_CHANNEL, led); /* Flip LEDs. */ led = ~led; /* Wait a small amount of time so that the LED blinking is visible. */ for (Delay = 0; Delay < LED_DELAY; Delay++); } return XST_SUCCESS; /* Ideally unreachable */ } C Program (3)

33 /* Main function. */ int main(void){ int Status; /* Execute the LED output. */ Status = LEDOutputExample(); if (Status != XST_SUCCESS) { xil_printf("GPIO output to the LEDs failed!\r\n"); } return 0; } C Program (4)

34 Source: LogiCORE IP AXI GPIO: Product Specification

35


Download ppt "General Purpose Input Output GPIO ECE 699: Lecture 4."

Similar presentations


Ads by Google