Mikrokontrolery AVR
architektura i narzędzia
inżynierskie
JM Elektronik – nowoczesny dystrybutor
• Dostawca profesjonalnych elementów elektronicznych od 1990 roku
• Jeden z największych polskich dystrybutorów elektroniki
• Jedyny polski dystrybutor Atmela
• System jakości ISO 9001:2000
• Gwarancja powtarzalnej wysokiej jakości elementów
• Członkostwo w grupie ATeG
• 16 biur sprzedaży w całej Europie • 60 pracowników
• Dział wsparcia technicznego
• Szkolenia
• Pomoc techniczna podczas realizacji projektów • Dział produkcji
Nasi dostawcy
Zaufało nam już wielu producentów elementów elektronicznych Jesteśmy oficjalnym dystrybutorem następujących firm:
• Elementy aktywne ATMEL, HOLTEK, MEMSIC, RECTRON
• Przetwornice DC/DC MURATA PS, AIMTEC
• Optoelektronika KYOCERA, FUTABA, EDISON-OPTO, SHARP, CHIMEI
• Elementy bierne EPCOS, ELNA, HAHN, HITANO, WIMA, PREMO, YAGEO
• Złącza i elektromechanika WIESON, SUYIN
• Komputery przemysłowe IEI TECHNOLOGY, ICP DAS
Atmel - sukces to innowacja
• Atmel (NASDAQ ATML)• Na rynku od 1984
• Kwatera główna San Jose – USA • Około 8000 pracowników
• Pięć fabryk na całym świecie • 27 biur projektowych
• Atmel – lider technologii
• Najbardziej innowacyjny producent układów scalonych • Pierwsza pamięć Flash
• Pierwszy mikrokontroler z pamięcią Flash
Praca magisterska i American dream
• Rok 1992 – Studenci Alf Egil Bogen i Vegard Wollan obronili pracę magisterską na Uniwersytecie w Trondheim
• Rok 1995 – początek centrum inżynierskiego Atmel w Trondheim
• Rok 1997 – pierwszy mikrokontroler AVR AT90S1200
• Rok 2009 – Atmel Norway zatrudnia 180 pracowników
• Alf Egil Bogen i Vegard Wollan są dyrektorami departamentów odpowiedzialnych za rozwój mikrokontrolerów w firmie Atmel
• Programowalna w systemie pamięć FLASH i EEPROM
• jest to pierwszy na świecie mikrokontroler w pełni programowalny w systemie (FLASH i EEPROM)
• Architektura zaprojektowana dla języków wysokiego poziomu
• AVR jest jedynym mikrokontrolerem dedykowanym dla programów pisanych w językach wysokiego poziomu (HLL ang. High Level
Language), a w szczególności dla języka C
• Interfejs JTAG
• pierwsze 8-bitowce z interfejsem JTAG
• Możliwość zmiany zawartości pamięci FLASH „w locie”
• AVR jest pierwszym mikrokontrolerem mogącym
przeprogramować swoją własną pamięć FLASH w czasie wykonywania programu
• AVR Studio
• darmowe oprogramowanie dostępne ze strony www.atmel.com
AVR - lider wśród mikrokontrolerów
• Architektura RISC z listą rozkazów CISC
• prosty zestaw instrukcji zarówno dla assemblera jak i kompilatorów C
• 32 rejestry robocze
• wszystkie rejestry bezpośrednio połączone z ALU
• Liniowa przestrzeń adresowa
• Wykonywanie rozkazów w jednym takcie zegarowym
• na jeden takt przypada jedna instrukcja
• przy oscylatorze 20MHz daje 20MIPS
• w jednym takcie wynik operacji wpisywany do rejestrów skąd pobrane zostały argumenty
• niski pobór mocy
• Architektura harvardzka
• szybki dostęp do pamięci
• Wsparcie dla operacji arytmetycznych 16- i 32-bitowych
• Do 50% mniejsza objętość kodu
• W porównaniu z innymi mikrokontrolerami 8-bitowymi
• mniejsza objętość kodu to nie tylko oszczędność Flash ale mniejsze zużycie prądu
• Pełna kontrola wielkości kodu
• Tryby adresowania dedykowane dla języka C
• Liniowa przestrzeń adresowa
• Prosty do przeniesienia kod w postaci gotowych procedur
• Time-to-Market
• Łatwość pisania kodu
• Zestaw instrukcji projektowany z dostawcą kompilatora IAR Systems
• pierwsze projekty na AVR powstały przed zakończeniem prac nad architekturą i listą rozkazów
• Aktywny udział dostawcy kompilatora podczas prac nad architekturą
• Potencjalne przeszkody i ograniczenia dla języków HLL zostały usunięte
• 3 data pointery X, Y, Z
• operacje zapisu z post- i preinkrementacją
Auto Increment/Decrement Example: Kod w C:
unsigned char *var1, *var2; *var1++ = *--var2;
Wygenerowany kod Assemblera:
LD R16,-X
ST Z+,R16
0,0 % 50,0 % 100,0 % 150,0 % 200,0 % 250,0 % 300,0 % mega128 MSP430 68HC12 ST7 M16C/1x-3x, M16C/6x eZ80 TMP68HC11 SAM8 H8/300 78K4 68HC08 8051 c80xx251 MAXQ PICmicro® 18 68HC16 PICmicro® 16, 17 COP8 ST five
N
aj
go
rz
ej
N
aj
le
pi
ej
Hardware Multiplier USART SPI TWI I/O pins SRAM A/D Converter OTP Memory Analog Comparator Register File CPU CORE Brown Out Detector Watchdog Analog Reference In- Circuit Emulator LCD driver Test Fixtures Programming Circuitry Output Driver Większość mikrokontrolerów ma tylko tę część Temperature Sensor EEPROM
Flash Hardware Multiplier TWI I/O pins Analog Comparator LCD driver Output Driver Reset Circuitry LCD Interface Boundary Scan JTAG On- Chip Debug Calibrated Oscillator In System Programming Programmable Watchdog Brown Out Detector
AVR ma wszystko w jednej strukturze
USART SPI EEPROM SRAM A/D Converter Pull- Ups On Demand High Current Outputs Register File CPU CORE Analog Reference Temperature Sensor
• Wbudowana pamięć Flash/RAM/EEPROM
• Sprzętowa mnożarka
• Wbudowany oscylator RC
• Timery 8- i 16-bitowe z funkcją Capture/Compare
• Przetworniki ADC z programowalnym stopniem wzmocnienia
• Komparatory analogowe
• Interfejsy komunikacyjne • USART (DALI)
• SPI (Serial Peripheral Interface)
• TWI (Two Wire Interface) kompatybilny z I2C
• USI (Universal Serial Interface)
• CAN
• USB
• Układy nadzoru
• Watchdog z autonomicznym oscylatorem
• Brown-Out Detector
• Power-On Reset
• Debugowanie
• kontrola wykonywanego programu z poziomu C i assemblera
• praca krokowa, pułapki...
• dostęp do pamięci mikrokontrolera
• Flash, EEPROM, RAM, podgląd zmiennych
• Możliwość debugowania wszystkich nowych AVR
• interfejs JTAG w dużych mikrokontrolerach
• w mniejszych interfejs debugWire
• dowolne napięcie zasilania i częstotliwość
• debugWire
• jednoprzewodowy interfejs do debugowania
• nie jest to układ ROM monitor
• funkcja dostępna w mikrokontrolerach do 16kB (+mega168)
• JTAG
• pełny interfejs JTAG
Technologia picoPower
• Kluczowe elementy• śpiący BOD (Brown Out Detector) • zasilanie 1.8V
• ulepszony oscylator kwarcowy 32kHz • zminimalizowany prąd upływności • odłączanie układów cyfrowych
na wejściach analogowych
• odłaczanie niewykorzystanych peryferii • bramkowanie sygnału zegarowego
• próbkowany odczyt pamięci Flash
• Technologia picoPower oznacza redukcję zużycia mocy nawet o 50% • Funkcjonalnie kompatybilne z układami nie-picoPower
TinyAVR – naprawdę znaczy wielki
• #1 w integracji układów peryferyjnych• Cechy układów TinyAVR
• Obudowy 6 – 32 pinów • Pamięć Flash 1 – 8 kB • Zalety rodziny TinyAVR
• ADC ze stopniem wzmacniacza • High Speed PWM (64MHz) • Zintegrowany EEPROM • Wewnętrzny oscylator RC • debugWire • Układy nadzorujące • Technologia picoPower • Układy z zasilaniem 0.9V
MegaAVR – ogromne możliwości
• Ogromne możliwości dla projektantów• Cechy układów MegaAVR
• Obudowy 32 – 100 pinów • Pamięć Flash 4 – 256 kB • Zalety rodziny MegaAVR
• Interfejsy komunikacyjne (USART, SPI, TWI) • Łatwość migracji między układami
• ADC ze stopniem wzmacniacza • High Speed PWM (64MHz)
• Zintegrowany EEPROM • Wewnętrzny oscylator RC • Real Time Clock
• JTAG
• Układy nadzorujące • Technologia picoPower
ASSP AVR – do zadań specjalnych
ASSP – Application Specific Standard Product
• Zintegrowany sterownik paneli LCD
• Układy ładowania akumulatorów Smart Battery
• AVR dla aplikacji energoelektronicznych
• Sterowanie silników
• Stateczniki dla lamp jarzeniowych
• Interfejs CAN dla motoryzacji
Xmega – kolejna generacja AVR
• Układy Xmega dedykowane dla aplikacji 8 i 16 bitowych
• 8 bitowy rdzeń
• Druga generacja picoPower
• Zasilanie od 1.6V
• 20% mniejsze pobór prądu • Zwiększona wydajność • 32 MIPS • Kontroler DMA • Event System • Ulepszone peryferia • Rozbudowana część analogowa • Crypto Engine
Nowości w układach Xmega
• Pamięci Flash 16kB – 256kB• Obudowy 44 – 100 pinów
• Kontroler zewnętrznej pamięci SDRAM
• Adresowanie do 128Mb
• Nowe przetworniki ADC
• Prędkość 2MSps (najszybszy konkurent 1MSps) • Rozdzielczość 12 bitów
• Przetwornik DAC
• Sprzętowy układ kryptograficzny
• AES z kluczem 128 bit • DES z kluczem 56 bit
• Priorytetowy system przerwań • Ogromna ilość interfejsów
• 8xUSART, 4xSPI, 4xTWI, IrDA
Event System
• Autonomiczna sieć połączeń między peryferiami
• Peryferia określają kiedy generować Event
• Przepełnieni timera, zmiana pinu, wynik ADC
• Kolejne peryferia reagują na Event
• Inkrementowanie timera, strat transmisji SPI, start ADC
• Zmniejszenie ilości przerwań – odciążenie CPU
• Przyśpieszenie reakcji na zdarzenia
• System pracuje bez udziału rdzenia
AVR Studio
• Zintegrowane środowisko programistyczne
• Edycja kodu • Assembler i C • Debugowanie kodu • Symulator • On Chip Debug • Współpraca z narzędziami sprzętowymi
• Wsparcie dla kompilatora GCC
Zestawy startowe
• STK500 • Interfejs RS232 • Możliwość rozszerzenia o dodatkowe nakładki • STK600 • Interfejs USB • Możliwość rozszerzenia o dodatkowe nakładkiProgramatory i debuggery
• AVRISPmkII• Pogramator ISP • AVRDragon
• Programator ISP, JTAG, równoległy
• Debugger JTAG i dWire (do 32kB Flash)
• JTAGICEmkII
• Programator ISP, JTAG, PDI • Debugger JTAG, dWire, PDI
• AVRONE!
• Programator ISP, JTAG, PDI • Debugger JTAG, dWire, PDI,
Koniecznie zajrzyj!
• Noty katalogowe, przykładowe aplikacje, instrukcje obsługi, FAQ
• www.atmel.com/products/avr/ • www.atmel.com/products/avr/applications.asp • www.avrtv.com • www.avrfreaks.net • forum dyskusyjne • przykładowe projekty • akademia AVR • Kompilatory • GNU GCC (darmowy) • IAR • Code Vision • Image Craft
• Newsletter JM - zapisz się już teraz
• Zakupy detaliczne