Кіріспе
Микроконтроллерлер отбасы
the series of AVR microcontrollers
AVR микроконтроллерлер сериясы. AVR – 1996 жылдан бері Atmel компаниясы әзірлеген, ал 2016 жылы Microchip Technology компаниясы сатып алған микроконтроллерлер отбасы. Бұл өзгертілген Гарвард архитектурасының 8 биттік RISC, бір чипті микробасқарушылары. AVR – бағдарлама сақтау үшін чиптегі флэш-жадты қолданған алғашқы микроконтроллерлер отбасыларының бірі, ол сол кездегі басқа микроконтроллерлерде қолданылған бір рет бағдарламаланатын ROM, EPROM немесе EEPROM-нан өзгеше. AVR микроконтроллерлері кіріктірілген жүйелерде көптеген қолданыс табады. Олар әсіресе хобби және оқу мақсатындағы кіріктірілген жүйелерде кеңінен қолданылады, олардың Arduino ашық аппараттық дамыту тақталарының көптеген серияларында болуы арқасында танымал болды.
Тарих
AVR архитектурасын Норвегия технология институтының (NTH) екі студенті – Альф Эгиль Боген және Вегард Волан жасаған. Atmel компаниясының мәлімдемесінше, AVR атауы аббревиатура емес және ешқандай нақты нәрсені білдірмейді. AVR құрушылары «AVR» терминінің мағынасына нақты жауап бермейді. Бұл мақалада «AVR» термині көбінесе Atmel AVR микроконтроллерлерінің 8 биттік RISC тізбегін білдіреді. Алғашқы AVR микроконтроллері (MCU) сол кезде Nordic VLSI деп аталған, қазір Nordic Semiconductor компаниясы болып табылатын Тронхеймдегі жергілікті ASIC үйінде жасалды, онда Боген мен Волан студент ретінде жұмыс істеді. Ол μRISC (Микро RISC) деп аталды және Nordic VLSI компаниясынан кремнийдік IP/құрылыс блогы ретінде қолжетімді болды. Технология Nordic VLSI компаниясынан Atmel компаниясына сатылғаннан кейін, ішкі архитектурасы Bogen және Wollan компаниялары Atmel Norway компаниясында, Atmel-дің еншілес компаниясында одан әрі дамытылды. Дизайнерлер IAR Systems компаниясының компиляторларын жазушыларымен тығыз жұмыс істеді, AVR командалық жиынтығы жоғары деңгейдегі тілдерді тиімді құрастыруды қамтамасыз етуі үшін. AVR тізбегінің алғашқы үлгілерінің бірі AT90S8515 болды, ол 40 контактілі DIP корпусында 8051 микроконтроллерімен бірдей, соның ішінде сыртқы мультиплекстелген адрестік және деректер шинасы бар еді. RESET желісінің полярлығы кері болды (8051-де белсенді жоғары RESET, ал AVR-де белсенді төмен RESET), бірақ одан басқа, қосылымдар бірдей болды. AVR 8 биттік микроконтроллер архитектурасы 1997 жылы ұсынылды. 2003 жылға қарай Atmel 500 миллион AVR флэш микроконтроллерін жеткізді. 2005 жылы жай электроникалық жобалар үшін әзірленген Arduino платформасы шығарылды және ATmega8 AVR микроконтроллерлерімен жабдықталды.
Құрылғының жалпы көрінісі
AVR – бұл өзгертілген Гарвард архитектурасы негізіндегі машина, онда бағдарлама мен деректер екі бөлек физикалық жад жүйесінде сақталады, олар әртүрлі адрестік кеңістіктерде көрінеді, бірақ арнайы командаларды пайдаланып бағдарлама жадынан деректерді оқуға мүмкіндік бар.
Құрылғы архитектурасы
AVR-лер 32 бір байттық тіркегішке ие және олар 8 биттік RISC құрылғылары ретінде жіктеледі. Flash, EEPROM және SRAM бір чипке біріктірілген, бұл көптеген қолданбаларда сыртқы жадтың қажеттілігін жояды. Кейбір құрылғыларда қосымша дерек жады немесе жадқа бейімделген құрылғыларды қосуға мүмкіндік беретін параллель сыртқы шина опциясы бар. Көбісі құрылғылардың (ең кішкентай TinyAVR чиптерін қоспағанда) үлкен сериялық EEPROM немесе флэш чиптерді қосу үшін пайдаланылатын сериялық интерфейстері бар.
Бағдарлама жады
Бағдарламалық нұсқаулар ұшпайтын флеш-жадта сақталады. Микроконтроллерлер 8 биттік болғанымен, әрбір нұсқау бір немесе екі 16 биттік сөзді пайдаланады. Бағдарлама жадының көлемі әдетте құрылғының атауында көрсетіледі (мысалы, ATmega64x сериясы 64 КБ флеш жадына ие, ал ATmega32x сериясы 32 КБ флеш жадына ие). Сыртқы бағдарламалық жадты қосу мүмкіндігі жоқ; AVR ядросы орындайтын барлық код микроконтроллердің флеш-жадында орналасуы тиіс. Дегенмен, бұл шектеу AT94 FPSLIC AVR/FPGA чиптеріне қатысты қолданылмайды.
Ішкі деректер жады
Деректер адрес кеңістігі регистрлік файлдан, кіріс-шығыс регистрлерінен және SRAM-нан құралады. Кейбір кіші модельдер бағдарламалық ROM-ды деректер адрес кеңістігіне бейімдейді, бірақ үлкен модельдер мұны жасамайды.
Ішкі тіркелімдер
AVR архитектурасының tinyAVR және megaAVR нұсқаларында жұмыс регистрлері алғашқы 32 дерек жады мекенжайы ретінде (000016–001F16) картаға түсіріледі, одан кейін 64 I/O регистрі (002016–005F16) орналасады. Көптеген шеткі құрылғылары бар құрылғыларда, осы регистрлерден кейін 160 «кеңейтілген I/O» регистрі келеді, олар тек жад картасы арқылы I/O ретінде қолжетімді (006016–00FF16). Нақты SRAM осы регистрлік бөлімдерден кейін 006016 мекенжайында басталады немесе «кеңейтілген I/O» құрылғыларында 010016 мекенжайында орналасады. Тіркелім файлына және алғашқы 64 I/O регистріне кіру үшін жеке адрестеу схемалары мен оңтайландырылған опкодтар болғанымен, олардың барлығын SRAM-дегідей адрестеуге және өңдеуге болады. tinyAVR нұсқаларының ең кішкентайлары тек 16 регистрден (r0-ден r15-ке дейін) тұратын қысқартылған архитектураны қолданады, олар жад орындары ретінде адрестеуге болмайды. I/O жады 000016 мекенжайынан басталады, содан кейін SRAM келеді. Бұған қоса, бұл құрылғыларда стандартты AVR нұсқаулық жиынтығынан шағын ауытқулар бар. Ең маңыздысы, тікелей жүктеу/сақтау нұсқаулары (LDS/STS) 2 сөзден (32 бит) 1 сөзге (16 бит) дейін азайтылды, бұл тікелей адрестелетін жадтың жалпы көлемін (I/O және SRAM қосындысы) 128 байтқа дейін шектеді. Керісінше, жанама жүктеу нұсқаулығының (LD) 16 биттік адрестік кеңістігі Flash және конфигурациялық биттер сияқты ұшпайтын жадты да қамтиды; сондықтан Бағдарламалық жадты жүктеу (LPM) нұсқаулығы қажет емес және алынып тасталды. (Толық ақпарат алу үшін Atmel AVR нұсқаулық жиынтығын қараңыз.) XMEGA нұсқасында жұмыс регистрлік файлы деректер адрестік кеңістігіне карталанбағандықтан, XMEGA жұмыс регистрлерін SRAM ретінде қарастыру мүмкін емес. Оның орнына, I/O регистрлері деректер адрестік кеңістігіне, адрестік кеңістіктің басынан бастап карталанған. Сонымен қатар, I/O регистрлеріне бөлінген деректер адрестік кеңістігінің көлемі 4096 байтқа дейін өсті (000016–0FFF16). Алайда, бұрынғы буындардағы сияқты, жылдам I/O манипуляциялау нұсқаулары тек алғашқы 64 I/O регистрлік орынға (биттік нұсқаулар үшін алғашқы 32 орынға) жете алады. I/O регистрлерінен кейін XMEGA сериясы деректер адрестік кеңістігінің 4096 байттық диапазонын бөліп қояды, оны ішкі EEPROM-ді деректер адрестік кеңістігіне карталау үшін пайдалануға болады (100016–1FFF16). Нақты SRAM осы диапазоннан кейін 200016 мекенжайынан басталады.
GPIO порттары
Кішкентай немесе мега AVR-дегі әрбір GPIO порты сегіз түйіске дейін басқарады және үш 8 биттік тіркеулермен басқарылады: DDRx, PORTx және PINx, мұнда x – порттың идентификаторы. DDRx: Дерек бағыты тіркеуі, түйістерді кіріс немесе шығыс ретінде конфигурациялайды. PORTx: Шығыс порты тіркеуі. Шығыс ретінде конфигурацияланған түйістердің шығыс мәнін орнатады. Кіріс ретінде конфигурацияланған түйістердегі жоғары көтеру резисторын қосу немесе өшіру мүмкіндігін береді. PINx: Кіріс тіркеуі, кіріс сигналын оқу үшін қолданылады. Кейбір құрылғыларда бұл тіркеуді түйісті ауыстыру үшін де пайдалануға болады: PINx битіне логикалық бір жазу, DDRx битінің орнатылуына қарамастан, PORTx-тегі сәйкес битті ауыстырады. Жаңа ATtiny AVR-лер, мысалы ATtiny817 және оның ұқсас түрлері, портты басқару тіркеулерін сәл өзгеше анықтайды. xmegaAVR құрылғыларында түрту/тарту, тотемдік тірек және жоғары көтеру конфигурациялары үшін қосымша тіркеулер бар.
EEPROM
AVR микробасқарушыларының көбі жартылай тұрақты деректерді сақтау үшін ішкі EEPROM-мен жабдықталған. Флэш-жад сияқты, EEPROM да электр қуаты жоқ болғанда мазмұнын сақтай алады. AVR архитектурасының көптеген нұсқаларында, бұл ішкі EEPROM жады микроконтроллердің адрестелетін жад кеңістігіне тікелей бейімделмейді. Оған тек сыртқы перифериялық құрылғыға қол жеткендей, арнайы көрсеткіш тіркелгіштері мен оқу/жазу командаларын пайдаланып қол жеткізуге болады, бұл EEPROM-ға басқа ішкі жадқа қарағанда әлдеқайда баяу қол жеткізуді қамтамасыз етеді. Дегенмен, SecureAVR (AT90SC) отбасының кейбір құрылғылары конфигурацияға байланысты деректер немесе бағдарламалық жадқа арнайы EEPROM бейімдеуін қолданады. XMEGA отбасы да EEPROM-ды деректер адрестік кеңістігіне бейімдеуге мүмкіндік береді. EEPROM-ға жазу саны шектеулі болғандықтан, Atmel өзінің деректер кестелерінде 100 000 жазу циклын көрсетеді. Сайып келгенде, дұрыс жобаланған EEPROM жазу процедурасы EEPROM жадының мекенжайындағы мазмұнды қажетті мазмұнмен салыстырып, тек қана мазмұн өзгертілуі қажет болған жағдайда жазу операциясын жүзеге асыру керек.
Бағдарламаны орындау
Atmel-дің AVR процессорлары екі сатылы, бір деңгейлі құбыржол архитектурасына ие. Бұл, келесі машиналық нұсқау, ағымдағы нұсқау орындалып жатқанда алынады дегенді білдіреді. Көптеген нұсқаулар орындалуына бір немесе екі тактылық цикл жеткілікті, бұл AVR-ді сегіз биттік микроконтроллерлердің арасында салыстырмалы түрде жылдам етеді. AVR процессорлары компиляцияланған C тіліндегі кодты тиімді орындауды ескере отырып жасалған және осы мақсат үшін бірнеше кіріктірілген нұсқаушылары бар.
Бағдарламалау интерфейстері
AVR чипіне бағдарламалық кодты жүктеудің көптеген жолдары бар. AVR чиптерін бағдарламалау әдістері әр AVR отбасысына қарай өзгереді. Төменде сипатталған әдістердің көпшілігі бағдарламалау режиміне кіру үшін RESET желісін пайдаланады. Чиптің кездейсоқ түрде осы режимге кірмеуі үшін RESET тірегі мен оң полярлы қуат көзі арасына тартылу резисторын қосу ұсынылады.
ISP
Жүйе ішінде бағдарламалау (ISP) әдісі SPI арқылы функционалды түрде жүзеге асырылады, сондай-ақ Reset желісімен жұмыс істеуді қамтиды. Егер AVR микроконтроллерінің SPI тістіктері ештеңеге бұзылмайтын болса, AVR чипін қайта бағдарламалау кезінде басылған платада (PCB) тіркелген күйде қалдыруға болады. Бұл үшін 6 тістікті коннектор және бағдарламалау адаптері ғана қажет. Бұл AVR микроконтроллерлерімен жұмыс істеудің ең көп таралған тәсілі. Atmel ICE құрылғысы немесе AVRISP mkII (ескі құрылғы) компьютердің USB портына қосылып, Atmel бағдарламалық қамтамасын пайдаланып жүйе ішінде бағдарламалауды жүзеге асырады. AVRDUDE (AVR Downloader/UploaDEr) Linux, FreeBSD, Windows және Mac OS X жүйелерінде жұмыс істейді және Atmel AVRISP mkII, Atmel JTAG ICE, ескі Atmel тізбектік порт негізіндегі бағдарламалаушылар, сондай-ақ әртүрлі үшінші тараптан алынған және қолмен жасалған бағдарламалаушыларды қоса алғанда, жүйе ішінде бағдарламалауға арналған әртүрлі аппараттық құралдарды қолдайды.
PDI
Бағдарламалау және жөндеу интерфейсі (PDI) – XMEGA құрылғыларын сыртқы бағдарламалау және чип ішінде жөндеуге арналған Atmel компаниясына тиесілі интерфейс. PDI барлық ұшпайтын жад (NVM) түрлерін жоғары жылдамдықпен бағдарламалауды қолдайды: флэш-жад, EEPROM, сақтандырғыштар, құлыптау биттері және пайдаланушы қолтаңбалары қатары. Бұл XMEGA NVM контроллеріне PDI интерфейсі арқылы қол жеткізу және NVM контроллерінің командаларын орындау арқылы іске асырылады. PDI – сағаттық сигналды қабылдау үшін Reset пинін (PDI CLK) және деректерді қабылдау/жіберу үшін арналған жеке деректер пинін (PDI DATA) пайдаланатын 2 пинді интерфейс.
UPDI
Бірыңғай бағдарламалау және жөндеу интерфейсі (UPDI) – жаңа ATtiny және ATmega құрылғыларын сырттан бағдарламалау және чип ішінде жөндеуге арналған бір сымды интерфейс. Atmel ICE және PICkit 4 UPDI чиптерін бағдарламалай алады. Сондай-ақ, jtag2updi арқасында Arduino немесе 1 кОм резистормен біріктірілген TX және RX тістіктері бар стандартты USB UART адаптерін, сондай-ақ Microchip ұсынған pymcuprog құралын пайдалануға болады.
Жоғары кернеулі сериялық
Жоғары кернеулі сериялық бағдарламалау (HVSP) көбінесе кішігірім AVR микроконтроллерлерінде қосымша режим болып табылады. 8 түйінді AVR корпусында AVR-ді бағдарламалау режиміне қою үшін көптеген ерекше сигнал комбинациялары болмайды. Бірақ 12 вольттық сигналды AVR тек бағдарламалау барысында ғана көруі керек, ал қалыпты жұмыс кезінде ешқашан көруі тиіс емес. Жоғары кернеу режимі сондай-ақ, кейбір құрылғыларда, қайта орналастыру (reset) түйіні сақтандырғыштар арқылы өшірілген жағдайларда да қолданылуы мүмкін.
Жоғары кернеуді параллель
Жоғары кернеулі параллель бағдарламалау (HVPP) – «соңғы құрал» саналады және AVR чипіндегі бұрыс сақтандырғыш параметрлерін түзетудің жалғыз мүмкіндігі болуы мүмкін.
Жүктеу модулі
AVR модельдерінің көпшілігі 256 байттан 4 КБ-қа дейінгі қайта бағдарламалау коды орналасатын жүктеуші аймағын резервтеуге мүмкіндік береді. Қайта қосылғанда, жүктеуіш бірінші болып іске қосылады және пайдаланушы бағдарламалағандай қайта бағдарламалау қажеттігін немесе негізгі қолданбаға өтуді анықтайды. Код қол жетімді кез келген интерфейс арқылы қайта бағдарламаланады, немесе ол PXE сияқты Ethernet адаптері арқылы шифрланған екілік файлды оқи алады. Atmel әртүрлі шина интерфейстеріне қатысты қолданбалық ескертпелер мен кодтарды ұсынады.
ROM
AT90SC сериялы AVR микроконтроллерлері бағдарламалық жад ретінде флеш емес, фабрикалық маскалы ROM-мен шығарылады. Маскалы ROM-ның жоғары бастапқы құны және ең төменгі тапсырыс көлемі болғандықтан, ол тек көптеп өндірілетін өнімдер үшін экономикалық тұрғыдан тиімді.
Қалқымалы
aWire – жаңа UC3L AVR32 құрылғыларында қолжетімді жаңа бір сымды жөндеу интерфейсі.
Қателерді жою интерфейстері
AVR бірнеше қате табу опцияларын ұсынады, көбінесе чип мақсатты жүйеде болғанда чиптің өзінде қате табуға қатысты.
debugWIRE- дың қатесі
debugWIRE – Atmel-дің микроконтроллердің бір ғана тірегі арқылы чиптегі қателерді жою мүмкіндігін қамтамасыз ететін шешімі. Бұл әсіресе JTAG үшін қажетті төрт "бос" тірегі бар емес, аз тіректік бөліктер үшін өте пайдалы. JTAGICE mkII, mkIII және AVR Dragon debugWIRE-ды қолдайды. debugWIRE бастапқы JTAGICE нұсқасынан кейін әзірленді, және қазір оның көшірмелері де қолдайды.
STK600 бастауыш жиынтығы
STK600 бастау жиынтығы және әзірлеу жүйесі STK500-дің жаңартылған нұсқасы болып табылады. STK600 базалық тақта, сигналдарды бағыттау тақтасы және мақсатты тақтадан тұрады. Базалық тақта STK500-ге ұқсас, себебі ол қуат көзі, жүйе ішінде бағдарламалау үшін такта жиілігін, RS 232 портын және CAN (Controller Area Network, автомобиль стандарты) портын DE9 коннекторлары арқылы ұсынады, сондай-ақ мақсатты құрылғыдан барлық GPIO сигналдары үшін тіреу тізбегін қамтамасыз етеді. Мақсатты тақталарда тақтаның түріне байланысты DIP, SOIC, QFN немесе QFP корпустарына арналған ZIF ұялары бар. Сигналдарды бағыттау тақтасы базалық тақта мен мақсатты тақтаның арасында орналасқан және сигналдарды құрылғы тақтасындағы тиісті түйіршікке бағыттайды. ZIF ұясындағы құрылғыға байланысты бір мақсатты тақтамен бірнеше түрлі сигналдарды бағыттау тақталарын пайдалануға болады. STK600 жүйе ішінде USB арқылы компьютерден бағдарламалауға мүмкіндік береді, ал RS 232 порты мақсатты микроконтроллерге қолжетімді болады. STK600-де "RS 232 spare" деп белгіленген 4 түйіршіктік коннектор кез келген TTL деңгейіндегі USART портын чиптегі MAX232 чипіне қосып, сигналдарды RS 232 деңгейіне түрлендіреді. RS 232 сигналдары DB 9 коннекторының RX, TX, CTS және RTS түйіршіктеріне қосылады.
AVRISP және AVRISP mkII
AVRISP және AVRISP mkII – барлық AVR микроконтроллерлерін ICSP арқылы бағдарламалауға мүмкіндік беретін, қолжетімді құралдар. AVRISP компьютермен тізбекті порт арқылы қосылады және қуатын бағдарланатын жүйеден алады. AVRISP «стандартты» ICSP қосқыштарының екеуін де қолдануға мүмкіндік береді: 10 немесе 6 контактілі жалғастырғыштарды. AVRISP mkII USB арқылы компьютерге қосылады және USB-ден қуат алады. Мөлдір корпустан көрінетін жарықдиодтар бағдарланатын жүйенің қуат күйін көрсетеді. AVRISP mkII драйверлік/буферлік микросхемалары болмағандықтан, SPI желілерінде көптеген жүктемелері бар бағдарланатын платаларды бағдарламалауда қиындықтар туындауы мүмкін. Мұндай жағдайларда, көбірек ток бере алатын бағдарламалаушы қажет. Балама ретінде, егер SPI желілеріне әрбір перифериялық құрылғыдан бұрын төмен кедергілі (~150 Ом) жүктемені шектеуге арналған резисторлар орналастырылса, AVRISP mkII-ді де пайдалануға болады. AVRISP және AVRISP mkII енді өндірілмейді, олардың өнімдері Microchip веб-сайтынан алынып тасталды. 2019 жылдың шілдесіне дейін AVRISP mkII әлі де көптеген дистрибьюторларда қолда бар. Сондай-ақ, үшінші тараптан жасалған клондары да бар.
AVR Dragon (АВР Ажырауы)
Atmel Dragon - USB арқылы компьютерге қосылатын, қолжетімді құрал. Dragon JTAG, HVP, PDI немесе ICSP арқылы барлық AVR микроконтроллерлерін бағдарламалай алады. Dragon сонымен қатар JTAG, PDI немесе debugWire арқылы барлық AVR микроконтроллерлерін түзетуге мүмкіндік береді; AVR Studio 4.18 нұсқасында 32 КБ немесе одан аз бағдарламалық жадысы бар құрылғыларға қатысты бұрынғы шектеу алынып тасталды. Dragon-да 8, 28 немесе 40 қосқышты AVR микроконтроллерін, соның ішінде қуат және бағдарламалау қосқыштарына қосылуға арналған кішкентай прототиптік аймақ бар. Қосымша схемалар үшін арнайы орын қарастырылмаған, бірақ оны "Dragon Rider" деп аталатын үшінші тарап өнімі қамтамасыз ете алады.
Сот отырысы
JTAG In Circuit Emulator (JTAGICE) жөндеу құралы JTAG интерфейсі бар AVR микроконтроллерлерінің чиптік жөндеуін (OCD) қолдайды. Алғашқы JTAGICE (кейде кері күшпен JTAGICE mkI деп аталады) компьютермен байланыс үшін RS 232 интерфейсін пайдаланады және тек JTAG интерфейсіне ие AVR микроконтроллерлерін ғана бағдарламалай алады. JTAGICE mkI енді өндірілмейді, бірақ оның орнына JTAGICE mkII құралы шығарылды.
МІІІІІІІІІІІІІІІІІІІІІІІІІІІІ
JTAGICE mkII жөндеу құралы SPI, JTAG, PDI және debugWIRE интерфейстері бар AVR микроконтроллерлерінің чиптік жөндеуін (OCD) қолдайды. DebugWire интерфейсі тек бір түйреуіш (Reset pin) арқылы жөндеуге мүмкіндік береді, бұл аз түйреуіші бар микроконтроллерлерде іске қосылған бағдарламаларды жөндеуге ыңғайлы жағдай жасайды. JTAGICE mkII USB арқылы қосылады, бірақ жеке қуат көзін қажет ететін тізбектік порт арқылы қосылудың басқа да мүмкіндігі бар. JTAG-дан өзге, mkII ISP бағдарламалауды да қолдайды (6 немесе 10 түйреуішті адаптерлерді пайдаланып). USB және тізбектік байланыстар STK500 протоколының бір түрін қолданады.
3-ҚАБАР
JTAGICE3, mkII құрылғысын одан да күшті түзету мүмкіндіктерімен және жылдам бағдарламалаумен жаңартады. Ол USB арқылы қосылады және JTAG, aWire, SPI және PDI интерфейстерін қолдайды. Жинапқа көптеген интерфейс тіркемелерімен пайдалануға болатын бірнеше адаптер кіреді.
AVR 1-ші!
AVR ONE! – бұл On Chip Debug мүмкіндігі бар барлық Atmel 8 биттік және 32 биттік AVR құрылғыларын әзірлеуге арналған кәсіби құрал. Ол SPI, JTAG, PDI және aWire бағдарламалау режимдерін, сондай-ақ debugWIRE, JTAG, PDI және aWire интерфейстерін қолдап, қателерді жоюға мүмкіндік береді.
Көпшілікке таныстыру тақтасы
AVR Butterfly демонстрациялық тақтасы – Atmel AVR ATmega169V микроконтроллерімен жұмыс істейтін, батареямен қуатталатын дербес компьютер. Ол AVR отбасын, әсіресе сол кезде жаңа болған LCD интерфейсін көрсету үшін жасалған. Тақтада LCD экраны, джойстик, динамик, тізбектік порт, нақты уақыт сағаты (RTC), флэш-жад чипі, сондай-ақ температура және кернеу сенсорлары бар. AVR Butterfly-дің алдыңғы нұсқаларында CdS фоторезисторы болған, бірақ RoHS талаптарына сәйкес келу үшін 2006 жылдың маусымынан кейін шығарылған тақталарда ол жоқ. Шағын тақтаның артқы жағында жеңіл киюге арналған штрипка бар, оны белгі ретінде тағуға болады. AVR Butterfly микроконтроллердің мүмкіндіктерін көрсетуге арналған бағдарламалық жасақтамамен алдын ала жүктелген. Зауыттық микропрограмма сіздің атыңызды көрсетуге, сенсор көрсеткіштерін және уақытты шығаруға мүмкіндік береді. AVR Butterfly-де дыбыстар мен музыканы қайта жаңғыртуға қолданылатын пьезоэлектрлік түрлендіргіш те бар. AVR Butterfly 14 сегментті, алты әріп-сандық символдан тұратын дисплейді іске қосу арқылы LCD интерфейсін басқаруды көрсетеді. Дегенмен, LCD интерфейсі көптеген кіріс-шығыс порттарын (I/O) пайдаланады. Butterfly-дің ATmega169 процессоры 8 МГц дейін жете алады, бірақ батырма тәрізді батареяның қызмет ету мерзімін ұзарту үшін бағдарламалық жасақтамамен 2 МГц-ке орнатылған. Алдын ала орнатылған жүктөө бағдарламасы тақтаны стандартты RS 232 тізбектік порты арқылы пайдаланушылардың тегін Atmel IDE құралдарымен жаза алатын жаңа бағдарламалармен қайта бағдарламалауға мүмкіндік береді.
AT90USBKey
Бұл визит карточкасының жартысына жуық көлемдегі шағын тақта, AVR Butterfly-ден сәл қымбат. Ол AT90USB1287, USB On The Go (OTG) қолдауы, 16 МБ DataFlash, светодиодтар, кішкентай джойстик және температура сенсорымен жабдықталған. Тақтаға бағдарламалық қамтамасыз ету кіреді, ол оны USB жаппай сақтау құрылғысы (оның құжаттамасы DataFlash-те сақталады), USB джойстигі және тағы да басқалар ретінде жұмыс істеуге мүмкіндік береді. USB хост мүмкіндігін қолдау үшін оны батареядан қуаттандыру қажет, бірақ USB перифериялық құрылғысы ретінде жұмыс істегенде тек USB арқылы берілетін қуат жеткілікті. Тек JTAG порты ғана стандартты 2,54 мм аралықпен жасалған, ал қалған AVR I/O порттарына 1,27 мм аралықпен жасалған кішірек қосқыштар қажет. AVR Dragon процессорды бағдарламалау және түзету мүмкіндігіне ие, себебі 32 КБ шектеуі AVR Studio 4.18 нұсқасында алынып тасталды, сондай-ақ JTAGICE mkII процессорды бағдарламалау және түзетуге қабілетті. Процессорды Windows немесе Linux жүйесінен USB арқылы, USB "Device Firmware Update" протоколын пайдаланып бағдарламалауға болады. Atmel құрылғымен бірге меншік бағдарламаларын (көз коды қоса берілген, бірақ таратылуы шектелген) және USB протоколы жиынтығын ұсынады. LUFA – USBKey және басқа 8 биттік USB AVR микроконтроллерлері үшін үшінші тараптың тегін бағдарламалық жасақтамасы (MIT лицензиясы) USB протоколы жиынтығы.
Raven сымсыз жиынтығы
RAVEN жиынтығы Atmel-дің IEEE 802.15.4 чипсеттерін пайдаланып, Zigbee және басқа сымсыз протоколдарды қолдайтын сымсыз әзірлемелерді жүзеге асыруға мүмкіндік береді. Ол екі қуатты сымсыз Butterfly картасынан және сымсыз USBKey құрылғысынан тұрады, құны шамамен олармен бірдей (100 АҚШ долларынан кем). Барлық тақталар JTAG негізіндегі әзірлемелерді қолдайды. Жинақтың құрамына екі AVR Raven тақтасы кіреді, олардың әрқайсысы IEEE 802.15.4 стандартын қолдайтын (және тегін лицензияланған Zigbee протоколымен үйлесімді) 2,4 ГГц трансивермен жабдықталған. Радиомодульдер ATmega1284p процессорларымен басқарылады, ал оларды ATmega3290p процессорымен басқарылатын жеке сегментті LCD дисплейі қолдайды. Raven жиынтығының перифериялық құрылғылары Butterfly жиынтығына ұқсас: пьезодинамик, үлкен сыйымдылығы бар DataFlash, сыртқы EEPROM, сенсорлар, RTC үшін 32 кГц кристаллы және т.б. Бұл құрылғылар қашықтан сенсорлық түйіндерді әзірлеу, релелерді басқару немесе басқа да қажеттіліктер үшін пайдаланылады. USB стигі USB хостымен және 2,4 ГГц сымсыз байланыс арналарымен байланыс үшін AT90USB1287 микроконтроллерін пайдаланады. Олар сыртқы батареяларға емес, хосттан алатын қуатқа сүйене отырып, қашықтағы түйіндерді бақылау және басқару үшін арналған.
Үшінші тарап бағдарламашылары
AVR үшін үшінші тараптан дамытылған бағдарламалау және қателерді жою құралдарының кең ассортименті қолжетімді. Бұл құрылғылар түрлі интерфейстерді пайдаланады, оның ішінде RS 232, дербес компьютердің параллель порты және USB.
Қолданылуы
AVR-лер қауіпсіздік, қауіпсіздік, қуат беру және ойын-сауық жүйелері сияқты автомобильдердегі әртүрлі қолданыстарда қолданылған. Atmel жақында әзірлеушілерге автомобильдік қолданыстарда көмектесу үшін "Atmel Automotive Compilation" атты жаңа басылымды ұсынды. Қазіргі қолданысқа BMW, Daimler Chrysler және TRW кіреді. Arduino физикалық есептеу платформасы ATmega328 микроконтроллеріне негізделген (Diecimila нұсқаларынан бұрынғыларында ATmega168 немесе ATmega8). Көбірек түйіршіктер мен жад мүмкіндіктеріне ие ATmega1280 және ATmega2560 құрылғылары да Arduino Mega платформасын әзірлеу үшін қолданылған. Arduino тақталарын оның тілімен және IDE-мен немесе C, ассемблер сияқты дәстүрлі бағдарламалау орталарымен, жай ғана стандартталған және кеңінен қол жетімді AVR платформалары ретінде пайдалануға болады. USB-не негізделген AVR-лер Microsoft Xbox қол басқару құралдарында қолданылған. Басқару құралдары мен Xbox арасындағы байланыс USB арқылы жүзеге асырылады. Cubloc, gnusb, BasicX, Oak Micros, ZX Microcontrollers және myAVR сияқты хоббишілер, робот жасаушылар, тәжірибешілер және шағын жүйелерді әзірлеушілер үшін арналған AVR-не негізделген микроконтроллер тақталарын көптеген компаниялар шығарады. Сондай-ақ, Arduino-мен үйлесімді тақталардың үлкен қауымдастығы бар. Schneider Electric әртүрлі қозғалыс қолданыстары үшін Atmel AVR Core және озық қозғалыс контроллерін қамтитын M3000 мотор және қозғалыс басқару чипін өндірген, бірақ ол тоқтатылды.
FPGA клондары
Ашық кодты қауымдастықта FPGA-ның танымалдылығы артуымен бірге, адамдар AVR нұсқаулар жиынтығымен үйлесімді ашық кодты процессорларды жасауды бастады. OpenCores веб-сайтында келесі маңызды AVR клондарының жобалары тізімделген:
pAVR, VHDL тілінде жазылған, түпнұсқа AVR процессорында кездеспейтін, мысалы, тереңдеген конвейерлендіру сияқты әдістерді қолдану арқылы ең жылдам және мүмкіндіктері жағынан толыққанды AVR процессорын құруға бағытталған. avr core, VHDL тілінде жазылған, ATmega103-ке мүмкіндігінше жақын болуға ұмтылған клон. Navré, Verilog тілінде жазылған, барлық Classic Core нұсқауларын іске асырады және жоғары өнімділікке және ресурстарды аз пайдалануға бағытталған. Ол үзілістерді қолдамайды. softavrcore, Verilog тілінде жазылған, AVR5-ке дейінгі AVR нұсқауларын іске асырады, үзілістерді, сондай-ақ автоматты үзіліс растауын, ұйықтау режимі арқылы қуатты үнемдеуді, және бірқатар шеткі интерфейстер мен аппараттық үдеткіштерді (мысалы, UART, SPI, циклдық артық кодты тексеру блогы және жүйелік таймерлер) қолдайды. Бұл шеткі құрылғылар осы ядроға қалай қосылып, конфигурацияланатынын көрсетеді. Жинамада, ядроны + шеткі құрылғыларды пайдалануға мысал ретінде толық мүмкіндіктері бар FreeRTOS порты да қол жетімді. Доктор Юрген Сауерманның VHDL тілінде жазған opencores жобасының CPU лекциясында толық AVR негізіндегі жүйе-чипін (SoC) қалай жобалау керектігі егжей-тегжейлі түсіндіріледі.
Басқа сатушылар
Atmel компаниясы өндірген чиптерге қоса, LogicGreen Technologies компаниясынан да клондар қол жетімді. Бұл бөлшектер толыққанды клондар емес – олар "клондары" болып табылатын чиптерде жоқ бірнеше мүмкіндіктерге ие, сондай-ақ жоғары максималды сағаттық жиіліктері бар. Бірақ оларды бағдарламалау үшін ISP орнына SWD (Serial Wire Debug, ARM-ның JTAG нұсқасы) қолданылады, демек, бағдарламалау үшін басқа құралдар қажет. ATmega архитектурасын қолданатын микроконтроллерлер Ресейдің Воронеж қаласындағы NIIET институтында 1887 сериялы интегралдық схемалардың құрамында өндіріледі. Олардың ішінде 1887ВЕ7Т (1887ВЕ7Т) белгісімен ATmega128 да бар.