32-bitni mikrokontroleri i primena - MS1BMP

Slides:



Advertisements
Similar presentations
Cortex-M3 Implementation Overview. Chapter 6 in the reference book.
Advertisements

STM32F10x Changes v1.5 to 1.4 HD added Changes v1.4 to 1.3
Lizard Labs Peripheral Reflex System
Getting Started with a Cortex-M3 Board
Programming Embedded Systems
Asst. Prof. Dr. Alper ŞİŞMAN
BLDC MOTOR SPEED CONTROL USING EMBEDDED PROCESSOR
3-1 System peripherals & Bus Structure Memory map of the LPC2300 device is one contiguous 32-bit address range. However, the device itself is made up of.
Hardware Overview Net+ARM – Well Suited for Embedded Ethernet
Holtek 32-bit MCU Promotion
NetBurner MOD 5282 Network Development Kit MCF 5282 Integrated ColdFire 32 bit Microcontoller 2 DB-9 connectors for serial I/O supports: RS-232, RS-485,
System Clocks.
Typical Microcontroller Purposes
Microcontroller based system design Asst. Prof. Dr. Alper ŞİŞMAN.
ATtiny23131 A SEMINAR ON AVR MICROCONTROLLER ATtiny2313.
AT91 Products Overview. 2 The Atmel AT91 Series of microcontrollers are based upon the powerful ARM7TDMI processor. Atmel has taken these cores, added.
Network and Systems Laboratory nslab.ee.ntu.edu.tw.
Prof: doc.dr. Samir Lemeš student: Samir Hrnjić. System restore je komponenta Microsoftovih operativnih sistema Windows Serveri ne podržavaju opciju System.
ChibiOS/RT Demo A free embedded RTOS
Device Overview 1.  The advantages of all PIC18Fxxxx microcontrollers:  High computational performance  High-endurance  Enhanced Flash program memory.
NAM S.B MDLAB. Electronic Engineering, Kangwon National University 1.
Praxis I.  Introduction  Hardware  Software Tools  Microcontroller board  Blinky (simple program to flash a led)  References.
HOME SECURITY USING WIRELESS SENSOR NETWORK UNDER THE ESTEEMED GUIDANCE OF: P.RAMESH D.SIVOM( ) KANMANI RAVI( ) B.SAI RAJSEKHAR( )
STM32 및 개발보드 소개 Jang Hyunsung Embedded Systems Lab. Dept. of CSE, PNU
1 The LPC1768 Architecture (with focus on Cortex-M3)
2D-Graphic Accelerator
3/2/2017 Richard Kuo Assistant Professor
Lizard Labs Peripheral Reflex System
3/6/2017 Richard Kuo Assistant Professor
Cypress Roadmap: Platform PSoC®
Introduction to the ARM mbed Platform– A Hands-on Course
Outline Introduction to NuMaker TRIO Programming environment setup
Popular Microcontrollers and their Selection by Lachit Dutta
ARM Embedded Systems
Introduction to ChibiOS/RT A free embedded RTOS
Microcontrollers, Basics Fundamentals of Designing with Microcontrollers 16 January 2012 Jonathan A. Titus.
Microcontrollers & GPIO
Computer System Laboratory
Implementation of Embedded OS
Cypress Roadmap: CapSense® Controllers
Programming Microcontroller
32-bitni mikrokontroleri i primena - MS1BMP 2. deo
Interrupt and Exception Programming
Subject Name: Microcontroller Subject Code: 10ES42
STM32F0 value line “augmented”
32-bitni mikrokontroleri i primena - MS1BMP
32-bitni mikrokontroleri i primena - MS1BMP
Introduction to Microprocessors and Microcontrollers
Using FPGAs with Processors in YOUR Designs
32-bitni mikrokontroleri i primena - MS1BMP
32-bitni mikrokontroleri i primena - MS1BMP 6. deo
CheckBox RadioButton RadioGroup
32-bitni mikrokontroleri i primena - MS1BMP 4. deo
KREIRANJE OBJEKATA.
32-bitni mikrokontroleri i primena - MS1BMP
Journey: Introduction to Embedded Systems
LABORATORIJSKA VEŽBA VEŽBA 4
32-bitni mikrokontroleri i primena - MS1BMP 5. deo
32-bitni mikrokontroleri i primena - MS1BMP
32-bitni mikrokontroleri i primena - MS1BMP
32-bitni mikrokontroleri i primena
InputBox i naredba IF.
Networking u Windows-u 2000 i Windows-u XP
32-bitni mikrokontroleri i primena - MS1BMP
Osnovni simboli jezika Pascal
Do While ... Loop struktura
Cypress Roadmap: CapSense® Controllers
Skup instrukcija procesora
Programiranje - Naredbe za kontrolu toka programa – 3. dio
Wireless Embedded Systems
Presentation transcript:

32-bitni mikrokontroleri i primena - MS1BMP 2016/2017 Nenad Jovičić

Organizacija kursa Predavač: Web: tnt.etf.rs/~ms1bmp doc. Dr Nenad Jovičić nenad@etf.rs Web: tnt.etf.rs/~ms1bmp Projekat 40% ocene Ispit (60% ocene): Demonstracija projekta Diskusija o projektu Diskusija o Cortex-u

Timeline U ovom kursu ćemo se baviti kako praktičnom realizacijom projekata koji u sebi sadrže Cortex mikrokontroler, tako i specifičnim teorijskim aspektima ove tehnologije. Gruba struktur kursa: Uvod u Cortex tehnologije. Pisanje softvera po CMSIS standardu. Detaljno proučavanje hardverskih sklopova STM Cortex mikrokontrolera. Specifičnosti arhitekture Cortex mikrokontrolera. Napredne tehnike debagovanja Cortex u DSP aplikacijama RTOS na Cortex platformi

Projekat Implementacija jednostavnog hardversko-softverskog sistema/uređaja na Cortex-M3 ili Cortex-M4 razvojnoj platformi. Projekat ne treba da bude obiman po broju korišćenih periferija, ali treba da bude detaljan u ispitivanju mogućnosti izabranih periferija. Ide se u dubinu a ne u širinu.

Projekat - rokovi danas - 18.10.2016. – Prikupljanje predloga projekata. 18.10.2016. Izveštaj 1. - Idejno rešenje. 18.10.2016. - 25.10.2016. – Definisanje spiska potrebnih komponenti. 25.10.2016. Izveštaj 2. - Dizajn hardvera na nivou električne šeme, i dostavljanje spiska komponenti. 25.10.2016. - 15.11.2016. – Nabavka komponenti. 15.11.2016. - 6.12.2016. – Rad na prototipu. 6.12.2016. Izveštaj 3. – Prototip hardvera i softvera. Minimalna konfiguracija koja potvrđuje izvodljivost projekta. 6.12.2016. – 31.12.2016. Finalizacija projekta. Ispitni rok januar 2016 – Finalni izveštaj.

Razvojni sistemi STM32VLDiscovery STM32F4Discovery

Projekti Primeri projekata na stranici: http://tnt.etf.rs/~ms1bmp/projekti.html

Komponente Preferirani dobavljač modula je kompanija mikroelektronika. www.mikroe.com . Najzgodnije za upotrebu su Click pločice. Moguća je u posebnim slučajevima i nabavka nekih specijalnih komponenti iz stranih kataloga, kao na primer iz www.farnell.com .

Komponente Povezivanje može da bude izvedeno pomoću kratkospojnika, ali može da se realizuje i preko namenski napravljene/izlemljene matične ploče. Nabavka standardnih elektronskih/električnih komponenti se vrši u kelco-u ili mikroprincu. www.kelco.rs , www.mikroprinc.rs

Literatura - knjige The Definitive Guide to ARM® Cortex®-M3 and Cortex®-M4 Processors, Joseph Yiu, Elsevier, 2013. The Designer's Guide to the Cortex-M Processor Family, Trevor Martin, Elsevier, 2013.

Literatura – ARM-ova dokumentacija ARMv7-M Architecture Reference Manual (ARM DDI 0403) ARM Cortex-M3 Integration and Implementation Manual (ARM DII 0240) ARM AMBA® 3 AHB-Lite Protocol (v1.0) (ARM IHI 0033) ARM AMBA™ 3 APB Protocol Specification (ARM IHI 0024) AMBA® 3 ATB Protocol Specification (ARM IHI 0032) ARM CoreSight™ Components Technical Reference Manual (ARM DDI 0314) ARM Debug Interface v5 Architecture Specification (ARM IHI 0031) ARM Embedded Trace Macrocell Architecture Specification (ARM IHI 0014). IEEE Standard Test Access Port and Boundary-Scan Architecture 1149.1-2001 (JTAG). ...

Razvojni sistem STM32VLDISCOVERY

STM32F100RB mikrokontroler Core: ARM® 32-bit Cortex® -M3 CPU 24 MHz maximum frequency,1.25 DMIPS/MHz (Dhrystone 2.1) performance Memories 16 to 128 Kbytes of Flash memory, 4 to 8 Kbytes of SRAM Debug mode Serial wire debug (SWD) and JTAG interfaces DMA 7-channel DMA controller Peripherals supported: timers, ADC, SPIs, I2 Cs, USARTs and DACs 1 × 12-bit, 1.2 μs A/D converter (up to 16 channels) Temperature sensor 2 × 12-bit D/A converters Up to 80 fast I/O ports, all mappable on 16 external interrupt vectors and almost all 5 V-tolerant Up to 12 timers Up to three 16-bit timers, each with up to 4 IC/OC/PWM or pulse counter 16-bit, 6-channel advanced-control timer: up to 6 channels for PWM output, dead time generation and emergency stop One 16-bit timer, Two 16-bit timers, 2 watchdog timers (Independent and Window) SysTick timer: 24-bit downcounter Two 16-bit basic timers to drive the DAC Up to 8 communications interfaces Up to two I2 C interfaces (SMBus/PMBus) Up to 3 USARTs (ISO 7816 interface, LIN, IrDA capability, modem control) Up to 2 SPIs (12 Mbit/s) Consumer electronics control (CEC) interface

STM32F100RB mikrokontroler Core: ARM® 32-bit Cortex® -M3 CPU 24 MHz maximum frequency,1.25 DMIPS/MHz (Dhrystone 2.1) performance Memories 16 to 128 Kbytes of Flash memory, 4 to 8 Kbytes of SRAM Debug mode Serial wire debug (SWD) and JTAG interfaces DMA 7-channel DMA controller Peripherals supported: timers, ADC, SPIs, I2 Cs, USARTs and DACs 1 × 12-bit, 1.2 μs A/D converter (up to 16 channels) Temperature sensor 2 × 12-bit D/A converters Up to 80 fast I/O ports, all mappable on 16 external interrupt vectors and almost all 5 V-tolerant Up to 12 timers Up to three 16-bit timers, each with up to 4 IC/OC/PWM or pulse counter 16-bit, 6-channel advanced-control timer: up to 6 channels for PWM output, dead time generation and emergency stop One 16-bit timer, Two 16-bit timers, 2 watchdog timers (Independent and Window) SysTick timer: 24-bit downcounter Two 16-bit basic timers to drive the DAC Up to 8 communications interfaces Up to two I2 C interfaces (SMBus/PMBus) Up to 3 USARTs (ISO 7816 interface, LIN, IrDA capability, modem control) Up to 2 SPIs (12 Mbit/s) Consumer electronics control (CEC) interface

Programiranje i debagovanje Kratkosponicima na konektoru CN3 se određuje da li je ST-link povezan na ovu pločicu ili neki spoljašnji mikrokontroler. Više podataka o razvojnom sistemu se može naći u dokumentu UM0919.

Memorija i butovanje programa Neposredno pre reseta na osnovu stanja na pinovima BOOT1 i BOOT2 određuje se zona iz koje se startuje izvršavanje programa.

CMSIS - Cortex Microcontroller Software Interface Standard Razvijen u težnji da se standardizuje pristup hervderskim resursima Cortex mikrokontrolera i obezbedi portabilnost softvera među različitim proizvođačima. CMSIS omogućava razvoj ponovo iskoristljivih (reusable) komponenti softvera za sisteme bazirane na ARM Cortex-M. Sistemi bazirani na ARM Cortex-M tehnologiji imaju veliki broj zajedničkih komponenti hardvera pa i Hardware Abstraction Layer (HAL) može biti veoma sličan.

CMSIS - struktura

CMSIS - komponente CMSIS-Core (Cortex-M processor support) CMSIS-Driver – podrška za middleware komponente, tj. Drajvere poizvođača CMSIS-DSP library – od 2010. CMSIS-SVD e the CMSIS System View Description – set XML fajlova koje kreiraju proizvođači mikrokontrolera i preko kojih na stadardizovan način opisuju hardver. Ovo dalje mogu da koriste recimo proizvođači mikrokontrolera. CMSIS-RTOS – univerzalna podrška za razne proizvođače operativnih sistema CMSIS-DAP (Debug Access Port) – set funkcija koje obezbeđuju debug interfejs preko USB ili JTAG/Serial veze. Namenjen za podršku razvoju jeftinih hardveraskih debug interfejsa. CMSIS-Pack – primeri, template-ovi i slični kodovi koji pomažu pri razvoju aplikacija.

CMSIS-DAP Debug-ovanje preko nekih “jegfitnih” debuggera.

Za početak mi treba mala pomoć Napraviti folder D:/MS1MBP/ Download-ovati sledeći zip fajl: http://www.st.com/st-web-ui/static/active/en/st_prod_software_internet/resource/technical/software/firmware/stm32cubef1.zip Raspakovati ga u taj folder tako da struktura bude sledeća: D:/MS1MBP/ STM32Cube_FW_F1_V1.2.0/…….

STM32CubeFx Firmware Package

HAL postaje komplikovan Postoji i takozvani LL (low layer) set drajvera, ali samo za neke nove serije mikrokontrolera.

STM32CubeF1 U okviru workspace-a STM32CubeF1 foldera nalazi se projekat GPIO-IOToggle.

Prvi projekat U glavnom programu se u beskonačnoj petlji neizmenično uključuju i isključuju diode LED3 i LED4 sa čekanjem implementiranim korišćenjem dummy petlje.

STM CUBE CMSIS Struktura projekta Startup fajl – definiše ga proizvođač kompajlera BSP Osnovni konfiguracioni heder fajl za odabranu familiju mikrokontrolera Cortex-M3 prekidi i izuzetci Peripheral header file Ovaj fajl prilagodjava korisnik NVIC i SysTick drivers Low-level & API funkcije koje čine biblioteku periferijskih drajvera.

CMSIS - fajlovi Fajlovi koje definiše isključivo ARM: core_cm3.c - Core Peripheral Access Layer Source File Ovaj fajl sadži implementaciju CMSIS intrinsic funkcija koje su za razliku od intrinsic funkcija u oviru C kompajlera nezavisne od vrste kompajlera  core_cm3.h - Core Peripheral Access Layer Header File Ovaj fajl sadrži definicije registara periferija jezgra i funkcije za pristup tim registrima, kao i deklaraciju intrinsic funkcija   CMSIS layer Device Peripheral Access Layer čine sledeći fajlovi: system_stm32f1xx.c - Device Peripheral Access Layer Source File Ovaj fajl sadži definiciju funkcije SystemInit koja vrši inicijalizaciju dela mikrokontrolera zaduženog za generisanje klok signala i koja se poziva u okviru startup koda  system_stm32f1xx.h - Device Peripheral Access Layer Header File Ovaj fajl sadži deklaraciju funkcije SystemInit  stm32f1xx.h - Device Peripheral Access Layer Header File  Ovaj fajl sadrži definiciju registara periferija mikrokontrolera kao i definiciju bitova u okviru svakog definisanog registra, bazne adrese registara i numeraciju vektora prekida

CMSIS - fajlovi Stm32f1xx_hal_conf.h - Device Peripheral Access Layer Configuration Header File Ovaj fajl sadrži kontroliše korišćenje periferijskih biblioteka koje definiše isključivo proizvođač mikrokontrolera. Stm32f1xx_hal_cortex.c Stm32f1xx_hal_cortex.h Ovi fajlovi definišu specifičnosti kontrole prekida, sistemskog takta i reset-a. Formu propisuje ARM, ali ga neznatno redefiniše svaki proizvođač. stm32f1xx_hal_PPP.x Ovi fajlovi pšredstavljaju drajvere za odgovarajuće periferije i razlikuju se od proizvođača do proizvođača. Specifičnosti različitih razvojnih okruženja se definišu sledećim fajlom: startup_stm32f100xb.s - STM32F100xB Devices vector table for MDK-ARM toolchain. Ovaj fajl sadrži vektor tabelu i Reset_Handler ISR u kojoj se vrši setovanje SP, inicijalizacija dela mikrokontrolera zaduženog za generisanje klok signala i pozicioniranje PC na labelu __iar_program_start gde se nalazi kod za inicijalizaciju promenljivih, nakon čega se poziva main funkcija  Napomena: Ovaj fajl se po pravilu razlikuje od okruženja do okruženja!

Fajlovi koje menja korisnik stm32f1xx_hal_conf.h main_X.c stm32f10x_It.c stm32f10x_It.h

Korišćenje CMSIS-a Počev od verzije KEIL 5 CMSIS Core je sastavni deo kompjalera i uključuje se kroz opcije projekta. Iz tog razloga unutar projektnog direktorijuma nema fajlova core_3m.c i core_3m.h. Na sličan način vrši se i kontrola korišćenja DSP i RTOS biblioteka.

Opcije projekta Konretan mikrokontroler se definiše preko globalnog simbola što utiče na deklaracije u glavnom heder fajlu

Opcije projekta Korišćenje periferijskih biblioteka se kontroliše globalnim simbolom koji povezuje konfiguracione heder fajl.

Periferijske biblioteke U konfiguracionom fajlu se uključuju biblioteke vendor-specific periferija koje obezbeđuje proizvođač mikrokontrolera. U tim hederima se nalaze deklaracije registara, ali i prototipovi specifičnih funkcija za pristup toj periferiji. Korišćenje funkcija zahteva uključivanje i odgovarajućih source fajlova u projekat!

Provera parametara inicijalizacije Poželjno je obezbediti kontrolu inicijalizacije periferija i proizvođači to čine preko funkcija za proveru parametara assert_param() Parametri funkcije su logički izrazi definisani obično u heder fajlovima odgovarajuće periferijske biblioteke

Kontrola provere parametara Funkcije i logički uslovi za proveru parametara su deo proizvođačkih biblioteka i kao takvi se ne menjaju, a globalna kontrola provere se vrši definisanjem globalnog simbola USE_FULL_ASSERT Na kraju korisnik ima mogućnost da u definiše sopstvenu funkciju koja se poziva u slučaju da neki parametar nije prošao runtime proveru.

Kontrola provere parametara Funkcije i logički uslovi za proveru parametara su deo proizvođačkih biblioteka i kao takvi se ne menjaju, a globalna kontrola provere se vrši definisanjem globalnog simbola USE_FULL_ASSERT Pitanje: Gde je definisan simbol USE_FULL_ASSERT? Na kraju korisnik ima mogućnost da u definiše sopstvenu funkciju koja se poziva u slučaju da neki parametar nije prošao runtime proveru.

Opcije projekta - debug Programming Algorithm. Ovaj algoritam definiše proizvođač kompajlera (KEIL) Bez ovog algoritma neće biti moguće spustiti program na uC.

Generisanje takta Sistemski takt: Dodatni taktovi: Klok HSI oscillatora Klok HSE oscillatora Klok PLL - a Dodatni taktovi: 40kHz low speed interni RC oscilator koji se može koristiti za WDT ili RTC 32.768Khz low speed eksterni kristal koji se može koristitii za RTC

SystemInit() funkcija Reset vektor poziva SystemInit() funkciju za psnovu inicijalizaciju, a potom i korisničku main() funkciju Kroz SystemInit() funkciju proizvođač obezbeđuje osnovnu konfiguraciju Resetc Clock Control modula

Tipičan main() Ovo je praktično inicijalizacija Cortex Periferija, ali ne i svih korišćenih periferija mikrokontrolera!

Tipičan main() Definiše korisnik

Inicijalizacija periferija I Pre konfigurisanja bilo koje periferije potrebno je dovesti joj takt korišćenjem odgovarajuće funkcije iz RCC drajvera: __HAL_RCC_PPP_CLK_ENABLE()

Inicijalizacija periferija II Inicijalizacija periferija se uvek izvododi korišćenjem struktura karakterističnih za te periferije: PPP_InitStucture.memberX = valX; PPP_InitStructure.memberY = valY; HAL_PPP_Init(PPPx, &PPP_InitStructure);

Primer Inicijalizacije Ako je potrebno deinicijalizovati tj. Isključiti periferiju poziva se fun kcija HAL_PPP_DeInit()

CMSIS Struktura - rezime Startup fajl – definiše ga proizvođač kompajlera BSP Osnovni konfiguracioni heder fajl za odabranu familiju mikrokontrolera Cortex-M3 prekidi i izuzetci Peripheral header file Ovaj fajl prilagodjava korisnik NVIC i SysTick drivers Low-level & API funkcije koje čine biblioteku periferijskih drajvera.

Kako započeti sopstveni HAL projekat?