Mikrokontrolery AVR techniczne aspekty programowania

Podobne dokumenty
ISP ADAPTER. Instrukcja obsługi rev.1.1. Copyright 2009 SIBIT

Programator mikrokontrolerów AVR

MikloBit ul. Cyprysowa 7/ Jaworzno. rev MB-AVR-ISP programator

Moduł prototypowy X3-DIL64 z procesorem ATxmega128A3U-AU

Instrukcja użytkownika

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Instrukcja Użytkownika

Programator procesorów rodziny AVR AVR-T910

Programator ICP mikrokontrolerów rodziny ST7. Full MFPST7. Lite. Instrukcja użytkownika 03/09

Instrukcja użytkownika

Wbudowane układy komunikacyjne cz. 1 Wykład 10

AVR DRAGON. INSTRUKCJA OBSŁUGI (wersja 1.0)

ZL8AVR. Płyta bazowa dla modułów dipavr

Zestaw uruchomieniowy z mikrokontrolerem LPC1114 i wbudowanym programatorem ISP

LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2

MikloBit ul. Cyprysowa 7/ Jaworzno. JTAG + ISP dla AVR. rev

Programator ZL2PRG jest uniwersalnym programatorem ISP dla mikrokontrolerów, o budowie zbliżonej do STK200/300 (produkowany przez firmę Kanda).

SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701. SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701.

micro Programator ISP mikrokontrolerów AVR zgodny z STK500v2 Opis Obs³ugiwane mikrokontrolery Wspó³praca z programami Podstawowe w³aœciwoœci - 1 -

Programator procesorow AVR do kompilatora BASCOM AVR (zgodny z STK200)

Generator tonów CTCSS, 1750Hz i innych.

LITEcompLPC1114. Zestaw ewaluacyjny z mikrokontrolerem LPC1114 (Cortex-M0) Sponsorzy:

Projektowanie urządzeń mikroprocesorowych cz. 2 Wykład 4

Wstęp. Opis ATMEGA128 MINI MODUŁ VE-APS-1406

UNO R3 Starter Kit do nauki programowania mikroprocesorów AVR

Wyniki (prawie)końcowe - Elektroniczne warcaby

STM32Butterfly2. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

SML3 październik

KAmduino UNO. Płytka rozwojowa z mikrokontrolerem ATmega328P, kompatybilna z Arduino UNO

KAmduino UNO. Rev Źródło:

Płytka uruchomieniowa AVR oparta o układ ATMega16/ATMega32. Instrukcja Obsługi. SKN Chip Kacper Cyrocki Page 1

Kurs Elektroniki. Część 5 - Mikrokontrolery. 1/26

Interfejs SPI do programatora PUNCH

Instrukcja użytkownika

Edukacyjny sterownik silnika krokowego z mikrokontrolerem AT90S1200 na płycie E100. Zestaw do samodzielnego montażu.

Instrukcja użytkownika

Uniwersalna płytka generatora tonów CTCSS, 1750Hz i innych.

Generator tonów CTCSS.

ZL9AVR. Płyta bazowa dla modułów ZL7AVR (ATmega128) i ZL1ETH (RTL8019)

STM32 Butterfly. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

ZL4PIC. Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC

WYKŁAD 5. Zestaw DSP60EX. Zestaw DSP60EX

dokument DOK wersja 1.0

ARS3 RZC. z torem radiowym z układem CC1101, zegarem RTC, kartą Micro SD dostosowany do mikro kodu ARS3 Rxx. dokument DOK wersja 1.

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

KOMUNIKACJA Z OTOCZENIEM MIKROKONTROLERA

E-TRONIX Sterownik Uniwersalny SU 1.2

Komunikacja w mikrokontrolerach Laboratorium

Wykorzystanie standardu JTAG do programowania i debugowania układów logicznych

Kod produktu: MP01611

INSTRUKCJA OBSŁUGI.

ZL15AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega32

1.1 Co to jest USBasp? Parametry techniczne Obsługiwane procesory Zawartość zestawu... 4

LITEcomp. Zestaw uruchomieniowy z mikrokontrolerem ST7FLITE19

Zaliczenie Termin zaliczenia: Sala IE 415 Termin poprawkowy: > (informacja na stronie:

INSTRUKCJA Płytka uruchomieniowa EvB 4.3

ZL10PLD. Moduł dippld z układem XC3S200

EGMONT INSTRUMENTS ZEWNĘTRZNE MODUŁY PRZYŁĄCZENIOWE EXT-SCR-16 Z KABLEM KAB-EXT-16 DO KARTY LC

AVREVB1. Zestaw uruchomieniowy dla mikrokontrolerów AVR. Zestawy uruchomieniowe

Instrukcja obsługi debugera JTAG-AVR USB v2

MOD Xmega explore z ATXmega256A3BU. sklep.modulowo.pl akademia.modulowo.pl zestawy.modulowo.pl app.modulowo.pl blog.modulowo.

ZL16AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega8/48/88/168

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja. do ćwiczeń laboratoryjnych z przedmiotu: SYSTEMY CYFROWE 1.

Badanie układów średniej skali integracji - ćwiczenie Cel ćwiczenia. 2. Wykaz przyrządów i elementów: 3. Przedmiot badań

LABORATORIUM UKŁADÓW PROGRAMOWALNYCH. PROCESORY OSADZONE kod kursu: ETD 7211 SEMESTR ZIMOWY 2017

SML3 październik

MJOY ENCODERS v1 ZASADA DZIAŁANIA

Technika Mikroprocesorowa

FREEboard. Zestaw startowy z mikrokontrolerem z rodziny Freescale KINETIS L (Cortex-M0+) i sensorami MEMS 7 DoF

Spis treści. Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego

INSTRUKCJA OBSŁUGI Zestaw uruchomieniowy EvB 5.1 v5

Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów AVR

ZL4PIC uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC (v.1.0) Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC

Układy sekwencyjne. Podstawowe informacje o układach cyfrowych i przerzutnikach (rodzaje, sposoby wyzwalania).

MOD Xmega explore z ATXmega256A3BU. sklep.modulowo.pl akademia.modulowo.pl zestawy.modulowo.pl app.modulowo.pl blog.modulowo.

Politechnika Białostocka

Płytka uruchomieniowa XM32

MCAR Robot mobilny z procesorem AVR Atmega32

RODZAJE PAMIĘCI RAM. Cz. 1

Obsługa kart pamięci Flash za pomocą mikrokontrolerów, część 1

System transmisji sygnałów wideo w sieci wideodomofonowej oraz system zasilania rygli rewersyjnych

ZL4PIC. Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC

USB AVR JTAG. Instrukcja obsługi rev.1.0. Copyright 2011 SIBIT

Rozdział 21 Moduły analogowo - temperaturowe

Wstęp Architektura... 13

Płytka ewaluacyjna z ATmega16/ATmega32 ARE0021/ARE0024

Mikroprocesory i Mikrosterowniki Laboratorium

Politechnika Wrocławska

Aoi Ryuu. v2.0 moduł z mikroprocesorem Atmega169 dla makiety dydaktycznej Akai Kaba

Kompander sygnałów dwustanowych KSD4

ZL15AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega32

Instrukcja obsługi programatora AVR Prog USB v2

z interfejsem USB i złączem KANDA

2. Architektura mikrokontrolerów PIC16F8x... 13

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

PRZEDWZMACNIACZ PASYWNY Z SELEKTOREM WEJŚĆ. dokumentacja. (wersja 1.1

WPROWADZENIE Mikrosterownik mikrokontrolery

Niektóre piny mogą pełnić różne role, zależnie od aktualnej wartości sygnałów sterujących.

MOBOT RoboSnake. Moduł wieloczłonowego robota

Instrukcja obsługi programatora AVR Prog USB v2

Transkrypt:

Andrzej Pawluczuk Mikrokontrolery AVR techniczne aspekty programowania Białystok, 2004

Mikrokontrolery rodziny AVR integrują w swojej strukturze między innymi nieulotną pamięć przeznaczoną na program (pamięć FLASH) oraz nieulotną pamięć EEPROM do dowolnego zastosowania przez autora programu. Po napisaniu programu powstaje problem związany z umieszczeniem jego kodu wewnątrz pamięci mikrokontrolera. Producent (firma ATMEL) przewidział w ogólnym przypadku dwa rozwiązania dotyczące sposobu programowania pamięci FLASH oraz EEPROM (w niektórych przypadkach, dotyczy to mikrokontrolerów ATMEGA, istnieje trzecia możliwość związana z mechanizmem BOOT LOADER). Programowanie mikrokontrolerów może odbywać się: 1. w programatorze, 2. w układzie. W pierwszym przypadku proces programowania wymaga włożenia programowanego mikrokontrolera do programatora, zaprogramowaniu układu i ponownego przeniesienia mikrokontrolera do układu, w którym ma on pracować. Takie rozwiązanie ma niedogodność związaną ciągłym przenoszeniem mikrokontrolera między programatorem a docelowym systemem. Drugą poważną niedogodnością tego rozwiązania jest to, że z praktycznego punktu widzenia nie istnieje możliwość użycia wybranych modeli mikrokontrolerów (ponieważ przykładowo ATMEGA103, ATMEGA128 i inne są produkowane wyłącznie w obudowach do montażu powierzchniowego). W drugim przypadku proces programowania wymaga umieszczenia w docelowym systemie odpowiedniego złącza, przez które będzie odbywać się programowanie (kasowanie, odczytywanie pamięci, weryfikacja itp.). Metoda ta nazywa się programowaniem w trybie szeregowym i jest tematem tych rozważań. W tym trybie dostępne są operacje kasowania, programowania i odczytu pamięci FLASH i EEPROM oraz istnieje możliwość modyfikacji bitów zabezpieczeń i bitów konfiguracji (ang. fuse). Firma ATMEL zaproponowała standard złącza programującego w dwóch wariantach, jako złącze 6-stykowe oraz 10-stykowe. Oba rozwiązania funkcjonalnie są identyczne. Złącza programujące są następujące: Gdzie: MOSI, MISO, SCK i RESET są sygnałami służącymi do programowania (są opisane niżej), GND jest sygnałem masy oraz VTG jest napięciem zasilającym. www.elektronika.qs.pl witryna popularyzująca elektronikę 2 z 9

Z praktycznego punktu widzenia sprowadza się to do umieszczenia na płytce drukowanej docelowego systemu złącza pinowego (najczęściej są to dwurzędowe listy pinowe o rozstawie 100 mils (2.54mm). Do połączenia z programatorem używa się kabla płaskiego o zaciśniętą na końcu złączką nakładaną na piny będące w płytce drukowanej systemu. Ponieważ na naszym rynku bez problemów są dostępne złącza 10-pinowe dalsze rozważania będą dotyczyć tego wariantu. Występujące w złączu do szeregowego programowania sygnały to: RESET - sygnał zerowania mikrokontrolera, MOSI (od ang. Master Output Slave Input) dane transmitowane z programatora do mikrokontrolera, MISO (od ang. Master Input Slave Output) dane transmitowane z mikrokontrolera do programatora, SCK sygnał zegarowy do programowania, GND masa zasilania. W ogólnym przypadku złącze programujące wygląda następująco: Występujące tu połączenie złączki z napięciem V cc pozwala na zasilanie się układu z programatora lub programatora z układu. W wielu rozwiązaniach to połączenie może być pominięte. Przykładowe rozwiązanie przyłącza do programatora może być następujące (ATTINY12). Mikrokontroler ma wyprowadzenia sygnałów, które są niezbędne do przyłączenia programatora do programowania w układzie w trybie szeregowym. www.elektronika.qs.pl witryna popularyzująca elektronikę 3 z 9

Na identycznej zasadzie realizowane jest przyłączenie mikrokontrolera do programowania w układzie w przypadku innych modeli mikrokontrolera. Przykład z użyciem bardziej złożonego mikrokontrolera (AT90S2313): Mikrokontrolery z rodziny ATMEGA też nie odbiegają w swoich rozwiązaniach od powyższego modelu. Przykład z użyciem mikrokontrolera ATMEGA161: www.elektronika.qs.pl witryna popularyzująca elektronikę 4 z 9

Przykład z użyciem mikrokontrolera ATMEGA163: W większości przypadków sposób przyłączenia programatora pracującego w trybie programowania szeregowego nie odbiega od przedstawionej koncepcji, www.elektronika.qs.pl witryna popularyzująca elektronikę 5 z 9

ale od tej reguły są wyjątki. Przykładem mikrokontrolera wymagającego innego przyłączenia jest ATMEGA128. Tu sygnały MISO i MOSI są przyłączone w mikrokontrolerze w innym miejscu. Przedstawia to rysunek: W każdym przypadku należy sprawdzić w oryginalnej dokumentacji producenta szczegóły związane z sposobem przyłączenia danego modelu mikrokontrolera do programatora szeregowego. Zaniechanie tej czynności może doprowadzić do późniejszych zmian w połączeniach na płytce drukowanej. We wszystkich przedstawionych przykładach jest pominięty pewien problem, który może okazać się w konkretnym rozwiązaniu dość istotny. Użycie do szeregowego programowania sygnałów SCK, MOSI i MISO nie oznacza, że te sygnały nie mogą być używane w docelowym systemie do innych celów. Jeżeli z punktu widzenia mikrokontrolera te piny są wyjściami (mikrokontroler za pomocą tych pinów steruje jakimś blokiem cyfrowym) nie ma żadnego problemu. W przeciwnym wypadku (jeżeli któryś z tych pinów jest wejściem dla mikrokontrolera) mogą wystąpić problemy związane z programowaniem. Sytuacja taka jest przedstawiona na rysunku: www.elektronika.qs.pl witryna popularyzująca elektronikę 6 z 9

W trakcie programowania na każdym z trzech sygnałów używanych do programowania mikrokontrolera występuje logiczny konflikt, w obwodzie są dwa źródła sygnału: wyjście negatora (74HCT04) i sygnał SCK (programator jest źródłem sygnału), wyjście negatora (74HCT04) i sygnał MOSI (programator jest źródłem sygnału), www.elektronika.qs.pl witryna popularyzująca elektronikę 7 z 9

wyjście negatora (74HCT04) i sygnał MISO (mikrokontroler jest źródłem sygnału). Może to doprowadzić do niemożności zaprogramowania mikrokontrolera, gdyż wyjście negatorów może zakłócać przebieg sygnałów programujących. W niektórych rozwiązaniach układowych można problemu uniknąć, jeżeli te linie będą wyjściowymi (z punktu widzenia mikrokontrolera), czyli przyłączone do wejść w blokach cyfrowych, którymi steruje mikrokontroler. Niestety nie zawsze takie rozwiązanie jest możliwe. W takiej sytuacji można zaproponować dwa rozwiązania: Pierwszy przypadek jest fizycznym rozłączeniem poprzez użycie listy pinowej i zworek (jumperków). Na czas programowania zworki byłyby usuwane, co tworzyłoby przerwę w danym połączeniu. Drugim rozwiązaniem jest elektroniczny przełącznik konfliktowych połączeń. Ilustruje to następujący rysunek: www.elektronika.qs.pl witryna popularyzująca elektronikę 8 z 9

Układ CD4053 przełącza w odpowiedni sposób sygnały używane do programowania w trybie szeregowym. Sterowanie przełączaniem wejść/wyjść multipleksera jest oparte o sygnał RESET generowany przez programator w trakcie programowania. W przypadku, jeżeli mikrokontroler nie jest przyłączony do programatora, to rezystor występujący w obwodzie zerowania mikrokontrolera ustala sygnał na poziomie logicznej jedynki. W efekcie w trakcie programowania, układ CD4053 łączy mikrokontroler ze złączem programatora. W trakcie normalnej pracy, wymieniony multiplekser łączy mikrokontroler z blokiem cyfrowym. www.elektronika.qs.pl witryna popularyzująca elektronikę 9 z 9