Ústav radioelektroniky. 14. listopadu 2007



Similar documents
AVR126: ADC of megaavr in Single Ended Mode. Introduction. Features. AVR 8-bit Microcontrollers APPLICATION NOTE

AVR125: ADC of tinyavr in Single Ended Mode. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

Ústav radioelektroniky. Pomocné obvody a základní periférie

ET-BASE AVR ATmega64/128

Arbeitskreis Hardware. Prof. Dr. Michael Rohs, Dipl.-Inform. Sven Kratz MHCI Lab, LMU München

STK User Guide

AT15007: Differences between ATmega328/P and ATmega328PB. Introduction. Features. Atmel AVR 8-bit Microcontrollers APPLICATION NOTE

TURBO PROGRAMMER USB, MMC, SIM DEVELOPMENT KIT

ARP,TCP,IP utility -zjednodusene a rychle Jiri Kubina jiri.kubina@osu.cz Ver. 1.0 leden 2006

The Programming Interface

Data Acquisition Module with I2C interface «I2C-FLEXEL» User s Guide

JTAG ICE.... User Guide

Jazyk C# (seminář 8)

Microtronics technologies Mobile:

Interfacing Analog to Digital Data Converters

Microcontroller Based Low Cost Portable PC Mouse and Keyboard Tester

Introducing AVR Dragon

8-bit RISC Microcontroller. Application Note. AVR910: In-System Programming

If an occupancy of room is zero, i.e. room is empty then light source will be switched off automatically

AVR Butterfly Training. Atmel Norway, AVR Applications Group

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

A 5 Degree Feedback Control Robotic Arm (Haptic Arm)

Command Processor for MPSSE and MCU Host Bus Emulation Modes

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

MICROSOFT WORD Mgr. Krejčí Jan (ZSJP) MICROSOFT WORD září / 21

WIZ-Embedded WebServer User s Manual (Ver. 1.0)

FPGA pro BFU. Marek Vašut October 10, 2015

User s Manual of Board Microcontroller ET-MEGA2560-ADK ET-MEGA2560-ADK

Atmel Norway XMEGA Introduction

DAC Digital To Analog Converter

Part 1. MAX BIT DAC with an Arduino Board. MIDI to Voltage Converter Part1

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

NTE2053 Integrated Circuit 8 Bit MPU Compatible A/D Converter

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

AVR319: Using the USI module for SPI communication. 8-bit Microcontrollers. Application Note. Features. Introduction

Embedded Systems Design Course Applying the mbed microcontroller

SPI and JTAG In-System Programming (ISP) guidelines for the Atmel ATmega AVR FLASH Microcontroller Family

USER GUIDE EDBG. Description

General Porting Considerations. Memory EEPROM XRAM

A DIY Hardware Packet Sniffer

APPLICATION NOTE. AVR042: AVR Hardware Design Considerations. AVR 8-bit Microcontrollers. Features. Description

Android Controlled Based Interface

POCKET SCOPE 2. The idea 2. Design criteria 3

AVRprog. programmer by MikroElektronika

AVR068: STK500 Communication Protocol. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

Serial port interface for microcontroller embedded into integrated power meter

Chapter 13. PIC Family Microcontroller

8-bit Atmel with 8KBytes In- System Programmable Flash. ATmega8 ATmega8L. Summary

AVR317: Using the Master SPI Mode of the USART module. 8-bit Microcontrollers. Application Note. Features. Introduction

EvB 5.1 v5 User s Guide

Implementing SPI Communication Between MSP430 G2452 and LTC ADC

8-bit Microcontroller with 16K Bytes In-System Programmable Flash. ATmega162 ATmega162V. Features

AVR Timer/Counter. Prof Prabhat Ranjan DA-IICT, Gandhinagar

APPLICATION NOTE. Atmel AVR1300: Using the Atmel AVR XMEGA ADC. Atmel 8-bit Microcontrollers PRELIMINARY. Introduction

AUTOMATIC NIGHT LAMP WITH MORNING ALARM USING MICROPROCESSOR

ADS9850 Signal Generator Module

YOUTUBE 4.0. Postup upgrade Youtube z Youtube 3.1 na Youtube 4.0 pro produkty EAGET X5R, M6, M7 a M9:

DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING Question Bank Subject Name: EC Microprocessor & Microcontroller Year/Sem : II/IV

Luk aˇ s R uˇ ziˇ cka Pomocn a slovesa

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

US-SPI New generation of High performances Ultrasonic device


8-bit Atmel megaavr Microcontroller

ATmega32A. Introduction. Features. 8-bit AVR Microcontroller DATASHEET SUMMARY

8-bit RISC Microcontroller. Application Note. AVR335: Digital Sound Recorder with AVR and DataFlash

8-Bit Flash Microcontroller for Smart Cards. AT89SCXXXXA Summary. Features. Description. Complete datasheet available under NDA

AVR042: AVR Hardware Design Considerations. Introduction. Features. 8-bit AVR Microcontroller APPLICATION NOTE

Jak pracuje. Ondřej Bojar Ústav formální a aplikované lingvistiky MFF UK. ELRC Training Workshop, 15. prosinec /28

HD44780U (LCD-II) (Dot Matrix Liquid Crystal Display Controller/Driver)

Table 1 below is a complete list of MPTH commands with descriptions. Table 1 : MPTH Commands. Command Name Code Setting Value Description

Table of Contents. Section 1 Introduction Section 2 Getting Started Section 3 Hardware Description

Lab Experiment 1: The LPC 2148 Education Board

Display Message on Notice Board using GSM

Microcomputers. Analog-to-Digital and Digital-to-Analog Conversion

[F/T] [5] [KHz] [AMP] [3] [V] 4 ) To set DC offset to -2.5V press the following keys [OFS] [+/-] [2] [.] [5] [V]

NT7606. STN LCDController/Driver. RAM-Map STN LCD Controller/Driver. Preliminary

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

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

AC-PG-USBASP USBASP AVR Programmer

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

Atmel AT32UC3A3256 microcontroller 64MBit SDRAM Analog input (to ADC) Temperature sensor RC filter

ARDUINO SEVERINO SERIAL SINGLE SIDED VERSION 3 S3v3 (REVISION 2) USER MANUAL

APPLICATION NOTE Atmel AT02509: In House Unit with Bluetooth Low Energy Module Hardware User Guide 8-bit Atmel Microcontroller Features Description

2.0 Command and Data Handling Subsystem

aneb Perfekt perfektně.

JTAG-HS2 Programming Cable for Xilinx FPGAs. Overview. Revised January 22, 2015 This manual applies to the HTAG-HS2 rev. A

Technical Information Manual

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

Digital Guitar Effects Pedal

Microcontrollers in Practice

24-Bit Analog-to-Digital Converter (ADC) for Weigh Scales FEATURES S8550 VFB. Analog Supply Regulator. Input MUX. 24-bit Σ ADC. PGA Gain = 32, 64, 128

Freescale Semiconductor, I

QT1 Xplained Pro. Preface. Atmel QTouch USER GUIDE

LatticeECP2/M S-Series Configuration Encryption Usage Guide

Ingar Fredriksen AVR Applications Manager. Tromsø August 12, 2005

Arduino Due Back. Warning: Unlike other Arduino boards, the Arduino Due board runs at 3.3V. The maximum. Overview

The following is a summary of the key features of the ARM Injector:

SAM D21 Xplained Pro. Preface. SMART ARM-based Microcontrollers USER GUIDE

Transcription:

Ústav radioelektroniky Vysoké učení technické v Brně Zpracování analogových signálů Programování mikrokontrolerů Mikroprocesorová technika, přednáška č. 7 Ing. Frýza Tomáš, Ph.D. 14. listopadu 2007

Obsah přednášky Komunikace mezi LCD displejem a mikrokontrolérem Zpracování analogových signálů A/D převodník Analogový komparátor Vývoj aplikací pro mikrokontroléry Způsoby programování mikrokontrolérů Paralelní programování Programování pomocí JTAG ISP programování Zdroje informací Otázky a příklady k procvičení

Obsah přednášky Komunikace mezi LCD displejem a mikrokontrolérem Zpracování analogových signálů A/D převodník Analogový komparátor Vývoj aplikací pro mikrokontroléry Způsoby programování mikrokontrolérů Paralelní programování Programování pomocí JTAG ISP programování Zdroje informací Otázky a příklady k procvičení

Znakové LCD displeje Zobrazitelná plocha obsahuje běžně od 8 1 do 40 4 znaků, bez nebo s podsvícením (nejčastěji žluto-zelené). Většina LCD displejů obsahuje řídicí obvod HD44780 firmy Hitachi (příp. jeho derivát); prostřednictvím tohoto obvodu je možné komunikovat s displejem. Tento řadič obsahuje znakovou sadu, instrukce pro ovládání. Komunikace probíhá pomocí 8 datových signálů (DB0 DB7) a je řízena 3 řídicími signály (RS, R/W a E) RS - Identifikuje instrukci nebo data, R/W - Volba čtení nebo zápisu (z pohledu MCU), E - Povolovací signál. Obrázek: Různé provedení znakových LCD displejů

Datová komunikace mezi LCD a MCU Existují dva základní způsoby datové komunikace mezi LCD a MCU, využívající plný (8) nebo redukovaný (4) počet datových signálů. 8bitová komunikace vyžaduje 8 + 3 I/O pinů mikrokontrolérů. 4bitová komunikace: 4 + 3 = 7 I/O pinů U LCD se využívá horní polovina datových pinů DB7 až DB4, Rozdělení datového slova do dvou niblů; nejprve se vyšle horní, následně dolní nibl. Obrázek: Datové a řídicí signály LCD displeje

Datová komunikace mezi LCD a MCU Význam řídicích signálů RS = 0: přenáší se instrukce (např. pro smazání obsahu displeje), RS = 1: data (např. text k zobrazení). R/W = 0: zápis dat/instrukcí do LCD, R/W = 1: čtení z LCD. Kladný pulz povolovacího signálu E startuje komunikaci mezi zařízeními. Znaky jsou zobrazovány jako matice 5 8 (většina znaků je menších); jsou v LCD uloženy ve vnitřní paměti RAM. Znaky adresované 16-31 (0x10-0x1f) a 128-159 (0x80-0x9f) nelze zobrazit (odpovídají řídicím znakům z ASCII tabulky). Data, která chceme zobrazit, jsou v LCD uložena v paměti s označením DDRAM (Display Data RAM). Je možné definovat až 8 uživatelských znaků (adresa 0 až 7). Ty jsou uloženy v paměti s označením CGRAM (Character Generator RAM).

Znaková sada LCD displeje

Instrukční sada řadiče HD44780 Tabulka: Některé příkazy HD44780 pro komunikaci s LCD displejem RS R/W DB7 : DB0 Popis instrukce 0 0 0000 0001 Smazání displeje 0 0 0000 001x Návrat kurzoru na pozici (0,0) 0 0 0000 01IS Nastavení posuvu kurzoru. I: inkrementace pozice kurzoru. S: posuv displeje. 0 0 0000 1DCB Zapnutí displeje/kurzoru. D: zapnutí displeje. C: zobrazení kurzoru. B: blikání kurzoru. 0 0 001L NFxx Nastavení rozlišení. L=1(0): nastavení 8(4)bitové komunikace. N=1(0): dva(jeden) řádky displeje. F=1(0): velikost fontu 5 10(5 7). 0 0 01 cgram Nastavení adresy CGRAM segmentu. 0 0 1 ddram Nastavení adresy DDRAM segmentu. 1 0 data Zápis dat do paměti CGRAM nebo DDRAM. 1 1 data Čtení dat z paměti CGRAM nebo DDRAM.

Obsah přednášky Komunikace mezi LCD displejem a mikrokontrolérem Zpracování analogových signálů A/D převodník Analogový komparátor Vývoj aplikací pro mikrokontroléry Způsoby programování mikrokontrolérů Paralelní programování Programování pomocí JTAG ISP programování Zdroje informací Otázky a příklady k procvičení

AD převod MCU umožňuje zpracovávat analogové signály pomocí A/D převodníku a komparátoru. A/D převodník (Analog to Digital Converter) převádí velikost analogového vstupního napětí na nbitovou digitální hodnotu. ATmega16: 8kanálový převodník piny PA0 až PA7. Vstupní úroveň je brána bud vůči zemi GND, případně lze převádět diferenční hodnotu dvou vstupních kanálů a to včetně nastavitelného zesílení. Minimální hodnota: 0V. Maximální hodnota: napětí referenčního napětí V REF. Z důvodu nižšího odběru je AD převodník defaultně vypnut. Pro použití je tedy nutné ho povolit. ATmega16: Výsledek AD převodu je reprezentován 10 bity v datových registrech ADCH a ADCL ve formě dvojkového doplňku, protože výsledek může být záporný?!

AD převod Při čtení převedené hodnoty z registrů je po přečtení hodnoty z ADCL zakázán zápis do obou datových registrů (do doby než je přečtena také hodnota z ADCH). A/D převodník může pracovat z několika režimech Jednoduchý převod (Single Conversion). Převede se jen jeden vzorek, poté je převod zastaven, Automatické spouštění (Auto Triggering). Speciální událost (externí přerušení, změna komparátoru, přetečení, komparace čítače/časovače,...) může zahájit AD převod. Převod je zahájen náběžnou hranou vybraného signálu; pokud přijde nová náběžná hrana a převod není dokončen, pak je ignorována. Umožňuje zahájení převodu v konstantních intervalech, Volný běh (Free Running). Převod je prováděn neustále. Po dokončení AD převodu je výsledek zapsán do datových registrů AD převodníku, tj. do ADCH:L. Je možné generovat přerušení.

Časování A/D převodníku A/D převodník potřebuje pro 10bitový převod hodinový signál o frekvenci od 50kHz do 200kHz Řídicí frekvence může být větší, pokud je postačující nižší rozlišení než 10bitové, A/D převodník obsahuje předděličku (2,4,8,16,32,64,128) ke generování vhodné frekvence, odvozené od f CP U. Doba dokončení AD převodu závisí na zvoleném režimu, přičemž převod první hodnoty trvá déle než všechny následující. Celková doba převodu se skládá z doby navzorkování a samotného převodu Navzorkování prvního vzorku vstupního signálu (sample & hold) trvá 13, 5 AD cyklů, ostatních jen 1, 5 AD cyklů. Dokončení prvního převodu včetně inicializace analogových obvodů trvá 25 hodinových cyklů AD převodníku; všechny ostatní pak jen 13 (při f ADC = 50kHz 3, 8kSP S, f ADC = 200kHz 15, 3kSP S).

sion completes, while ADSC remains high. For a summary of conversion times, see Table 81. Doba trvání AD převodu Figure 101. ADC Timing Diagram, First Conversion (Single Conversion Mode) First Conversion Next Conversion Cycle Number 1 2 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1 2 3 ADC Clock ADEN ADSC ADIF ADCH ADCL MSB of Result LSB of Result MUX and REFS Update Sample & Hold Figure 102. ADC Timing Diagram, Single Conversion One Conversion Conversion Complete MUX and REFS Update Next Conversion Cycle Number 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 3 ADC Clock ADSC ADIF ADCH ADCL MSB of Result LSB of Result Sample & Hold MUX and REFS Update Conversion Complete MUX and REFS Update 06 Obrázek: Figure 103. Doba ADC Timing převodu Diagram, Auto prvního Triggered Conversion a následujícího vzorku One Conversion Next Conversion 209 Cycle Number 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 ADC Clock Trigger Source

Vyjádření výsledku AD převodu nbitový jednoduchý AD převod konvertuje vstupní napětí lineálně mezi GND a V REF v 2 n krocích (tj. 0 až 2 n 1). Jednoduchý převod: ADCH : L = V IN V REF 2 n 1 VIN : napětí na zvoleném vstupním pinu, V REF : zvolené referenční napětí. Diferenční převod: ADCH : L = V P OS V NEG (2 n 1 1) GAIN V REF VP OS : napětí na neinvertujícím vstupním pinu, VNEG : napětí na invertujícím vstupním pinu, GAIN: zvolené zesílení, Výsledek ve dvojkovém doplňku (od 512 do +511).

Výběr signálů pro AD převod Lze vybrat různé vstupní a referenční signály pro převod. Volby referenčního napětí Externí napětí na pinu AREF, Úroveň napájecího napětí, Vnitřní zdroj reference 2,56V. Volby vstupních kanálů Individuální vstupy na pinech PA7:0 (ADC7:0), Některé předvolené kombinace dvou vstupních kanálů se zesílením 1, 10, 100 nebo 200. Příklad Jakou hodnotu obsahuje registrový pár ADCH:L, byl-li nastaven diferenční převod vstupů ADC3 = 300mV a ADC2 = 500mV, GAIN = 10 a vnitřní zdroj referenčního napětí V REF = 2, 56V.

Příklad užití AD převodu Řešení ADCH : L = Vpos Vneg V ref (2 n 1 1) GAIN ADCH : L = 0,30 0,50 2,56 511 10 = 399 = 0x0271 ADCH = 0x02 ADCL = 0x71 Příklad Navrhněte obvodové zapojení aplikace, kontrolující úroveň vstupního signálu a její následnou signalizaci pomocí LED diod. Nakreslete vývojový diagram této aplikace.

Příklad užití AD převodu Aplikace kontroluje úroveň napětí na pinu PA7 (ADC7) a signalizuje ji pomocí trojice LED diod LED1: VIN 2; 3 V, LED2: VIN < 2V, LED3: VIN > 3V. Podmínky v jazyce C if(adcw<(2/5*1023)) LED2 on; if(adcw>(3/5*1023)) LED3 on;... Proměnná ADCW obsahuje celou hodnotu po AD převodu.

Blokové schéma A/D převodníku Figure 98. Analog to Digital Converter Block Schematic ADC CONVERSION COMPLETE IRQ INTERRUPT FLAGS ADTS[2:0] 8-BIT DATA BUS REFS1 ADC MULTIPLEXER SELECT (ADMUX) REFS0 ADLAR MUX4 MUX3 MUX2 MUX1 MUX0 ADEN ADIE ADC CTRL. & STATUS REGISTER (ADCSRA) ADSC ADATE ADIF ADIF ADPS2 ADPS1 ADPS0 15 0 ADC DATA REGISTER (ADCH/ADCL) TRIGGER SELECT ADC[9:0] MUX DECODER AVCC CHANNEL SELECTION GAIN SELECTION PRESCALER START CONVERSION LOGIC AREF INTERNAL 2.56V REFERENCE 10-BIT DAC SAMPLE & HOLD COMPARATOR - + GND BANDGAP REFERENCE ADC7 ADC6 SINGLE ENDED / DIFFERENTIAL SELECTION ADC5 ADC4 POS. INPUT MUX ADC MULTIPLEXER OUTPUT ADC3 ADC2 ADC1 + - GAIN AMPLIFIER ADC0 NEG. INPUT MUX Operation The ADC converts an analog input voltage to a 10-bit digital value through successive approximation. The minimum value represents GND and the maximum value represents the voltage on the AREF pin minus 1 LSB. Optionally, AVCC or an internal 2.56V refer-

Analogový komparátor Analog Comparator Analogový komparátor porovnává neinvertovaný vstup AIN0 s invertovaným AIN1 (u ATmega16 piny PB2, PB3). Pokud je úroveň napětí AIN0 > AIN1, výstup komparátoru ACO=1 The (Analog Comparator Comparator compares the input Output). values on the positive Synchronizace pin AIN0 and negative pin AIN1. When the voltage on the positive pin AIN0 is higher than the voltage on výstupu komparátoru the negative apin ACO AIN1, the bitu Analog Comparator trvá 1 Output, 2 ACO, cykly. is set. The comparator s output can be set to trigger the Timer/Counter1 Input Capture function. In addition, the comparator can trigger a separate interrupt, exclusive to the Analog Comparator. The Může být user can generováno select Interrupt triggering přerušení on comparator output při překlopení rise, fall or toggle. A block komparátoru diagram of the comparator and its surrounding logic is shown in Figure 97. z 1 0, 0 1, nebo při libovolné změně. Figure 97. Analog Comparator Block Diagram (2) BANDGAP REFERENCE ACBG ACME ADEN ADC MULTIPLEXER OUTPUT (1) Notes: 1. See Table 80 on page 204.

Komparované signály Analogový komparátor umožňuje kromě porovnávání dvou vstupních signálů z pinů PB2 (AIN0) a PB3 (AIN1) ještě další možnosti. Neinvertovaný vstup Externí signál z pinu PB2, Vnitřní zdroj napět ové úrovně 1,23V. Invertovaný vstup Externí signál z pinu PB3, Libovolný vstupní kanál A/D převodníku, tj. signál z pinu PA7:0 (ADC7:0). Konkrétní vstup nastavuje multiplexer A/D převodníku. Příklad Navrhněte obvodové zapojení aplikace, kontrolující napětí na napájecí baterii. Pokles necht je signalizován blikající LED diodou. Nakreslete vývojový diagram této aplikace.

Příklad užití analogového komparátoru Monitorování stavu napájecí baterie pomocí komparátoru. Jestliže AIN1>AIN0, výstup komparátoru = 0, LED1 bliká. Nastavení odporových děličů AIN1 = R3 R3+R1 5V, AIN1 = 38 38+47 5V = 2, 2V, AIN0 = R4 R4+R2 V BAT, AIN0 = 15 15+26 V BAT, V BAT = 6V. Obsluha přerušení ANA COMP vect Vypnutí komparátoru, Zahájení blikání LED diody pomocí č/č 0.

Obsah přednášky Komunikace mezi LCD displejem a mikrokontrolérem Zpracování analogových signálů A/D převodník Analogový komparátor Vývoj aplikací pro mikrokontroléry Způsoby programování mikrokontrolérů Paralelní programování Programování pomocí JTAG ISP programování Zdroje informací Otázky a příklady k procvičení

Vývoj aplikací pro mikrokontroléry Obrázek: Překlad zdrojového kódu z jazyka C Převod zdrojového kódu z jazyka symbolických adres do strojového jazyka konkrétního MCU je vždy jednoznačný. Překladač z jazyka C hledá v kódu známé posloupnosti a ty nahrazuje sekvencí instrukcí různé překladače mohou stejný kód přeložit odlišně. Efektivita přeloženého kódu závisí na kvalitě (optimalizaci) překladače. Nekteré překladače jazyka C pro mikrokontroléry AVR GCC, avr-libc (http://winavr.sourceforge.net/), CodeVisionAVR (http://www.hpinfotech.ro/).

Překladače jazyka C pro AVR Přestože kód v jazyce C je přenosný mezi zařízeními (platformami), každý překladač může obsahovat speciální způsob syntaxe. Kód určený pro GCC tak nepůjde přeložit pomocí CodeVisionAVR, apod. Tabulka: Některé rozdíly v syntaxi mezi překladači Operace GCC, avr-libc CodeVisionAVR Obsluha přerušení ISR(INT0 vect) interrupt [EXT INT0] void ext int0 isr(void) Testování bitu/pinu bit is set(reg,bit) reg.bit==1 bit is clear(reg,bit) reg.bit==0 Cyklus s testováním loop until bit is set(reg,bit) while(reg.bit==1) loop until bit is clear(reg,bit) while(reg.bit==0) Vložení instrukce asm("sei") ; #asm("sei") ; Přiřazení hodnoty PORTB = 0x0f ; PORTB = 0x0f ;

Vývoj aplikací, simulátory Postup při vývoji aplikací: vytvoření zdrojového kódu aplikace a její odladění v simulátoru, příp. emulátoru; hardwarovou část je vhodné vyzkoušet na vývojové desce. Simulátor Simulace chování mikrokontroléru na odlišném zařízení (typ. PC), Simulátor musí obsahovat převod zdrojového kódu do strojového jazyka požadovaného mikrokontroléru, Spouštěcí a ladící programy: krokování programu, breakpointy,..., Omezené možnosti simulace okolního prostředí (tlačítka, přerušení,...), Nepracuje v reálném čase: je možné získat informaci o době výkonu programu v počtech cyklů hodinového signálu.

Vývoj aplikací, emulátor Emulátor Propojení PC + emulační koncovka s cílovým mikrokontrolérem, Obslužný software (na PC) obsahuje stejné náležitosti jako u simulátoru + odlišné spouštěcí a ladící nástroje, Umožňuje monitorování cílového mikrokontroléru během ladění (obsah registrů, zásobníku,...), Je možné plně odladit novou aplikaci včetně např. vazby na okoĺı, Pracuje v reálném čase.

Vývoj aplikací, vývojové desky Vývojová deska Hardwarové zařízení umožňující odladění aplikace včetně připojení základních periferíı (LED, tlačítka, LCD, relé,...), Může obsahovat patice pro odlišné mikrokontroléry, pájivé pole,..., V závislosti na aplikaci, není potřeba vytvářet finální zapojení před odladěním. Univerzální deska usnadňuje/urychluje vývoj nové aplikace. Vývojová prostředí zpravidla sdružují editační, překládací, ladící, programovací nástroje do jednoho celku AVR Studio (http://www.atmel.com/dyn/products/ tools_card.asp?tool_id=2725), CodeVisionAVR (http://www.hpinfotech.ro/), ImageCraft (http://www.imagecraft.com/), IAR Embedded Workbench (http://www.iar.com/),...

Obsah přednášky Komunikace mezi LCD displejem a mikrokontrolérem Zpracování analogových signálů A/D převodník Analogový komparátor Vývoj aplikací pro mikrokontroléry Způsoby programování mikrokontrolérů Paralelní programování Programování pomocí JTAG ISP programování Zdroje informací Otázky a příklady k procvičení

Způsoby programování mikrokontrolérů Programování, nebo tzv. download mikrokontrolérů znamená nakopírování vytvořené aplikace (nejčastěji ve formátu Intel HEX) do programové paměti (Flash) mikrokontroléru. (Programátory umožňují také načtení, verifikaci a smazání paměti.) Základní způsoby downloadu Paralelní programování, Rozhraní JTAG (umožňuje také ladění aplikace v cílovém MCU), Sériové programování (ISP In-System Programming) pomocí SPI rozhraní. Paralelní programování Nutný větší počet vodičů. Zpravidla pomocí externího programátoru - vyjmutí mikrokontroléru ze systému, což je komplikované, krkolomné, někdy nemožné, Rychlost downloadu je velká.

Paralelní programování Paralelní programování umožňuje zápis a verifikaci obsahu Flash, EEPROM, SRAM, pamět ových zámkových bitů, programovatelných propojek. Využívá vyššího programovacího napětí +12V. Tabulka: Význam vodičů Obrázek: Paralelní programování ATmega16 Označení Popis funkce RDY/BSY 0: busy, 1: ready OE Výstup povolen W R Zápis dat BS1 Výběr bytu 1. 0: LSB, 1: MSB XA0 Výběr akce 0 XA1 Výběr akce 1 P AGEL Výběr pamět ové stránky BS2 Výběr bytu 2. 0: LSB, 1: druhý MSB DAT A Obousměrná datová sběrnice

1. A: Load Command 0100 0000. 2. C: Load Data Low Byte. Bit n = 0 programs and bit n = 1 erases the Fuse bit. Paralelní 3. Set BS1 to 1 and programování, BS2 to 0. This selects high data programovatelné byte. propojky 4. Give WR a negative pulse and wait for RDY/BSY to go high. 5. Set BS1 to 0. This selects low data byte. Figure 131. Programming the Fuses DATA XA1 XA0 BS1 BS2 XTAL1 WR RDY/BSY RESET +12V OE A $40 C DATA Write Fuse Low byte Obrázek: Zápis nižšího bytu PAGEL propojek XX $40 DATA XX The algorithm for programming the Lock bits is as follows (refer to Programming the Flash on page 269 for details on Command and Data loading): 1. A: Load Command 0010 0000. 2. C: Load Data Low Byte. Bit n = 0 programs the Lock bit. 3. Give WR a negative pulse and wait for RDY/BSY to go high. A DAT A: Příkaz pro zápis do Write Fuse high byte propojek: 0b0100 0000. C XA1 : 0 = 10: Načtení příkazu. BS2 : 1 = 00: Výběr nižšího bytu. DAT A: Zapisovaný nižší byte propojek. W R: Negativní pulz pro zápis. RDY/BSY : Při high opět připraven komunikovat. XT AL1: Hodinové pulzy řídí komunikaci.

Programování pomocí JTAG rozhraní Programování pomocí rozhraní JTAG Rozhraní JTAG (standard IEEE 1149.1) umožňuje komunikovat s mikrokontrolérem během ladění. Je tak možné skenovat všechny vnitřní periférie, zjišt ovat/měnit obsah registrů, apod., Výkon programu lze krokovat (tj. spouštět a zastavovat) přímo na čipu, Mikrokontroléry AVR lze takto ovládat přímo z AVR Studia.

Sériové programování v systému Obrázek: Sériové programování Sériové programování v systému (ISP) Není nutné vyjímat mikrokontrolér ze systému, Neposkytuje možnost ladění aplikace, Využívá se komunikace po sériovém rozhraní SPI (Serial Peripheral Interface), Tento způsob dnes obsahují všechny mikrokontroléry, SPI je duplexní, synchronní přenos pomocí čtyř vodičů: SCK (hod. signál), M OSI (Master Out Slave In), MISO (Master In Slave Out), SS (Slave Select). Lze programovat programovou a EEPROM pamět. Hodnota na pinu RESET je připojena na GND (na rozdíl od paralelního programování).

Užití SPI komunikace Dvojice mikrokontrolérů, z nichž jeden je definován jako Master, druhý jako Slave (na obrázku jen jeden z nich). Pomocí SPI si posílají stavy přepínačů a na LED diodách je zobrazují. Obrázek: Apliace s SPI komunikací

Programování pomocí SPI Spojení Master (programuje) a Slave (je programováno) obsahuje dvojici posuvných registrů + generátor hodin od nadřazeného obvodu Master. Postup programování (komunikace Master Slave) 1) Zahájení komunikace SS = 0 pro požadovaný podřízený obvod Slave, 2) Příprava dat k přenosu do posuvných registrů, 3) Přenos je řízen (synchronizován) hodinovým signálem SCK od programovacího obvodu Master, 4) Od Master ke Slave probíhá komunikace vždy po vodiči MOSI, Od Slave k Master probíhá komunikace vždy po vodiči MISO, 5) Po odeslání bytu - zastavení hodin, možnost generování přerušení, 6) Po odeslání všech dat odpojení od obvodu Slave SS = 1.

Programování pomocí SPI SPI Serial Programming Characteristics Instrukce pro SPI programování obsahují ATmega16(L) 4 byty. Posílání dat zpravidla od MSB po LSB. For characteristics of the SPI module, see SPI Timing Characteristics on page 298. Figure 138. SPI Serial Programming Waveforms SERIAL DATA INPUT (MOSI) MSB LSB SERIAL DATA OUTPUT (MISO) MSB LSB SERIAL CLOCK INPUT (SCK) SAMPLE Programming via the JTAG Interface Programming Specific JTAG Instructions Programming through the JTAG interface requires control of the four JTAG specific pins: Obrázek: TCK, TMS, TDI and Časový TDO. Control diagram of the reset and SPI clock pins komunikace is not required. To be able to use the JTAG interface, the JTAGEN Fuse must be programmed. The device is default shipped with the fuse programmed. In addition, the JTD bit in MCUCSR must be cleared. Alternatively, if the JTD bit is set, the External Reset can be forced low. Then, the JTD bit will be cleared after two chip clocks, and the JTAG pins are available for programming. This provides a means of using the JTAG pins as normal port pins in running mode while still allowing In-System Programming via the JTAG interface. Note that this technique can not be used when using the JTAG pins for Boundary-scan or Onchip Debug. In these cases the JTAG pins must be dedicated for this purpose. As a definition in this datasheet, the LSB is shifted in and out first of all Shift Registers. The instruction register is 4-bit wide, supporting up to 16 instructions. The JTAG instructions useful for Programming are listed below. The OPCODE for each instruction is shown behind the instruction name in hex format. The text describes which Data Register is selected as path between TDI and TDO for each instruction.

Obsah přednášky Komunikace mezi LCD displejem a mikrokontrolérem Zpracování analogových signálů A/D převodník Analogový komparátor Vývoj aplikací pro mikrokontroléry Způsoby programování mikrokontrolérů Paralelní programování Programování pomocí JTAG ISP programování Zdroje informací Otázky a příklady k procvičení

Zdroje informací Matoušek, D. Práces mikrokontroléry ATMEL AVR; ATmega16. Ben technická literatura, Praha, 2006, ISBN 80-7300-174-8. Barnett, R., O Cull, L., Cox, S. Embedded C Programming and the Atmel AVR, 2e. Thomson Delmar Learning, New York, 2007, ISBN 1-4180-3959-4.

Zdroje informací Atmel Corporation. ATmega16, (listopad 2007). http://www.atmel.com/dyn/products/product_card. asp?part_id=2010 Fleury, P. Peter Fleury s Home Page, (listopad 2007). http://homepage.hispeed.ch/peterfleury/ C library for use with GCC on AVR. AVR Libc Home Page, (listopad 2007). http://www.nongnu.org/avr-libc/ Elnec. Oficiální stránky firmy Elnec, (listopad 2007). http://www.elnec.sk/

Obsah přednášky Komunikace mezi LCD displejem a mikrokontrolérem Zpracování analogových signálů A/D převodník Analogový komparátor Vývoj aplikací pro mikrokontroléry Způsoby programování mikrokontrolérů Paralelní programování Programování pomocí JTAG ISP programování Zdroje informací Otázky a příklady k procvičení

Otázky a příklady k procvičení 1. Zobrazte časový průběh signálů datové a řídicí sběrnice LCD displeje při vyslání instrukce pro smazání displeje. Je nastavena 8bitová komunikace mezi LCD a MCU. 2. Jaká je úroveň analogového signálu, jestliže po AD převodu je v registrovém páru ADCH:L uložena hodnota 0x004f a referenční napětí V REF = 2, 56V? 3. Charakterizujte výhody simulátorů a nevýhody emulátorů? 4. Nakreslete a popište propojení mikrokontroléru a tří podřízených obvodů pomocí SPI sběrnice. Kolik I/O pinů MCU je zapotřebí, aby MCU mohlo vždy komunikovat jen s jedním obvodem?