Mikrokontrolery AVR architektura i narzędzia inżynierskie Marcin Korus, JM Elektronik
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
JM Elektronik kompleksowa obsługa
Nasi dostawcy Zaufało nam już wielu producentów elementów elektronicznych Jesteśmy oficjalnym dystrybutorem następujących firm: Elementy aktywne Przetwornice DC/DC Optoelektronika Elementy bierne Złącza i elektromechanika Komputery przemysłowe Drukarki termiczne ATMEL, HOLTEK, MEMSIC, RECTRON MURATA PS, AIMTEC KYOCERA, FUTABA, EDISON-OPTO, SHARP, CHIMEI EPCOS, ELNA, HAHN, HITANO, WIMA, PREMO, YAGEO WIESON, SUYIN IEI TECHNOLOGY, ICP DAS CUSTOM ENGINEERING
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 Najlepsza technologia układów niskomocowych picopower
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
AVR - lider wśród mikrokontrolerów 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
Mikrokontroler RISC 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
Gęstość kodu 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
Gęstość 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
Porównanie objętości kodu ST five COP8 PICmicro 16, 17 68HC16 PICmicro 18 MAXQ c80xx251 Najgorzej 8051 68HC08 78K4 H8/300 SAM8 TMP68HC11 ez80 M16C/1x-3x, M16C/6x ST7 68HC12 MSP430 mega128 Najlepiej 0,0 % 50,0 % 100,0 % 150,0 % 200,0 % 250,0 % 300,0 %
Schemat blokowy AVR
AVR - kompletny System On Chip Temperature Sensor Analog Reference TWI Hardware Multiplier Analog Comparator A/D Converter USART SPI OTP Memory CPU CORE SRAM Register File I/O pins EEPROM Brown Out Detector Output Driver Watchdog Większość mikrokontrolerów ma tylko tę część In- Circuit Emulator Programming Circuitry Test Fixtures LCD driver
AVR - kompletny System On Chip TWI USART SPI Temperature Sensor Hardware Multiplier Analog Comparator A/D Converter Flash CPU CORE Register File EEPROM SRAM I/O pins Brown Out Detector Reset Circuitry Programmable Watchdog On- Chip Debug JTAG Analog Reference Boundary Scan Pull- Ups On Demand High Current Outputs Calibrated Oscillator In System Programming LCD Interface Output Driver AVR ma wszystko w jednej strukturze LCD driver
Wszystko na pokładzie 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 programu 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 funkcja dostępna we wszystkich mega AVR (poza rodziną megax8)
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 Obecnie najbardziej energooszczędna technologia wśród mikrokontrolerów
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 Interfejs USB (Device i Host OTG)
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 Duża liczba interfejsów
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 Unifikacja peryferii Łatwość pisania kodu
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 Pozostaje aktywny w stanie Idle
Narzędzia programistyczne
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 Darmowe
Zestawy startowe STK500 Interfejs RS232 Możliwość rozszerzenia o dodatkowe nakładki STK600 Interfejs USB Możliwość rozszerzenia o dodatkowe nakładki
Programatory 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, Nexus Class 3
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 www.seguro.pl
Kilka prawd Inżynierowie używają języka C Bascom nie jest narzędziem inżyniera Oryginalne narzędzia nie są drogie Język angielski nie jest językiem obcym Wasz sukces zależy od was
Dziękuję za uwagę.