Podstawy architektury i programowania mikrokontrolerówftp.us4us.eu/EDU/2011/uC-ARM/uC-ARM-1.pdf ·...

32
Podstawy architektury i programowania mikrokontrolerów ARM CORTEX-M3 dr Marcin Lewandowski [ [email protected] ] 1 STRONA KURSU http://us4us.eu/wydarzenia

Transcript of Podstawy architektury i programowania mikrokontrolerówftp.us4us.eu/EDU/2011/uC-ARM/uC-ARM-1.pdf ·...

Podstawy architektury i programowania mikrokontrolerów

ARM CORTEX-M3

dr Marcin Lewandowski [ [email protected] ]

1

STRONA KURSU http://us4us.eu/wydarzenia

Dla kogo?

• Dla osób zorientowanych na praktyczne zastosowania uC w ich własnej pracy B+R

• WYMAGANE: – znajomośd języka C i ogólne obycie z

programowaniem na PC

– motywacja (czytaj: potrzeba zastosowania)

– notebook PC/Windows

• NIE WYMAGANE (chod pomocne): – Znajomośd elektroniki, systemów cyfrowych,

programowania w asemblerze, …

2

Formuła

• Wykład z dwiczeniami

– raz w tygodniu 2x45min

• Dwiczenia na płytce ewaluacyjnej z uC ARM CORTEX-3 (Atmel SAM3U/SAM7S, Stellaris)

– Płytki dostępne dla uczestników także po zajęciach!

– Wymagany własny notebook z zainstalowanym oprogramowaniem deweloperskim!

3

Zakres zagadnieo

• Programowanie uC obejmuje następujące zagadnienia: – architektura uC – zrozumienie koncepcji działania – peryferia uC – działanie, komunikacja, programowanie – programowanie uC – ograniczenia i specyfika

systemów wbudowanych – Interfejsy zewnętrzne uC – elementy elektroniki

• Wiem, że słuchacze potrzebują uC „do pracy”, dlatego wykład będzie zorientowany na praktyczne umiejętności programowania i wykorzystania mikrokontrolerów!!!

4

Materiały

• Wykład będzie w głównej części oparty na materiałach szkoleniowych firmy Texas Instruments: – Stellaris® One Day Workshop 2010

– Stellaris® MCU training module

• Uzupełniony materiałami firmy ARM oraz innych producentów mikrokontrolerów ARM (ADI, Atmel, Freescale, NXP, ST, etc.)

• A także moim własnym doświadczeniem

5

PLAN

• Ponieważ materiału i tematów jest BARDZO DUŻO wstępnie podzieliłem plan wykładu na części:

– A1 i A2 – podstawowe i obowiązkowe (1-2 semestry)

– B1 i B2 – dodatkowe, wymagające wyboru i doprecyzowania (1-2 semestry)

• Konkretne ustalenia dot. podziału materiału podstawowego i dodatkowego chciałbym zrobid z grupą zainteresowanych słuchaczy!!!

6

PLAN – część A1

• Zastosowania uC – przegląd zastosowao i wymagao – wybór i optymalizacja rozwiązao

• Mikrokontrolery ARM - przegląd rozwiązao i rynku • Przegląd architektur uC i procesorów ARM

– Portfolio uC ARM różnych producentów (podobieostwa i różnice) – Portfolio uC ARM CORTEX-M3 – Przegląd uC Texas Instruments STELLARIS

• Architektura uC ARM CORTEX-M3 – Architektura jądra ARM7TDMI i CORTEX-M3 – Szyny wewnętrzne (AMBA) – Zegar i reset – System przerwao – Pamięci wewnętrzne (RAM, FLASH), układ MMU, akceleratory FLASH – Peryferia

7

PLAN – część A2

• Architektura uC TI STELLARIS – Peryferia (GPIO, PWM, I2C, SPI, CAN, EPI, UART, MAC+PHY)

• Przegląd wybranych płyt i narzędzi uruchomieniowych dla uC ARM – Płytki ewaluacyjne, Płytki referencyjne, demonstratory

• Programowanie uC podstawy

– ALU, rejestry, jednostki wykonawcze, przerwania, peryferia

• Programowanie uC ARM – ALU, pamięci, przerwania, wyjątki, MMU, tryby pracy

• Kompilatory i narzędzia programistyczne dla uC ARM • Wsparcie debuggowania

– Programowanie w układzie – Emulator JTAG

• Przegląd wybranych systemów operacyjnych dla uC ARM • Biblioteki producentów uC ARM • Biblioteki ARM

8

PLAN – część B1

• Interfejsy w zastosowaniach: – Interfejs GPIO (LEDy, przyciski) – Interfejs PWM (sterowanie układów wykonawczych) – Interfejs I2C (układy pamięci, czujniki, peryferia) – Interfejs SPI (układy pamięci, przetworniki A/C i C/A,

peryferia) – Interfejs UART (RS-232, modemy) – Interfejsy pamięci (SRAM, SDRAM, FPGA) – Interfejs USB (HID, Serial, Mass Storage) – Interfejs CAN (czujniki, układy wykonawcze) – Interfejs Ethernet (TCP/IP)

9

PLAN – część B2

• Peryferia w zastosowaniach: – Przetworniki A/C i C/A

– Czujniki wielkości fizycznych

– Układy wykonawcze mocy (przekaźniki, SSR, triaki, MOSFET)

– Interfejsy użytkownika (przyciski, pokrętła, panele dotykowe)

– Wyświetlacze alfanumeryczne i graficzne (LCD, TFT, OLED)

– Karty pamięci i systemy plików (CompactFlash, SD, FAT)

– Komunikacja bezprzewodowa (GSM, Bluetooth, WiFi, ZigBee)

10

!!! UWAGA !!!

• PAMIĘTAJ o BHP przy pracy z: – urządzeniami elektrycznymi

– ostrymi i/lub gorącymi narzędziami

• Opanowanie uC wymaga: – Sporo czasu

– Dużo własnego POTU i ŁEZ

• ZALECAM podnoszenie kultury technicznej: – Czytanie książek i dokumentacji

– Pracę nad warsztatem elektronicznym

11

MATERIAŁY, PUBLIKACJE, LINKI

12

TI Stellaris (nasza baza)

• TI University Program http://focus.ti.com/general/docs/gencontent.tsp?contentId=76595

• TI Training http://focus.ti.com/general/docs/traininghome.tsp

• TI University Teaching ROMs http://www.ti.com/ww/eu/university/roms.html

• Stellaris One Day Workshop http://processors.wiki.ti.com/index.php/Stellaris_One_Day_Workshop

• Hands-On Training for TI Embedded Processors http://processors.wiki.ti.com/index.php/Hands-On_Training_for_TI_Embedded_Processors

13

Książki o ARM

• Steve Furber, ARM System-on-Chip Architecture, Addison-Wesley, 2000 – 432str.

• Andrew Sloss, Dominic Symes, Chris Wright, ARM System Developer's Guide: Designing and Optimizing System Software, Morgan Kaufmann, 2004 – 689str.

15

Książki o ARM

• Joseph Yiu, The Definitive Guide to the ARM Cortex-M3, Newnes, 2009 – 479str.

• William Hohl, ARM Assembly Language: Fundamentals and Techniques, CRC, 2009 – 371str.

16

Polskojęzyczne książki o uC ARM

17

Książki o programowaniu uC

• Michael Barr, Programming Embedded Systems: With C and GNU Development Tools, O'Reilly, 2006 – 307str.

• John Catsoulis, Designing Embedded Hardware, O'Reilly, 2005 – 400str.

18

… i czasopisma

• Elektronika Praktyczna – www.elektronikapraktyczna.pl

• Circuit Cellar – www.circuitcellar.com

19

Linki

• Wydawnictwo Newnes – www.newnespress.com

• Wydwnictwo BTC – www.btc.pl

• ARM Academic Books, Training, OS & Research Resources www.arm.com/support/university/academic-resources.php

• EECS 373 – Design of Microprocessor-Based Systems www.eecs.umich.edu/~prabal/teaching/eecs373-f10

• ECE 471 – Microprocessor Applications Engineering http://arch.eece.maine.edu/ece471/index.php

20

Moduły/Evale uC ARM

• Mbed (LPC1768) – http://mbed.org

• Hitex (LPC, STM32) – www.hitex.com

• ARM/Keil – www.keil.com/arm/boards

• KAMAMI – www.kamami.pl

• LPCXpresso (NXP LPC11xx, 13xx, 17xx) – http://ics.nxp.com/lpcxpresso http://ics.nxp.com/lpczone

21

WPROWADZENIE

22

Taksonomia uC

• Mikrokomputer zintegrowana w jednym układzie scalonym (procesor, pamięd danych i programu, peryferia), do zastosowao wbudowanych

• Wysokowydajne mikrokomputery z peryferiami w układzie określamy mianem SOC (System-on-Chip) – np. do smartfonów

23

Gdzie są uC !?

• WSZĘDZIE

• Wolumin uC w roku 2010*:

–20e9 szt.

–w tym >=2e9 szt. ARM

24 *wg. „The Definitive Guide to the ARM Cortex-M3”

LEGO® MINDSTORM® NXT

25

Konkurs DesignStellaris 2010 LCD OSCILLOSCOPE

26

Konkurs DesignStellaris 2010 Bicycle ABS Brake System

27

uC i sieci

28

PŁYTKI EWALUACYJNE

29

Moduł SAM7S

30

STELLARIS DK-LM3S9B96

31

Atmel SAM3U-EK

32