Wprowadzenie do MSP430G2553 i MPU6050

Podobne dokumenty
Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Wykład 2. Przegląd mikrokontrolerów 8-bit: -AVR -PIC

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

Wykład 4. Przegląd mikrokontrolerów 16-bit: - PIC24 - dspic - MSP430

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Mikrokontroler ATmega32. System przerwań Porty wejścia-wyjścia Układy czasowo-licznikowe

2. Budowa układów procesorowych rodziny TMS320C

Komunikacja w mikrokontrolerach. Magistrala szeregowa I2C / TWI Inter-Integrated Circuit Two Wire Interface

Technika Mikroprocesorowa

MSP430 w przykładach (9)

Charakterystyka mikrokontrolerów. Przygotowali: Łukasz Glapiński, Mateusz Kocur, Adam Kokot,

Współpraca procesora ColdFire z urządzeniami peryferyjnymi

NX70 PLC

Systemy wbudowane Mikrokontrolery

Architektura mikrokontrolera MCS51

Architektura mikrokontrolera MCS51

MIKROKONTROLERY I MIKROPROCESORY

Mikroprocesory i Mikrosterowniki

Współpraca procesora z urządzeniami peryferyjnymi

Mikrokontroler AVR ATmega32 - wykład 9

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

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

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Mechanizm przerwań i menadżer zdarzeń procesora sygnałowego F/C240

Wstęp Architektura... 13

Hardware mikrokontrolera X51

Mikroprocesory i Mikrosterowniki

ARCHITEKTURA PROCESORA,

Zewnętrzne układy peryferyjne cz. 1 Wykład 12

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Zastosowania mikrokontrolerów w przemyśle

Wykład Mikroprocesory i kontrolery

Architektura komputerów

LABORATORIUM Komputery przemysłowe i systemy wbudowane

MSP430: mikrokontrolery, które (prawie) nie pobierają prądu, część 6

IC200UDR002 ASTOR GE INTELLIGENT PLATFORMS - VERSAMAX NANO/MICRO

Programowanie mikrokontrolerów. 8 listopada 2007

Programowanie Mikrokontrolerów

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Wykład 3. Przegląd mikrokontrolerów 8-bit: STM8

WPROWADZENIE Mikrosterownik mikrokontrolery

SAIA PROGRAMOWALNY STEROWNIK PLC

Podstawy techniki cyfrowej i mikroprocesorowej II. Urządzenia wejścia-wyjścia

MOBOT-RCR v2 miniaturowe moduły radiowe Bezprzewodowa transmisja UART

2. Architektura mikrokontrolerów PIC16F8x... 13

Mikroprocesory i Mikrosterowniki Liczniki Timer Counter T/C0, T/C1, T/C2

Architektura komputera. Dane i rozkazy przechowywane są w tej samej pamięci umożliwiającej zapis i odczyt

Kurs Zaawansowany S7. Spis treści. Dzień 1

PRZERWANIA. 1. Obsługa zdarzeń, odpytywanie i przerwania Obsługa zdarzeń jest jedną z kluczowych funkcji w prawie każdym systemie czasu rzeczywistego.

2. PORTY WEJŚCIA/WYJŚCIA (I/O)

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

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa Wstęp... 11

Mikroprocesory i Mikrosterowniki Magistrala szeregowa I2C / TWI Inter-Integrated Circuit Two Wire Interface

Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)

Przerwania, polling, timery - wykład 9

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

dokument DOK wersja 1.0

Wykład 2. Mikrokontrolery z rdzeniami ARM

Mikroprocesor Operacje wejścia / wyjścia

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

MSP430 w przykładach (10)

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

Zestaw uruchomieniowy z mikrokontrolerem LPC1114 i wbudowanym programatorem ISP

Architektura mikroprocesorów TEO 2009/2010

Architektura Systemów Komputerowych. Transmisja szeregowa danych Standardy magistral szeregowych

Architektura Systemów Komputerowych. Bezpośredni dostęp do pamięci Realizacja zależności czasowych

Charakterystyka mikrokontrolerów

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski

Komunikacja w mikrokontrolerach Laboratorium

Przemysłowy odtwarzacz plików MP3

Mikroprocesory i Mikrosterowniki Analog-Digital Converter Konwerter Analogowo-Cyfrowy

Komunikacja w mikrokontrolerach. Wydział Elektroniki Mikrosystemów i Fotoniki Piotr Markowski

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

System mikroprocesorowy i peryferia. Dariusz Chaberski

Instytut Teleinformatyki

MIKROPROCESORY architektura i programowanie

MultiTool instrukcja użytkownika 2010 SFAR

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Przetwornik ADC procesora sygnałowego F/C240 i DAC C240 EVM

1.10 MODUŁY KOMUNIKACYJNE

STM32Butterfly2. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

Architektura komputerów

Urządzenia wejścia-wyjścia

Mikroprocesory i mikrosterowniki

System czasu rzeczywistego

Wykład Mikrokontrolery i mikrosystemy Cele wykładu:

KAmodRPiADCDAC. Moduł przetwornika A/C i C/A dla komputerów RaspberryPi i RaspberryPi+

Metody obsługi zdarzeń

Parametryzacja przetworników analogowocyfrowych

Instytut Teleinformatyki

Opis funkcjonalny i architektura. Modu³ sterownika mikroprocesorowego KM535

IC200UDD110 ASTOR GE INTELLIGENT PLATFORMS - VERSAMAX NANO/MICRO

Przetwornik analogowo-cyfrowy

Uproszczony schemat blokowy konwertera analogowo-cyfrowego przedstawiony został na rys.1.

Wbudowane układy peryferyjne cz. 3 Wykład 9

Moduł uruchomieniowy mikrokontrolera MC68HC912B32

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

Płyta uruchomieniowa EBX51

Komunikacja z urzadzeniami zewnętrznymi

MAGISTRALE MIKROKONTROLERÓW (BSS) Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

LEKCJA TEMAT: Zasada działania komputera.

NX700 PLC

Transkrypt:

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

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

Podstawowe cechy Architektura niskiego poboru mocy przedłuża żywotność baterii 0.1 μa 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 rejestrów w tym licznika programu, rejestrów stanu i wskaźnika stosu. Operacje rejestrowe pojedyncze cyklu. Duży 16-bitowy rejestr transfery z pamięcią. 16-bitowa magistrala adresowa umożliwia bezpośredni dostęp i rozgałęzienia w całym zakresie pamięci. 16-bitowa szyna danych pozwala na bezpośrednie manipulowanie 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; bic_sr_register_on_exit(cpuoff); } // Move RX data to TX // 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 indywidualne 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 I2C Receiver 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; P1SEL2 = 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=item2582d0 80ce