際際滷

際際滷Share a Scribd company logo
CH働NG 2: ARM STM32F1X
PHAN VN HON 7
Ch動董ng 2
ARM STM32F1X
2.1 CC DNG ARM C畛A HNG ST
T鱈nh 畉n th畛i i畛m 8/2015 th狸 h達ng ST 達 cho ra 畛i nh畛ng d嘆ng ARM ch鱈nh sau:
STM32L0, STM32L1, STM32L4, STM32F0, STM32F1, STM32F2, STM32F3, STM32F4,
STM32F7.
H狸nh 2.1 C叩c d嘆ng ARM c畛a h達ng ST
2.2 GI畛I THI畛U DNG ARM STM32F1
D嘆ng ARM STM32F1 動畛c chia ra lm 5 nh坦m nh畛, m畛i nh坦m s畉 c坦 s畛 dung l動董ng b畛
nh畛 Flash, SRAM v s畛 l動畛ng ngo畉i vi kh叩c nhau.
 Low-density: G畛m c叩c vi i畛u khi畛n STM32F101xx, STM32F102xx v
STM32F103xx c坦 b畛 nh畛 Flash t畛 16 畉n 32 Kbytes.
 Medium-density: G畛m c叩c vi i畛u khi畛n STM32F101xx, STM32F102xx v
STM32F103xx c坦 b畛 nh畛 Flash t畛 64 畉n 128 Kbytes.
 High-density: G畛m c叩c vi i畛u khi畛n STM32F101xx v STM32F103xx c坦 b畛 nh畛
Flash t畛 256 畉n 512 Kbytes.
CH働NG 2: ARM STM32F1X
8 PHAN VN HON
 XL-density: G畛m c叩c vi i畛u khi畛n STM32F101xx v STM32F103xx c坦 b畛 nh畛
Flash t畛 768 畉n 1 Mbyte.
 Connectivity line: G畛m c叩c vi i畛u khi畛n STM32F105xx v STM32F107xx.
H狸nh 2.2 Ph但n lo畉i vi i畛u khi畛n thu畛c d嘆ng STM32F1
2.3 KI畉N TRC C畛A ARM STM32F1
 Icode bus: K畉t n畛i l探i Cortex-M3 v畛i b畛 nh畛 Flash 畛 truy畛n m達 l畛nh.
 Dcode bus: K畉t n畛i l探i Cortex-M3 v畛i b畛 nh畛 Flash 畛 truy畛n d畛 li畛u.
 System bus: K畉t n畛i l探i Cortex-M3 v畛i BusMatrix v BusMatrix s畉 ph但n quy畛n s畛
d畛ng bus gi畛a l探i ARM v kh畛i DMA.
 DMA bus: K畉t n畛i DMA v畛i BusMatrix v BusMatrix s畉 qu畉n l箪 vi畛c truy xu畉t d畛
li畛u c畛a CPU, DMA t畛i SRAM, Flash v c叩c ngo畉i vi.
 BusMatrix: Ph但n quy畛n s畛 d畛ng bus gi畛a l探i ARM v kh畛i DMA. Vi畛c ph但n quy畛n
ny d畛a tr棚n thu畉t to叩n Round Robin ( C叩c kh畛i s畉 thay phi棚n nhau truy c畉p bus trong
1 董n v畛 th畛i gian 畛nh s畉n).
 C叩c c畉u AHB/APB : 2 c畉u AHB/APB gi炭p 畛ng b畛 k畉t n畛i gi畛a AHB v畛i 2 bus
APB. APB1 c坦 t畛c 畛 t畛i a l 36 MHz v APB2 畉t t畛c 畛 t畛i a 72 MHz .
Sau m畛i l畉n CPU b畛 reset th狸 t畉t c畉 c叩c ngu畛n xung clock c畉p cho ngo畉i vi 畛u b畛 t畉t h畉t
ch畛 tr畛 clock c畉p cho SRAM v FLITF v狸 v畉y tr動畛c khi s畛 d畛ng ngo畉i vi SV c畉n c畉u h狸nh c畉p
xung clock cho ch炭ng th担ng qua 3 thanh ghi RCC_AHBENR, RCC_APB1ENR,
RCC_APB2ENR.
XL
density
768K-1M
High
density
256-512K
Medium
density
64-128K
Low
density
16-32K
Connectivity
line
F105, F107
CH働NG 2: ARM STM32F1X
PHAN VN HON 9
H狸nh 2.3 Ki畉n tr炭c c畛a ARM STM32F1
2.4 T畛 CH畛C VNG NH畛 C畛A ARM STM32F1
B畛 nh畛 ch動董ng tr狸nh, b畛 nh畛 d畛 li畛u v c叩c thanh ghi v c叩c port I/O 動畛c b畛 tr鱈 trong
kh担ng gian 畛a ch畛 tuy畉n t鱈nh 4Gbyte.
2.4.1 畛a ch畛 c畛a ngo畉i vi ( 畛a ch畛 n畛n 0x4000 0000)
Ph畉m vi 畛a ch畛 c畛a t畉t c畉 c叩c ngo畉i vi 動畛c thu畛c d嘆ng STM32F1 動畛c li畛t k棚 trong
b畉ng 2.1. B畉ng li畛t k棚 ny gi炭p ta t鱈nh to叩n 動畛c 畛a ch畛 c畛a t畛ng thanh ghi thu畛c 1 ngo畉i vi
no 坦 th担ng qua 畛a ch畛 offset c畛a n坦.
V鱈 d畛 畛 t狸m 畛a ch畛 thanh ghi GPIOB_ODR, 畛c datasheet ta th畉y 畛a ch畛 offset c畛a
thanh ghi ODR l 0x0C
 V畉y 畛a ch畛 thanh ghi GPIOB_ODR = 畛a ch畛 n畛n PORTB + 畛a ch畛 offset c畛a ODR
= 0x4001 0C00 + 0x0C = 0x4001 0C0C
Vi畛c t鱈nh 動畛c 畛a ch畛 c畛a c叩c thanh ghi gi炭p ta c坦 th畛 truy xu畉t ch炭ng th担ng qua 畛a ch畛
坦, nh動ng tr棚n th畛c t畉 khi l畉p tr狸nh c叩c 畛a ch畛 ny 畛u 達 動畛c 畛nh ngh挑a s畉n trong th動 vi畛n
stm32f10x.h SV kh担ng c畉n ph畉i t鱈nh to叩n l畉i.
B畉ng 2.1 畛a ch畛 c畛a c叩c ngo畉i vi trong h畛 ARM STM32F1
Ph畉m vi 畛a ch畛 Ngo畉i vi Bus
0x5000 0000 - 0x5000 03FF USB OTG FS
0x4003 0000 - 0x4FFF FFFF Reserved
0x4002 8000 - 0x4002 9FFF Ethernet
0x4002 3400 - 0x4002 7FFF Reserved
0x4002 3000 - 0x4002 33FF CRC
0x4002 2000 - 0x4002 23FF Flash memory interface
CH働NG 2: ARM STM32F1X
10 PHAN VN HON
0x4002 1400 - 0x4002 1FFF Reserved AHB
0x4002 1000 - 0x4002 13FF Reset and clock control RCC
0x4002 0800 - 0x4002 0FFF Reserved
0x4002 0400 - 0x4002 07FF DMA2
0x4002 0000 - 0x4002 03FF DMA1
0x4001 8400 - 0x4001 7FFF Reserved
0x4001 8000 - 0x4001 83FF SDIO
0x4001 4000 - 0x4001 7FFF Reserved
APB2
0x4001 3C00 - 0x4001 3FFF ADC3
0x4001 3800 - 0x4001 3BFF USART1
0x4001 3400 - 0x4001 37FF TIM8 timer
0x4001 3000 - 0x4001 33FF SPI1
0x4001 2C00 - 0x4001 2FFF TIM1 timer
0x4001 2800 - 0x4001 2BFF ADC2
0x4001 2400 - 0x4001 27FF ADC1
0x4001 2000 - 0x4001 23FF GPIO Port G
0x4001 1C00 - 0x4001 1FFF GPIO Port F
0x4001 1800 - 0x4001 1BFF GPIO Port E
0x4001 1400 - 0x4001 17FF GPIO PortD
0x4001 1000 - 0x4001 13FF GPIO Port C
0x4001 0C00 - 0x4001 0FFF GPIO Port B
0x4001 0800 - 0x4001 0BFF GPIO Port A
0x4001 0400 - 0x4001 07FF EXTI
0x4001 0000 - 0x4001 03FF AFIO
0x4000 7800 - 0x4000 FFFF Reserved
APB1
0x4000 7400 - 0x4000 77FF DAC
0x4000 7000 - 0x4000 73FF Power control PWR
0x4000 6C00 - 0x4000 6FFF Backup registers (BKP)
0x4000 6800 - 0x4000 6BFF Reserved
0x4000 6400 - 0x4000 67FF bxCAN1
0x4000 6800 - 0x4000 6BFF bxCAN2
0x4000 6000 - 0x4000 63FF Shared USB/CAN SRAM 512 bytes
0x4000 5C00 - 0x4000 5FFF USB device FS registers
0x4000 5800 - 0x4000 5BFF I2C2
0x4000 5400 - 0x4000 57FF I2C1
0x4000 5000 - 0x4000 53FF UART5
0x4000 4C00 - 0x4000 4FFF UART4
0x4000 4800 - 0x4000 4BFF USART3
0x4000 4400 - 0x4000 47FF USART2
0x4000 4000 - 0x4000 3FFF Reserved
0x4000 3C00 - 0x4000 3FFF SPI3/I2S
0x4000 3800 - 0x4000 3BFF SPI2/I2S
0x4000 3400 - 0x4000 37FF Reserved
0x4000 3000 - 0x4000 33FF Independent watchdog (IWDG)
0x4000 2C00 - 0x4000 2FFF Window watchdog (WWDG)
0x4000 2800 - 0x4000 2BFF RTC
0x4000 1800 - 0x4000 27FF Reserved
0x4000 1400 - 0x4000 17FF TIM7 timer
CH働NG 2: ARM STM32F1X
PHAN VN HON 11
0x4000 1000 - 0x4000 13FF TIM6 timer
0x4000 0C00 - 0x4000 0FFF TIM5 timer
0x4000 0800 - 0x4000 0BFF TIM4 timer
0x4000 0400 - 0x4000 07FF TIM3 timer
0x4000 0000 - 0x4000 03FF TIM2 timer
2.4.2 畛a ch畛 c畛a SRAM ( 畛a ch畛 n畛n 0x20000000)
C叩c vi i畛u khi畛n thu担c d嘆ng STM32F1c坦 th畛 c坦 t畛i a 64 Kbyte b畛 nh畛 RAM. B畛 nh畛
ny c坦 th畛 動董c truy xu畉t theo byte, n畛a word (16 bit) ho畉c l c畉 word (32 bit).
2.4.3 畛a ch畛 c畛a FLASH ( 畛a ch畛 n畛n 0x0800 0000)
B畛 nh畛 Flash c坦 nh畛ng 畉c i畛m sau:
 畛i v畛i d嘆ng XL-density: b畛 nh畛 Flash c坦 k鱈ch th動畛c l 1Mbyte v 動畛c chia ra lm
2 bank m畛i bank 512 Kbytes.
 畛i v畛i c叩c d嘆ng kh叩c th狸 b畛 nh畛 Flash c坦 k鱈ch th動畛c t畛i a l 512 Kbytes.
 B畛 nh畛 Flash 動畛c chia ra lm 2 kh畛i v kh畛i ch鱈nh ( main block) v kh畛i th担ng tin
(information block).
 Ngoi vi畛c l動u ch動董ng tr狸nh Flash c嘆n 動畛c s畛 d畛ng 畛 l動u c叩c th担ng tin ng動畛i d湛ng
nh動 vai tr嘆 c畛a 1 EPROM.
 Cho ph辿p b畉o v畛 畛c v ghi.
B畉ng 2.2 Ph畉m vi main block c畛a c叩c d嘆ng ARM
D嘆ng ARM Dung l動董ng Flash t畛i a Ph畉m vi main block
Low-density 32 Kbytes 0x0800 0000 - 0x0800 7FFF
Medium-density 128 Kbytes 0x0800 0000 - 0x0801 FFFF
High-density 512 Kbytes 0x0800 0000 - 0x0807 FFFF
XL-density 1 Mbyte 0x0800 0000 - 0x080F FFFF
Connectivity line 256 Kbytes 0x0800 0000 - 0x0803 FFFF
Ch炭 箪: Khi mu畛n s畛 d畛ng b畛 nh畛 Flash 畛 l動u tr畛 d畛 li畛u nh動 vai tr嘆 c畛a m畛t EPROM
th狸 ta n棚n d畛a vo b畉ng 2.2 畛 bi畉t 動畛c ph畉m vi c畛a b畛 nh畛 Flash 畛ng v畛i d嘆ng ta ang s畛
d畛ng 畛 t畛 坦 c坦 th畛 ch畛n v湛ng 畛a ch畛 cu畛i b畛 nh畛 lm n董i l動u tr畛( v狸 n畉u ch畛n v湛ng 畛a ch畛
畉u c坦 th畛 d畛 li畛u s畉 竪 l棚n ch動董ng tr狸nh).
畛a ch畛 b畉t 畉u c畛a b畛 nh畛 Flash l 0x08000000 v 動畛c chia ra lm nhi畛u page. K鱈ch
th動畛c c畛a m畛t page ph畛 thu畛c vo phi棚n b畉n ARM. 畛i v畛i b畉n low v medium density th狸 m畛i
page l 1 Kbytes, b畉n high density th狸 m畛i page c坦 2 Kbytes. M畛i khi mu畛n ghi d畛 li畛u vo Flash
ta c畉n ph畉i x坦a h畉t d畛 li畛u trong page mu畛n ghi ngay c畉 khi ch畛 mu畛n ghi 1 byte.
a. C叩c l畛nh th担ng d畛ng li棚n quan 畉n FLASH
B畉ng 2.3 C叩c l畛nh c董 b畉n li棚n quan 畉n FLASH
S畛 D畛NG TH働 VI畛Nstm32f10x_flash
L畛nh
Th担ng s畛 hay d湛ng Gi畉i th鱈ch
FLASH_Unlock();
(L畛nh m畛 kh坦a 畛 cho ph辿p x坦a Flash)
CH働NG 2: ARM STM32F1X
12 PHAN VN HON
FLASH_ClearFlag(A);
(L畛nh x坦a c叩c c畛 b叩o tr畉ng th叩i c畛a Flash)
A:
FLASH_FLAG_PGERR
FLASH_FLAG_WRPRTERR
FLASH_FLAG_EOP
A: C畛 c畉n x坦a
L畛i n畉p ch動董ng tr狸nh
L畛i b畉o v畛 ghi
X畛 l箪 xong y棚u c畉u
FLASH_ErasePage(A);
(L畛nh x坦a 1 Page)
A: 畛a ch畛 Page c畉n x坦a A: 畛a ch畛 32 bit
FLASH_ProgramHalfWord(A, B);
(L畛nh ghi n畛a word-16 bit vo Flash)
A: 畛a ch畛 c畛a n畛a word c畉n ghi
B: Gi叩 tr畛 c畉n ghi
A: 畛a ch畛 32 bit
B: Gi叩 tr畛 16 bit
FLASH_ProgramWord(A,B);
(L畛nh ghi 1 word-32 bit vo Flash)
A: 畛a ch畛 c畛a word c畉n ghi
B: Gi叩 tr畛 c畉n ghi
A: 畛a ch畛 32 bit
B: Gi叩 tr畛 32 bit
FLASH_Lock();
(L畛nh kh坦a Flash 畛 ch畛ng x坦a d畛 li畛u)
b. V鱈 d畛 v畛 ghi v 畛c d畛 li畛u t畛 b畛 nh畛 FLASH
V鱈 d畛 2.1: Vi畉t ch動董ng tr狸nh con l動u 100 s畛 16 bit c畛a m畉ng unsigned short datasave[100]
vo page cu畛i b畛 nh畛 Flash c畛a ARM STM32F103VET6 v 畛ng th畛i vi畉t ch動董ng tr狸nh con
畛c v畛 c叩c gi叩 tr畛 達 l動u 畛 l動u l畉i vo m畉ng unsigned short dataread[100]
a. T鱈nh to叩n 畛a ch畛
ARM STM32F103VET6 l d嘆ng high density c坦 Flash 512 Kbytes, m畛i page 2 Kbytes
 Page cu畛i c湛ng l page s畛: (512:2) -1=255
 畛a ch畛 page cu畛i c湛ng = 255*2048+0x08000000 = 0x0807F800
b. Ch動董ng tr狸nh
void WriteFlash()
{ char i;
FLASH_Unlock();
// M畛 kh坦a Flash cho ph辿p x坦a d畛 li畛u
FLASH_ClearFlag(FLASH_FLAG_EOP
|FLASH_FLAG_PGERR
|FLASH_FLAG_WRPRTERR);
// X坦a c叩c c畛 b叩o tr畉ng th叩i c畛a Flash
FLASH_ErasePage(0x0807F800);
// X坦a page c畉n ghi
for(i =0; i<100; i++)
FLASH_ProgramHalfWord(0x0807F800 + i*2,datasave[i]);
// Ghi 100 s畛 16 bit vo Flash
FLASH_Lock();
// Kh坦a Flash 畛 c畉m x坦a
}
void ReadFlash()
{
char i;
CH働NG 2: ARM STM32F1X
PHAN VN HON 13
for(i=0; i<100; i++)
dataread[i] = *(unsigned int *)(0x0807F800 + i*2);
// 畛c 100 s畛 16 bit t畛 Flash v畛
}
2.5 BIT BAND C畛A ARM STM32F1X
C叩c phi棚n b畉n ARM tr動畛c ch畛 c坦 th畛 th畛c hi畛n thao t叩c bit tr棚n v湛ng nh畛 SRAM v v湛ng
nh畛 ngo畉i vi b畉ng c叩c l畛nh AND v OR. i畛u ny 嘆i h畛i CPU ph畉i t畛n nhi畛u th畛i gian cho vi畛c
畛c  s畛a 畛i  ghi l畉i d畛 li畛u vo b畛 nh畛.
K畛 thu畉t bit band cho ph辿p b畛 x畛 l箪 ARM STM32F1 thao t叩c bit tr畛c ti畉p m kh担ng c畉n
d湛ng ph辿p AND hay OR do 坦 gi炭p gi畉m thi畛u th畛i gian th畛c hi畛n.
Bit band ho畉t 畛ng b畉ng c叩ch 叩nh x畉 m畛i bit trong bit band region t畛i m畛t 畛a ch畛
word trong v湛ng bit band alias v b畉ng c叩ch 畉t (set) hay x坦a (clear) word ny ta c坦 th畛 畉t
ho畉c x坦a bit t動董ng 畛ng trong bit band region.
H狸nh 2.4 Bit band c畛a v湛ng nh畛 SRAM v ngo畉i vi
C担ng th畛c t鱈nh 畛a ch畛 c畛a 1 bit thu畛c Bit band region 動畛c 叩nh x畉 trong Bit band alias :
畛a ch畛 trong Bit Band Alias = Bit Band Alias Base Address + Bit Word Offset
Bit Word Offset = Byte offset from Bit Band Region Base * 32 + bit number * 4
2.5.1 V鱈 d畛 v畛 s畛 d畛ng bit band
Y棚u c畉u: S畛 d畛ng k畛 thu畉t Bit Band 畛 i畛u khi畛n s叩ng ho畉c t畉t LED 動畛c k畉t n畛i v畛i ch但n
B8. Bi畉t thanh ghi ng探 ra c畛a PORTB (GPIOB_ODR) c坦 畛a ch畛 offset l 0x0C v 畛a ch畛 n畛n
(Base Address) c畛a PORTB l 0x40010C00.
( C叩c th担ng s畛 tr棚n c坦 th畛 xem trong datasheet ho畉c xem trong file stm32f10x.h)
CH働NG 2: ARM STM32F1X
14 PHAN VN HON
a. T鱈nh to叩n 畛a ch畛
 T狸m Bit Band Alias Base Address : Do PORTB l ngo畉i vi n棚n
 Bit Band Alias Base Address = 0x42000000
 T狸m Bit Word Offset :
Byte offset from Bit Band Region Base = 0x40010C0C - 0x40000000 = 0x10C0C
V畛i : 0x40000000 l Peripheral Bit Band Region Base Address
0x40010C0C l 畛a ch畛 v畉t l箪 c畛a GPIOB_ODR = 0x40010C00 + 0x0C
 Bit Word Offset = 0x10C0C *32 + 8*4 = 0x2181A0
V畉y ta c坦 :
畛a ch畛 trong v湛ng Bit Band Alias c畛a Bit 8 GPIOB_ODR (GPIOB_ODR_Bit8)
GPIOB_ODR_Bit8 = 0x42000000 + 0x2181A0 = 0x422181A0
b. L畉p tr狸nh
Khi l畉p tr狸nh ta c坦 th畛 t畉o 1 con tr畛 畉n 畛a ch畛 ny b畉ng 畛nh ngh挑a sau:
#define PB8 (*(unsigned long *)0x422181A0)
Ch炭 箪: 畛 kh畛i t畛n c担ng t鱈nh to叩n nh動 tr棚n ta c坦 th畛 畛nh vi畉t nh動 sau:
#define Bitband(ad,bn) *(unsigned long*)
((ad&0xF0000000)+0x2000000+((ad&0xFFFFF)*32)+ bn*4)
#define PB8 Bitband((unsigned long)&GPIOB->ODR,8)
L炭c ny ta c坦 th畛 i畛u khi畛n t畉t m畛 LED 畛 ch但n B8 m畛t c叩ch d畛 dng b畉ng 2 l畛nh sau:
PB8 =1; // Ch但n B8 l棚n m畛c 1
PB8 =0; // Ch但n B8 xu担ng m畛c 0
2.6 C畉U HNH BOOT CHO ARM STM32 F1
D嘆ng STM32F1 c坦 3 ch畉 畛 boot 動畛c ch畛n b畛i 2 ch但n BOOT[1:0] theo b畉ng 2.4.
B畉ng 2.4 C叩c ch畉 畛 boot c畛a ARM STM32F1
Tr畉ng th叩i ch但n boot
Ch畉 畛 boot Gi畉i th鱈ch
BOOT1 BOOT1
x 0 B畛 nh畛 Flash ch鱈nh Ch畛n boot t畛 b畛 nh畛 Flash ch鱈nh
0 1 B畛 nh畛 h畛 th畛ng Ch畛n boot t畛 b畛 nh畛 h畛 th畛ng
1 1 SRAM Ch畛n boot t畛 b畛 nh畛 SRAM
Tr畉ng th叩i c畛a c叩c ch但n BOOT 動畛c c畉p nh畉t vo th畛i i畛m c坦 c畉nh l棚n th畛 4 c畛a xung
SYSCLK sau khi Reset. Vi畛c ch畛n ch畉 畛 boot ph畛 thu畛c vo vi畛c ci 畉t c畛a ng動畛i d湛ng 畛i
v畛i 2 ch但n BOOT1 v BOOT0 v tr畉ng th叩i c叩c ch但n boot ny s畉 動畛c c畉p nh畉t l畉i sau m畛i l畉n
tho叩t kh畛i ch畉 畛 Standby.
Boot loader 動畛c l畉p tr狸nh b畛i h達ng ST v m畉c 畛nh l動u trong b畛 nh畛 h畛 th畛ng. Boot
loader 動畛c s畛 d畛ng 畛 n畉p ch動董ng tr狸nh vo b畛 nh畛 Flash b畉ng m畛t s畛 chu畉n truy畛n n畛i ti畉p:
 畛i v畛i c叩c d嘆ng low, medium, high density th狸 boot loader s畛 d畛ng USART1 畛 n畉p
ch動董ng tr狸nh vo Flash
 畛i v畛i d嘆ng conectivity line th狸 boot loader s畛 d畛ng USART1, USART2 (remap),
CAN2 (remap) ho畉c USB OTG FS ho畉t 畛ng 畛 ch畉 畛 DFU-Device Firmware
Upgrade
Trong ch畉 畛 ny USART s畉 ho畉t 畛ng nh畛 giao 畛ng n畛i 8 Mhz (HSI) c嘆n CAN v
USB ch畛 c坦 th畛 ho畉t 畛ng nh畛 giao 畛ng ngo畉i HSE khi k畉t n畛i v畛i th畉ch anh 8 Mhz, 14.7456
MHz ho畉c 25 MHz.
CH働NG 2: ARM STM32F1X
PHAN VN HON 15
2.7 C畉P NGU畛N CHO ARM STM32F1
Ngu畛n cung c畉p cho ARM (VDD) ph畉i n畉m trong ph畉m vi t畛 2 畉n 3.6 V( th動畛ng c畉p
3.3V) . M畛t b畛 i畛u ch畛nh i畛n 叩p b棚n trong 動畛c s畛 d畛ng 畛 cung c畉p ngu畛n 1.8V cho l探i i畛u
khi畛n, SRAM v ngo畉i vi s畛.
畛ng h畛 th畛i gian th畛c( RTC) v c叩c thanh ghi backup 動畛c c畉p ngu畛n b畉ng Pin 3V vo
ch但n VBAT 畛 h畛 th畛ng v畉n 畛nh th畛i 炭ng khi t畉t ngu畛n VDD. N畉u kh担ng d湛ng ngu畛n Pin th狸
ch但n VBAT ph畉i 動畛c n畛i l棚n ngu畛n VDD v c畉n 動畛c l畛c nhi畛u b畉ng t畛 100 nF.
C叩c ch但n VDDA v VSSA ph畉i 動畛c k畉t n畛i t動董ng 畛ng v畛i VDD v VSS xem h狸nh 2.5
Ch但n VREF- ph畉i 動畛c n畛i v畛i VSSA n畉u vi i畛u khi畛n 動畛c d湛ng c坦 ch但n ny.
畛i v畛i c叩c phi棚n b畉n ARM 100 ch但n v 144 ch但n ch但n VREF+ c畛a ADC v DAC 動畛c
thi畉t k畉 ri棚ng, 畛 tng 畛 ch鱈nh x叩c c畛a k畉t qu畉 chuy畛n 畛i ng動畛i d湛ng n棚n n畛i ch但n ny v畛i
m畛t ngu畛n cung c畉p 畛c l畉p v畛i VDD. Gi叩 tr畛 i畛n 叩p cung c畉p cho VREF+ n畉m trong ph畉m vi t畛
2.4V t畛i VDD.
畛i v畛i c叩c phi棚n b畉n ARM 64 ch但n tr畛 xu畛ng th狸 ch但n VREF+ v VREF- kh担ng t畛n t畉i v狸
ch炭ng 達 動畛c k畉t n畛i b棚n trong v畛i ngu畛n c畉p cho ADC (VDDA v VSSA).
2.7.1 Kh畛i i畛u ch畛nh i畛n 叩p( Voltage regulator)
Kh畛i i畛u ch畛nh i畛n 叩p lu担n 動畛c m畛 ngay sau khi Reset. Kh畛i ny c坦 th畛 lm vi畛c 畛
3 ch畉 畛 kh叩c nhau:
 Trong ch畉 畛 Run kh畛i i畛u ch畛nh i畛p 叩p cung c畉p ngu畛n 1.8V cho t畉t c畉 c叩c kh畛i
s畛 d畛ng ngu畛n ny nh動 l l探i x畛 l箪, b畛 nh畛 v c叩c ngo畉i vi s畛.
 Trong ch畉 畛 Stop kh畛i i畛u ch畛nh i畛n 叩p ch畛 cung c畉p ngu畛n 1.8V cho SRAM 畛
b畉o v畛 d畛 li畛u c畛a c叩c thanh ghi trong SRAM.
 Trong ch畉 畛 Standby kh畛i i畛u ch畛nh i畛n 叩p b畛 t畉t i do 坦 d畛 li畛u SRAM b畛 m畉t
i ch畛 tr畛 c叩c thanh ghi c畛a Standby circuitry v Backup Domain.
H狸nh 2.5 T畛ng quan v畛 c叩c l畉i ngu畛n c畉p cho STM32F1x
CH働NG 2: ARM STM32F1X
16 PHAN VN HON
H狸nh 2.6 S董 畛 nguy棚n l箪 m畉ch k畉t n畛i c董 b畉n cho ARM STM32F1
2.8 CC CH畉 畛 TI畉T KI畛M NNG L働畛NG
M畉c 畛nh sau khi Power Reset th狸 vi i畛u khi畛n ho畉t 畛ng 畛 ch畉 畛 Run. B棚n c畉nh ch畉
畛 Run h達ng ST c滴ng 達 thi畉t k畉 m畛t vi ch畉 畛 ti畉t ki畛m nng l動畛ng nh畉m gi畉m c担ng su畉t ti棚u
th畛 c畛a CPU khi CPU kh担ng c畉n ph畉i ho畉t 畛ng, v鱈 d畛 nh動 khi CPU ang ch畛 s畛 ki畛n t叩c 畛ng
t畛 b棚n ngoi. C叩c ch畉 畛 ti畉t ki畛m nng l動畛ng ny c坦 th畛 動畛c l畉p tr狸nh b畉ng ph畉n m畛m.
D嘆ng ARM STM32F1 c坦 3 ch畉 畛 ti畉t ki畛m nng l動畛ng sau:
 Ch畉 畛 Sleep ( ng畛): T畉t ngu畛n xung clock c畛a CPU, nh動ng t畉t c畉 c叩c ngo畉i vi k畛 c畉
c叩c ngo畉i vi c畛a l探i Cortex-M3 nh動 l NVIC, SysTick, v畉n ho畉t 畛ng.
 Ch畉 畛 Stop (d畛ng) : T畉t h畉t t畉t c畉 c叩c ngu畛n xung clock.
 Ch畉 畛 Standby(ch畛): T畉t ngu畛n 1.8V, lm ch畉m l畉i SYSCLK, ch畉n ngu畛n xung
clock c畉p cho c叩c ngo畉i vi thu畛c APB v AHB khi kh担ng d湛ng 畉n.
2.8.1 Ch畉 畛 Sleep
a. C叩ch 動a CPU vo ch畉 畛 Sleep
動a CPU vo ch畉 畛 Sleep b畉ng c叩ch th畛c thi c叩c l畛nh WFI( Wait For Interrup- Ch畛 x畉y
ra ng畉t) ho畉c WFE( Wait For Event- Ch畛 x畉y ra s畛 ki畛n)  Ch動董ng 5 s畉 tr狸nh by r探 h董n v畛
ng畉t v s畛 ki畛n.
CH働NG 2: ARM STM32F1X
PHAN VN HON 17
T湛y thu畛c vo tr畉ng th叩i bit SLEEPONEXIT trong thanh ghi Cortex-M3 System
Control m ta c坦 c叩c ch畉 畛:
 Sleep now: Khi bit SLEEPONEXIT = 0, CPU s畉 r董i vo ch畉 畛 Sleep ngay sau khi
l畛nh WFI hay WFE 動畛c th畛c hi畛n xong.
 Sleep on exit: Khi bit SLEEPONEXIT = 1, CPU s畉 r董i vo tr畉ng th叩i Sleep ngay sau
khi tho叩t kh畛i ng畉t c坦 畛 動u ti棚n th畉p nh畉t.
Trong ch畉 畛 Sleep t畉t c畉 c叩c ch但n I/O v畉n gi畛 gi叩 tr畛 c滴 nh動 khi 畛 ch棚 畛 Run.
b. C叩ch 動a CPU vo ch畉 畛 Sleep
N畉u tr動畛c 坦 s畛 d畛ng l畛nh WFI 畛 動a CPU vo ch畉 畛 Sleep th狸 畛 tho叩t kh畛i ch畉 畛
ny c畉n ph畉i x畉y ra m担t ng畉t ngo畉i vi 動畛c cho ph辿p b畛i NVIC(xem ch動董ng 5).
N畉u tr動畛c 坦 s畛 d畛ng l畛nh WFE 畛 動a CPU vo ch畉 畛 Sleep th狸 CPU s畉 tho叩t kh畛i ch畉
畛 ny ngay khi x畉y ra 1 s畛 ki畛n. S畛 ki畛n ny c坦 th畛 動畛c t畉o ra b畉ng c叩ch:
 Cho ph辿p ng畉t 畛 ngo畉i vi nh動ng kh担ng cho ph辿p ng畉t 畛 NVIC v cho ph辿p bit
SEVONPEND trong thanh ghi Cortex-M3 System Control. Khi CPU tho叩t kh畛i ch畉
畛 ti畉t ki畛m nng l動畛ng t畛 WFE th狸 c畉n ph畉i x坦a c叩c bit b叩o ng畉t 畛 ngo畉i vi v NVIC.
 C畉u h狸nh k棚nh ng畉t (EXTI line) 畛 ch畉 畛 s畛 ki畛n( event). Khi CPU tho叩t kh畛i ch畉 畛
ti畉t ki畛m nng l動畛ng t畛 WFE th狸 kh担ng c畉n ph畉i x坦a c叩c c畛 ng畉t.
2.8.2 Ch畉 畛 Stop
Ch畉 畛 Stop l s畛 k畉t h畛p gi畛a ch畉 畛 DeepSleep (ng畛 s但u) c畛a l探i Cortex-M3 v畛i ch畉
畛 ki畛m so叩t ngu畛n xung clock ngo畉i vi. B畛 i畛u ch畛nh ngu畛n c坦 th畛 動畛c c畉u h狸nh theo ch畉
畛 b狸nh th動畛ng ho畉t ch畉 畛 ti畉t ki畛m nng l動畛ng.
Trong ch畉 畛 ny t畉t c畉 c叩c ngu畛n xung clock trong v湛ng 1.8V 畛u t畉t, c叩c b畛 giao 畛ng
PLL, HSI, HSE c滴ng 動畛c t畉t h畉t. D畛 li畛u trong SRAM 動畛c b畉o v畛 v t畉t tr畉ng th叩i t畉t c畉
c叩c I/O kh担ng thay 畛i.
a. C叩ch 動a CPU vo ch畉 畛 Stop
畛 vo ch畉 畛 Stop ta d湛ng l畛nh ch畛 ng畉t WFI ho畉c ch畛 s畛 ki畛n WFE k竪m theo:
 畉t bit SLEEPDEEP c畛a thanh ghi Cortex-M3 System Control l棚n m畛c 1.
 X坦a bit PDDS c畛a thanh thi Power Control register (PWR_CR) v畛 0 .
 Ch畛n ch畉 畛 ho畉t 畛ng cho b畛 i畛u ch畛nh i畛n 叩p b畉ng c叩ch c畉u h狸nh bit LPDS trong
thanh ghi  Power control register (PWR_CR).
Ch炭 箪: 畛 c坦 th畛 vo 動畛c ch畉 畛 Stop th狸 t畉t c畉 c叩c bit c畛 b叩o ng畉t ngoi trong thanh
ghi EXTI_PR v c畛 b叩o 畛ng c畛a 畛ng h畛 th畛i gian th畛c( RTC Alarm flag) ph畉i 動畛c x坦a
tr動畛c 坦 n畉u kh担ng ch畉 畛 Stop s畉 b畛 b畛 qua v ch動董ng tr狸nh ti畉p t畛c ho畉t 畛ng b狸nh th動畛ng.
b. C叩ch 動a CPU tho叩t kh畛i ch畉 畛 Stop
N畉u tr動畛c 坦 s畛 d畛ng l畛nh WFI 畛 動a CPU vo ch畉 畛 Stop th狸 畛 tho叩t kh畛i ch畉 畛 ny
c畉n ph畉i x畉y ra m担t ng畉t ngo畉i vi 動畛c cho ph辿p b畛i NVIC.
N畉u tr動畛c 坦 s畛 d畛ng l畛nh WFE 畛 動a CPU vo ch畉 畛 Stop th狸 CPU s畉 tho叩t kh畛i ch畉
畛 ny ngay khi x畉y ra 1 s畛 ki畛n.
2.8.3 Ch畉 畛 Standby
Ch畉 畛 Standby l ch畉 畛 ti畉t ki畛m nng l動畛ng nh畉t, Standby ho畉t 畛ng d畛a tr棚n vi畛c
動a CPU vo ch畉 畛 ng畛 s但u 畛ng th畛i t畉t b畛 i畛u ch畛nh i畛n 叩p 1.8V. C叩c kh畛i giao 畛ng
PLL, HSI, v HSE c滴ng b畛 t畉t h畉t. D畛 li畛u trong SRAM v c叩c thanh ghi b畛 m畉t ch畛 tr畛 c叩c
thanh ghi c畛a Backup domain v Standby circuitry l kh担ng m畉t.
Trong ch畉 畛 Standby tr畉ng th叩i t畉t c畉 c叩c I/O 畛u 畛 t畛ng tr畛 cao ngo畉i tr畛 :
 Ch但n Reset v畉n c嘆n t叩c 畛ng 動畛c.
 Ch但n TAMPER v ch但n WKUP n畉u 動畛c cho ph辿p tr動董c 坦 th狸 v畉n ho畉t 畛ng 動畛c.
a. C叩ch 動a CPU vo ch畉 畛 Standby
CH働NG 2: ARM STM32F1X
18 PHAN VN HON
畛 vo ch畉 畛 Standby ta d湛ng l畛nh ch畛 ng畉t WFI ho畉c ch畛 s畛 ki畛n WFE k竪m theo:
 畉t bit SLEEPDEEP c畛a thanh ghi Cortex-M3 System Control l棚n m畛c 1.
 畉t bit PDDS c畛a thanh thi Power Control register (PWR_CR) l棚n m畛c 1.
 X坦a bit WUF trong thanh ghi Power Control/Status register (PWR_CSR).
b. C叩ch 動a CPU tho叩t kh畛i ch畉 畛 Standby
CPU s畉 tho叩t kh畛i ch畉 畛 Standby n畉u m畛t trong c叩c i畛u ki畛n sau x畉y ra:
 C坦 t鱈n hi畛u c畉nh l棚n t叩c 畛ng vo ch但n WKUP
 C坦 t鱈n hi畛u b叩o 畛ng c畛a 畛ng h畛 th畛i gian th畛c( RTC alarm).
 Reset b畉ng ch但n NRST.
 IWDG Reset.
2.8.4 T畛 畛ng th畛c d畉y (Auto Wakeup-AWU) t畛 c叩c ch畉 畛 ti畉t ki畛m nng l動畛ng
畛ng h畛 th畛i gian th畛c c坦 th畛 動畛c s畛 d畛ng 畛 叩nh th畛c CPU kh畛i ch畉 畛 ti畉t ki畛m nng
l動畛ng m kh担ng c畉n ph畉i ch畛 x畉y ra ng畉t ngoi. Ng動畛i l畉p tr狸nh c坦 th畛 ci 畉t m畛t l動畛ng th畛i
gian no 坦 vo RTC 畛 khi h畉t th畛i gian ny th狸 RTC s畉 t畛 畛ng 叩nh th畛c CPU kh畛i ch畉 畛
Stop ho畉c Standby.
畛 叩nh th畛c CPU kh畛i ch畉 畛 Stop b畉ng s畛 ki畛n RTC alarm th狸 c畉n ph畉i:
 C畉u h狸nh k棚nh ng畉t ngoi s畛 17 (EXTI Line 17) t鱈ch c畛c c畉nh l棚n.
 C畉u h狸nh RTC 畛 cho ph辿p t畉o ra t鱈n hi畛u RTC alarm.
畛 叩nh th畛c CPU kh畛i ch畉 畛 Standby, th狸 kh担ng c畉n c畉u h狸nh k棚nh ng畉t ngoi s畛 17.
2.8.5 C叩c l畛nh th担ng d畛ng li棚n quan 畉n ch畉 畛 ti畉t ki畛m nng l動畛ng
B畉ng 2.5 C叩c l畛nh th担ng d畛ng li棚n quan 畉n ch畉 畛 ti畉t ki畛m nng l動畛ng
S畛 D畛NG TH働 VI畛N stm32f10x_pwr
L畛nh
Th担ng s畛 hay d湛ng Gi畉i th鱈ch
PWR_DeInit();
(L畛nh reset c叩c thanh ghi li棚n quan 畉n ch畉 畛 ti畉t ki畛m nng l動畛ng v畛 m畉c 畛nh)
PWR_WakeUpPinCmd(A);
(L畛nh cho ph辿p ho畉c c畉m ch但n WakeUp 叩nh th畛c CPU)
A:
ENABLE
DISABLE
A: Cho ph辿p ho畉c c畉m
Cho ph辿p
C畉m
PWR_EnterSTOPMode(A, B) ;
( L畛nh i畛u khi畛n CPU vo ch畉 畛 Stop )
A:
PWR_Regulator_ON
PWR_Regulator_LowPower
B:
PWR_STOPEntry_WFI
PWR_STOPEntry_WFE
A: Ch畛n ch畉 畛 ho畉t 畛ng cho b畛 i畛u
ch畛nh i畛n 叩p khi CPU vo ch畉 畛 Stop
Ch畉 畛 ho畉t 畛ng b狸nh th動畛ng
Ch畉 畛 ti畉t ki畛m nng l動畛ng
B: Ch畛n c叩ch 動a CPU vo ch畉 畛 Stop
Ch畛 x畉y ra ng畉t
Ch畛 x畉y ra s畛 ki畛n
PWR_EnterSTANDBYMode();
(L畛nh i畛u khi畛n CPU vo ch畉 畛 Standby)
C叩c v鱈 d畛 v畛 c叩c ch畉 畛 ti畉t ki畛m nng l動畛ng 動畛c tr狸nh by 畛 ch動董ng 5 sau khi
SV 達 t狸m hi畛u v畛 ng畉t v s畛 ki畛n.

More Related Content

What's hot (20)

Thi畉t k畉 anten vi d畉i s畛 d畛ng trong h畛 th畛ng th担ng tin v担 tuy畉n
Thi畉t k畉 anten vi d畉i s畛 d畛ng trong h畛 th畛ng th担ng tin v担 tuy畉nThi畉t k畉 anten vi d畉i s畛 d畛ng trong h畛 th畛ng th担ng tin v担 tuy畉n
Thi畉t k畉 anten vi d畉i s畛 d畛ng trong h畛 th畛ng th担ng tin v担 tuy畉n
D畛ch v畛 vi畉t bi tr畛n g坦i ZALO: 0909232620
畛 ti: T狸m hi畛u gi畉i ph叩p an ninh m畉ng v畛i firewall, HAY, 9
畛 ti: T狸m hi畛u gi畉i ph叩p an ninh m畉ng v畛i firewall, HAY, 9畛 ti: T狸m hi畛u gi畉i ph叩p an ninh m畉ng v畛i firewall, HAY, 9
畛 ti: T狸m hi畛u gi畉i ph叩p an ninh m畉ng v畛i firewall, HAY, 9
D畛ch v畛 vi畉t bi tr畛n g坦i ZALO 0917193864
Tieu Luan - Mang may tinh voi Packet tracer
Tieu Luan - Mang may tinh voi Packet tracerTieu Luan - Mang may tinh voi Packet tracer
Tieu Luan - Mang may tinh voi Packet tracer
Duc Nguyen
Lu畉n vn Th畉c s挑 Thi畉t k畉 chi畉u s叩ng 畛畛ng Th畉 L畛 H畉i Ph嘆ng
 Lu畉n vn Th畉c s挑 Thi畉t k畉 chi畉u s叩ng 畛畛ng Th畉 L畛  H畉i Ph嘆ng Lu畉n vn Th畉c s挑 Thi畉t k畉 chi畉u s叩ng 畛畛ng Th畉 L畛  H畉i Ph嘆ng
Lu畉n vn Th畉c s挑 Thi畉t k畉 chi畉u s叩ng 畛畛ng Th畉 L畛 H畉i Ph嘆ng
D畛ch v畛 vi畉t thu棚 Lu畉n Vn - ZALO 0932091562
(Led nh叩y theo nh畉c) b叩o c叩o 畛 叩n i畛n t畛 vi畛n th担ng 1
(Led nh叩y theo nh畉c) b叩o c叩o 畛 叩n i畛n t畛   vi畛n th担ng 1(Led nh叩y theo nh畉c) b叩o c叩o 畛 叩n i畛n t畛   vi畛n th担ng 1
(Led nh叩y theo nh畉c) b叩o c叩o 畛 叩n i畛n t畛 vi畛n th担ng 1
Huy Tuong
H畛 TH畛NG GIM ST CH畉T L働畛NG KHNG KH TRONG CNG NGHI畛P S畛 D畛NG M畉NG LORA.doc
H畛 TH畛NG GIM ST CH畉T L働畛NG KHNG KH TRONG CNG NGHI畛P S畛 D畛NG M畉NG LORA.docH畛 TH畛NG GIM ST CH畉T L働畛NG KHNG KH TRONG CNG NGHI畛P S畛 D畛NG M畉NG LORA.doc
H畛 TH畛NG GIM ST CH畉T L働畛NG KHNG KH TRONG CNG NGHI畛P S畛 D畛NG M畉NG LORA.doc
D畛ch V畛 Vi畉t Bi Tr畛n G坦i ZALO 0917193864
畛 ti: Ch畉 t畉o m担 h狸nh nh th担ng minh s畛 d畛ng Arduino, HAY
畛 ti: Ch畉 t畉o m担 h狸nh nh th担ng minh s畛 d畛ng Arduino, HAY畛 ti: Ch畉 t畉o m担 h狸nh nh th担ng minh s畛 d畛ng Arduino, HAY
畛 ti: Ch畉 t畉o m担 h狸nh nh th担ng minh s畛 d畛ng Arduino, HAY
D畛ch v畛 vi畉t bi tr畛n g坦i ZALO 0917193864
i畛u khi畛n c叩nh tay Robot h畛c l畛nh g畉p s畉n ph畉m tr棚n bng chuy畛n.pdf
i畛u khi畛n c叩nh tay Robot h畛c l畛nh g畉p s畉n ph畉m tr棚n bng chuy畛n.pdfi畛u khi畛n c叩nh tay Robot h畛c l畛nh g畉p s畉n ph畉m tr棚n bng chuy畛n.pdf
i畛u khi畛n c叩nh tay Robot h畛c l畛nh g畉p s畉n ph畉m tr棚n bng chuy畛n.pdf
Man_Ebook
Ch ng 1-2_-_b_i_gi_ng_anten-truy_n_s_ng
Ch ng 1-2_-_b_i_gi_ng_anten-truy_n_s_ngCh ng 1-2_-_b_i_gi_ng_anten-truy_n_s_ng
Ch ng 1-2_-_b_i_gi_ng_anten-truy_n_s_ng
Duy Quang Nguyen Ly
Gi叩o tr狸nh l畉p tr狸nh Python cn b畉n - Tr畉n Nh畉t Quang, Ph畉m Vn Khoa.pdf
Gi叩o tr狸nh l畉p tr狸nh Python cn b畉n - Tr畉n Nh畉t Quang, Ph畉m Vn Khoa.pdfGi叩o tr狸nh l畉p tr狸nh Python cn b畉n - Tr畉n Nh畉t Quang, Ph畉m Vn Khoa.pdf
Gi叩o tr狸nh l畉p tr狸nh Python cn b畉n - Tr畉n Nh畉t Quang, Ph畉m Vn Khoa.pdf
Man_Ebook
luan van thac si giam sat nhiet do am va dieu khien thiet bi dien qua internet
luan van thac si giam sat nhiet do am va dieu khien thiet bi dien qua internetluan van thac si giam sat nhiet do am va dieu khien thiet bi dien qua internet
luan van thac si giam sat nhiet do am va dieu khien thiet bi dien qua internet
D畛ch v畛 vi畉t thu棚 Lu畉n Vn - ZALO 0932091562
Truyen song-va-anten
Truyen song-va-antenTruyen song-va-anten
Truyen song-va-anten
畛 Ki畛t
Gi叩o tr狸nh i畛u khi畛n s畛.pdf
Gi叩o tr狸nh i畛u khi畛n s畛.pdfGi叩o tr狸nh i畛u khi畛n s畛.pdf
Gi叩o tr狸nh i畛u khi畛n s畛.pdf
Man_Ebook
NGH畛CH L働U V BI畉N T畉N.pdf
NGH畛CH L働U V BI畉N T畉N.pdfNGH畛CH L働U V BI畉N T畉N.pdf
NGH畛CH L働U V BI畉N T畉N.pdf
Man_Ebook
Chuong6 ho畉t 畛ng ng畉t
Chuong6 ho畉t 畛ng ng畉tChuong6 ho畉t 畛ng ng畉t
Chuong6 ho畉t 畛ng ng畉t
inh C担ng Thi畛n Taydo University
Gi畉i s畛 b畉ng mathlab
Gi畉i s畛 b畉ng mathlabGi畉i s畛 b畉ng mathlab
Gi畉i s畛 b畉ng mathlab
dvt1996
畛 ti: M畉ch i畛u khi畛n thi畉t b畛 b畉ng Android qua Bluetooth, HAY
畛 ti: M畉ch i畛u khi畛n thi畉t b畛 b畉ng Android qua Bluetooth, HAY畛 ti: M畉ch i畛u khi畛n thi畉t b畛 b畉ng Android qua Bluetooth, HAY
畛 ti: M畉ch i畛u khi畛n thi畉t b畛 b畉ng Android qua Bluetooth, HAY
D畛ch V畛 Vi畉t Bi Tr畛n G坦i ZALO 0917193864
畛 ti: i畛u khi畛n h畛 truy畛n 畛ng i畛n tu i畛n 担 th畛, HOT, 9
畛 ti: i畛u khi畛n h畛 truy畛n 畛ng i畛n tu i畛n 担 th畛, HOT, 9畛 ti: i畛u khi畛n h畛 truy畛n 畛ng i畛n tu i畛n 担 th畛, HOT, 9
畛 ti: i畛u khi畛n h畛 truy畛n 畛ng i畛n tu i畛n 担 th畛, HOT, 9
D畛ch v畛 vi畉t bi tr畛n g坦i ZALO: 0909232620
Bai giang-vhdl
Bai giang-vhdlBai giang-vhdl
Bai giang-vhdl
hoangclick
Nghi棚n c畛u anten m畉ng v 畛ng d畛ng trong h畛 th畛ng internet v畉n v畉t.pdf
Nghi棚n c畛u anten m畉ng v 畛ng d畛ng trong h畛 th畛ng internet v畉n v畉t.pdfNghi棚n c畛u anten m畉ng v 畛ng d畛ng trong h畛 th畛ng internet v畉n v畉t.pdf
Nghi棚n c畛u anten m畉ng v 畛ng d畛ng trong h畛 th畛ng internet v畉n v畉t.pdf
Man_Ebook
Tieu Luan - Mang may tinh voi Packet tracer
Tieu Luan - Mang may tinh voi Packet tracerTieu Luan - Mang may tinh voi Packet tracer
Tieu Luan - Mang may tinh voi Packet tracer
Duc Nguyen
(Led nh叩y theo nh畉c) b叩o c叩o 畛 叩n i畛n t畛 vi畛n th担ng 1
(Led nh叩y theo nh畉c) b叩o c叩o 畛 叩n i畛n t畛   vi畛n th担ng 1(Led nh叩y theo nh畉c) b叩o c叩o 畛 叩n i畛n t畛   vi畛n th担ng 1
(Led nh叩y theo nh畉c) b叩o c叩o 畛 叩n i畛n t畛 vi畛n th担ng 1
Huy Tuong
H畛 TH畛NG GIM ST CH畉T L働畛NG KHNG KH TRONG CNG NGHI畛P S畛 D畛NG M畉NG LORA.doc
H畛 TH畛NG GIM ST CH畉T L働畛NG KHNG KH TRONG CNG NGHI畛P S畛 D畛NG M畉NG LORA.docH畛 TH畛NG GIM ST CH畉T L働畛NG KHNG KH TRONG CNG NGHI畛P S畛 D畛NG M畉NG LORA.doc
H畛 TH畛NG GIM ST CH畉T L働畛NG KHNG KH TRONG CNG NGHI畛P S畛 D畛NG M畉NG LORA.doc
D畛ch V畛 Vi畉t Bi Tr畛n G坦i ZALO 0917193864
i畛u khi畛n c叩nh tay Robot h畛c l畛nh g畉p s畉n ph畉m tr棚n bng chuy畛n.pdf
i畛u khi畛n c叩nh tay Robot h畛c l畛nh g畉p s畉n ph畉m tr棚n bng chuy畛n.pdfi畛u khi畛n c叩nh tay Robot h畛c l畛nh g畉p s畉n ph畉m tr棚n bng chuy畛n.pdf
i畛u khi畛n c叩nh tay Robot h畛c l畛nh g畉p s畉n ph畉m tr棚n bng chuy畛n.pdf
Man_Ebook
Ch ng 1-2_-_b_i_gi_ng_anten-truy_n_s_ng
Ch ng 1-2_-_b_i_gi_ng_anten-truy_n_s_ngCh ng 1-2_-_b_i_gi_ng_anten-truy_n_s_ng
Ch ng 1-2_-_b_i_gi_ng_anten-truy_n_s_ng
Duy Quang Nguyen Ly
Gi叩o tr狸nh l畉p tr狸nh Python cn b畉n - Tr畉n Nh畉t Quang, Ph畉m Vn Khoa.pdf
Gi叩o tr狸nh l畉p tr狸nh Python cn b畉n - Tr畉n Nh畉t Quang, Ph畉m Vn Khoa.pdfGi叩o tr狸nh l畉p tr狸nh Python cn b畉n - Tr畉n Nh畉t Quang, Ph畉m Vn Khoa.pdf
Gi叩o tr狸nh l畉p tr狸nh Python cn b畉n - Tr畉n Nh畉t Quang, Ph畉m Vn Khoa.pdf
Man_Ebook
Truyen song-va-anten
Truyen song-va-antenTruyen song-va-anten
Truyen song-va-anten
畛 Ki畛t
Gi叩o tr狸nh i畛u khi畛n s畛.pdf
Gi叩o tr狸nh i畛u khi畛n s畛.pdfGi叩o tr狸nh i畛u khi畛n s畛.pdf
Gi叩o tr狸nh i畛u khi畛n s畛.pdf
Man_Ebook
NGH畛CH L働U V BI畉N T畉N.pdf
NGH畛CH L働U V BI畉N T畉N.pdfNGH畛CH L働U V BI畉N T畉N.pdf
NGH畛CH L働U V BI畉N T畉N.pdf
Man_Ebook
Gi畉i s畛 b畉ng mathlab
Gi畉i s畛 b畉ng mathlabGi畉i s畛 b畉ng mathlab
Gi畉i s畛 b畉ng mathlab
dvt1996
Bai giang-vhdl
Bai giang-vhdlBai giang-vhdl
Bai giang-vhdl
hoangclick
Nghi棚n c畛u anten m畉ng v 畛ng d畛ng trong h畛 th畛ng internet v畉n v畉t.pdf
Nghi棚n c畛u anten m畉ng v 畛ng d畛ng trong h畛 th畛ng internet v畉n v畉t.pdfNghi棚n c畛u anten m畉ng v 畛ng d畛ng trong h畛 th畛ng internet v畉n v畉t.pdf
Nghi棚n c畛u anten m畉ng v 畛ng d畛ng trong h畛 th畛ng internet v畉n v畉t.pdf
Man_Ebook

Similar to 2.stm32 f10e (20)

uC_lec_02_03_nDD.pptx
uC_lec_02_03_nDD.pptxuC_lec_02_03_nDD.pptx
uC_lec_02_03_nDD.pptx
TrngTrng96
Atmel avr
Atmel avrAtmel avr
Atmel avr
Chinh Vo Wili
ghsx.pdf
ghsx.pdfghsx.pdf
ghsx.pdf
TranVu132449
Microprocessor final ver1_part2
Microprocessor final ver1_part2Microprocessor final ver1_part2
Microprocessor final ver1_part2
Mit Rin
Giao ti畉p m叩y t鱈nh.pdf
Giao ti畉p m叩y t鱈nh.pdfGiao ti畉p m叩y t鱈nh.pdf
Giao ti畉p m叩y t鱈nh.pdf
Man_Ebook
Spartan 3e-vietnamese
Spartan 3e-vietnameseSpartan 3e-vietnamese
Spartan 3e-vietnamese
buianhminh
Ac fr ogdyeeau50afg7bcxmtrplolcc9hoeu__6mus7monefoq946imlse7fvjnynphogvjyelfq...
Ac fr ogdyeeau50afg7bcxmtrplolcc9hoeu__6mus7monefoq946imlse7fvjnynphogvjyelfq...Ac fr ogdyeeau50afg7bcxmtrplolcc9hoeu__6mus7monefoq946imlse7fvjnynphogvjyelfq...
Ac fr ogdyeeau50afg7bcxmtrplolcc9hoeu__6mus7monefoq946imlse7fvjnynphogvjyelfq...
Vuong Nguyen
ky thuat vi xu lychuong4.ppt
ky thuat vi xu lychuong4.pptky thuat vi xu lychuong4.ppt
ky thuat vi xu lychuong4.ppt
ChienNguyenViet
Bao cao full
Bao cao fullBao cao full
Bao cao full
Brand Xanh
Chuong2 c畉u tr炭c ph畉n c畛ng 8051
Chuong2 c畉u tr炭c ph畉n c畛ng 8051Chuong2 c畉u tr炭c ph畉n c畛ng 8051
Chuong2 c畉u tr炭c ph畉n c畛ng 8051
inh C担ng Thi畛n Taydo University
11_L棚 Minh Huy_L棚 Nguy畛n Tr畛ng Ti畉n_H畛 Th畛ng Kh坦a c畛a t畛 畛ng.pdf
11_L棚 Minh Huy_L棚 Nguy畛n Tr畛ng Ti畉n_H畛 Th畛ng Kh坦a c畛a t畛 畛ng.pdf11_L棚 Minh Huy_L棚 Nguy畛n Tr畛ng Ti畉n_H畛 Th畛ng Kh坦a c畛a t畛 畛ng.pdf
11_L棚 Minh Huy_L棚 Nguy畛n Tr畛ng Ti畉n_H畛 Th畛ng Kh坦a c畛a t畛 畛ng.pdf
DongNgo14
畛 ti: Thi畉t k畉 H畛 Th畛ng Qu畉ng C叩o, HAY, 9
畛 ti: Thi畉t k畉 H畛 Th畛ng Qu畉ng C叩o, HAY, 9畛 ti: Thi畉t k畉 H畛 Th畛ng Qu畉ng C叩o, HAY, 9
畛 ti: Thi畉t k畉 H畛 Th畛ng Qu畉ng C叩o, HAY, 9
D畛ch v畛 vi畉t thu棚 Lu畉n Vn - ZALO 0932091562
Trac nghiem kt vi su ly 2
Trac nghiem kt vi su ly 2Trac nghiem kt vi su ly 2
Trac nghiem kt vi su ly 2
Vuong S坦i
Bao cao thuc tap pic18 f4520
Bao cao thuc tap pic18 f4520Bao cao thuc tap pic18 f4520
Bao cao thuc tap pic18 f4520
Y畉n Thanh Thanh
T狸m hi畛u c叩ch d湛ng pic 畛 ch畉y motor b動畛c
T狸m hi畛u c叩ch d湛ng pic 畛 ch畉y motor b動畛cT狸m hi畛u c叩ch d湛ng pic 畛 ch畉y motor b動畛c
T狸m hi畛u c叩ch d湛ng pic 畛 ch畉y motor b動畛c
Dan Vu
Msptieuluan
MsptieuluanMsptieuluan
Msptieuluan
畛c H畛u
Assembly
AssemblyAssembly
Assembly
Jean Okio
Ch動董ng 3.pdfsssssssssssssssssssssssssssssssssssss
Ch動董ng 3.pdfsssssssssssssssssssssssssssssssssssssCh動董ng 3.pdfsssssssssssssssssssssssssssssssssssss
Ch動董ng 3.pdfsssssssssssssssssssssssssssssssssssss
nguyenvanthanh76bk
Bai 001 vxl_pic_cautruc
Bai 001 vxl_pic_cautrucBai 001 vxl_pic_cautruc
Bai 001 vxl_pic_cautruc
mster_dang
uC_lec_02_03_nDD.pptx
uC_lec_02_03_nDD.pptxuC_lec_02_03_nDD.pptx
uC_lec_02_03_nDD.pptx
TrngTrng96
Microprocessor final ver1_part2
Microprocessor final ver1_part2Microprocessor final ver1_part2
Microprocessor final ver1_part2
Mit Rin
Giao ti畉p m叩y t鱈nh.pdf
Giao ti畉p m叩y t鱈nh.pdfGiao ti畉p m叩y t鱈nh.pdf
Giao ti畉p m叩y t鱈nh.pdf
Man_Ebook
Spartan 3e-vietnamese
Spartan 3e-vietnameseSpartan 3e-vietnamese
Spartan 3e-vietnamese
buianhminh
Ac fr ogdyeeau50afg7bcxmtrplolcc9hoeu__6mus7monefoq946imlse7fvjnynphogvjyelfq...
Ac fr ogdyeeau50afg7bcxmtrplolcc9hoeu__6mus7monefoq946imlse7fvjnynphogvjyelfq...Ac fr ogdyeeau50afg7bcxmtrplolcc9hoeu__6mus7monefoq946imlse7fvjnynphogvjyelfq...
Ac fr ogdyeeau50afg7bcxmtrplolcc9hoeu__6mus7monefoq946imlse7fvjnynphogvjyelfq...
Vuong Nguyen
ky thuat vi xu lychuong4.ppt
ky thuat vi xu lychuong4.pptky thuat vi xu lychuong4.ppt
ky thuat vi xu lychuong4.ppt
ChienNguyenViet
Bao cao full
Bao cao fullBao cao full
Bao cao full
Brand Xanh
11_L棚 Minh Huy_L棚 Nguy畛n Tr畛ng Ti畉n_H畛 Th畛ng Kh坦a c畛a t畛 畛ng.pdf
11_L棚 Minh Huy_L棚 Nguy畛n Tr畛ng Ti畉n_H畛 Th畛ng Kh坦a c畛a t畛 畛ng.pdf11_L棚 Minh Huy_L棚 Nguy畛n Tr畛ng Ti畉n_H畛 Th畛ng Kh坦a c畛a t畛 畛ng.pdf
11_L棚 Minh Huy_L棚 Nguy畛n Tr畛ng Ti畉n_H畛 Th畛ng Kh坦a c畛a t畛 畛ng.pdf
DongNgo14
Trac nghiem kt vi su ly 2
Trac nghiem kt vi su ly 2Trac nghiem kt vi su ly 2
Trac nghiem kt vi su ly 2
Vuong S坦i
Bao cao thuc tap pic18 f4520
Bao cao thuc tap pic18 f4520Bao cao thuc tap pic18 f4520
Bao cao thuc tap pic18 f4520
Y畉n Thanh Thanh
T狸m hi畛u c叩ch d湛ng pic 畛 ch畉y motor b動畛c
T狸m hi畛u c叩ch d湛ng pic 畛 ch畉y motor b動畛cT狸m hi畛u c叩ch d湛ng pic 畛 ch畉y motor b動畛c
T狸m hi畛u c叩ch d湛ng pic 畛 ch畉y motor b動畛c
Dan Vu
Msptieuluan
MsptieuluanMsptieuluan
Msptieuluan
畛c H畛u
Ch動董ng 3.pdfsssssssssssssssssssssssssssssssssssss
Ch動董ng 3.pdfsssssssssssssssssssssssssssssssssssssCh動董ng 3.pdfsssssssssssssssssssssssssssssssssssss
Ch動董ng 3.pdfsssssssssssssssssssssssssssssssssssss
nguyenvanthanh76bk
Bai 001 vxl_pic_cautruc
Bai 001 vxl_pic_cautrucBai 001 vxl_pic_cautruc
Bai 001 vxl_pic_cautruc
mster_dang

Recently uploaded (18)

Bi gi畉ng LS.pptx.pptx Bi gi畉ng LS.pptx.pptx
Bi gi畉ng LS.pptx.pptx Bi gi畉ng LS.pptx.pptxBi gi畉ng LS.pptx.pptx Bi gi畉ng LS.pptx.pptx
Bi gi畉ng LS.pptx.pptx Bi gi畉ng LS.pptx.pptx
2251010138
pppppp.pptxmmmmmmmmmmmmmmmmmoommmmmmmmmmmmmmmmm
pppppp.pptxmmmmmmmmmmmmmmmmmoommmmmmmmmmmmmmmmmpppppp.pptxmmmmmmmmmmmmmmmmmoommmmmmmmmmmmmmmmm
pppppp.pptxmmmmmmmmmmmmmmmmmoommmmmmmmmmmmmmmmm
ngPhan57
Bac gau den va hai chu tho co NGUYET.ppt
Bac gau den va hai chu tho co NGUYET.pptBac gau den va hai chu tho co NGUYET.ppt
Bac gau den va hai chu tho co NGUYET.ppt
LuPhm10
CHINH PH畛C L THUY畉T SINH H畛C B畉NG S 畛 T働 DUY.pdf
CHINH PH畛C L THUY畉T SINH H畛C B畉NG S 畛 T働 DUY.pdfCHINH PH畛C L THUY畉T SINH H畛C B畉NG S 畛 T働 DUY.pdf
CHINH PH畛C L THUY畉T SINH H畛C B畉NG S 畛 T働 DUY.pdf
Huyn804581
cd-van-6_-t47-b4-thtv-tu-dong-am-tu-da-nghia_11072023.pptx
cd-van-6_-t47-b4-thtv-tu-dong-am-tu-da-nghia_11072023.pptxcd-van-6_-t47-b4-thtv-tu-dong-am-tu-da-nghia_11072023.pptx
cd-van-6_-t47-b4-thtv-tu-dong-am-tu-da-nghia_11072023.pptx
ThyLinh936093
Bac gau den va hai chu tho co NGUYET.ppt
Bac gau den va hai chu tho co NGUYET.pptBac gau den va hai chu tho co NGUYET.ppt
Bac gau den va hai chu tho co NGUYET.ppt
LuPhm10
[PPT11] Bi 7 - 畛c - V t担i v畉n mu畛n m畉....ppt
[PPT11] Bi 7 - 畛c - V t担i v畉n mu畛n m畉....ppt[PPT11] Bi 7 - 畛c - V t担i v畉n mu畛n m畉....ppt
[PPT11] Bi 7 - 畛c - V t担i v畉n mu畛n m畉....ppt
phuonguyn2400
[PPT11] Bi 7 - 畛c - C Mau qu棚 x畛.pptx
[PPT11] Bi 7 - 畛c - C Mau qu棚 x畛.pptx[PPT11] Bi 7 - 畛c - C Mau qu棚 x畛.pptx
[PPT11] Bi 7 - 畛c - C Mau qu棚 x畛.pptx
phuonguyn2400
373E879C-764F-11EF-AA2F-F5F8FA70038B.pdf
373E879C-764F-11EF-AA2F-F5F8FA70038B.pdf373E879C-764F-11EF-AA2F-F5F8FA70038B.pdf
373E879C-764F-11EF-AA2F-F5F8FA70038B.pdf
KimAnhDng
Gi叩o 叩n Ng畛 vn 10 KNTT B畛 2 NG働畛I C畉M QUY畛N....docx
Gi叩o 叩n Ng畛 vn 10 KNTT B畛 2 NG働畛I C畉M QUY畛N....docxGi叩o 叩n Ng畛 vn 10 KNTT B畛 2 NG働畛I C畉M QUY畛N....docx
Gi叩o 叩n Ng畛 vn 10 KNTT B畛 2 NG働畛I C畉M QUY畛N....docx
thanhyt004
Nghi棚n c畛u sinh h畛c v畛 畛t bi畉n Nhi畛m s畉c th畛
Nghi棚n c畛u sinh h畛c v畛 畛t bi畉n Nhi畛m s畉c th畛Nghi棚n c畛u sinh h畛c v畛 畛t bi畉n Nhi畛m s畉c th畛
Nghi棚n c畛u sinh h畛c v畛 畛t bi畉n Nhi畛m s畉c th畛
nguyenphuonguyen1412
GRAMMAR PRACTICE TEST 01 ANSWER KEY.docx
GRAMMAR PRACTICE TEST 01 ANSWER KEY.docxGRAMMAR PRACTICE TEST 01 ANSWER KEY.docx
GRAMMAR PRACTICE TEST 01 ANSWER KEY.docx
AnhDuc498595
Bi gi畉ng TTHCM.pptx Bi gi畉ng TTHCMBi gi畉ng TTHCM
Bi gi畉ng TTHCM.pptx Bi gi畉ng TTHCMBi gi畉ng TTHCMBi gi畉ng TTHCM.pptx Bi gi畉ng TTHCMBi gi畉ng TTHCM
Bi gi畉ng TTHCM.pptx Bi gi畉ng TTHCMBi gi畉ng TTHCM
2251010138
Cours 3 Les voyelles nasales semi voyelles.pptx
Cours 3 Les voyelles nasales semi voyelles.pptxCours 3 Les voyelles nasales semi voyelles.pptx
Cours 3 Les voyelles nasales semi voyelles.pptx
HaihuyDong
MICE Tr動畛ng Anh ng畛 IU Cebu Brochure 2025.pdf
MICE Tr動畛ng Anh ng畛 IU Cebu Brochure 2025.pdfMICE Tr動畛ng Anh ng畛 IU Cebu Brochure 2025.pdf
MICE Tr動畛ng Anh ng畛 IU Cebu Brochure 2025.pdf
Du h畛c MICE - Du h畛c ti畉ng Anh
Airport Vocabulary IN ENGLISH BBBHHBHBHBHB
Airport Vocabulary IN ENGLISH BBBHHBHBHBHBAirport Vocabulary IN ENGLISH BBBHHBHBHBHB
Airport Vocabulary IN ENGLISH BBBHHBHBHBHB
HBng40
Ch動董ng 3. 畛i l動u nhi畛t. h坦a h畛u c董 TDTU
Ch動董ng 3.  畛i l動u nhi畛t. h坦a h畛u c董 TDTUCh動董ng 3.  畛i l動u nhi畛t. h坦a h畛u c董 TDTU
Ch動董ng 3. 畛i l動u nhi畛t. h坦a h畛u c董 TDTU
ngKhi80
bac-gau-den-va-hai-chu-tho-co-chu_02122022.ppt
bac-gau-den-va-hai-chu-tho-co-chu_02122022.pptbac-gau-den-va-hai-chu-tho-co-chu_02122022.ppt
bac-gau-den-va-hai-chu-tho-co-chu_02122022.ppt
LuPhm10
Bi gi畉ng LS.pptx.pptx Bi gi畉ng LS.pptx.pptx
Bi gi畉ng LS.pptx.pptx Bi gi畉ng LS.pptx.pptxBi gi畉ng LS.pptx.pptx Bi gi畉ng LS.pptx.pptx
Bi gi畉ng LS.pptx.pptx Bi gi畉ng LS.pptx.pptx
2251010138
pppppp.pptxmmmmmmmmmmmmmmmmmoommmmmmmmmmmmmmmmm
pppppp.pptxmmmmmmmmmmmmmmmmmoommmmmmmmmmmmmmmmmpppppp.pptxmmmmmmmmmmmmmmmmmoommmmmmmmmmmmmmmmm
pppppp.pptxmmmmmmmmmmmmmmmmmoommmmmmmmmmmmmmmmm
ngPhan57
Bac gau den va hai chu tho co NGUYET.ppt
Bac gau den va hai chu tho co NGUYET.pptBac gau den va hai chu tho co NGUYET.ppt
Bac gau den va hai chu tho co NGUYET.ppt
LuPhm10
CHINH PH畛C L THUY畉T SINH H畛C B畉NG S 畛 T働 DUY.pdf
CHINH PH畛C L THUY畉T SINH H畛C B畉NG S 畛 T働 DUY.pdfCHINH PH畛C L THUY畉T SINH H畛C B畉NG S 畛 T働 DUY.pdf
CHINH PH畛C L THUY畉T SINH H畛C B畉NG S 畛 T働 DUY.pdf
Huyn804581
cd-van-6_-t47-b4-thtv-tu-dong-am-tu-da-nghia_11072023.pptx
cd-van-6_-t47-b4-thtv-tu-dong-am-tu-da-nghia_11072023.pptxcd-van-6_-t47-b4-thtv-tu-dong-am-tu-da-nghia_11072023.pptx
cd-van-6_-t47-b4-thtv-tu-dong-am-tu-da-nghia_11072023.pptx
ThyLinh936093
Bac gau den va hai chu tho co NGUYET.ppt
Bac gau den va hai chu tho co NGUYET.pptBac gau den va hai chu tho co NGUYET.ppt
Bac gau den va hai chu tho co NGUYET.ppt
LuPhm10
[PPT11] Bi 7 - 畛c - V t担i v畉n mu畛n m畉....ppt
[PPT11] Bi 7 - 畛c - V t担i v畉n mu畛n m畉....ppt[PPT11] Bi 7 - 畛c - V t担i v畉n mu畛n m畉....ppt
[PPT11] Bi 7 - 畛c - V t担i v畉n mu畛n m畉....ppt
phuonguyn2400
[PPT11] Bi 7 - 畛c - C Mau qu棚 x畛.pptx
[PPT11] Bi 7 - 畛c - C Mau qu棚 x畛.pptx[PPT11] Bi 7 - 畛c - C Mau qu棚 x畛.pptx
[PPT11] Bi 7 - 畛c - C Mau qu棚 x畛.pptx
phuonguyn2400
373E879C-764F-11EF-AA2F-F5F8FA70038B.pdf
373E879C-764F-11EF-AA2F-F5F8FA70038B.pdf373E879C-764F-11EF-AA2F-F5F8FA70038B.pdf
373E879C-764F-11EF-AA2F-F5F8FA70038B.pdf
KimAnhDng
Gi叩o 叩n Ng畛 vn 10 KNTT B畛 2 NG働畛I C畉M QUY畛N....docx
Gi叩o 叩n Ng畛 vn 10 KNTT B畛 2 NG働畛I C畉M QUY畛N....docxGi叩o 叩n Ng畛 vn 10 KNTT B畛 2 NG働畛I C畉M QUY畛N....docx
Gi叩o 叩n Ng畛 vn 10 KNTT B畛 2 NG働畛I C畉M QUY畛N....docx
thanhyt004
Nghi棚n c畛u sinh h畛c v畛 畛t bi畉n Nhi畛m s畉c th畛
Nghi棚n c畛u sinh h畛c v畛 畛t bi畉n Nhi畛m s畉c th畛Nghi棚n c畛u sinh h畛c v畛 畛t bi畉n Nhi畛m s畉c th畛
Nghi棚n c畛u sinh h畛c v畛 畛t bi畉n Nhi畛m s畉c th畛
nguyenphuonguyen1412
GRAMMAR PRACTICE TEST 01 ANSWER KEY.docx
GRAMMAR PRACTICE TEST 01 ANSWER KEY.docxGRAMMAR PRACTICE TEST 01 ANSWER KEY.docx
GRAMMAR PRACTICE TEST 01 ANSWER KEY.docx
AnhDuc498595
Bi gi畉ng TTHCM.pptx Bi gi畉ng TTHCMBi gi畉ng TTHCM
Bi gi畉ng TTHCM.pptx Bi gi畉ng TTHCMBi gi畉ng TTHCMBi gi畉ng TTHCM.pptx Bi gi畉ng TTHCMBi gi畉ng TTHCM
Bi gi畉ng TTHCM.pptx Bi gi畉ng TTHCMBi gi畉ng TTHCM
2251010138
Cours 3 Les voyelles nasales semi voyelles.pptx
Cours 3 Les voyelles nasales semi voyelles.pptxCours 3 Les voyelles nasales semi voyelles.pptx
Cours 3 Les voyelles nasales semi voyelles.pptx
HaihuyDong
Airport Vocabulary IN ENGLISH BBBHHBHBHBHB
Airport Vocabulary IN ENGLISH BBBHHBHBHBHBAirport Vocabulary IN ENGLISH BBBHHBHBHBHB
Airport Vocabulary IN ENGLISH BBBHHBHBHBHB
HBng40
Ch動董ng 3. 畛i l動u nhi畛t. h坦a h畛u c董 TDTU
Ch動董ng 3.  畛i l動u nhi畛t. h坦a h畛u c董 TDTUCh動董ng 3.  畛i l動u nhi畛t. h坦a h畛u c董 TDTU
Ch動董ng 3. 畛i l動u nhi畛t. h坦a h畛u c董 TDTU
ngKhi80
bac-gau-den-va-hai-chu-tho-co-chu_02122022.ppt
bac-gau-den-va-hai-chu-tho-co-chu_02122022.pptbac-gau-den-va-hai-chu-tho-co-chu_02122022.ppt
bac-gau-den-va-hai-chu-tho-co-chu_02122022.ppt
LuPhm10

2.stm32 f10e

  • 1. CH働NG 2: ARM STM32F1X PHAN VN HON 7 Ch動董ng 2 ARM STM32F1X 2.1 CC DNG ARM C畛A HNG ST T鱈nh 畉n th畛i i畛m 8/2015 th狸 h達ng ST 達 cho ra 畛i nh畛ng d嘆ng ARM ch鱈nh sau: STM32L0, STM32L1, STM32L4, STM32F0, STM32F1, STM32F2, STM32F3, STM32F4, STM32F7. H狸nh 2.1 C叩c d嘆ng ARM c畛a h達ng ST 2.2 GI畛I THI畛U DNG ARM STM32F1 D嘆ng ARM STM32F1 動畛c chia ra lm 5 nh坦m nh畛, m畛i nh坦m s畉 c坦 s畛 dung l動董ng b畛 nh畛 Flash, SRAM v s畛 l動畛ng ngo畉i vi kh叩c nhau. Low-density: G畛m c叩c vi i畛u khi畛n STM32F101xx, STM32F102xx v STM32F103xx c坦 b畛 nh畛 Flash t畛 16 畉n 32 Kbytes. Medium-density: G畛m c叩c vi i畛u khi畛n STM32F101xx, STM32F102xx v STM32F103xx c坦 b畛 nh畛 Flash t畛 64 畉n 128 Kbytes. High-density: G畛m c叩c vi i畛u khi畛n STM32F101xx v STM32F103xx c坦 b畛 nh畛 Flash t畛 256 畉n 512 Kbytes.
  • 2. CH働NG 2: ARM STM32F1X 8 PHAN VN HON XL-density: G畛m c叩c vi i畛u khi畛n STM32F101xx v STM32F103xx c坦 b畛 nh畛 Flash t畛 768 畉n 1 Mbyte. Connectivity line: G畛m c叩c vi i畛u khi畛n STM32F105xx v STM32F107xx. H狸nh 2.2 Ph但n lo畉i vi i畛u khi畛n thu畛c d嘆ng STM32F1 2.3 KI畉N TRC C畛A ARM STM32F1 Icode bus: K畉t n畛i l探i Cortex-M3 v畛i b畛 nh畛 Flash 畛 truy畛n m達 l畛nh. Dcode bus: K畉t n畛i l探i Cortex-M3 v畛i b畛 nh畛 Flash 畛 truy畛n d畛 li畛u. System bus: K畉t n畛i l探i Cortex-M3 v畛i BusMatrix v BusMatrix s畉 ph但n quy畛n s畛 d畛ng bus gi畛a l探i ARM v kh畛i DMA. DMA bus: K畉t n畛i DMA v畛i BusMatrix v BusMatrix s畉 qu畉n l箪 vi畛c truy xu畉t d畛 li畛u c畛a CPU, DMA t畛i SRAM, Flash v c叩c ngo畉i vi. BusMatrix: Ph但n quy畛n s畛 d畛ng bus gi畛a l探i ARM v kh畛i DMA. Vi畛c ph但n quy畛n ny d畛a tr棚n thu畉t to叩n Round Robin ( C叩c kh畛i s畉 thay phi棚n nhau truy c畉p bus trong 1 董n v畛 th畛i gian 畛nh s畉n). C叩c c畉u AHB/APB : 2 c畉u AHB/APB gi炭p 畛ng b畛 k畉t n畛i gi畛a AHB v畛i 2 bus APB. APB1 c坦 t畛c 畛 t畛i a l 36 MHz v APB2 畉t t畛c 畛 t畛i a 72 MHz . Sau m畛i l畉n CPU b畛 reset th狸 t畉t c畉 c叩c ngu畛n xung clock c畉p cho ngo畉i vi 畛u b畛 t畉t h畉t ch畛 tr畛 clock c畉p cho SRAM v FLITF v狸 v畉y tr動畛c khi s畛 d畛ng ngo畉i vi SV c畉n c畉u h狸nh c畉p xung clock cho ch炭ng th担ng qua 3 thanh ghi RCC_AHBENR, RCC_APB1ENR, RCC_APB2ENR. XL density 768K-1M High density 256-512K Medium density 64-128K Low density 16-32K Connectivity line F105, F107
  • 3. CH働NG 2: ARM STM32F1X PHAN VN HON 9 H狸nh 2.3 Ki畉n tr炭c c畛a ARM STM32F1 2.4 T畛 CH畛C VNG NH畛 C畛A ARM STM32F1 B畛 nh畛 ch動董ng tr狸nh, b畛 nh畛 d畛 li畛u v c叩c thanh ghi v c叩c port I/O 動畛c b畛 tr鱈 trong kh担ng gian 畛a ch畛 tuy畉n t鱈nh 4Gbyte. 2.4.1 畛a ch畛 c畛a ngo畉i vi ( 畛a ch畛 n畛n 0x4000 0000) Ph畉m vi 畛a ch畛 c畛a t畉t c畉 c叩c ngo畉i vi 動畛c thu畛c d嘆ng STM32F1 動畛c li畛t k棚 trong b畉ng 2.1. B畉ng li畛t k棚 ny gi炭p ta t鱈nh to叩n 動畛c 畛a ch畛 c畛a t畛ng thanh ghi thu畛c 1 ngo畉i vi no 坦 th担ng qua 畛a ch畛 offset c畛a n坦. V鱈 d畛 畛 t狸m 畛a ch畛 thanh ghi GPIOB_ODR, 畛c datasheet ta th畉y 畛a ch畛 offset c畛a thanh ghi ODR l 0x0C V畉y 畛a ch畛 thanh ghi GPIOB_ODR = 畛a ch畛 n畛n PORTB + 畛a ch畛 offset c畛a ODR = 0x4001 0C00 + 0x0C = 0x4001 0C0C Vi畛c t鱈nh 動畛c 畛a ch畛 c畛a c叩c thanh ghi gi炭p ta c坦 th畛 truy xu畉t ch炭ng th担ng qua 畛a ch畛 坦, nh動ng tr棚n th畛c t畉 khi l畉p tr狸nh c叩c 畛a ch畛 ny 畛u 達 動畛c 畛nh ngh挑a s畉n trong th動 vi畛n stm32f10x.h SV kh担ng c畉n ph畉i t鱈nh to叩n l畉i. B畉ng 2.1 畛a ch畛 c畛a c叩c ngo畉i vi trong h畛 ARM STM32F1 Ph畉m vi 畛a ch畛 Ngo畉i vi Bus 0x5000 0000 - 0x5000 03FF USB OTG FS 0x4003 0000 - 0x4FFF FFFF Reserved 0x4002 8000 - 0x4002 9FFF Ethernet 0x4002 3400 - 0x4002 7FFF Reserved 0x4002 3000 - 0x4002 33FF CRC 0x4002 2000 - 0x4002 23FF Flash memory interface
  • 4. CH働NG 2: ARM STM32F1X 10 PHAN VN HON 0x4002 1400 - 0x4002 1FFF Reserved AHB 0x4002 1000 - 0x4002 13FF Reset and clock control RCC 0x4002 0800 - 0x4002 0FFF Reserved 0x4002 0400 - 0x4002 07FF DMA2 0x4002 0000 - 0x4002 03FF DMA1 0x4001 8400 - 0x4001 7FFF Reserved 0x4001 8000 - 0x4001 83FF SDIO 0x4001 4000 - 0x4001 7FFF Reserved APB2 0x4001 3C00 - 0x4001 3FFF ADC3 0x4001 3800 - 0x4001 3BFF USART1 0x4001 3400 - 0x4001 37FF TIM8 timer 0x4001 3000 - 0x4001 33FF SPI1 0x4001 2C00 - 0x4001 2FFF TIM1 timer 0x4001 2800 - 0x4001 2BFF ADC2 0x4001 2400 - 0x4001 27FF ADC1 0x4001 2000 - 0x4001 23FF GPIO Port G 0x4001 1C00 - 0x4001 1FFF GPIO Port F 0x4001 1800 - 0x4001 1BFF GPIO Port E 0x4001 1400 - 0x4001 17FF GPIO PortD 0x4001 1000 - 0x4001 13FF GPIO Port C 0x4001 0C00 - 0x4001 0FFF GPIO Port B 0x4001 0800 - 0x4001 0BFF GPIO Port A 0x4001 0400 - 0x4001 07FF EXTI 0x4001 0000 - 0x4001 03FF AFIO 0x4000 7800 - 0x4000 FFFF Reserved APB1 0x4000 7400 - 0x4000 77FF DAC 0x4000 7000 - 0x4000 73FF Power control PWR 0x4000 6C00 - 0x4000 6FFF Backup registers (BKP) 0x4000 6800 - 0x4000 6BFF Reserved 0x4000 6400 - 0x4000 67FF bxCAN1 0x4000 6800 - 0x4000 6BFF bxCAN2 0x4000 6000 - 0x4000 63FF Shared USB/CAN SRAM 512 bytes 0x4000 5C00 - 0x4000 5FFF USB device FS registers 0x4000 5800 - 0x4000 5BFF I2C2 0x4000 5400 - 0x4000 57FF I2C1 0x4000 5000 - 0x4000 53FF UART5 0x4000 4C00 - 0x4000 4FFF UART4 0x4000 4800 - 0x4000 4BFF USART3 0x4000 4400 - 0x4000 47FF USART2 0x4000 4000 - 0x4000 3FFF Reserved 0x4000 3C00 - 0x4000 3FFF SPI3/I2S 0x4000 3800 - 0x4000 3BFF SPI2/I2S 0x4000 3400 - 0x4000 37FF Reserved 0x4000 3000 - 0x4000 33FF Independent watchdog (IWDG) 0x4000 2C00 - 0x4000 2FFF Window watchdog (WWDG) 0x4000 2800 - 0x4000 2BFF RTC 0x4000 1800 - 0x4000 27FF Reserved 0x4000 1400 - 0x4000 17FF TIM7 timer
  • 5. CH働NG 2: ARM STM32F1X PHAN VN HON 11 0x4000 1000 - 0x4000 13FF TIM6 timer 0x4000 0C00 - 0x4000 0FFF TIM5 timer 0x4000 0800 - 0x4000 0BFF TIM4 timer 0x4000 0400 - 0x4000 07FF TIM3 timer 0x4000 0000 - 0x4000 03FF TIM2 timer 2.4.2 畛a ch畛 c畛a SRAM ( 畛a ch畛 n畛n 0x20000000) C叩c vi i畛u khi畛n thu担c d嘆ng STM32F1c坦 th畛 c坦 t畛i a 64 Kbyte b畛 nh畛 RAM. B畛 nh畛 ny c坦 th畛 動董c truy xu畉t theo byte, n畛a word (16 bit) ho畉c l c畉 word (32 bit). 2.4.3 畛a ch畛 c畛a FLASH ( 畛a ch畛 n畛n 0x0800 0000) B畛 nh畛 Flash c坦 nh畛ng 畉c i畛m sau: 畛i v畛i d嘆ng XL-density: b畛 nh畛 Flash c坦 k鱈ch th動畛c l 1Mbyte v 動畛c chia ra lm 2 bank m畛i bank 512 Kbytes. 畛i v畛i c叩c d嘆ng kh叩c th狸 b畛 nh畛 Flash c坦 k鱈ch th動畛c t畛i a l 512 Kbytes. B畛 nh畛 Flash 動畛c chia ra lm 2 kh畛i v kh畛i ch鱈nh ( main block) v kh畛i th担ng tin (information block). Ngoi vi畛c l動u ch動董ng tr狸nh Flash c嘆n 動畛c s畛 d畛ng 畛 l動u c叩c th担ng tin ng動畛i d湛ng nh動 vai tr嘆 c畛a 1 EPROM. Cho ph辿p b畉o v畛 畛c v ghi. B畉ng 2.2 Ph畉m vi main block c畛a c叩c d嘆ng ARM D嘆ng ARM Dung l動董ng Flash t畛i a Ph畉m vi main block Low-density 32 Kbytes 0x0800 0000 - 0x0800 7FFF Medium-density 128 Kbytes 0x0800 0000 - 0x0801 FFFF High-density 512 Kbytes 0x0800 0000 - 0x0807 FFFF XL-density 1 Mbyte 0x0800 0000 - 0x080F FFFF Connectivity line 256 Kbytes 0x0800 0000 - 0x0803 FFFF Ch炭 箪: Khi mu畛n s畛 d畛ng b畛 nh畛 Flash 畛 l動u tr畛 d畛 li畛u nh動 vai tr嘆 c畛a m畛t EPROM th狸 ta n棚n d畛a vo b畉ng 2.2 畛 bi畉t 動畛c ph畉m vi c畛a b畛 nh畛 Flash 畛ng v畛i d嘆ng ta ang s畛 d畛ng 畛 t畛 坦 c坦 th畛 ch畛n v湛ng 畛a ch畛 cu畛i b畛 nh畛 lm n董i l動u tr畛( v狸 n畉u ch畛n v湛ng 畛a ch畛 畉u c坦 th畛 d畛 li畛u s畉 竪 l棚n ch動董ng tr狸nh). 畛a ch畛 b畉t 畉u c畛a b畛 nh畛 Flash l 0x08000000 v 動畛c chia ra lm nhi畛u page. K鱈ch th動畛c c畛a m畛t page ph畛 thu畛c vo phi棚n b畉n ARM. 畛i v畛i b畉n low v medium density th狸 m畛i page l 1 Kbytes, b畉n high density th狸 m畛i page c坦 2 Kbytes. M畛i khi mu畛n ghi d畛 li畛u vo Flash ta c畉n ph畉i x坦a h畉t d畛 li畛u trong page mu畛n ghi ngay c畉 khi ch畛 mu畛n ghi 1 byte. a. C叩c l畛nh th担ng d畛ng li棚n quan 畉n FLASH B畉ng 2.3 C叩c l畛nh c董 b畉n li棚n quan 畉n FLASH S畛 D畛NG TH働 VI畛Nstm32f10x_flash L畛nh Th担ng s畛 hay d湛ng Gi畉i th鱈ch FLASH_Unlock(); (L畛nh m畛 kh坦a 畛 cho ph辿p x坦a Flash)
  • 6. CH働NG 2: ARM STM32F1X 12 PHAN VN HON FLASH_ClearFlag(A); (L畛nh x坦a c叩c c畛 b叩o tr畉ng th叩i c畛a Flash) A: FLASH_FLAG_PGERR FLASH_FLAG_WRPRTERR FLASH_FLAG_EOP A: C畛 c畉n x坦a L畛i n畉p ch動董ng tr狸nh L畛i b畉o v畛 ghi X畛 l箪 xong y棚u c畉u FLASH_ErasePage(A); (L畛nh x坦a 1 Page) A: 畛a ch畛 Page c畉n x坦a A: 畛a ch畛 32 bit FLASH_ProgramHalfWord(A, B); (L畛nh ghi n畛a word-16 bit vo Flash) A: 畛a ch畛 c畛a n畛a word c畉n ghi B: Gi叩 tr畛 c畉n ghi A: 畛a ch畛 32 bit B: Gi叩 tr畛 16 bit FLASH_ProgramWord(A,B); (L畛nh ghi 1 word-32 bit vo Flash) A: 畛a ch畛 c畛a word c畉n ghi B: Gi叩 tr畛 c畉n ghi A: 畛a ch畛 32 bit B: Gi叩 tr畛 32 bit FLASH_Lock(); (L畛nh kh坦a Flash 畛 ch畛ng x坦a d畛 li畛u) b. V鱈 d畛 v畛 ghi v 畛c d畛 li畛u t畛 b畛 nh畛 FLASH V鱈 d畛 2.1: Vi畉t ch動董ng tr狸nh con l動u 100 s畛 16 bit c畛a m畉ng unsigned short datasave[100] vo page cu畛i b畛 nh畛 Flash c畛a ARM STM32F103VET6 v 畛ng th畛i vi畉t ch動董ng tr狸nh con 畛c v畛 c叩c gi叩 tr畛 達 l動u 畛 l動u l畉i vo m畉ng unsigned short dataread[100] a. T鱈nh to叩n 畛a ch畛 ARM STM32F103VET6 l d嘆ng high density c坦 Flash 512 Kbytes, m畛i page 2 Kbytes Page cu畛i c湛ng l page s畛: (512:2) -1=255 畛a ch畛 page cu畛i c湛ng = 255*2048+0x08000000 = 0x0807F800 b. Ch動董ng tr狸nh void WriteFlash() { char i; FLASH_Unlock(); // M畛 kh坦a Flash cho ph辿p x坦a d畛 li畛u FLASH_ClearFlag(FLASH_FLAG_EOP |FLASH_FLAG_PGERR |FLASH_FLAG_WRPRTERR); // X坦a c叩c c畛 b叩o tr畉ng th叩i c畛a Flash FLASH_ErasePage(0x0807F800); // X坦a page c畉n ghi for(i =0; i<100; i++) FLASH_ProgramHalfWord(0x0807F800 + i*2,datasave[i]); // Ghi 100 s畛 16 bit vo Flash FLASH_Lock(); // Kh坦a Flash 畛 c畉m x坦a } void ReadFlash() { char i;
  • 7. CH働NG 2: ARM STM32F1X PHAN VN HON 13 for(i=0; i<100; i++) dataread[i] = *(unsigned int *)(0x0807F800 + i*2); // 畛c 100 s畛 16 bit t畛 Flash v畛 } 2.5 BIT BAND C畛A ARM STM32F1X C叩c phi棚n b畉n ARM tr動畛c ch畛 c坦 th畛 th畛c hi畛n thao t叩c bit tr棚n v湛ng nh畛 SRAM v v湛ng nh畛 ngo畉i vi b畉ng c叩c l畛nh AND v OR. i畛u ny 嘆i h畛i CPU ph畉i t畛n nhi畛u th畛i gian cho vi畛c 畛c s畛a 畛i ghi l畉i d畛 li畛u vo b畛 nh畛. K畛 thu畉t bit band cho ph辿p b畛 x畛 l箪 ARM STM32F1 thao t叩c bit tr畛c ti畉p m kh担ng c畉n d湛ng ph辿p AND hay OR do 坦 gi炭p gi畉m thi畛u th畛i gian th畛c hi畛n. Bit band ho畉t 畛ng b畉ng c叩ch 叩nh x畉 m畛i bit trong bit band region t畛i m畛t 畛a ch畛 word trong v湛ng bit band alias v b畉ng c叩ch 畉t (set) hay x坦a (clear) word ny ta c坦 th畛 畉t ho畉c x坦a bit t動董ng 畛ng trong bit band region. H狸nh 2.4 Bit band c畛a v湛ng nh畛 SRAM v ngo畉i vi C担ng th畛c t鱈nh 畛a ch畛 c畛a 1 bit thu畛c Bit band region 動畛c 叩nh x畉 trong Bit band alias : 畛a ch畛 trong Bit Band Alias = Bit Band Alias Base Address + Bit Word Offset Bit Word Offset = Byte offset from Bit Band Region Base * 32 + bit number * 4 2.5.1 V鱈 d畛 v畛 s畛 d畛ng bit band Y棚u c畉u: S畛 d畛ng k畛 thu畉t Bit Band 畛 i畛u khi畛n s叩ng ho畉c t畉t LED 動畛c k畉t n畛i v畛i ch但n B8. Bi畉t thanh ghi ng探 ra c畛a PORTB (GPIOB_ODR) c坦 畛a ch畛 offset l 0x0C v 畛a ch畛 n畛n (Base Address) c畛a PORTB l 0x40010C00. ( C叩c th担ng s畛 tr棚n c坦 th畛 xem trong datasheet ho畉c xem trong file stm32f10x.h)
  • 8. CH働NG 2: ARM STM32F1X 14 PHAN VN HON a. T鱈nh to叩n 畛a ch畛 T狸m Bit Band Alias Base Address : Do PORTB l ngo畉i vi n棚n Bit Band Alias Base Address = 0x42000000 T狸m Bit Word Offset : Byte offset from Bit Band Region Base = 0x40010C0C - 0x40000000 = 0x10C0C V畛i : 0x40000000 l Peripheral Bit Band Region Base Address 0x40010C0C l 畛a ch畛 v畉t l箪 c畛a GPIOB_ODR = 0x40010C00 + 0x0C Bit Word Offset = 0x10C0C *32 + 8*4 = 0x2181A0 V畉y ta c坦 : 畛a ch畛 trong v湛ng Bit Band Alias c畛a Bit 8 GPIOB_ODR (GPIOB_ODR_Bit8) GPIOB_ODR_Bit8 = 0x42000000 + 0x2181A0 = 0x422181A0 b. L畉p tr狸nh Khi l畉p tr狸nh ta c坦 th畛 t畉o 1 con tr畛 畉n 畛a ch畛 ny b畉ng 畛nh ngh挑a sau: #define PB8 (*(unsigned long *)0x422181A0) Ch炭 箪: 畛 kh畛i t畛n c担ng t鱈nh to叩n nh動 tr棚n ta c坦 th畛 畛nh vi畉t nh動 sau: #define Bitband(ad,bn) *(unsigned long*) ((ad&0xF0000000)+0x2000000+((ad&0xFFFFF)*32)+ bn*4) #define PB8 Bitband((unsigned long)&GPIOB->ODR,8) L炭c ny ta c坦 th畛 i畛u khi畛n t畉t m畛 LED 畛 ch但n B8 m畛t c叩ch d畛 dng b畉ng 2 l畛nh sau: PB8 =1; // Ch但n B8 l棚n m畛c 1 PB8 =0; // Ch但n B8 xu担ng m畛c 0 2.6 C畉U HNH BOOT CHO ARM STM32 F1 D嘆ng STM32F1 c坦 3 ch畉 畛 boot 動畛c ch畛n b畛i 2 ch但n BOOT[1:0] theo b畉ng 2.4. B畉ng 2.4 C叩c ch畉 畛 boot c畛a ARM STM32F1 Tr畉ng th叩i ch但n boot Ch畉 畛 boot Gi畉i th鱈ch BOOT1 BOOT1 x 0 B畛 nh畛 Flash ch鱈nh Ch畛n boot t畛 b畛 nh畛 Flash ch鱈nh 0 1 B畛 nh畛 h畛 th畛ng Ch畛n boot t畛 b畛 nh畛 h畛 th畛ng 1 1 SRAM Ch畛n boot t畛 b畛 nh畛 SRAM Tr畉ng th叩i c畛a c叩c ch但n BOOT 動畛c c畉p nh畉t vo th畛i i畛m c坦 c畉nh l棚n th畛 4 c畛a xung SYSCLK sau khi Reset. Vi畛c ch畛n ch畉 畛 boot ph畛 thu畛c vo vi畛c ci 畉t c畛a ng動畛i d湛ng 畛i v畛i 2 ch但n BOOT1 v BOOT0 v tr畉ng th叩i c叩c ch但n boot ny s畉 動畛c c畉p nh畉t l畉i sau m畛i l畉n tho叩t kh畛i ch畉 畛 Standby. Boot loader 動畛c l畉p tr狸nh b畛i h達ng ST v m畉c 畛nh l動u trong b畛 nh畛 h畛 th畛ng. Boot loader 動畛c s畛 d畛ng 畛 n畉p ch動董ng tr狸nh vo b畛 nh畛 Flash b畉ng m畛t s畛 chu畉n truy畛n n畛i ti畉p: 畛i v畛i c叩c d嘆ng low, medium, high density th狸 boot loader s畛 d畛ng USART1 畛 n畉p ch動董ng tr狸nh vo Flash 畛i v畛i d嘆ng conectivity line th狸 boot loader s畛 d畛ng USART1, USART2 (remap), CAN2 (remap) ho畉c USB OTG FS ho畉t 畛ng 畛 ch畉 畛 DFU-Device Firmware Upgrade Trong ch畉 畛 ny USART s畉 ho畉t 畛ng nh畛 giao 畛ng n畛i 8 Mhz (HSI) c嘆n CAN v USB ch畛 c坦 th畛 ho畉t 畛ng nh畛 giao 畛ng ngo畉i HSE khi k畉t n畛i v畛i th畉ch anh 8 Mhz, 14.7456 MHz ho畉c 25 MHz.
  • 9. CH働NG 2: ARM STM32F1X PHAN VN HON 15 2.7 C畉P NGU畛N CHO ARM STM32F1 Ngu畛n cung c畉p cho ARM (VDD) ph畉i n畉m trong ph畉m vi t畛 2 畉n 3.6 V( th動畛ng c畉p 3.3V) . M畛t b畛 i畛u ch畛nh i畛n 叩p b棚n trong 動畛c s畛 d畛ng 畛 cung c畉p ngu畛n 1.8V cho l探i i畛u khi畛n, SRAM v ngo畉i vi s畛. 畛ng h畛 th畛i gian th畛c( RTC) v c叩c thanh ghi backup 動畛c c畉p ngu畛n b畉ng Pin 3V vo ch但n VBAT 畛 h畛 th畛ng v畉n 畛nh th畛i 炭ng khi t畉t ngu畛n VDD. N畉u kh担ng d湛ng ngu畛n Pin th狸 ch但n VBAT ph畉i 動畛c n畛i l棚n ngu畛n VDD v c畉n 動畛c l畛c nhi畛u b畉ng t畛 100 nF. C叩c ch但n VDDA v VSSA ph畉i 動畛c k畉t n畛i t動董ng 畛ng v畛i VDD v VSS xem h狸nh 2.5 Ch但n VREF- ph畉i 動畛c n畛i v畛i VSSA n畉u vi i畛u khi畛n 動畛c d湛ng c坦 ch但n ny. 畛i v畛i c叩c phi棚n b畉n ARM 100 ch但n v 144 ch但n ch但n VREF+ c畛a ADC v DAC 動畛c thi畉t k畉 ri棚ng, 畛 tng 畛 ch鱈nh x叩c c畛a k畉t qu畉 chuy畛n 畛i ng動畛i d湛ng n棚n n畛i ch但n ny v畛i m畛t ngu畛n cung c畉p 畛c l畉p v畛i VDD. Gi叩 tr畛 i畛n 叩p cung c畉p cho VREF+ n畉m trong ph畉m vi t畛 2.4V t畛i VDD. 畛i v畛i c叩c phi棚n b畉n ARM 64 ch但n tr畛 xu畛ng th狸 ch但n VREF+ v VREF- kh担ng t畛n t畉i v狸 ch炭ng 達 動畛c k畉t n畛i b棚n trong v畛i ngu畛n c畉p cho ADC (VDDA v VSSA). 2.7.1 Kh畛i i畛u ch畛nh i畛n 叩p( Voltage regulator) Kh畛i i畛u ch畛nh i畛n 叩p lu担n 動畛c m畛 ngay sau khi Reset. Kh畛i ny c坦 th畛 lm vi畛c 畛 3 ch畉 畛 kh叩c nhau: Trong ch畉 畛 Run kh畛i i畛u ch畛nh i畛p 叩p cung c畉p ngu畛n 1.8V cho t畉t c畉 c叩c kh畛i s畛 d畛ng ngu畛n ny nh動 l l探i x畛 l箪, b畛 nh畛 v c叩c ngo畉i vi s畛. Trong ch畉 畛 Stop kh畛i i畛u ch畛nh i畛n 叩p ch畛 cung c畉p ngu畛n 1.8V cho SRAM 畛 b畉o v畛 d畛 li畛u c畛a c叩c thanh ghi trong SRAM. Trong ch畉 畛 Standby kh畛i i畛u ch畛nh i畛n 叩p b畛 t畉t i do 坦 d畛 li畛u SRAM b畛 m畉t i ch畛 tr畛 c叩c thanh ghi c畛a Standby circuitry v Backup Domain. H狸nh 2.5 T畛ng quan v畛 c叩c l畉i ngu畛n c畉p cho STM32F1x
  • 10. CH働NG 2: ARM STM32F1X 16 PHAN VN HON H狸nh 2.6 S董 畛 nguy棚n l箪 m畉ch k畉t n畛i c董 b畉n cho ARM STM32F1 2.8 CC CH畉 畛 TI畉T KI畛M NNG L働畛NG M畉c 畛nh sau khi Power Reset th狸 vi i畛u khi畛n ho畉t 畛ng 畛 ch畉 畛 Run. B棚n c畉nh ch畉 畛 Run h達ng ST c滴ng 達 thi畉t k畉 m畛t vi ch畉 畛 ti畉t ki畛m nng l動畛ng nh畉m gi畉m c担ng su畉t ti棚u th畛 c畛a CPU khi CPU kh担ng c畉n ph畉i ho畉t 畛ng, v鱈 d畛 nh動 khi CPU ang ch畛 s畛 ki畛n t叩c 畛ng t畛 b棚n ngoi. C叩c ch畉 畛 ti畉t ki畛m nng l動畛ng ny c坦 th畛 動畛c l畉p tr狸nh b畉ng ph畉n m畛m. D嘆ng ARM STM32F1 c坦 3 ch畉 畛 ti畉t ki畛m nng l動畛ng sau: Ch畉 畛 Sleep ( ng畛): T畉t ngu畛n xung clock c畛a CPU, nh動ng t畉t c畉 c叩c ngo畉i vi k畛 c畉 c叩c ngo畉i vi c畛a l探i Cortex-M3 nh動 l NVIC, SysTick, v畉n ho畉t 畛ng. Ch畉 畛 Stop (d畛ng) : T畉t h畉t t畉t c畉 c叩c ngu畛n xung clock. Ch畉 畛 Standby(ch畛): T畉t ngu畛n 1.8V, lm ch畉m l畉i SYSCLK, ch畉n ngu畛n xung clock c畉p cho c叩c ngo畉i vi thu畛c APB v AHB khi kh担ng d湛ng 畉n. 2.8.1 Ch畉 畛 Sleep a. C叩ch 動a CPU vo ch畉 畛 Sleep 動a CPU vo ch畉 畛 Sleep b畉ng c叩ch th畛c thi c叩c l畛nh WFI( Wait For Interrup- Ch畛 x畉y ra ng畉t) ho畉c WFE( Wait For Event- Ch畛 x畉y ra s畛 ki畛n) Ch動董ng 5 s畉 tr狸nh by r探 h董n v畛 ng畉t v s畛 ki畛n.
  • 11. CH働NG 2: ARM STM32F1X PHAN VN HON 17 T湛y thu畛c vo tr畉ng th叩i bit SLEEPONEXIT trong thanh ghi Cortex-M3 System Control m ta c坦 c叩c ch畉 畛: Sleep now: Khi bit SLEEPONEXIT = 0, CPU s畉 r董i vo ch畉 畛 Sleep ngay sau khi l畛nh WFI hay WFE 動畛c th畛c hi畛n xong. Sleep on exit: Khi bit SLEEPONEXIT = 1, CPU s畉 r董i vo tr畉ng th叩i Sleep ngay sau khi tho叩t kh畛i ng畉t c坦 畛 動u ti棚n th畉p nh畉t. Trong ch畉 畛 Sleep t畉t c畉 c叩c ch但n I/O v畉n gi畛 gi叩 tr畛 c滴 nh動 khi 畛 ch棚 畛 Run. b. C叩ch 動a CPU vo ch畉 畛 Sleep N畉u tr動畛c 坦 s畛 d畛ng l畛nh WFI 畛 動a CPU vo ch畉 畛 Sleep th狸 畛 tho叩t kh畛i ch畉 畛 ny c畉n ph畉i x畉y ra m担t ng畉t ngo畉i vi 動畛c cho ph辿p b畛i NVIC(xem ch動董ng 5). N畉u tr動畛c 坦 s畛 d畛ng l畛nh WFE 畛 動a CPU vo ch畉 畛 Sleep th狸 CPU s畉 tho叩t kh畛i ch畉 畛 ny ngay khi x畉y ra 1 s畛 ki畛n. S畛 ki畛n ny c坦 th畛 動畛c t畉o ra b畉ng c叩ch: Cho ph辿p ng畉t 畛 ngo畉i vi nh動ng kh担ng cho ph辿p ng畉t 畛 NVIC v cho ph辿p bit SEVONPEND trong thanh ghi Cortex-M3 System Control. Khi CPU tho叩t kh畛i ch畉 畛 ti畉t ki畛m nng l動畛ng t畛 WFE th狸 c畉n ph畉i x坦a c叩c bit b叩o ng畉t 畛 ngo畉i vi v NVIC. C畉u h狸nh k棚nh ng畉t (EXTI line) 畛 ch畉 畛 s畛 ki畛n( event). Khi CPU tho叩t kh畛i ch畉 畛 ti畉t ki畛m nng l動畛ng t畛 WFE th狸 kh担ng c畉n ph畉i x坦a c叩c c畛 ng畉t. 2.8.2 Ch畉 畛 Stop Ch畉 畛 Stop l s畛 k畉t h畛p gi畛a ch畉 畛 DeepSleep (ng畛 s但u) c畛a l探i Cortex-M3 v畛i ch畉 畛 ki畛m so叩t ngu畛n xung clock ngo畉i vi. B畛 i畛u ch畛nh ngu畛n c坦 th畛 動畛c c畉u h狸nh theo ch畉 畛 b狸nh th動畛ng ho畉t ch畉 畛 ti畉t ki畛m nng l動畛ng. Trong ch畉 畛 ny t畉t c畉 c叩c ngu畛n xung clock trong v湛ng 1.8V 畛u t畉t, c叩c b畛 giao 畛ng PLL, HSI, HSE c滴ng 動畛c t畉t h畉t. D畛 li畛u trong SRAM 動畛c b畉o v畛 v t畉t tr畉ng th叩i t畉t c畉 c叩c I/O kh担ng thay 畛i. a. C叩ch 動a CPU vo ch畉 畛 Stop 畛 vo ch畉 畛 Stop ta d湛ng l畛nh ch畛 ng畉t WFI ho畉c ch畛 s畛 ki畛n WFE k竪m theo: 畉t bit SLEEPDEEP c畛a thanh ghi Cortex-M3 System Control l棚n m畛c 1. X坦a bit PDDS c畛a thanh thi Power Control register (PWR_CR) v畛 0 . Ch畛n ch畉 畛 ho畉t 畛ng cho b畛 i畛u ch畛nh i畛n 叩p b畉ng c叩ch c畉u h狸nh bit LPDS trong thanh ghi Power control register (PWR_CR). Ch炭 箪: 畛 c坦 th畛 vo 動畛c ch畉 畛 Stop th狸 t畉t c畉 c叩c bit c畛 b叩o ng畉t ngoi trong thanh ghi EXTI_PR v c畛 b叩o 畛ng c畛a 畛ng h畛 th畛i gian th畛c( RTC Alarm flag) ph畉i 動畛c x坦a tr動畛c 坦 n畉u kh担ng ch畉 畛 Stop s畉 b畛 b畛 qua v ch動董ng tr狸nh ti畉p t畛c ho畉t 畛ng b狸nh th動畛ng. b. C叩ch 動a CPU tho叩t kh畛i ch畉 畛 Stop N畉u tr動畛c 坦 s畛 d畛ng l畛nh WFI 畛 動a CPU vo ch畉 畛 Stop th狸 畛 tho叩t kh畛i ch畉 畛 ny c畉n ph畉i x畉y ra m担t ng畉t ngo畉i vi 動畛c cho ph辿p b畛i NVIC. N畉u tr動畛c 坦 s畛 d畛ng l畛nh WFE 畛 動a CPU vo ch畉 畛 Stop th狸 CPU s畉 tho叩t kh畛i ch畉 畛 ny ngay khi x畉y ra 1 s畛 ki畛n. 2.8.3 Ch畉 畛 Standby Ch畉 畛 Standby l ch畉 畛 ti畉t ki畛m nng l動畛ng nh畉t, Standby ho畉t 畛ng d畛a tr棚n vi畛c 動a CPU vo ch畉 畛 ng畛 s但u 畛ng th畛i t畉t b畛 i畛u ch畛nh i畛n 叩p 1.8V. C叩c kh畛i giao 畛ng PLL, HSI, v HSE c滴ng b畛 t畉t h畉t. D畛 li畛u trong SRAM v c叩c thanh ghi b畛 m畉t ch畛 tr畛 c叩c thanh ghi c畛a Backup domain v Standby circuitry l kh担ng m畉t. Trong ch畉 畛 Standby tr畉ng th叩i t畉t c畉 c叩c I/O 畛u 畛 t畛ng tr畛 cao ngo畉i tr畛 : Ch但n Reset v畉n c嘆n t叩c 畛ng 動畛c. Ch但n TAMPER v ch但n WKUP n畉u 動畛c cho ph辿p tr動董c 坦 th狸 v畉n ho畉t 畛ng 動畛c. a. C叩ch 動a CPU vo ch畉 畛 Standby
  • 12. CH働NG 2: ARM STM32F1X 18 PHAN VN HON 畛 vo ch畉 畛 Standby ta d湛ng l畛nh ch畛 ng畉t WFI ho畉c ch畛 s畛 ki畛n WFE k竪m theo: 畉t bit SLEEPDEEP c畛a thanh ghi Cortex-M3 System Control l棚n m畛c 1. 畉t bit PDDS c畛a thanh thi Power Control register (PWR_CR) l棚n m畛c 1. X坦a bit WUF trong thanh ghi Power Control/Status register (PWR_CSR). b. C叩ch 動a CPU tho叩t kh畛i ch畉 畛 Standby CPU s畉 tho叩t kh畛i ch畉 畛 Standby n畉u m畛t trong c叩c i畛u ki畛n sau x畉y ra: C坦 t鱈n hi畛u c畉nh l棚n t叩c 畛ng vo ch但n WKUP C坦 t鱈n hi畛u b叩o 畛ng c畛a 畛ng h畛 th畛i gian th畛c( RTC alarm). Reset b畉ng ch但n NRST. IWDG Reset. 2.8.4 T畛 畛ng th畛c d畉y (Auto Wakeup-AWU) t畛 c叩c ch畉 畛 ti畉t ki畛m nng l動畛ng 畛ng h畛 th畛i gian th畛c c坦 th畛 動畛c s畛 d畛ng 畛 叩nh th畛c CPU kh畛i ch畉 畛 ti畉t ki畛m nng l動畛ng m kh担ng c畉n ph畉i ch畛 x畉y ra ng畉t ngoi. Ng動畛i l畉p tr狸nh c坦 th畛 ci 畉t m畛t l動畛ng th畛i gian no 坦 vo RTC 畛 khi h畉t th畛i gian ny th狸 RTC s畉 t畛 畛ng 叩nh th畛c CPU kh畛i ch畉 畛 Stop ho畉c Standby. 畛 叩nh th畛c CPU kh畛i ch畉 畛 Stop b畉ng s畛 ki畛n RTC alarm th狸 c畉n ph畉i: C畉u h狸nh k棚nh ng畉t ngoi s畛 17 (EXTI Line 17) t鱈ch c畛c c畉nh l棚n. C畉u h狸nh RTC 畛 cho ph辿p t畉o ra t鱈n hi畛u RTC alarm. 畛 叩nh th畛c CPU kh畛i ch畉 畛 Standby, th狸 kh担ng c畉n c畉u h狸nh k棚nh ng畉t ngoi s畛 17. 2.8.5 C叩c l畛nh th担ng d畛ng li棚n quan 畉n ch畉 畛 ti畉t ki畛m nng l動畛ng B畉ng 2.5 C叩c l畛nh th担ng d畛ng li棚n quan 畉n ch畉 畛 ti畉t ki畛m nng l動畛ng S畛 D畛NG TH働 VI畛N stm32f10x_pwr L畛nh Th担ng s畛 hay d湛ng Gi畉i th鱈ch PWR_DeInit(); (L畛nh reset c叩c thanh ghi li棚n quan 畉n ch畉 畛 ti畉t ki畛m nng l動畛ng v畛 m畉c 畛nh) PWR_WakeUpPinCmd(A); (L畛nh cho ph辿p ho畉c c畉m ch但n WakeUp 叩nh th畛c CPU) A: ENABLE DISABLE A: Cho ph辿p ho畉c c畉m Cho ph辿p C畉m PWR_EnterSTOPMode(A, B) ; ( L畛nh i畛u khi畛n CPU vo ch畉 畛 Stop ) A: PWR_Regulator_ON PWR_Regulator_LowPower B: PWR_STOPEntry_WFI PWR_STOPEntry_WFE A: Ch畛n ch畉 畛 ho畉t 畛ng cho b畛 i畛u ch畛nh i畛n 叩p khi CPU vo ch畉 畛 Stop Ch畉 畛 ho畉t 畛ng b狸nh th動畛ng Ch畉 畛 ti畉t ki畛m nng l動畛ng B: Ch畛n c叩ch 動a CPU vo ch畉 畛 Stop Ch畛 x畉y ra ng畉t Ch畛 x畉y ra s畛 ki畛n PWR_EnterSTANDBYMode(); (L畛nh i畛u khi畛n CPU vo ch畉 畛 Standby) C叩c v鱈 d畛 v畛 c叩c ch畉 畛 ti畉t ki畛m nng l動畛ng 動畛c tr狸nh by 畛 ch動董ng 5 sau khi SV 達 t狸m hi畛u v畛 ng畉t v s畛 ki畛n.