Wprowadzenie do MSP430G2553 i MPU6050

Slides:



Advertisements
Podobne prezentacje
Watchdog Paweł Trojanowski
Advertisements

Tryby adresowania Prawie każda operacja wykonywana przez mikroprocesor wykonywana jest na pewnych argumentach (lub argumencie). Sposoby wskazywania argumentów.
Zerowanie mikroprocesorów Cel: wprowadzenie mikroprocesora w określony stan początkowy Zwykle realizowany poprzez: inicjalizację licznika rozkazów (PC)
Architektura jednostki centralnej RD MBR MAR IRPC +1 WR jednostka sterująca ALU A F Adres Dane Rejestry: MAR – (Memory Address Register) rejestr adresowy.
Moduł 2. Struktury Systemów Komputerowych
Budowa i zastosowanie sieci CompoBus/S
CPU.
Wykład 9 Dedykowane procesory DSP oraz mikrokontrolery z jednostką DSP
Wykład 5 Przerwania w systemie SAB80C537 dr inż. Andrzej Przybył
Wykład 4 Przetwornik Analogowo-Cyfrowy
Mikrokontrolery - - podstawowe architektury
by Ernest Jamro Katedra Elektroniki, AGH Kraków
by Ernest Jamro Katedra Elektroniki, AGH Kraków
ZASTOSOWANIE PROCESORÓW SYGNAŁOWYCH
Wykład 5: Program Sequencer i struktura pamięci
Systemy operacyjne Wykład nr 4: Procesy Piotr Bilski.
Wykład nr 2: Struktura systemu komputerowego a system operacyjny
Magistrala & mostki PN/PD
Komputer, procesor, rozkaz.
Temat nr 10: System przerwań
KOMPONENTY TYPU SLAVE Orkiszewski Marcin
Płyty główne Budowa.
1-Wire® Standard 1-Wire®, zwany też czasami siecią MicroLAN, oznacza technologię zaprojektowaną i rozwijaną przez firmę Dallas Semiconductor polegającą.
Wieloprocesowy system operacyjny dla komputerów ATARI XL/XE
Mikroprocesory i mikrokontrolery
Układy wejścia-wyjścia
ogólne pojęcia struktury
Komputer a system komputerowy
Programowalny układ we-wy szeregowego 8251
Architektura komputerów
przykładowy 8-bitowy mikroprocesor uniwersalny CISC
Mikroprocesor Z80 przerwania.
MCS51 - wykład 6.
Architektura komputerów
Mikrokontrolery PIC.
Magistrale szeregowe.
ARCHTEKTURA KOMPUTERA
Zasada działania komputera
Bezprzewodowego system OMNIA
Budowa i rodzaje procesorów.
Mikroprocesory.
Mikroprocesory mgr inż. Sylwia Glińska.
Przerwanie ang. interrupt.
PROCESORY (C) Wiesław Sornat.
Architektura PC.
Budowa komputera ProProgramer.
Procesor – charakterystyka elementów systemu. Parametry procesora.
BUDOWA I ZASADA DZIAŁANIA
Procesor, pamięć, przerwania, WE/WY, …
Pamięć DRAM.
Struktura wewnętrzna mikrokontrolera zamkniętego
Architektury procesorów rdzeniowych mikrokontrolerów.
ATXMEGA128A4U 128 kB pamięci Flash Zasilanie 1.6V-3.6V Maksymalne taktowanie 32 MHz 34 Programowalne WE-WY System zdarzeń (Event System) 4 kanały DMA.
Układy i systemy mikroprocesorowe
Przerwania timera i przerwania zewnętrzne
Tryby adresowania i formaty rozkazów mikroprocesora
PWM, obsługa wyświetlacza graficznego
POLITECHNIKA POZNAŃSKA
POLITECHNIKA POZNAŃSKA WBMiZ Zakład Urządzeń Mechatronicznych STEROWNIKI URZĄDZEŃ MECHATRONICZNYCH
Płyta główna. Magistrale I/O
Schemat blokowy komputera
POLITECHNIKA POZNAŃSKA
Interfejsy synchroniczne
Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska
Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska
Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska
Mikrokontrolery System przerwań
Mikrokontrolery MSP430 DMA
Format rozkazu Tryby adresowania.
Zapis prezentacji:

Wprowadzenie do MSP430G2553 i MPU6050 Liqiang Du 1 Tłumaczenie: Z. Kubiak

Plan Podstawowe cechy CPU wprowadzenie Przerwania Wejścia/wyjścia Zegar Timery ADC USCI 2

Podstawowe cechy Architektura niskiego poboru mocy przedłuża żywotność baterii – 0.1 μA - tylko potrzymanie RAM – 0.8 μA - tryb zegara czasu rzeczywistego – 250 μA/MIPS w stanie aktywności 16-bitowy procesor RISC ogranicza wielkość kodu – Duża liczba rejestrów usuwa wąskie gardło przetwarzania kodu – Zwarta konstrukcja rdzenia zmniejsza zużycie energii i koszty – Zoptymalizowany dla programowania wysokiego poziomu – Tylko 27 instrukcji podstawowych i siedem trybów adresowania – Szerokie możliwości przerwań wektorowych Programowalna „In-system” pamięć Flash (16KB) pozwala na elastyczne zmiany w kodzie, modernizacje pól i rejestrowanie danych 3

Architektura MSP430 4

CPU wprowadzenie Architektura RISC tu: 27 instrukcji i 7 trybów adresowania. Pełny dostęp do rejestrów w tym licznika programu, rejestrów stanu i wskaźnika stosu. Operacje rejestrowe w pojedynczym cyklu. Duży 16-bitowy rejestr transferu z pamięcią. 16-bitowa magistrala adresowa umożliwia bezpośredni dostęp i rozgałęzienia (skoki) w całym zakresie pamięci. 16-bitowa szyna danych pozwala na bezpośrednie operacje na argumentach o szerokości słów Generator stałych zapewnia sześć najczęściej używanych natychmiastowych wartości i zmniejsza rozmiar kodu. Bezpośrednie transfery pamięć-pamięć bez rejestru pośredniego Słowowe i bajtowe adresowanie i formaty instrukcji 5

27 Instrukcji rdzenia RISC 6

3 formaty instrukcji 7

CPU tryby działania 8

Przerwania Są zdarzeniami wymuszającymi zmianę wykonywania programu; Podprogram obsługi przerwań (ISR); Po zakończeniu programu obsługi przerwań (ISR), następuje powrót do uprzednio wykonywanego programu Istnieją trzy klasy przerwań: Reset. Przerwania niemaskowalne przez GIE - nie mogą być wyłączone przez ustawienie bitu przerwania globalnego (GIE), ale są uaktywniane przez bity indywidualne (NMIIE, ACCVIE, OFIE). Używane do zdarzeń o najwyższych priorytetach. Przerywania maskowalne przez GIE- przerwania urządzeń peryferyjnych jak Watchdog Timer w trybie timera interwałowego w momencie przepełnienia itp. Można wyłączyć je programowo Opóźnienie wykonania przerwania - jest czasem między zdarzeniem rozpoczynającym wykonanie ISR; Normalnie potrzeba 6 cykli 9

Wektor przerwań 11

#pragma vector = TIMER0_A0_VECTOR __interrupt void TA0_ISR(void) { __bic_SR_register_on_exit(CPUOFF); // Exit LPM0 } #pragma vector = USCIAB0TX_VECTOR __interrupt void USCIAB0TX_ISR(void) { UCB0TXBUF = (UCB0RXBUF << 4) | 0x0f; // Move RX data to TX __bic_SR_register_on_exit(CPUOFF); // Exit LPM0 } 12

Zegar Zegar pomocniczy ACLK. ACLK dzieli się przez 1, 2, 4 i 8 i jest wybierany programowo dla poszczególnych układów peryferyjnych. MCLK - zegara głównego. Zegara MCLK dzieli się przez 1, 2, 4 lub 8, i jest stosowany przez jednostkę centralną i system. SMCLK - podrzędny zegar. SMCLK dzieli się przez 1, 2, 4 i 8 i jest wybierany programowo dla poszczególnych modułów obwodowych. 13

Wprowadzenie do cyfrowych we/wy MSP430G2553 ma 2 porty (P1 i P2), każdy port ma do ośmiu linii I/O (P1.0-P1.7, P2.0-P2.5). Każda linia I/O jest indywidualnie konfigurowalna jako wejście lub wyjście, i każda linia I/O może być indywidualnie zapisywana lub odczytywana. Niezależnie programowalne indywidualnych I / O Dowolna kombinacja wejścia lub wyjścia Indywidualnie konfigurowalne przerwania P1 i P2 Niezależne rejestry danych wejściowych i wyjściowych Indywidualnie konfigurowalne rezystory podciągające Rejestry kierunku PxDIR (P1DIR = 0x01) Rejestry wejściowe PxIN Rejestry wyjściowe PxOUT 14

Timer WDT jest 16-bitowy zegarem, który może być stosowany jako watchdog lub jako generator czasowy. Rejestr sterowania WDT jest chroniony hasłem WDTCTL = WDTPW + WDTHOLD; 15

Timer_A Timer_A is a 16-bit timer/counter with three capture/compare registers 16-bitowy asynchroniczny timer / licznik z czterema trybami pracy Możliwość wyboru i konfiguracji źródła zegara Dwa lub trzy konfigurowalne rejestry przechwytujące / porównujące Konfigurowalne wyjścia z funkcją PWM 16

17

Timer control register(TACTL) 18

ADC Moduł ADC10 obsługuje szybkie, 10-bitowe przetwarzanie analogowo-cyfrowego 200 kb/s - maksymalna szybkość konwersji Sample-and-hold z programowaniem okresów próbkowania Rozpoczęcie konwersji przez oprogramowanie lub Timer_A Programowy wybór wbudowanego źródła napięcia odniesienia (1,5 V lub 2,5 V) Programowy wybór źródła napięcia odniesienia wewnętrznego lub zewnętrznego Do ośmiu zewnętrznych kanałów wejściowych Możliwość wyboru zegara SAR Tryby: jednokanałowy, powtarzany jednokanałowy, kolejności i powtarzany sekwencyjny tryb konwersji Rdzeń ADC i napięcia odniesienia mogą być wyłączony oddzielnie Sterownik transferu danych do automatycznego przechowywania wyników konwersji 19

ADC – kroki działania Definicja linii portów jako wejść kanałów analogowych (INCHx) Wybać źródło zegara dla operacji konwersji, lub ustawienie Watchdog. (ADC10SSELx) Wybór trybu (np., ciągły, jednorazowy, itd). (CONSEQx) Wybór napięcia odniesienia VREF. (SREFx) Wybór czasu S-H dla konwersji. (ADC10SHTx) Włączyć wybrany kanał. Włączyć działanie ADC (ADC10ON) Enable ADC (wykonanie pomiaru) Odczytać wartość po konwersji; 20

Przykład ADC10CTL1 = INCH_3 + CONSEQ_1; // A3/A2/A1, single sequence ADC10CTL0 = ADC10ON + ADC10IE; // ADC10ON, interrupt enabled ADC10AE0 |= 0x0E; // P1.1,2,3 ADC option select ADC10CTL0 |= ENC + ADC10SC; // Sampling and conversion start 21

USCI I2C Mode Figure : I2C Bus Connection Diagram The two pull up resistor is necessary for I2C mode to work properly 22

I2C Module Operating Modes Transmitter Master Receiver I2C Transmitter Slave Receiver 23

I2C transfer danych Figure : I2C Module Data Transfer The first byte after a START condition consists of a 7-bit slave address and the R/W bit. When R/W = 0, the master transmits data to a slave. When R/W = 1, the master receives data from a slave. The ACK bit is sent from the receiver after each byte on the 9th SCL clock. 24

I2C kod inicjujący void Init_i2c(uint8_t devAddr) { UCB0CTL1 |= UCSWRST; // Enable SW reset UCB0CTL0 = UCMST + UCMODE_3 + UCSYNC; // I2C Master, synchronous mode UCB0CTL1 = UCSSEL_2 + UCSWRST; // Use SMCLK, keep SW reset UCB0BR0 = 10; // fSCL = 1Mhz/10 = ~100kHz UCB0BR1 = 0; P1SEL = BIT6 + BIT7; // Assign I2C pins to USCI_B0 P1SEL2 = BIT6 + BIT7; // Assign I2C pins to USCI_B0 UCB0I2CSA = devAddr; // Slave Address is 069h UCB0CTL1 &= ~UCSWRST; // **Initialize USCI state machine** IE2 |= UCB0RXIE + UCB0TXIE; // Enable RX and TX interrupt } 25

Tryb USCI UART W trybie asynchronicznym, moduły USCI_Ax MSP430 należy podłączyć do zewnętrznego systemu za pośrednictwem dwóch linii zewnętrznych UCAxRXD i UCAxTXD. W trybie UART, USCI transmituje i odbiera znaki asynchronicznie do/z innego urządzenia. Urządzenia nadawcze i odbiorcze korzystają z tej samej szybkości transmisji. 26

UART – kod inicjujący void initUart(void) { UCA0CTL1 |= UCSSEL_2; // Use SMCLK UCA0BR0 = 104; // 1MHz 9600 UCA0BR1 = 0; // 1MHz 9600 UCA0MCTL = UCBRS0; // Modulation UCBRSx = 1 P1SEL = BIT1 + BIT2 ; // P1.1 = RXD, P1.2=TXD P1SEL2 = BIT1 + BIT2 ; // P1.1 = RXD, P1.2=TXD UCA0CTL1 &= ~UCSWRST; // **Initialize USCI state machine** IE2 |= UCA0TXIE; } 27

Tryby USCI SPI Cechy trybu SPI to: 7-bitowa lub 8-bitowa długość danych 3-pin i 4-pin obsługa SPI Tryby master lub slave Niezależne nadawanie i odbieranie rejestrów przesuwnych Oddzielne rejestry buforowe nadawania i odbierania Wybierana polaryzacja UCLK i kontrola faz Programowalna częstotliwość UCLK w trybie master Niezależne możliwości generowania przerwania dla odbioru i nadawania 28

Tryby USCI SPI 29

SPI example code P1SEL = BIT1 + BIT2 + BIT4; UCA0CTL0 |= UCCKPL + UCMSB + UCMST + UCSYNC; UCA0CTL1 |= UCSSEL_2; UCA0BR0 |= 0x02; UCA0BR1 = 0; UCA0CTL1 &= ~UCSWRST; IE2 |= UCA0RXIE; 30

MPU6050 MPU6050: Gyroscope + Accelerometer ±2g, ±4g, ±8g and ±16g ±250, ±500, ±1000, and ±2000°/sec VCC and GND for power supply:3-5v SCL and SDA for I2C communication with MSP430 XCL and XDA to connect magnetic sensor Reference : MSP430 x2xx user guide MPU6050 datasheet and register file

Where to buy MSP430G2 $9.99 https://estore.ti.com/MSP-EXP430G2-MSP430-LaunchPad-Value-Line-Development-kit-P2031.aspx MPU6050 $5.75 http://www.ebay.com/itm/MPU-6050-3-Axis-Accelerometer-Sensor-Gyroscope-6DOF-Module-3-3V-5V-For-Arduino-/161108492494?pt=LH_DefaultDomain_0&hash=item2582d080ce