Nghiên cứu đề tài với mục đích để tìm hiểu thêm về ARM, làm quen với các thiết bị điện tử, cách lập trình và nâng cao hiểu biết cho bản thân. Mời các bạn cùng tham khảo!
Trang 1H C VI N CÔNG NGH B U CHÍNH VI N THÔNGỌ Ệ Ệ Ư Ễ
BÁO CÁO
Đ Tài: ề
S d ng vi đi u khi n STM32F103C8T6 ử ụ ề ể thi t k đ ng h đo đi n áp, ế ế ồ ồ ệ
hi n th giá tr lên led 7 thanh d i đo t 1 12V, s d ng 1 nút nh n ể ị ị ả ừ ử ụ ấ
chuy n thang đo gi a V và mV ể ữ
Gi ng viên hả ướng d n : Th y Nguy n Ng c Minhẫ ầ ễ ọ
Trang 3M C L C Ụ Ụ
Trang 4DANH M C HÌNH V Ụ Ẽ
DANH M C B NG Ụ Ả
Trang 5L I NÓI Đ U Ờ Ầ
Hi n nay, khoa h c công ngh ngày càng phát tri n, vi đi u khi n ARM đang ệ ọ ệ ể ề ể ngày càng thông d ng và phát tri n h n. Trong đó STM32F1x là m t lo i r t ụ ể ơ ộ ạ ấ
ph bi n đ ổ ế ượ ử ụ c s d ng trong nhi u lo i thi t b , nó cũng cung c p các ph ề ạ ế ị ấ ươ ng
ti n đ liên k t v i nhi u lo i vi đi u khi n khác. Dòng MCU STM32f1x do ệ ể ế ớ ề ạ ề ể STMicroelectronics t o ra bao g m lõi x lí ARM CortexM3 32 bit và h tr các ạ ồ ử ỗ ợ ngo i vi thông d ng nh I2C, SPI, RTC,… ạ ụ ư Ngôn ng l p trình vô cùng d s ữ ậ ễ ử
d ng t ụ ươ ng thích v i ngôn ng C và th vi n r t phong phú và đ ớ ữ ư ệ ấ ượ c chia s ẻ
mi n phí. Chính vì nh ng lý do nh ễ ữ ư v y nên ARM hi n đang d n ph bi n và ậ ệ ầ ổ ế
đ ượ c phát tri n ngày càng m nh m ể ạ ẽ trên toàn th gi i ế ớ
Trên c s ki n th c đã h c trong môn h c: K thu t vi x lý, h th ng ơ ở ế ứ ọ ọ ỹ ậ ử ệ ố nhúng,… Cùng v i nh ng hi u bi t c a mình v các thi t b đi n ớ ữ ể ế ủ ề ế ị ệ t , nhóm em ử
đã quy t đ nh th c hi n đ tài: ế ị ự ệ ề S d ng vi đi u khi n STM32F103C8T6 ử ụ ề ể thi t ế
k đ ng h đo đi n áp, hi n th giá tr lên led 7 thanh d i đo t 1 12V, s ế ồ ồ ệ ể ị ị ả ừ ử
d ng 1 nút nh n chuy n thang đo gi a V và mV ụ ấ ể ữ v i m c đích đ tìm hi u ớ ụ ể ể thêm v ARM, làm quen v i các thi t b đi n t ,cách l p trình và nâng cao hi u ề ớ ế ị ệ ử ậ ể
bi t cho b n thân. Trong quá trình th c hi n có l khó có th tránh kh i nh ng ế ả ự ệ ẽ ể ỏ ữ thi u sót, ế h n ch vì th nhóm em r t mong có đ ạ ế ế ấ ượ ự c s góp ý và nh c nh t ắ ở ừ
th y giáo đ có th ầ ể ể hoàn thi n đ tài c a mình ệ ề ủ
Em xin trân thành c m n! ả ơ
Trang 6PH N 1 Ầ
T NG QUAN Ổ
I) Gi i thi u chung v board ARM STM32F103C8T6 V2ớ ệ ề
Board ARM STM32F103C8T6 là m t trong nh ng Kit c b n giành cho: ộ ữ ơ ả k s ,ỹ ư
h c sinh,ọ sinh viên, người m i b t đ u nghiên c u v l p trình nhúng, Board m ch sớ ắ ầ ứ ề ậ ạ ử
d ng vi đi u khi nụ ề ể STM32F103C8T6 Arm CortexM3, Flash: 64 KB, SRAM: 20KB,
h tr h u h t các k t n i:ỗ ợ ầ ế ế ố SPI, USART, I2C, I2S, CAN… Là tr th đ c l c trongợ ủ ắ ự
Trang 7K t n i: SPI, UART, I2C, CAN,…ế ố
RTC đ chính xác caoộ
USB: 2.0, DMA
II) Gi i thi u v Led 7 thanh anode chungớ ệ ề
Led 7 thanh hay còn được g i là Led 7 đo n, bao g m 7 đo n đèn Led đọ ạ ồ ạ ược x p l iế ạ
v i nhau thành hình ch nh t. Khi các đo n l p trình đ chi u sang thì s hi n th chớ ữ ậ ạ ậ ể ế ẽ ể ị ữ
s c a h th p phân. Đôi khi có nhi u Led 7 thanh đố ủ ệ ậ ề ược n i v i nhau đ có th hi nố ớ ể ể ể
th đị ược các s l n h n 2 ch s ố ớ ơ ữ ố
Hình 1. : Hình nh Led 7 thanh anode chung ả
V i các đo n Led trong màn hình đ u đớ ạ ề ược n i v i các chân k t n i đ đ a raố ớ ế ố ể ư ngoài. Các chân này được gán các kí t t a đ n g, chúng đ i di n cho t ng Led riêngự ừ ế ạ ệ ừ
l Các chân đẻ ược k t n i v i nhau đ t o thành 1 chân chung.ế ố ớ ể ạ
Chân pin chung hi n th thể ị ường được s d ng đ xác đ nh l o màn hình Led 7ử ụ ể ị ạ thanh đó là lo i nào. Có 2 lo i Led 7 thanh đạ ạ ược s d ng đó là Cathode chung vàử ụ Anode chung
Trang 8Các phương pháp đi u khi n Led 7 đo n:ề ể ạ
1. K t n i các chân đi u khi n c a Led tr c ti p v i port c a vi đi u khi n.ế ố ề ể ủ ự ế ớ ủ ề ể
2. Dùng quét Led
3. V n s d ng quét Led nh ng dùng IC ch t d li u đ ti t ki m các chân ẫ ử ụ ư ố ữ ệ ể ế ệ
c a vi đi u khi n.ủ ề ể
Trang 10Kh i nút nh n: Có ch c năng chuy n đ i hi n th gi a V và mV.ố ấ ứ ể ổ ể ị ữ
Kh i hi n th : Dùng Led 7 đo n đ hi n th giá tr đi n áp.ố ể ị ạ ể ể ị ị ệ
3) S đ k t n i ph n c ngơ ồ ế ố ầ ứ
a) Kh i m ch phân ápố ạ
Trang 11Hình 2. : S đ kh i m ch phân áp ơ ồ ố ạ
Đi n áp c n đo đệ ầ ược n i vào chân PA0 c a vi đi u khi n, do d i đo c a ADC chố ủ ề ể ả ủ ỉ
n m trong kho ng 0 – 3.6V nên đ đo đằ ả ể ược m c đi n áp cao h n, ta c n ph i m cứ ệ ơ ầ ả ắ chúng qua m t m ch phân áp.ộ ạ
Pin PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PA1 PA2 PA3 PA4
B ng ả : B ng k t n i chân c a Led 7 đo n v i board ARM ả ế ố ủ ạ ớ
c) Nút nh n chuy n tr ng tháiấ ể ạ
Trang 12Hình 2. : Nút nh n chuy n tr ng thái ấ ể ạ
Nút nh n đấ ược n i v i chân PC13 c a vi đi u khi n, tích c c m c th p.ố ớ ủ ề ể ự ở ứ ấ
d) S đ k t n i chung cho các kh iơ ồ ế ố ố
Hình 2. : S đ k t n i chung ơ ồ ế ố
Trang 13II) Vi t chế ương trình C cho m chạ
1) C u hình RCCấ
Trên STM32F103 có 2 b giao đ ng th ch anh ngo i:ộ ộ ạ ạ
HSE (High Speed External): B dao đ ng ngo i t c đ cao t 416Mhz. Bộ ộ ạ ố ộ ừ ộ dao đ ng c p cho CPU ho t đ ng.ộ ấ ạ ộ
LSE (Low Speed External): B dao đ ng ngo i t c đ th p 32.768KHz. Bộ ộ ạ ố ộ ấ ộ dao đ ng này c p cho b RTC có s n trên chip.ộ ấ ộ ẵ
HSI (High Speed Internal): B giao đ ng n i t c đ cao 8MHz. B này sộ ộ ộ ố ộ ộ ẽ cung c p cho CPU tr ng trấ ọ ường h p không có HSE.ợ
LSI (Low Speed Internal): B này dung đ c p cho Watchdog Timer có t nộ ể ấ ầ
s 40KHz.ố
Hình 2. : Clock tree
C u hình RCC s d ng th ch anh n i (HSI) v i t n s ho t đ ng l n nh t là ấ ử ụ ạ ộ ớ ầ ố ạ ộ ớ ấ64MHz
Trang 14void Clock_Config(void)
Trang 16ph i đ c liên t c t kênh 0nả ọ ụ ừ
Vref: đi n áp so sánh. Đ i v i chip 144 chân s có chân input đi n áp soệ ố ớ ẽ ệ sánh 2.4V≤ Vref ≤ 3.6V. Và ph i có l c c n th n đ ADC ho t đ ng nả ọ ẩ ậ ể ạ ộ ổ
đ nh. V i chip 64 chân tr xu ng chúng ta không c n quan tâm vì đi n ápị ớ ở ố ầ ệ
so sánh l y trong chip và b ng VDDấ ở ằ
Đi n áp input cho kênh ADCệ Vref ≤ Vin ≤ Vref+
Trang 17hi n theo 1 trình t t trên xu ng dệ ự ừ ố ưới mà không có b t kì s can thi p nào. Đi u đó làấ ự ệ ề
b t l i khi có 1 tác đ ng ngoài x y ra, chấ ợ ộ ả ương trình s không x lí k p th i d n đ nẽ ử ị ờ ẫ ế
vi c b qua tác đ ng đó. Ng t ra đ i đ ph c v cho các s c đó.ệ ỏ ộ ắ ờ ể ụ ụ ự ố
M t s tính năng chính c a ng t ngoài:ộ ố ủ ắ
Kích ho t đ c l p và m t n cho m i line s ki n/ng t.ạ ộ ậ ặ ạ ỗ ự ệ ắ
Trang 18Có bit tr ng thái riêng cho m i line ng t.ạ ỗ ắ
EXTI_InitTypeDef EXTI_InitStructure; // EXTI struct
NVIC_InitTypeDef NVIC_InitStructure; // NVIC struct
GPIO_InitTypeDef GPIO_InitStructure;
//cap clock cho ngat ngoai va ngoai vi
Trang 19RCC_APB2Periph_AFIO, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 ;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_Init(GPIOC, &GPIO_InitStructure);
/* mapping */
GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource13);
Công th c đi n áp ra c a ADC:ứ ệ ủ
T công th c ừ ứ (1) ta tính ra được đi n áp c n đo theo công th c:ệ ầ ứ
Hàm tính giá tr đi n áp đo đị ệ ược:
void Get_Value(){
sumadc = 0;for(int i = 0; i<10; i++){
Trang 20sumadc += value;
Delay(1);
} sumadc /= 10;voltage = sumadc*12.111/4095;}
6) Hàm quét Led
bài toán đi u khi n Led 7 thanh chúng ta th ng áp d ng theo cách n i m i
con Led 7 thanh vào 8 chân data đ c l p. Tuy nhiên vi c này s gây lãng phí s chânộ ậ ệ ẽ ố
đi u khi n Led và gi i h n s Led có th đi u khi n. V i s Led tăng lên đ l n sề ể ớ ạ ố ể ề ể ớ ố ủ ơ ố chân cũng c n tăng lên r t nhi u. Đ gi i quy t bài toán này có m t kĩ thu t nêu ra làầ ấ ề ể ả ế ộ ậ
kĩ thu t ậ “Quét Led”.
K thu t quét Led th c hi n theo nguyên t c m t th i đi m ch b t m t Led 7ỹ ậ ự ệ ắ ộ ờ ể ỉ ậ ộ thanh v i d li u nó c n hi n th , các Led còn l i đớ ữ ệ ầ ể ị ạ ượ ắc t t. Vi c quét Led th c hiênệ ự luôn phiên sáng v i các yêu c u trên. Quá trình quét Led chu n đớ ầ ẩ ược th c hi n theo cácự ệ
bước sau:
Bước 1: Xu t ra mã c n hi n th ấ ầ ể ị
Bước 2: C p ngu n cho Led mu n hi n th ấ ồ ố ể ị
Bước 3: Tr 1 kho ng th i gian đ duy trì sáng.ễ ả ờ ể
Bước 4: C t ngu n Led v a hi n th ắ ồ ừ ể ị
Th c hi n nh ng bự ệ ữ ước trên nhi u l n m i giây làm m t ta có c m giác r ng 4ề ầ ỗ ắ ả ằ Led đ u đang đề ược b t.ậ
Trang 23Hình 2. : M ch tr ạ ướ c khi nh n nút ấ
Sau khi nh n nút:ấ
Trang 24Hình 2. : M ch sau khi nh n nút ạ ấ
Trang 25PH N 3 Ầ
K T LU N Ế Ậ
1) Nh ng đi u đ tài làm đữ ề ề ược
Nh v y v i đ tài: ư ậ ớ ề S d ng vi đi u khi n STM32F103C8T6ử ụ ề ể thi t k đ ng hế ế ồ ồ
đo đi n áp, hi n th giá tr lên led 7 thanh d i đo t 1 12V, s d ng 1 nút nh nệ ể ị ị ả ừ ử ụ ấ chuy n thang đo gi a V và mVể ữ Đ tài đã đ t đề ạ ược nh ng v n đ sau:ữ ấ ề
Đã gi i thi u s lớ ệ ơ ược v các thành ph n ph n c ng khá chi ti t và dề ầ ầ ứ ế ễ
d n đ n áp d ng các hàm, câu l nh b sai ý nghĩa, c u trúc,… Trong quá trình vi tẫ ế ụ ệ ị ấ ế
chương trình g p ph i nhi u l i mà không tìm ra ngay đặ ả ề ỗ ược nguyên nhân d n đ n c nẫ ế ầ
đ u t nhi u th i gian cho quá trình s a l i. Tuy nhiên, nhóm em đã c g ng gi iầ ư ề ờ ử ỗ ố ắ ả quy t đế ược v n đ phát sinh đ hoàn thành đ tài.ấ ề ể ề
Do ki n th c còn nhi u h n ch , chúng em t th y đ tài c a mình th c hi n v nế ứ ề ạ ế ự ấ ề ủ ự ệ ẫ còn nhi u sai sót, khi m khuy t. Vì v y, chúng em r t mong nh n đề ế ế ậ ấ ậ ượ ực s góp ý và giúp đ c a th y giáo đ đ tài đỡ ủ ầ ể ề ược hoàn thi n h n và có thêm nhi u c i ti n đángệ ơ ề ả ế
k đ ng d ng t t h n vào th c ti n.ể ể ứ ụ ố ơ ự ễ
Trang 26TÀI LI U THAM KH O Ệ Ả
[1] Bài gi ng K thu t vi x lí, ả ỹ ậ ử Th y Nguy n Qu c Uyầ ễ ố , HVCNBCVT.
[2] Bài gi ng H th ng nhúng, ả ệ ố Th y Nguy n Ng c Minhầ ễ ọ . HVCNBCVT.
[3] STM32F1xxReferenceManual, STMicroelectronics.
[4] https://khuenguyencreator.com/laptrinhstm32docadcmotkenh/
[5] STM32F10xstandardperipherallibrary, STMicroelectronics