Přednáška 1

Přednáška 1
A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL
2012, kat. měření, ČVUT - FEL, Praha
J. Fischer
Přednáška 1
1
HW návrh vestavěných systémů, komponenty a jejich využití, procesor
jako součástka
Logické obvody a jejich vlastnosti z hlediska spolupráce s mikrořad.
(odběr, typové řady, rychlost z hlediska spolupráce s mikroprocesorem,
spolupráce rychlých logických obvodů, vedení, odrazy, zemnění, rozvody
napájení, blokování).
Bloky komunikace s obsluhou (tlačítka, klávesnice, LED a LCD
zobrazovače
Mikrořadiče (Microcontroller) pro vestavěné systémy
Obvody a periferie na čipu mikrořadičů (vstupy, výstupy, rozhraní SPI,
I2C, I2S, USART převodníky A/D, převodníky D/A),
Vnější periferie a jejich připojování (připojení vnějších řadičů – Ethernet,..)
Vnější paměťové obvody a jejich připojování k mikroprocesoru
Dohlížecí obvody a monitorovací obvody pro zajištění spolehlivé funkce
vestavěného systému.
Napájení – síťové napájení, bateriové napájení vestavěných systémů,
stabilizace napájení
A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL
•
•
•
•
•
•
•
•
•
Náplň předmětu A4B38NVS - přednášky
2
A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL
(práce samostatně -1 student)
• Seznámení s IDE Keil pro ARM, pro STM32F100
• Konfigurace výstupních bran STM32F100, ovládání výstupů a LED,
• Generování impulsního signálu, čtení tlačítka
• Časovací jednotka (schodišťový automat)
• Ovládací jednotka se 7- seg. LED, ovládání posuvného registru
74HCT595, (1. hodnocená úloha) + zpráva
• Sériová komunikace, využití UART, komunikace s RS232, zobrazení dat na
LCD a PC (terminál) (2. hodnocená úloha) + zpráva
•
Samostatný projekt: Návrh systému pro sběr dat a monitorování
3._hodnocená úloha, studie k projektu, návrh a realizace, závěrečná
zpráva),
(práce 1 stud., příp. skupina 2 st.)
• Logické obvody CMOS- stat. parametry a jejich určení (skup. 2 stud.)
• Logické obvody CMOS – dyn. parametry a jejich určení , buzení obvodu
procesorem STM32, generování signálu o dané frekvenci (skup. 2 st.)
Test v semestru – 9. týden společný termín - na přednášce (v míst. 340)
Náplň předmětu A4B38NVS - cvičení
3
A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL
STM32F100RB microcontroller,
32-bit ARM Cortex-M3 core
128 KB Flash, 8 KB RAM
64-pin LQFP
STlink ( v1)
STM32F103 – pouzdro 48 pinů, horní
- ladicí procesor
STM32F100 – pouzdro 64 pinů, dolní
aplikační ( uživatelský) procesor
STM32VLDiscovery kit – používaný na cvičení
4
A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL
STM32F051R8T6 microcontroller
32-bit ARM Cortex-M0 core
64 KB Flash, 8 KB RAM
STlink / V2
+ prototypová deska
STM32F0Discovery kit
5
A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL
STM32L152RBT6 microcontroller
ARM CORTEX - M3 core
pouzdro LQFP64
128 KB Flash, 16 KB RAM, 4 KB EEPROM
LCD malé segmenty
kapacitní klávesnice
STlink / V2
STM32LDiscovery kit
6
A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL
STM32F303VCT6 microcontroller
32-bit ARM Cortex-M4F core
(podpora floating. poit. arit.)
256 KB Flash, 48 KB RAM
LQFP100 package
STlink / V2
STM32F3Discovery kit
7
A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL
STM32F407VGT6 microcontroller
32-bit ARM Cortex-M4F core,
(podpora floating. poit. arit.)
1 MB Flash, 192 KB RAM
LQFP100 package
STlink / V2
STM32F4Discovery kit
8
A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL
Možnost využití pro ext. ladění
kity: STM32F0Discovery, STM3Discovery, STM32F4Discovery,
STM32LDiscovery – obsahuje ladicí nástroj STlink/V2 (novější)
Možno osadit – zapájet minimodul s STM32 a využít jej v projektu
Ladění – „boot loader“, nebo pomocí SWD z kitu STM32VL Discovery
Zapůjčení modulů STM32VLDiscovery, příp. i kont. pole na celý semestr
Potřebné vybavení napájení + 5V ( např. z USB), příp. multimetr
Minimum potřebného vybavení – PC s USB a nainstalovaným SW Keil,
mini USB kabel,
Vhodný doplněk - převodník USB na RS232 (dostupné např. v NC
computers za 160 - 220 Kč, www.nc.cz, využitelné i pro práci s jinými
mikroprocesory pro vestavěné systémy – pro funkci Boot Loader)
kit STM32VL Discovery- obsahuje ladicí nástroj STlink
Cvičení – poznámky
9
A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL
Účast na cvičeních povinná
1. + 2. hodnocená úloha (5 +5 b)., studie + samostatný projekt (5 +10),
zprávy, nutno řešit i nebodované úlohy + zpráva
samostatná práce studentů, uvedení případ. informačních zdrojů),
plagiátorství – ne !!!
Domácí příprava – studium zadání, příprava programů, vývojový diagram,
schéma
V laboratoři – odladění úlohy, využití přístrojového vybavení
Hodnocení
10
A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL
ARM - RISC procesory
původ – firma Acorn, výroba stolních počítačů
později vývoj vlastního procesoru ARM1 v r. 1985,
ARM1 - 25 000 tranzistorů, 3 um technologie 4 MHz hod. sig.
ARM2
ARM 3
Založena nová firma - Advaced RISC Machines Ltd.
(majet. účast Apple a Acorn)
změna názvu architektury
z „Acorn RISC Machine“ na „Advaced RISC Machine“
ARM 6 , procesor ARM610 pro PDA (Personal Digital Assistent) firmy Apple
ARM7 v r. 1993, používán v PDA PSION firmy Acorn
ARM7 TDMI doplnění ladicí rozhraní (D,I debug. interface)
rozšířené možnosti násobičky (M)
Thumb instrukční sada (T) - navíc 16- bitové instrukce
ARM7 TDMI – nejlépe prodávaný procesor ( jádro) u ARM
ARM – orientace na přenosná zařízení, mobilní telefony,… rozvoj
ARM - historie
11
A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL
chybí dobrá podpora a spolupráce - řadič přerušení - jádro
Firma ARM – úprava architektury pro potřeby „embedded“ microcontrollerů
Architektura ARM V7M Cortex ,
doplněn NVIC Nested Vectored Interrupt Controller
ARM - Cortex M3 - architektura ARM v7M, náš procesor na cvičeních
Architektura ARM v4T – ovlivnila ARM v7M, ,
(občas bude na ni odkaz při vysvětlování instrukcí)
ARM7 TDMI – - architektura ARM v 4T ( pozor, trochu se plete)
ARM7TDMI používán i ve formě „microcontroller“ – jednočipový mikropočítač
firma Philips (nyní navazující NXP) LPC 2105 procesor ARM7TDI, Flash, RAM,
periferie, řadič přerušení
další firmy využívající ARM7TDMI:
ATMEL, STMicroelectronics, Texas Instruments, Analog Devices,,….
ARM - historie
12
A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL
? jak řešit do 32 bitů kód i adresu
přímé adresování relativně s omezeným rozsahem
adresování registrem
v jedné instrukci – pouze jedna operace s pamětí
aritmetické a logické operace pouze s registrem
ARM - RISC procesory (pojem RISC)
ARM7TDMI 32- bitový procesor, data 32 bitová, (tedy registry 32 bitů)
adresa 32 bitů, adresní prostor 232 = 4 GByte
ARM instrukční kód konstantní délky 32 bitů
v těchto 32 bitech uložen:
kód vlastní instrukce,
případně - registr, přímá data, adresa
ARM
13
A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL
v módu ARM (vykonává instrukce ARM 32 - bitové)
v módu THUM (vykonává instrukce THUMB 16 - bitové)
Instrukce ARM a THUMB není možno „míchat“,
Přechod do THUMB - skok na adresu, kde nejnižší bit adresy je A0=1
(kód instrukce je 16- bitový, tak reálná adresa má A0 =0, ale právě
požadavek skoku na adresu s A0=1 signalizuje požadavek na skok s
přepnutím do režimu THUMB
používají se instrukce BX Rn , kde registr Rn obsahuje požadovanou
adresu s příslušně nastaveným bitem D0 = 0, nebo D0=1
odpovídajícímu adresovému bitu A0
(Přepínání v programu, jaká sada instrukcí se používá, procesor běží:
procesory ARM: 16 – bitové instrukce Thumb
32 – bitové instrukce ARM
ARM7TDMI
instrukční sada ARM - 32 bitů
instrukční sada THUMB – 16 bitů (úsporný kód, větší omezení na
přímá data či adresy)
ARM7 TDMI, instrukce ARM a THUMB
14
A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL
Unified Assembler Language (UAL) – společná syntaxe pro ARM a Thumb
instrukce. Kód psaný s použitím UAL může být přeložen do ARM nebo
Thumb instrukcí.
16 – bitové instrukce Thumb – omezené možnosti – např. ve vzdálenosti
adresy pro skok,…. možnost
ARM Cortex-M3 - instrukční sada Thumb -2
Instrukce Thumb (16- bitové) jsou doplněny 32- bitovými instrukcemi
sada označená jako Thumb - 2,
ARM Cortex M3 – používá sadu Thumb – 2 bez přepínání, je tedy stále v
režimu Thumb a případný pokus o přepnutí do režimu instrukcí ARM
(32 – bitových) vyvolá chybu, proto musí být při požadavku skoku vždy
nejnižší bit adresy A0= 1
Instrukční sada THUMB-2 v návaznosti na inst. ARM
15
A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL
více na www.arm.com
Výrobci individuálně doplňují paměti a různé
periferie přístupné v daném
adresním prostoru
Firma ARM - nevyrábí vlastní procesory,
pouze návrh jádra,
Jádro v rámci licencí využívá mnoho
výrobců (ST, NXP, TI, Atmel,..)
ARM Cortex- M3 - definováno:
vlastní jádro CPU
řadič přerušení
rozložení v adresním prostoru
(kde- SRAM interní, externí, kde
vnitřní sběrnice
spolupráce s rozhraním pro ladění
(debug) JTAG, SWD
Jádro ARM Cortex – M3
16
A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL
DDI 0403 ARM v7-M Architecture Reference Manual (www.ARM.com dostupný po
zaregistrování)
(podrobný popis architektury ARMv7M do které spadá i ARM Cortex M3)
Sadasivan S.:An Introduction to the ARM Cortex-M3 Processor (www.ARM.com)
DUI 0552A_Cortex - M3 devices generic user Guide (www.ARM.com)
DDI 0337E Cortex -M3 Revision: r1p1 Technical Reference Manual (www.ARM.com)
Volně dostupné materiály:
Jádro ARM Cortex – M3 literatura
17
A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL
katalogový listk STM32F100x:
STM32F100x4 STM32F100x6,STM32F100x8 STM32F100xB – (Doc ID 16455 Rev 5)
podrobný referenční manuál:
RM0041 Reference manual STM32F100xx advanced ARM-based 32-bit MCUs
(www.st.com)
Volně dostupné materiály:
STM32F100x
18
A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL
• Velmi zkrácený přehled architektury ARM Cortex M3
z hlediska, implemetace do STM32F1xx
• Přehledný zkrácený popis periferií STM32F1xx
• Doporučeno pro získání prvního přehledu
k použití periferiíSTM32, následně detailní studium
referenčního manuálu k STM32,
• Insiders Guide - dobrý proto to, zjistit, co se má
vlastně hledat v dalších podrobných manuálech
The Insider’s Guide To The STM32 ARM®Based Microcontroller
An Engineer’s Introduction To The STM32 Series
www.hitex.com
Literatura
19
A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL
-
Registry ARM Cortex M3
Horní registry (high reg.) R8 – R12
přístup pouze 32 bitovými instrukcemi s
přístupem k registrům
Dolní registry (low reg.) R0 – R7 přístupné
všemi instrucemi s přístupem k registrům.
R0 – R12 obecné registry
20
A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL
Stack pointer Registr R13 -Stack Pointer (SP) ukazatel zásobníku.
R13 – dvě formy:
hlavní SP (SP main)
procesní SR (SP_process)
Link register Registr R14 je užíván při volání podprogramů
(subroutine Link Register - LR).
Do LR se uloží návratová adresa z PC při instrukci při vykonání instrukcí
Branch an Link (BL) or Branch and Link with Exchange (BLX).
LR je využit také při návratu z obsluhy výjimky (exception return).
R14 – možno obsluhovat jako obecný registr
Programový čítač (Program counter - PC) registr R15
Bit [0] je vždy, takže instrukce jsou zarovnány na hranice slova (4 Byte) nebo
poloviční slova (2 Byte).
Stavový reg. programu (Program Status Registers xPSR) stavových
registr příznaků (Flags)
Registry R13 až R15
21
A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL
Q sticky saturation
(při aritmetice se saturací)
V přetečení overflow
C Carry/ Borrow – výpůjčka
Z Nula
N negativní nebo menší než
1 indikuje aktivní stav
-
Příznakový registr
22
A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL
-
Adresový prostor ARM Cortex – M3
23
1x
1xUSART/LIN
USART/LIN
Smartcard/IrDa
Smartcard/IrDa
Modem-Ctrl
Modem-Ctrl
1x
1xSPI
SPI
Up
Upto
to80
80I/Os
I/Os
Up
Upto
to16
16Ext.
Ext.ITs
ITs
Synchronized
SynchronizedAC
ACTimer
Timer
1x6x
1x6x16-bit
16-bitPWM
PWM
CRC
CRC
77Channels
Channels
11xxDMA
DMA
11xxSystick
SystickTimer
Timer
Nested
Nestedvect
vectIT
ITCtrl
Ctrl
JTAG/SW
JTAG/SWDebug
Debug
Cortex-M3
Cortex-M3
CPU
CPU
24
24 MHz
MHz
A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL
-
Bridge
Bridge
ARM Peripheral Bus
STM32F100
ARM Lite Hi-SpeedBus
Bus
ARM
Lite
Hi-Speed
Matrix//Arbiter
Arbiter(max
(max24MHz)
24MHz)
Matrix
(max 24MHz)
16-128kB
16-128kB
Flash
FlashMemory
Memory
(max 24MHz)
ARM Peripheral Bus
Temp
TempSensor
Sensor
1x
1x12-bit
12-bitADC
ADC
16
channels
16 channels//
850ksps
850ksps
22xx12bit
12bitDAC
DAC
2x16-bit
2x16-bittimer
timereach
each
with
1
IC/OC/PWM
with 1 IC/OC/PWM
1x16-bit
1x16-bittimer
timerwith
with22
IC/OC/PWM
IC/OC/PWM
Bridge
Bridge
Clock
ClockControl
Control
20B
20BBackup
BackupRegs
Regs
4kB-8kB
4kB-8kBSRAM
SRAM
FlashI/F
I/F
Flash
2x
2xI2C
I2C
2x
2xUSART/LIN
USART/LIN
Smartcard
Smartcard//IrDa
IrDa
Modem
ModemControl
Control
2x
2xSPI
SPI
HDMI
HDMICEC
CEC
33xx16-bit
16-bitTimer
Timer
2x
2xWatchdog
Watchdog
(independent
(independent&&window)
window)
RTC
RTC//AWU
AWU
PLL
PLL
Int.
Int.RC
RCoscillators
oscillators
40KHz
40KHz++8MHz
8MHz
XTAL
XTALoscillators
oscillators
32KHz
32KHz++3~25MHz
3~25MHz
Power
PowerSupply
Supply
Reg
Reg1.8V
1.8V
POR/PDR/PVD
POR/PDR/PVD
24
A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL
Odhad chování pinu ( ne + 5V tolerantního) brány STM32F100x na základě
podoby s chování vstupů 74HC04 - viz poznatky z lab. úlohy Diskuse, možné důsledky nevhodného zapojení, důsledky - cvičení měření
statických vlastností logických obvodů CMOS
Standardní vstupně výstupní brány (ne + 5 V tolerantní)
V/V brány v STM32
25
A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL
vstup brány + 5 V tolerantní
RM0041
str. 102
STM32F100 IO brány
26
A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL
Tlačítko – v klidu rozepnuté, na PA0 se čte L dík ypůsobení „Pull down“
rezistoru R21
stisk – čte se 1 , viz manuál UM0919
(Obvykle se tlačítka připojují proti zemi (GND), zde je opačné zapojení
pro možnost demonstrace funkce „ probuzení“ procesoru z režimu
spánku – „Wake – Up“.)
Tlačítko a LED na STM32VL Discovery
27
A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL
(Poznámka: pokud výstupní nebo vstupní pin, či další perierie, nereagují na zápis
dat, je třeba zkontrolovat, zda je přiveden hodinový signál a pin správně
konfigurován!!!)
Následně – nutnost konfigurace každého používaného pinu V/V brány
zápisem do konfiguračního registru
Zápis dat do výstupního registru brány se projeví na výstupu pouze u pinů
konfigurovaných jako výstupy.
LDR R0, =RCC_APB2ENR
; Kopie adresy RCC_APB2ENR (APB2 peripheral clock enable register) do R0
LDR R1, [R0]
; Nacteni stavu registru RCC_APB2ENR do R1
LDR R2, =0x10
; Konstanta pro zapnuti hodin pro branu C
ORR R1, R1, R2
; Maskovani
STR R1, [R0]
; Ulozeni nove hodnoty
Po reset – jsou V/V brány neaktivní (i při zápisu dat do výstupního
registru brány se na výstupu nic neprojeví)
Nejdříve - aktivace hodinového signálu pro výstupní bránu
(viz demo příklad na cvičení – použití brány PC)
Konfigurace brány STM32F100x
28
A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL
PC 0x4001 1000
PA 0x4001 0800
umístění konf. reg.
v adresním prostoru
str. 36 RM0041
Umístění registrů
29
A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL
.
Registry V/V bran
30
A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL
konfigurace bitů 7 až 0 (dolní Byte) - low
31
A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL
konfigurace bitů 15 až 8 ( horní Byte) - high
32
A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL
(další procesory
STM32F050,
STM32F407,..
odlišná konf.
RM0041
str. 103
4 bity pro
konfiguraci
jednoho
bitu brány
shodný způsob:
STM32F103
STM32F105, 107
pouze odlišné adresy
Konfigurace
33
A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL
Vhodné
Tlačítko
Datový registr výstupní brány
34
A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL
Nastavování jednotlivých bitů brány, zápis 1 do bitů 31 až 16 nastavuje přísl.
bit do 1, zápis 1 do bitů 15 až 0 nastavuje přísl. bit do 0
zápis 0 – příslušný výstupní bit se neovlivní
Port bit set/ reset
35
A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL
Vhodné
Zápis 1 do bitů 15 až 0 nastavuje přísl. bit do 0 (RESET),
zápis 0 do registru neaktivní – neovlivní stav výstupu
Reset výstupního pinu brány
36
A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL
Vhodné
Pro čtení tlačítka na PA0
Vstupní brána
37
A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL
0x40011000 GPIOC + offset 0x04 = 0x40011004
0x40011004 GPIOC_CRH (konfigurace PC15 až PC8)
výstupní registr brány PC + offset pro GPIOx_ODR
0x40011000 GPIOC + offset 0x0C = 0x4001100C
0x4001100C GPIOC_ODR výstupní registr pro PC
0x400110808 GPIOA_IDR registr vstupní brány PA
Potřeba znát základní adresu periferie (brány) –z Tab. 1 na str. 36
offset pro příslušný registr z Tab. 48 (str. 129)
zákl. adr. pro GPIOC 0x4001 1000
zákl. adr. pro GPIOA 0x4001 0800
kontrol. reg. pro GPIOx_CRL pro bity 7 až 0 má offset 0x00
kontrol. reg. pro GPIPx_CRH pro bity 15 až 8 má offset 0x04
vstup. dat. reg. GPIOx_IDR
offset 0x08
výst. dat. reg
GPIOx_ODR
offset 0x0C
kontr. reg bit set/ reset GPIOx_BSR
offset 0x10
kontr. reg. bit reset GPIOx_BRR
offset 0x14
Určení adresy registru
38
A4B38NVS, 2012, J.Fischer, kat. měření, ČVUT - FEL
0x4001 1004 GPIOC_CRH konfigurace PC15 až PC8
0x4001 100C GPIOC_ODR výstupní registr pro PC
0x400110808 GPIOA_IDR registr vstupní brány PA
Používané adresy
39
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertisement