High Speed USB 2.0 Development Board

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

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

Język C. Wykład 9: Mikrokontrolery cz.2. Łukasz Gaweł Chemia C pokój 307

MultiTool instrukcja użytkownika 2010 SFAR

STM32Butterfly2. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

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

ZL15AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega32

Kod produktu: MP01105

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

dokument DOK wersja 1.0

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

AVR DRAGON. INSTRUKCJA OBSŁUGI (wersja 1.0)

Instytut Teleinformatyki

STM32 Butterfly. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

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

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

2. Architektura mikrokontrolerów PIC16F8x... 13

Programowanie mikrokontrolerów. 8 listopada 2007

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

Kod produktu: MP01105T

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

Instytut Teleinformatyki

WYKŁAD 5. Zestaw DSP60EX. Zestaw DSP60EX

Programator procesorów rodziny AVR AVR-T910

o Instalacja środowiska programistycznego (18) o Blink (18) o Zasilanie (21) o Złącza zasilania (22) o Wejścia analogowe (22) o Złącza cyfrowe (22)

Ćwiczenie 5 Zegar czasu rzeczywistego na mikrokontrolerze AT90S8515

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

ZL29ARM. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

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

Moduł prototypowy X3-DIL64 z procesorem ATxmega128A3U-AU

ZL15AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega32

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

Wstęp Architektura... 13

Arduino dla początkujących. Kolejny krok Autor: Simon Monk. Spis treści

ZL25ARM. Płyta bazowa dla modułów diparm z mikrokontrolerami STR912. [rdzeń ARM966E-S]

Kod produktu: MP01611

Projekt MARM. Dokumentacja projektu. Łukasz Wolniak. Stacja pogodowa

Zastosowanie procesorów AVR firmy ATMEL w cyfrowych pomiarach częstotliwości

ZL4PIC. Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC

Uniwersalny zestaw uruchomieniowy ZL4PIC

Zestaw uruchomieniowy z mikrokontrolerem LPC1114 i wbudowanym programatorem ISP

Murasaki Zou むらさきぞう v1.1 Opis programowania modułu LPC2368/LPC1768 z wykorzystaniem ISP

Mikrokontrolery AVR techniczne aspekty programowania

BF30 OCDLINK/USBASP ARM-JTAG/AVR-ISP Programmer-debugger Instrukcja obsługi

Hardware mikrokontrolera X51

LITEcomp. Zestaw uruchomieniowy z mikrokontrolerem ST7FLITE19

Programowanie Mikrokontrolerów

IIPW_SML3_680 (Z80) przewodnik do ćwiczeń laboratoryjnych

Kod produktu: MP-1W-2480

Instytut Teleinformatyki

SML3 październik

UNIGYR Karty magistrali PROFIBUS. Modele z interfejsami kart PCI i PC (PCMCIA)

Programowanie mikrokontrolerów AVR

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

GND(VSS) i VCC - masa i zasilanie. V0 - regulacja kontrastu

Programator mikrokontrolerów AVR

E-TRONIX Sterownik Uniwersalny SU 1.2

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

interfejs szeregowy wyświetlaczy do systemów PLC

INSTRUKCJA OBSŁUGI.

ZL9ARM płytka bazowa dla modułów diparm z mikrokontrolerami LPC213x/214x

SYSTEMY CZASU RZECZYWISTEGO (SCR)

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

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

Instrukcja obsługi. PROGRAMATOR dualavr. redflu Tarnów

ZL2AVR. Zestaw uruchomieniowy z mikrokontrolerem ATmega8

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

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

Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów AVR

Przemysłowy odtwarzacz plików MP3

Odbiornik pilotów RC-5. z interfejsem RS-485 / MODBUS

ZL30ARM. Zestaw uruchomieniowy dla mikrokontrolerów STM32F103

Kod produktu: MP-BTM222-5V

Płytka uruchomieniowa XM32

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

ZL5PIC. Zestaw uruchomieniowy dla mikrokontrolerów PIC16F887

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

Uniwersalny sterownik silnika krokowego z portem szeregowym RS232 z procesorem AT90S2313 na płycie E200. Zestaw do samodzielnego montażu.

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

Gdzie przyjęto, że: IR7...IR4 to starsze bity przesyłanej danej lub rozkazu, IR3...IR0 to młodsze bity przesyłanej danej lub rozkazu.

Komunikacja w mikrokontrolerach Laboratorium

Poradnik programowania procesorów AVR na przykładzie ATMEGA8

Zestaw Startowy EvB. Więcej informacji na stronie:

MODUŁ UNIWERSALNY UNIV 3

Programator AVR USBasp

INSTRUKCJA Płytka uruchomieniowa EvB 4.3

Programowanie mikrokontrolerów AVR z rodziny ATmega.

Sterownik procesorowy S-2 Komunikacja RS485 MODBUS

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Opis procedur asemblera AVR

Kod produktu: MP01611-ZK

PRUS. projekt dokumentacja końcowa

LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2

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

Modem Bluetooth MBL-232/UK

ZL27ARM. Zestaw uruchomieniowy dla mikrokontrolerów STM32F103

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

Moduł uruchomieniowy mikrokontrolera MC68HC912B32

Technika Mikroprocesorowa

Politechnika Białostocka

Transkrypt:

High Speed USB 2.0 Development Board Instrukcja użytkownika. wersja 0.1 Autor: Łukasz Krzak Spis treści. 1. Opis układu 1.1. Widok płytki 1.2. Diagram przepływu informacji 2. Konfiguracja układu. 2.1. Opis wyprowadzeń 2.2. Ustawienia zworek 3. Programowanie kontrolera ATMega128L 3.1. System uc/os-ii i struktura programu 3.2. Moduł wyświetlacza LCD 3.3. Moduł obsługi USART 3.4. Moduł obsługi interfejsu VT100 3.5. Moduł obsługi I 2 C 4. Programowanie kontrolera CY7c68013 5. Zastosowanie

1. Opis układu. Moduł wykorzystuje interfejs USB 2.0 do komunikacji z hostem i przesyłania danych do/z zewnętrznych układów dołączanych do gniazda IDE. Za obsługę USB odpowiada kontroler z rodziny FX2: CY7c68013 firmy Cypress Semiconductor. Dodatkowy kontroler z rodziny AVR: ATMega128L firmy Atmel działa jako bootloader oraz monitoruje i steruje pracą kontrolera USB. Moduł posiada 2 linie zasilające: +5V pobierane wprost z gniazda USB oraz +3.3V otrzymywane z przetwornicy DC/DC opartej o układ MAX887 firmy Maxim. Oba kontrolery mogą być połączone magistralą I 2 C wraz z opcjonalną pamięcią EEPROM. Kontrolery można również łączyć pin po pinie poprzez 8bitowy port równoległy. 1.1 Widok płytki. Poniżej przedstawiono dwa widoki płytki drukowanej modułu, wierzch (rys. 1.1) oraz spód (rys 1.2). Rys. 1.1 widok płytki drukowanej modułu (wierzch)

Rys. 1.2 widok płytki drukowanej modułu (spód) 1.2. Diagram połączeń i przepływu informacji. Poniżej przedstawiono schematycznie diagram połączeń przepływu informacji: Rys. 1.3 diagram połączeń i przepływu informacji.

2. Konfiguracja układu. Moduł posiada kilka możliwości konfiguracyjnych ustalanych zworami. Poniżej znajduje się widok modułu z zaznaczonymi wyprowadzeniami, portami i miejscami na zwory. Trzema kolorami zaznaczono także charakterystyczne punkty wyprowadzeń, tj. masa (GND) oraz 2 napięcia zasilania (+3.3V i +5V). Strzałkami oznaczono pierwszy pin każdego portu 2.1 Opis wyprowadzeń. Złącze ISP/RS232 port ISP do szeregowego programowania kontrolera ATMega128L oraz wyprowadzenie USART0 wykorzystywane do komunikacji poprzez interfejs RS232. Złącze JTAG standardowe 10pinowe złącze JTAG. Złącze LCD przystosowane do pracy w trybie 4bit i transmisji jednokierunkowej złącze wyświetlacza LCD. Złącze I 2 C 4pinowe złącze zawierające oprócz sygnałów SDA i SCK również +3.3V i GND.

2.2 Ustawienia zworek. JP1 wybór źródła resetu dla kontrolera USB CY7c68013. - reset sterowany poprzez kontroler ATMega128. - reset standardową siecią RC. JP2 wybór źródła resetu dla kontrolera ATMega128. - reset sterowany poprzez programator ISP. - reset standardową siecią RC. - zewnętrzny reset ze złącza ISP/RS232 JP3 wybór źródła zasilania dla JTAG. Powinno być rozwarte. JP4 wybór pinów wyprowadzonych na złącze ISP/RS232. Dla standardowej pracy wszystkie powinny być rozwarte. Odpowiednie ustawienie JP4 umożliwia m.in. opcjonalne wyprowadzenie pinów używanych w transmisji synchronicznej. JP5 załączenie zasilania +3.3V z przetwornicy do reszty układu. Aby układ pracował prawidłowo w tym miejscu musi być zwora. Złącze można wykorzystać do pomiaru prądu pobieranego z przetwornicy DC/DC. JP6 włączenie/ wyłączenie przetwornicy DC/DC. - przetwornica wyłączona - przetwornica włączona układy niezasilane JP7 i JP8 służą do ustawienia połączeń na magistrali I 2 C. Muszą być ustawione jednakowo! ATMega128L CY7c680113 Złącze I 2 C EEPROM

Przykładowe ustawienia zworek JP7 i JP8: - Na wspólnej magistrali ATMega128L, CY7c68013 oraz złącze I 2 C. - CY7c68013 połączony z pamięcią EEPROM. ATMega128L połączona ze złączem I 2 C. JP9, JP10, JP11 wybór adresu na magistrali I 2 C dla pamięci EEPROM. Zobacz dokumentację EEPROMu. JP12 ustawienie write protect dla pamięci EEPROM. Zobacz dokumentację EEPROMu. JP13 połączenie portu A kontrolera CY7c68013 i portu C kontrolera ATMega128L. Zaleca się połączenie tych portów poprzez rezystory (minimum 1kΩ). UWAGA!! Nieodpowiednie skonfigurowanie portów obu kontrolerów może spowodować ich uszkodzenie, jeśli zostaną połączone. 3. Programowanie kontrolera ATMega128L. Obecny w układzie kontroler ATMega128L może być programowany poprzez łącze szeregowe ISP lub interfejs JTAG, przy pomocy jednego z wielu dostępnych programów, przeznaczonych do współpracy z kontrolerami AVR. Kod źródłowy programu został napisany w darmowym edytorze SynTextEditor zaś skompilowany również darmową wersją kompilatora WinAVR 3.1 System uc/os-ii i struktura programu. Program sterujący pracą kontrolera AVR wykorzystuje system czasu rzeczywistego uc/os-ii (wersja 2.6) firmy Micrium. Ten prosty system operacyjny zapewnia kontekstowe przełączanie zadań uruchamianych na procesorze, oraz oferuje wiele mechanizmów wspomagających projektowanie wydajnych aplikacji czasu rzeczywistego. Program wykorzystuje przerwanie od timer a nr 0 jako przerwanie zegara systemowego o częstotliwości 50Hz. Uruchomione zadania obsługują wyświetlacz LCD, komunikację poprzez RS232 (USART0) zgodnie z interfejsem VT100 (VT102), oraz monitorowanie magistrali I 2 C. Głównym wątkiem odpowiadającym za komunikację jest funkcja IOTask z pliku tasks.c. Dodatkowo w tle działa systemowy wątek statystyczny, który co sekundę liczy aktualne zużycie procesora i zgodnie z wybraną opcją wyświetla wynik na wyświetlaczu LCD i/lub terminalu RS232.

Struktura plików projektu i ich opis przedstawiono poniżej: main.c makefile includes.h os_cfg.h avr_isr.h os_cpu.h os_cpu_a.asm os_cpu_c.c OS_CORE.C (.H) OS_FLAG.C (.H) OS_MBOX.C (.H) OS_MEM.C (.H) OS_MUTEX.C (.H) OS_Q.C (.H) OS_SEM.C (.H) OS_TASK.C (.H) OS_TIME.C (.H) ucos_ii.c (.H) LCD.c (.h) USART.c (.h) VT100.c (.h) I2C.c (.h) tasks.c (.h) Buffers.c (.h) Główny plik projektu (target) Skrypt kompilacji projektu Plik grupujący wszystkie wykorzystywane nagłówki. Dołączany w każdym module projektu. Plik konfiguracyjny systemu uc/os-ii Zbiór makr użytecznych przy obsłudze przerwań w procesorze AVR Pliki portu systemu uc/os-ii dla procesorów AVR Pliki systemu uc/os-ii Moduł obsługi wyświetlacza LCD Moduł obsługi USARTu Moduł obsługi interfejsu VT100 (VT102) Moduł obsługi magistrali I 2 C Plik zawierający procedury zadań uruchamianych w systemie Moduł obsługi buforów wykorzystywanych w obsłudze RS232 i I 2 C Poniżej przedstawiono opis modułów obsługujących urządzenia we/wy i zewnętrzne interfejsy: 3.2. Moduł wyświetlacza LCD. Moduł zawiera funkcje odpowiedzialne za inicjalizację i wyświetlanie znaków na dołączonym wyświetlaczu LCD. Aktualnie obsługują wyświetlacz 2x16 znaków w trybie transmisji jednokierunkowej 4bit. Wszystkie sygnały powinny znajdować się w obrębie jednego portu. Pliki : LCD.c LCD.h Funkcje i procedury: void LCD_WriteByte(int8_t LCDByte, int8_t IsData void LCD_WriteText(char text[]

void LCD_Goto(int8_t column, int8_t line void LCD_ClrLine(int8_t line void LCD_Init(void void LCD_BarGraphInit(void void LCD_BarGraph(int8_t line, int8_t value Opis funkcji: LCD_Init inicjalizuje wyświetlacz 16x2, w modzie czterobitowym. Konfiguruje kierunek odpowiednich pinów zdefiniowanych w sekcji #define w pliku LCD.h. Musi zostać wywołana przed korzystaniem z innych funkcji modułu. LCD_ClrLine czyści zadaną linię wyświetlacza (numeracja linii od zera). LCD_Goto przesuwa kursor do zadanej pozycji na wyświetlaczu (numeracja linii i kolumn od zera). LCD_WriteByte wysyła bajt na wyświetlacz w dwóch cyklach 4-bitowych (najpierw starsza połowa). Parametr IsData wskazuje typ wysyłanej informacji (0 instrukcje, 1 - dane). LCD_WriteText wysyła zakończony zerem łańcuch znaków na wyświetlacz. LCD_BarGraphInit inicjalizuje wyświetlanie paska stanu. Definiuje potrzebne znaki w pamięci CGRam wyświetlacza. Musi zostać wywołana przed funkcją LCD_BarGraph. LCD_BarGraph wyświetla pasek stanu w zadanej linii wyświetlacza (numeracja od zera). Korzystanie z modułu LCD: 1. Dołącz plik LCD.h w sekcji #include 2. W sekcji #define przypisz odpowiednie piny do odpowiednich sygnałów sterujących wyświetlaczem (E, RS, DB4..7), zdefiniuj port wyświetlacza (LCD_PORT) oraz jego rejestr kierunku (LCD_DDR). 3. Zdefiniuj czas trwania pętli opóźniającej (czekającej na zakończeni instrukcji wyświetlacza ) w zależności od zegara taktującego kontroler: dla fosc = 8MHz : LOOP_TIME = 0.5 dla fosc = 4MHz : LOOP_TIME = 1 dla fosc = 2MHz : LOOP_TIME = 2... itd 4. Wywołaj funkcję LCD_Init przed korzystaniem z innych funkcji modułu.

3.3. Moduł obsługi USART. Moduł odpowiada za komunikację poprzez uniwersalny szeregowy nadajnik/odbiornik USART (Universal Synchronous/Asynchronous Receiver/Transmitter). Pliki: USART.c USART.h Funkcje i procedury: void USART_Init(int8_t USARTNo, int8_t USARTMode, int16_t BaudRatePresc, int8_t CharacterSize, int8_t PSOptions, int8_t IEOptions, int8_t OtherOptions int8_t USART_GetChar(int8_t USARTNo void USART_PutChar(int8_t USARTNo, char Character void USART_PutStr(int8_t USARTNo, const char String[], int8_t Location int8_t USART_DataReceived(int8_t USARTNo void SystemLog(const char *String Opis funkcji: USART_Init inicjalizuje zadany USART w zadanym trybie. Funkcja musi być wywołana przed korzystaniem z innych funkcji tego modułu. Parametry: int8_t USARTNo [i] - numer USARTu int8_t USARTMode [i] - wybor trybu Async/Sync int16_t BaudRatePresc [i] - preskaler zegara ustalajacy predkosc transmisji int8_t CharSize [i] - ilosc bitow na znak (5-9) int8_t PSOptions [i] - opcje parity i stop bit int8_t IEOptions [i] - opcje interrupt enable int8_t OtherOptions [i] - dodatkowe opcje USART_DataReceived funkcja zwraca 1 jeżeli w buforze zadanego USART-u znajduje się nieodebrana dana oraz 0 w przeciwnym przypadku. USART_GetChar zwraca daną odczytaną z bufora zadanego USART-u. Jeżeli bufor jest pusty funkcja czeka na jego zapełnienie

USART_PutChar wysyła znak poprzez zadany USART. USART_PutStr wysyła przez zadany USART ciąg znaków zakończony zerem. Parametr Location określa w którym obszarze pamięci znajduje się wysyłany ciąg (MEM_RAM, MEM_EEPROM, MEM_FLASH) SystemLog wysyła zadany log systemowy znajdujący się w pamięci Flash na USART0 Korzystanie z modułu USART: 1. Dołącz plik USART.h w sekcji #include 2. W sekcji #define zdefiniuj czy moduł ma być częścią systemu uc/os-ii (UCOS_PROJECT) spowoduje to uruchomienie odpowiednich opcji kompilacji 3. Wywołaj funkcję USART_Init przed korzystaniem z innych funkcji modułu.