Using Altera MAX Series as Microcontroller I/O Expanders



Similar documents
Using the Altera Serial Flash Loader Megafunction with the Quartus II Software

MAX II ISP Update with I/O Control & Register Data Retention

USB-Blaster Download Cable User Guide

Using the Agilent 3070 Tester for In-System Programming in Altera CPLDs

Altera Error Message Register Unloader IP Core User Guide

USB-Blaster II Download Cable User Guide

Using the On-Chip Signal Quality Monitoring Circuitry (EyeQ) Feature in Stratix IV Transceivers

PROFINET IRT: Getting Started with The Siemens CPU 315 PLC

Avalon Interface Specifications

MAX 10 Analog to Digital Converter User Guide

Quartus II Software and Device Support Release Notes Version 15.0

In-System Programmability

MAX 10 FPGA Configuration User Guide

Configuration via Protocol (CvP) Implementation in Altera FPGAs User Guide

MAX 10 Clocking and PLL User Guide

Video and Image Processing Suite

Quartus II Software Download and Installation Quick Start Guide

ModelSim-Altera Software Simulation User Guide

White Paper Understanding Metastability in FPGAs

Altera SoC Embedded Design Suite User Guide

9. Configuration, Design Security, and Remote System Upgrades in the Cyclone III Device Family

15. Introduction to ALTMEMPHY IP

NTE2053 Integrated Circuit 8 Bit MPU Compatible A/D Converter

White Paper Utilizing Leveling Techniques in DDR3 SDRAM Memory Interfaces

Engineering Change Order (ECO) Support in Programmable Logic Design

MICROPROCESSOR. Exclusive for IACE Students iacehyd.blogspot.in Ph: /422 Page 1

Providing Battery-Free, FPGA-Based RAID Cache Solutions

13. Publishing Component Information to Embedded Software

a8251 Features General Description Programmable Communications Interface

AVR151: Setup and Use of the SPI. Introduction. Features. Atmel AVR 8-bit Microcontroller APPLICATION NOTE

MasterBlaster Serial/USB Communications Cable User Guide

OTU2 I.7 FEC IP Core (IP-OTU2EFECI7Z) Data Sheet

Applying the Benefits of Network on a Chip Architecture to FPGA System Design

Nios II Software Developer s Handbook

Digitale Signalverarbeitung mit FPGA (DSF) Soft Core Prozessor NIOS II Stand Mai Jens Onno Krah

December 2002, ver. 1.0 Application Note 285. This document describes the Excalibur web server demonstration design and includes the following topics:

White Paper Streaming Multichannel Uncompressed Video in the Broadcast Environment

AND8336. Design Examples of On Board Dual Supply Voltage Logic Translators. Prepared by: Jim Lepkowski ON Semiconductor.

Chapter 11. Using MAX II User Flash Memory for Data Storage in Manufacturing Flow

Introduction the Serial Communications Huang Sections 9.2, 10.2 SCI Block User Guide SPI Block User Guide

White Paper FPGA Performance Benchmarking Methodology

Arbitration and Switching Between Bus Masters

Using Pre-Emphasis and Equalization with Stratix GX

BitBlaster Serial Download Cable

White Paper Reduce Total System Cost in Portable Applications Using Zero-Power CPLDs

USER GUIDE EDBG. Description

What Determines FPGA Power Requirements?

SMARTCARD XPRO. Preface. SMART ARM-based Microcontrollers USER GUIDE

A Safety Methodology for ADAS Designs in FPGAs

2. Scope of the DE0 Board and Supporting Material

White Paper Using the Intel Flash Memory-Based EPC4, EPC8 & EPC16 Devices

Designing with High-Density BGA Packages for Altera Devices

Develop a Dallas 1-Wire Master Using the Z8F1680 Series of MCUs

FPGAs for High-Performance DSP Applications

1. Overview of Nios II Embedded Development

Block 3 Size 0 KB 0 KB 16KB 32KB. Start Address N/A N/A F4000H F0000H. Start Address FA000H F8000H F8000H F8000H. Block 2 Size 8KB 16KB 16KB 16KB

Quartus II Handbook Volume 3: Verification

Implementing SPI Master and Slave Functionality Using the Z8 Encore! F083A

Microprocessor & Assembly Language

Reducing Steps to Achieve Safety Certification

Fujisoft solves graphics acceleration for the Android platform

HT1632C 32 8 &24 16 LED Driver

Qsys System Design Tutorial

Internal Memory (RAM and ROM) User Guide

MorphIO: An I/O Reconfiguration Solution for Altera Devices

The Programming Interface

Quartus II Software Design Series : Foundation. Digitale Signalverarbeitung mit FPGA. Digitale Signalverarbeitung mit FPGA (DSF) Quartus II 1

AUTOMATIC NIGHT LAMP WITH MORNING ALARM USING MICROPROCESSOR

White Paper Military Productivity Factors in Large FPGA Designs

LatticeECP3 High-Speed I/O Interface

ZL30136 GbE and Telecom Rate Network Interface Synchronizer

SPI Flash Programming and Hardware Interfacing Using ispvm System

Thermostat Application Module Kit

TURBO PROGRAMMER USB, MMC, SIM DEVELOPMENT KIT

USER GUIDE Programming Adapter Cable for Fujitsu Flash Microcontroller- F²MC-16LX/FR Family Fujitsu Microelectronics America, Inc.

1. Overview of Nios II Embedded Development

PC Base Adapter Daughter Card UART GPIO. Figure 1. ToolStick Development Platform Block Diagram

In-System Programmer USER MANUAL RN-ISP-UM RN-WIFLYCR-UM

RETRIEVING DATA FROM THE DDC112

73M1866B/73M1966B FXOCTL Application User Guide November 2, 2009 Rev. 4.1 UG_1x66B_009

Production Flash Programming Best Practices for Kinetis K- and L-series MCUs

Measurement and Analysis Introduction of ISO7816 (Smart Card)

Arria 10 Core Fabric and General Purpose I/Os Handbook

Information Board User s Guide

White Paper Increase Flexibility in Layer 2 Switches by Integrating Ethernet ASSP Functions Into FPGAs

Using Nios II Floating-Point Custom Instructions Tutorial

Using the HT46R46 I/O Ports to Implement Half-Duplex SPI Communication

Command Processor for MPSSE and MCU Host Bus Emulation Modes

Technical Note. Micron NAND Flash Controller via Xilinx Spartan -3 FPGA. Overview. TN-29-06: NAND Flash Controller on Spartan-3 Overview

Nios II Development Kit Version 5.1 SP1 Release Notes

APPLICATION NOTE. AT07175: SAM-BA Bootloader for SAM D21. Atmel SAM D21. Introduction. Features

Computer Organization and Components

Voice Dialer Speech Recognition Dialing IC

EC313 - VHDL State Machine Example

Using The PIC I/O Ports

How To Use A Watt Saver On A Microcontroller (Watt Saver) On A Cell Phone Or Mp3 Player

Understanding CIC Compensation Filters

Von der Hardware zur Software in FPGAs mit Embedded Prozessoren. Alexander Hahn Senior Field Application Engineer Lattice Semiconductor

USB-Blaster Download Cable User Guide

Transcription:

2014.09.22 Using Altera MAX Series as Microcontroller I/O Expanders AN-265 Subscribe Many microcontroller and microprocessor chips limit the available I/O ports and pins to conserve pin counts and reduce package sizes. In designs that use these limited chips, you can use the Altera devices to implement I/O expanders. Using this method, you can increase the number of I/O pins without changing the microcontrollers or microprocessors in the design. The design example in this document shows the method to implement microcontroller I/O expanders using these Altera devices: MAX 10 FPGA MAX V MAX II MAX 3000A Design Example for MAX II, MAX V, and MAX 3000A Provides the design files for this application note (AN 265). Design Example for MAX 10 Provides the MAX 10 design files for this application note (AN 265). Advantages of Using Altera Devices as I/O Expanders Table 1: Advantages of Using Altera Programmable Devices as I/O Expanders For more information about MultiVolt I/O support and the number of I/O pins available for each device package, refer to the related information. Feature Advantage Programmable logic capability Together with the I/O expander, you can integrate other functions in the programmable device. For example, you can integrate LED drivers or busbridging logic. Furthermore, with the user flash memory (UFM) in the MAX II, MAX V, or MAX 10 devices, you can also integrate functions that use memory. This capability allows you to reduce component count across the board. 2014. All rights reserved. ALTERA, ARRIA, CYCLONE, ENPIRION, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos are trademarks of and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performance of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information, product, or service described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device specifications before relying on any published information and before placing orders for products or services. ISO 9001:200 Registered www.altera.com 101 Innovation Drive, San Jose, CA 95134

2 Microcontroller I/O Expander Implementation AN-265 2014.09.22 Feature MultiVolt I/O support Large number of I/O pins In-system programmability Advantage The Altera programmable devices support MultiVolt I/O capability. You can use this capability to interface with I/O pins with voltages of 3.3 V, 3.0 V, 2.5 V, 1. V, 1.5 V, and 1.2 V. Using this capability, you can implement voltage-level shifting to interface your newer 2.5 V, 1. V, 1.5 V, or 1.2 V with older 3.3 V devices. The large number of I/O pins available in the Altera programmable devices make them ideal for implementing microcontroller I/O expansion. For example, with 500 I/O pins, you can implement 62 units of bit ports. With in-system programmability (ISP), you have the added flexibility of reprogrammability on the board. MAX 10 FPGA Device Overview Provides the number of maximum GPIO resources available for each device in the MAX 10 FPGA device family. MAX 10 General Purpose I/O User Guide Lists the I/O standards voltage and pin support information for each I/O standard supported by the MAX 10 FPGA device family. Introduction, MAX II Device Handbook Provides the number of maximum user I/O pins for each device in the MAX II device family MAX II Architecture, MAX II Device Handbook Lists the MultiVolt I/O support for MAX II devices. MAX 3000A Programmable Logic Device Family Data Sheet Provides the number of maximum user I/O pins for each device and lists the MultiVolt I/O support for MAX 3000A devices. MAX V Device Family Overview Provides the number of maximum GPIO resources available for each device in the MAX V device family. MAX V Architecture Lists the MultiVolt I/O support for MAX V devices. Microcontroller I/O Expander Implementation The I/O expander in this design example includes four portsa, B, C, and D: You can program each port independently as I/O ports. Each port is bits wide. Each port is bidirectional and acts as input port if tri-stated. To perform read and write operations, connect any of these ports with the microcontroller unit (MCU) port.

AN-265 2014.09.22 Pin Functions in the Microcontroller I/O Expander 3 Figure 1: Block Diagram of Microcontroller I/O Expander Design Example Input Data Registers Port A Port B MCU Port I/O Ports 4 2 I/O Setting Data Register 2 4 I/O Ports Output Data Registers Port C Port D CLK CS RST CONF LOAD WR RD MODE Pin Functions in the Microcontroller I/O Expander Table 2: Input and Output Pins in Microcontroller I/O Expander Design Example I/O Name Type Description Active CLK Input Input clock signal to trigger the input data registers, output data registers, and I/O setting data registers. Positive Edge

4 Pin Functions in the Microcontroller I/O Expander AN-265 2014.09.22 I/O Name Type Description Active MCU port Bidirectional bit bidirectional data lines that interface with the MCU data bus and transmit configuration data. To write or read the -bit data to or from the I/O expander, use WR or RD signals with positive edge trigger. To set the MCU port as data or address bus, use the MODE signal. CS Input Input signal to select the device. Low RST Input Input signal to reset the device and all internal registers asynchronously. CONF Input Stores the address[5..0] from the MCU port on the rising edge of CLK into the configuration registers. Enables the clock signal to the configuration registers. Ignores data on address[7..6]. LOAD Input Stores the address[1..0] from the MCU port on the rising edge of CLK into the configuration registers. Enables the clock signal to the configuration registers. Ignores data on address[7..2]. WR Input Causes the data on the MCU port to be written to the enabled port (A, B, C, or D) on the rising edge of CLK. Enables the clock signal to the output data registers RD Input Enables the data bus transfer to the MCU port from the enabled port (A, B, C, or D) on the rising edge of CLK. Enables the clock signal to the input data registers. MODE Input When high, tri-states the MCU port. When low, sets the MCU port as input or output based on the configuration registers. Port A Bidirectional -bit, general-purpose I/O port that can be programmed to either output or input mode. Low Low Low Low Low

AN-265 2014.09.22 Functional Description of the Microcontroller I/O Expander 5 I/O Name Type Description Active Port B Bidirectional -bit, general-purpose I/O port that can be programmed to either output or input mode. Port C Bidirectional -bit, general-purpose I/O port that can be programmed to either output or input mode. Port D Bidirectional -bit, general-purpose I/O port that can be programmed to either output or input mode. Microcontroller I/O Expander Configuration on page 6 Functional Description of the Microcontroller I/O Expander The I/O expander operates as a slave that sends and receives data from and to the microcontroller through the MCU port. Table 3: Operation Modes of the Microcontroller I/O Expander During read and write operations, set the MODE signal control pin to low. Mode Description Read Write Disabled In read mode, the microcontroller receives the incoming data through the I/O expander. The selected port (A, B, C, or D) becomes an input port and the MCU port becomes an output port. When the RD and CS signals are low, the application enables the clock through the input data registers. On the rising edge of CLK, the I/O expander writes the data from the selected port to the input data registers. In write mode, the microcontroller transmits data out through the I/O expander. The selected port (A, B, C, or D) becomes an output port and the MCU port becomes an input port. When the WR and signals are low, the application enables the clock through the output registers. On the rising edge of the CLK signal, the I/O expander writes the data received at the MCU port to the output data register of the selected port. In this mode, the microcontroller cannot receive or transmit data through the I/O expander. When WR or RD signal is high, the application disables the CLK through the I/O data registers.

6 Microcontroller I/O Expander Configuration Microcontroller I/O Expander Design Verification on page 7 Provides example of read and write operation. AN-265 2014.09.22 Microcontroller I/O Expander Configuration To set the port as input, output, or disabled, you must configure the I/O expander. The I/O expander configuration data is a set of six bit registers: Four bits of I/O ports configuration (bits 5, 4, 3, and 2) Two bits of enabled port address (bits 1 and 0) Table 4: I/O Expander Address Bus Configuration Function Address Bit Function Configuration A7:A6 7 6 No function A5 5 Configuration bit for Port D 0 = configured as input 1 = configured as output A4 4 Configuration bit for Port C 0 = configured as input 1 = configured as output A3 3 Configuration bit for Port B 0 = configured as input 1 = configured as output A2 2 Configuration bit for Port A 0 = configured as input 1 = configured as output A1:A0 1 0 Port address 00 = enables port A 01 = enables port B 10 = enables port C 11 = enables port D When the MODE signal is high and CS signal is low, the design places the configuration data on the input address bus (MCU port). To activate the new configuration, send a single pulse of the CONF signal for one clock period. When the CONF signal and CS signals are low, the clock is enabled through the configuration registers. As a result, the I/O expander writes the configuration data in the configuration registers. This transition sets selected configuration as the state of the I/O expander. If you want to select which of the four ports (A, B, C, or D) to use without configuring the ports, assert the LOAD signal low while CS signal is low. At the rising edge of the CLK signal, only the enabled port address data bits are written to the configuration registers. The configuration of the selected port (input or output) also configures the MCU port direction. For example, if you configure port A as input and enable it, the direction of the MCU port becomes output.

AN-265 2014.09.22 Resource Usage in Microcontroller I/O Expander Target Devices 7 You cannot directly configure the input or output direction of the MCU port. However, if you need to access the configuration registers, use the MODE signal control pin to tri-state the MCU port and turn it into an input port. The I/O expander design supports reset mode. When you assert the RST signal while the CS signal is low, all register contents are reset to zero asynchronously. All I/O expander including the MCU port are set to input mode, which is the initial state of the I/O expander. Pin Functions in the Microcontroller I/O Expander on page 3 Resource Usage in Microcontroller I/O Expander Target Devices There are sufficient resources in the target devices to implement the design example and other logic. Table 5: Device Targets to Implement the Microcontroller I/O Expander Design Example This table lists the devices that you can target with the design example using the Quartus II software and their resource utilization. Family MAX 3000A MAX II MAX 10 FPGA Device EPM312ATC100 EPM240T100C3 10M0SAE144CG Resource Utilization Resource Availability Usage Utilization (%) Macrocells 12 51 39 Flipflops 12 50 39 I/O pins 0 4 60 Shareable expanders 12 2 1 Logic elements 240 67 27 Flipflops 240 50 20 I/O pins 0 4 60 Logic elements 064 75 0.9 Flipflops 064 59 0.7 I/O pins 103 4 47 Microcontroller I/O Expander Design Verification You can verify the functional and timing simulation of the example design on the target devices using the Quartus II software. Functional Description of the Microcontroller I/O Expander on page 5

Simulating Microcontroller I/O Expander Write Mode Timing Simulating Microcontroller I/O Expander Write Mode Timing Figure 2: Write Mode Timing Simulation of the Microcontroller I/O Expander AN-265 2014.09.22 Configure the microcontroller I/O expander Low signal of WR enables the clock through the output data registers to create new output values Change the enabled port WR signal creates new output values 1. With all the I/O pins in tri-state mode, initialize each port. 2. After initialization, configure port A and port B as output, and port C and port D as input. 3. Enable port B for write operation. When WR asserts a low signal, the clock through the output data registers is enabled and creates a new output value (146) at the output port B from the MCU port. 4. Once the LOAD signal asserts low, enable port A. When the WR signal is low to enable the clock through the output data registers, the MCU port data (10) is created at the output port A.

AN-265 2014.09.22 Simulating Microcontroller I/O Expander Read Mode Timing 9 Simulating Microcontroller I/O Expander Read Mode Timing Figure 3: Read Mode Timing Simulation of the Microcontroller I/O Expander Configure the microcontroller I/O expander Low signal of RD enables the clock through the input data registers to create new output values Change the enabled port RD signal creates new output values 1. With all the I/O pins in tri-state mode, initialize each port. 2. After initialization, configure ports A, B, C, D as input. 3. Enable port C for read operation. When RD asserts a low signal, the clock through the input data registers is enabled and creates a new output value (214) at the MCU port from port C. 4. Once the LOAD signal asserts low, enable port D. When the RD signal is low to enable the clock through the input data registers, port D data (146) is created at the MCU port. Microcontroller I/O Expander Application You can modify the example design to target any -bit microcontroller such as the PIC and 051 microcontrollers.

10 Microcontroller I/O Expander Application Figure 4: Increasing Microcontroller I/O Ports Using the Microcontroller I/O Expander AN-265 2014.09.22 This figure shows the I/O expander applied to a microcontroller system to increase the number of I/O ports of the microcontroller. Microcontroller I/O Expander RD output WR output CS output LOAD output CONF output MODE output RST output Microcontroller I/O Port RD WR CS LOAD CONF MODE RST MCU Port CLK CLK Port A Port B Port C Port D System Clock

AN-265 2014.09.22 Document Revision History 11 Document Revision History Date Version Changes September 2014 2014.09.22 Added information for MAX 10 devices. Added support for MAX V devices. Added missing link to download the design example file for MAX V, MAX II, and MAX 3000A device families. Added link to download the design example file for MAX 10 devices. Removed tables that list the MultiVolt I/O support and number of maximum user I/O pins for the MAX II and MAX 3000A devices, and added links to related device-specific documents that list the information. The linked documents provide more details and contain the latest information for each device family. Changed the figure that shows the I/O expander address bus configuration into a table for easier reference. Removed the table that lists the port addresses configuration values and combined the information in the table that lists the I/O expander address bus configuration details. Added a table that lists the design example target devices and combined the resource utilization information into this table for easy reference. Updated the microcontroller I/O expander read and write timing simulation figures. Restructured and rewrote all sections for clarity and style update. Updated template. March 2004 2.0 Revision history information not available. 1.0 Initial release.