Ụ
Ạ
B GIÁO D C VÀ ĐÀO T O
ƯỜ
TR
Ệ Ử Ễ
Ộ Ạ Ọ BÁCH KHOAĐHQG TPHCM NG Đ I H C Ệ KHOA ĐI N – ĐI N T Ệ Ử NGÀNH ĐI N T VI N THÔNG
Ồ
BÁO CÁO Đ ÁN 2
Ề
:
Đ TÀI
Ề
TRUY N D LI U QUA
Ữ Ệ BLUETOOTH
....................................
....................................
1
Ụ
Ề Ề
Ệ
I THI U KHÁI QUÁT V Đ TÀI
Ụ M C L C Ầ PH N 1: GI 1 Mô t
Ớ ả ề ề v đ tài
ơ ồ ố 2 S đ kh i
ử ụ
ầ ứ 3 Các ph n c ng s d ng
Ớ
Ệ Ổ
Ề
I THI U T NG QUAN V BLUETOOTH VÀ MODULE
Ầ PH N 2: GI HC 05
ớ
ệ
ề
1 Gi
ệ i thi u khái ni m v bluetooth
ộ ố
ậ
ữ 2 M t s thu t ng dùng trong bluetooth
ổ ậ ủ
ứ
ụ
3 Các ng d ng n i b t c a Bluetooth
ơ ượ ề
4 S l
ế ệ c v các “th h ” Bluetooth
5 Module HC05
Ầ
Ề
Ể
PH N 3 : VI ĐI U KHI N STM32F100C6T6
ớ
ệ ề
ử
1 Gi
i thi u v vi x lý ARM –Cortex M3
ể
ề 2 Dòng vi đi u khi n STM32
ề
ể
3 Vi đi u khi n STM32F100C6T6
Ầ
PH N 4: MMC SD CARD
ư
ủ
ấ
ữ 1 C u trúc l u tr file c a SD card
ấ
ỗ
ủ 2 C u trúc file c a m i phân vùng
ế ớ
3 Giao ti p v i Micro SD Card
2
ở ạ
4 Kh i t o SD Card
ế ớ
ệ
ấ
ể 5 C u hình giao di n SPI đ giao ti p v i Micro SD Card
ề ữ ệ
ữ
6 Quá trình truy n d li u gi a Host và SD Card
Ố
Ầ
Ấ
Ể
Ị
PH N 5: KH I HI N TH VÀ PHÍM NH N
ơ ồ ế ố
ề
ể
ớ
1 S đ k t n i LCD v i vi đi u khi n
ủ
ấ
2 C u hình chân c a LCD
ơ ồ ế ố
ấ
3 – s đ k t n i phím nh n
Ầ
Ả
Ậ
Ệ
PH N 6: TÀI LI U THAM KH O VÀ CODE L P TRÌNH
ệ
ả
1 – Tài li u tham kh o……………………………………………....trang 36
ươ
ầ
2 – Code ch
ng trình ph n phát ………………………………...trang 37
ươ
ầ
3 – Code ch
ng trình ph n thu …………………………………..trang 44
3
Ệ
Ớ
Ề Ề
I THI U KHÁI QUÁT V Đ TÀI
ấ ọ ừ ẻ ế ị ế ớ th nh SD card đ n thi t b thu thông qua
ế
ể th nh b ng vi đi u khi n thông qua giao ti p SPI. ằ ọ ừ ẻ ế ề ế ị
ớ ằ ớ ế
Ầ PH N 1:GI ả ề đ tài 1)Mô t ộ ề Truy n m t file b t kì đ c t ế giao ti p Bluetooth. File đ c t Giao ti p Bluetooth v i thi t b thu b ng module HC05. ể ề Vi đi u khi n giao ti p module HC05 thông qua UART. ơ ồ ố 2)S đ kh i
Ố
Ể
B NHỘ Ớ Ữ Ệ D LI U
Ề KH I ĐI U KHI N
MODULE BLUETOOTH
PHÍM NH NẤ
BLUETOOT H
Ố KH I THU
Ể Ị Ố KH I HI N TH
ử ụ
ầ ứ ộ
ớ ữ ệ ượ ng 512 MB.
ị ử ụ ể ố ớ ườ 3)Ph n c ng s d ng B nh d li u : MMC –SD card có dung l Kh i hi n th s d ng LCD 16x2 v i 4 đ ng data.
ề ể ể ố ề Kh i đi u khi n : vi đi u khi n STM32F100C6T6.
4
ử ụ ấ Phím nh n : s d ng 4 button.
Module Bluetooth : module HC05
ố ế ị ư ệ ỗ ợ ế ạ ộ t b có h tr giao ti p Bluetooth nh đi n tho i di đ ng ,
Kh i thu : các thi laptop …
Ầ
Ớ
Ệ Ổ
Ề
PH N 2:GI
I THI U T NG QUAN V BLUETOOTH
ề
ớ
ể ạ
ế ố ề ấ ạ t
ữ ế ị ử ụ ấ ị ộ ệ ạ ư t b s d ng công ngh bluetooth nh : đi n tho i di đ ng, máy tính và thi
ệ ệ 1 ) Gi i thi u khái ni m v bluetooth ử ụ ệ ự trên t n sầ ố vô tuy nế s d ng đ t o k t n i giao Bluetooth là công ngh d a nhau trong m t cộ ự li nh t đ nh. Có r t nhi u các ế b khác ti pế gi a hai lo i thi ị ế ệ thi t ị ổ ợ b h tr cá nhân (PDA)
ượ t k đ thay th dây cable gi a máy tính và các thi ế ị t b c thi
ề v i nhau.
t b đi n t ế ị ế ế ể ự ị t b khác có chung công
ệ ắ ầ ữ ị ữ đ nh v nh ng thi ế ố ớ
ỗ ợ ố
ề ữ ệ ể ạ ượ ố ộ c t c đ truy n d li u 1Mb/s. Bluetooth h tr t c ạ ớ i 720 Kbps trong ph m vi 10 m–100 m i d li u lên t
ổ ộ ủ
ng thích cao
ấ
ng th p ụ ễ
5
ữ ế ế ể Bluetooth đ ế ố ế ị ệ ử ớ truy n thông cá nhân, k t n i vô tuy n gi a các thi ạ Bluetooth khi kích ho t có th t ngh trong vùng xung quanh và b t đ u k t n i v i chúng. Bluetooth có th đ t đ ề ả ữ ệ ộ đ truy n t ả ầ ử ụ S d ng d i t n 2.4 – 2.48GHz ộ ố ặ ể M t s đ c đi m n i tr i c a bluetooth: ươ T ụ ượ Tiêu th năng l ể ứ D dàng phát tri n ng d ng ậ ả An toàn và b o m t
ậ ộ ố
ỹ ơ
ữ ậ ế ủ ế theo ế t
ố ố ả ạ
ồ ề ộ ậ ự ầ ề ộ ế ợ ạ i truy n
ố ề ế ị ế ậ t l p b đ m xung, quy t đ nh s kênh truy n thông và
ả ế ị ể ướ t b trong cùng piconet à nó đang ộ ế ộ ấ ả t c các thi
ả i trong piconet mà không ph i là master
ạ
ệ ạ ế ị t b còn l ế ủ t bi bluetooth trong piconet ế ị t b
ậ ả ờ i
ệ ậ ầ ầ
ế ị
ệ ạ
ủ ạ ộ ủ ế ị ng c a thi ớ ầ ố ả ạ t b bluetooth tham gia vào ho t đ ng c a m ng ượ ở ế ộ ế t ki m năng l trong tr ng t b đang ệ ừ ạ ậ m ng v i t n s gi m hay nói cách t bi slave nh n tín hi u t
ả
ế ị ạ ở trong tr ng t b đang
ủ ng c a thi ng trung bình
t ki m năng l t ki m năng l ượ ệ ế ị ẫ ệ ệ t ki m năng l
ượ ượ ủ ng c a thi ổ ữ ệ
ượ ệ ữ 2 ) M t s thu t ng dùng trong bluetooth ế ị ượ ế ố ậ c k t n i thông qua k thu t bluetooth t b đ Piconet là t p h p các thi ế ố ạ mô hình Adhoc (xây d ng 1 m ng k t n i (ch y u là vô tuy n) gi a các thi ị ầ b đ u cu i mà không c n ph i dùng các tr m thu phát g c (BS).) Scatternet là 2 hay nhi u Piconet đ c l p và không đ ng b k t h p l ớ thông v i nhau Master unit: master thi ể ồ ki u b c nh y đ đ ng b t qu n lýả Slaver unit là các thi Có 4 tr ng thái chính c a 1 thi Inquiring device: đang phát tín hi u tìm thi ệ Inquiring scanning device: nh n tín hi u inquiring và tr l ế ố Paging device: phát tín hi u yêu c u k t n i ế ố Page scanning device: nh n yêu c u k t n i ế ộ ế ố Ch đ k t n i Active mode: thi Sniff mode: là 1 ch đ ti ế thái active, thi ấ khác là gi m công su t ế ộ ế Hold mode: là 1 ch đ ti ế ộ ế thái active, đây là ch đ ti ế ộ ế ạ t b v n còn trong m ng Park mode: là ch đ ti ế ộ nh ng không tham gia vào quá trình trao đ i d li u (inactive), đây là ch đ ti ư ế t ki m năng l ấ ng nh t
ổ ậ ủ ứ ụ 3)Các ng d ng n i b t c a Bluetooth:
ộ ộ ạ ệ ế ữ tai nghe
ộ ữ ẹ
ế ế ị ủ ẳ ạ ớ t b vào ra c a máy tính, ch ng h n
ữ ổ ữ ứ OBEX (dùng trao đ i các d t b dùng giao th c
ề ữ ệ ậ ư ậ ệ ả ạ
ế ị ế ị ố ố ế dùng dây truy n th ng gi a các thi ế ị ề t b mã v chạ , và các thi , máy quét ế n i ti p , thi t b y t ế ị t b
6
ế ị ế ị t b đ nh v dùng GPS ể ể ề Đi u khi n và giao ti p không giây gi a m t đi n tho i di đ ng và không dây. ỏ ạ M ng không dây gi a các máy tính cá nhân trong m t không gian h p đòi h i ít băng thông. Giao ti p không dây v i các thi nhưchu tộ , bàn phím và máy in. ế ị Truy n d li u gi a các thi ả li u v t lý nh t p tin, hình nh và c các d ng nh phân). ữ Thay th các giao ti p ị đo, thi ề đi u khi n giao thông.
ồ ạ ế
ẩ ử ỏ ừ ề ả ớ ế ị các panô qu ng cáo t i các thi t b dùng
ề ơ ơ ệ ử ư Wii Máy ch i trò ch i
ủ nh ủ ơ ế ị t b trò ch i đi n t [1] vàPlayStation 3 c a Sony.
ệ ằ ạ ộ PC ho cặ PDA b ng cách dùng đi n tho i di đ ng
ơ ượ ề ể Thay th các đi u khi n dùng tia h ng ngo i. ả G i các m u qu ng cáo nh t Bluetooth khác. ể ừ xa cho các thi Đi u khi n t đi n tệ ử th h 7 c a Nintendo ế ệ ế ố K t n i Internet cho thay modem. 4 ) S l ế ệ c v các “th h ” Bluetooth
ậ
ủ ượ ặ ổ ế
ể ế ườ ươ c đ t theo ườ ề i Viking n i ti ng v ớ ng v i nhau. ng l
ể ọ ầ c phát tri n đ u tiên b i Bluetooth Sony Ericsson và Ericsson
ượ ệ ở Ericsson (hi n nay là ẩ c chu n hoá b i ở Bluetooth Special Interest
ẩ ượ ở ơ ượ ầ ậ c phát hành vào ngày 20 tháng 5 năm 1999. Ngày nay ế ớ i. Đ c thành l p đ u c công nh n b i h n 1800 công ty trên toàn th gi
ậ ự ở
ỗ ợ ớ ư ẩ ộ cách c ng tác hay h tr . Bluetooth có chu n là
ữ Theo Wikipedia, thu t ng “Bluetooth” (có nghĩa là “răng xanh”) đ ạ ộ ị tên c a m t v vua Đan M ch, vua Harald Bluetooth, ng ượ ả kh năng giúp m i ng i có th giao ti p, th ượ đ Mobile Platforms), và sau đó đ Group (SIG). Chu n đ ượ đ tiên b i Sony Ericsson, IBM, Intel, Toshiba và Nokia, sau đó cùng có s tham gia ề ủ c a nhi u công ty khác v i t IEEE 802.15.1.
ả ầ
ng v i t c ế ệ ứ
ế ố ớ ố độ k t n i ban đ u ư ả ẩ ấ ị ượ ư c đ a ra th ự ế ố ộ ế ầ là 1Mbps. Tuy nhiên, trên th c t t c đ k t ả này còn khá ờ ạ đ t quá m c 700Kbps. Phiên b n ả ớ ợ ấ r t khó khăn khi tích h p nó v i các s n ph m i và các nhà s n xu t đã
Bluetooth 1.0. Tháng 7/1999, phiên b n Bluetooth 1.0 đ u tiên đ ườ tr ố ủ n i c a th h này ch a bao gi ề ỗ nhi u l công ngh .ệ
ờ
ự ệ ề
ấ ướ ớ ự ươ ớ ủ ề ủ ả c bình
ấ ế ố ệ ọ ả Bluetooth 1.1. Năm 2001, phiên b n Bluetooth 1.1 ra đ i, đánh d u b c phát tri nể m i c a công ngh Bluetooth trên nhi u lĩnh v c khác nhau v i s quan tâm c a nhi u nhà s n xu t m i. Cũng trong năm này, Bluetooth đ ch n là công ngh vô tuy n t ớ ấ t nh t năm.
ắ ầ ắ
ầ ẩ tháng 11/2003, Bluetooth 1.2 b t đ u có nhi u ti n ạ đ ngộ d a trên n n băng t n 2.4 Ghz và ề tăng c
ự ế ệ ề ộ ầ ợ ế Bluetooth 1.2. Ra m t vào ngườ ể Chu n này ho t ộ b đáng k . ạ ế ố k t n i tho i. Motorola RARZ là th h di đ ng đ u tiên tích h p Bluetooth 1.2.
ộ
ắ ầ tháng 11/2004, công nghệ Bluetooth 2.0 ả ượ ể
ộ ử ế ố ộ ủ ẩ c đây.
7
i – ERD (enhanced data rate), song ả ụ ư ấ Bluetooth 2.0 + ERD. M t năm sau, vào ố ộ + ERD đã b t đ u nâng cao t c đ và gi m thi u m t n a năng l ế ộ ớ ướ thụ so v i tr T c đ c a chu n Bluetooth lên đ n 2.1 Mbps v i ch đ ế ố ả ỉ ề ả ệ c i thi n k t n i truy n t ộ ọ ế ộ ch đ tùy ch n, ph thu c vào các hãng s n xu t có đ a vào thi ng tiêu ớ ẫ ERD v n ch là ế ị t b hay
ử ụ ỉ
ủ ế ố ụ ể ứ ượ c. Các thi ộ ử ng s d ng c a k t n i Bluetooth ch còn tiêu hao m t n a so ế ị tiêu bi u ng d ng Bluetooth 2.0 + ERD là: Apple t b
không. Năng l ớ ướ v i tr iPhone, HTC Touch Pro và TMobile’s Android G1.
ơ ế ấ ủ ơ ượ ẩ ng h n. Chu n này
ệ ệ ế ị ộ
ề
ế ố
ế ố ằ ỉ
ườ ệ máy tính sang đi n tho i thì ch có th ẻ ặ ằ ế ệ Bluetooth 2.1 + ERD. Đây chính là th h nâng c p c a Bluetooth 2.0. Bluetooth ch ủ ệ t ki m năng l 2.1 có hi u năng cao h n và ti ạ ượ ử ụ y uế đã đ t b di đ ng c s d ng trong trong đi n tho i, máy tính và các thi ớ ố ộ ớ khác. Tuy nhiên, Bluetooth 2.1 không cho phép truy n các file l n v i t c đ ượ ế ớ ể ng l n đ n 12GB i dùng mu n chuy n các file dung l cao. Do đó, n u ng ắ ế ị ể k t n i hai thi ạ ừ t b này b ng dây c m t ớ USB ho c b ng th nh .
ố
ằ ạ
ẩ
ươ ng đ ố ơ t h n, tăng c ng năng l c k t n i gi a các cá
ờ ứ ể
ề ề ể t b g n k và chuy n tr c ti p sang
ế ữ ượ ng nâng cao. ự ế ạ ế ố ệ đ ng các thi ả t b đó có k t n i WiFi. Tuy nhiên, ph m vi hi u qu
ỉ
ả
ớ
ả
ừ ượ ổ ứ ch c SIG c t ư ẩ nh ng ngoài ổ i 25 Mb/giây, Bluetooth 4.0 còn b ượ ề ữ ệ ố ộ ả ề ữ ệ ỏ
ứ ế ệ ấ ấ ắ t ki m năng
ố ộ ớ ẩ ứ ế ệ Bluetooth 3.0 + HS: Tháng 4/2009, Bluetooth 3.0 th h "siêu t c" chính th c ứ ề ữ ệ ra m t.ắ Bluetooth 3.0 có t c đ truy n d li u đ t m c 24Mbps – b ng sóng ố ộ ế ệ ầ ẩ ươ ng chu n WiFi th h đ u tiên. Chu n này Bluetooth – High Speed, t ế ị ươ ự ế ố ườ ng tác t giúp các thi t b t ệ ế ớ ti t ki m pin nh ch c năng đi u khi n năng l nhân v i nhau và ự ộ ế ị ầ ể ệ ặ Đ c bi t, nó có th dò t ạ ế ị m ng WiFi n u các thi ấ nh t ch trong vòng 10m. ấ ủ ớ Bluetooth 4.0: Đây là phiên b n m i nh t c a Bluetooth v a đ ể ặ thông qua. Bluetooth 4.0 có nhi uề đ c đi m chung v i chu n 3.0, ớ kh năng truy n d li u t c đ cao lên t ạ sung thêm kh năng truy n d li u dung l ng nh trong ph m vi ng n (827 ụ ệ ớ byte t c đ 1Mbps) v i m c tiêu th đi n năng r t th p giúp ti ượ l ng so v i chu n cũ.
ả ề ự ế ,
ỏ ứ ứ
ặ ẽ ẳ ộ ả ứ ư ồ ệ ộ ụ ồ ị
ỏ ế ị ử ụ ị ạ i gia. T ch c Continua Health Alliance đã đ ng ý ch n l a t b s d ng t
ề ữ ệ ữ ế
ể ồ ế ị t b y t ẽ ẩ ự ế ng lai. D ki n các thi
Bluetooth 4.0 nhi u kh năng s dành cho các ng d ng trong lĩnh v c y t ạ chăm sóc s c kh e và an ninh, ch ng h n nh đ ng h đeo tay theo dõi s c ế t đ , nh p tim, th thao, và các kh e, ho c trang b cho các b c m bi n nhi ọ ự ổ ứ thi ệ ộ di đ ng Bluetooth 4.0 làm công ngh truy n d li u cho nh ng thi ắ ế ị ử ụ ươ t t b s d ng chu n bluetooth 4.0 s ra m t trong quý IV năm nay.
ạ ế ị ẽ t b Bluetooth s
ằ ẻ ưở ụ thi . i s c kho do sóng radio gây ra ng không t t t
8
ứ Tuy nhiên, cũng có nghiên c u cho r ng, quá l m d ng ố ớ ứ ả gây nh h 5) Module HC05
ố
ệ ạ ộ
ạ ộ ế ệ
ườ ậ ậ a)Thông s kĩ thu t module HC05 ủ Đi n th ho t đ ng c a UART 3.3 – 5V. ạ ộ ề Dòng đi n khi ho t đ ng: khi Pairing 30 mA, sau khi pairing ho t đ ng truy n ng 8 mA. nh n bình th
ượ ọ ể c: 1200, 2400, 4800, 9600, 19200, 38400,
c c a module chính: 28 mm x 15 mm x 2.35 mm
Baudrate UART có th ch n đ 57600, 115200. ướ ủ Kích th ả ầ ạ ộ
D i t n sóng ho t đ ng: 2.4GHz. Bluetooth protocol: Bluetooth Specification v2.0+EDRo
ướ c: 26.9mm x 13mm x 2.2 mm
ặ ị Kích th ế ậ Thi t l p m c đ nh:
Baud rate: 9600, N, 8, 1. Pairing code: 1234. ế ộ ạ ộ
ế ậ ạ ầ ch đ SLAVE: b n c n thi smartphone, laptop, usb
Ở ế ộ ể
ừ ở
baud rate 9600. ế ị ạ Ở ế ộ ế ố ừ t l p k t n i t ớ ạ ộ đ ng dò tìm thi ổ ch đ MASTER: module s t
ủ
ủ ộ ừ t b bluetooth khác (1 ế ặ máy tính ho c smartphone. t l p gì t
9
ầ ề b) Ch đ ho t đ ng + bluetooth đ dò tìm module sau đó pair v i mã PIN là 1234. Sau khi pair thành xa ho t đ ng công, b n đã có 1 c ng serial t ẽ ự ộ + module bluetooth HC06. HC05, usb bluetooth, bluetooth c a laptop…) và ti n ế ậ hành pair ch đ ng mà không c n thi ứ Module bluetooth HC05 có nhi u ch c năng
ằ ể ề ượ ậ ệ
ố ể ụ ườ ể ự ch đ thông th ệ c đi u khi n b ng t p l nh AT đ th c hi n các ể ừ ế ộ ng qua
ằ ề ệ ể ư
ồ ấ ờ ấ ồ
ứ ằ ủ ế
ằ ổ ớ
ứ ệ ấ ồ
ủ ể ế ằ ậ
ớ
ớ
ế ị t b bluetooth khác, đèn trên module bluetooth ấ ế ố ế ậ ượ ẽ ấ ậ Module bluetooth HC05 đ tác v mong mu n. Đ bluetooth module chuy n t đi u khi n b ng l nh AT, ta có 2 cách nh sau: ệ + C p ngu n cho module bluetooth (Vcc và Gnd) đ ng th i c p m c đi n áp ậ ệ cao (=Vcc) cho chân KEY c a module bluetooth. Khi đó giao ti p b ng t p l nh ớ AT v i module b ng c ng Serial (Tx và Rx) v i baud rate là 38400. (khuyên dùng) ướ ấ c, sau đó c p m c đi n áp cao cho chân + C p ngu n cho module bluetooth tr ớ ạ KEY c a module bluetooth. Lúc này b n có th giao ti p v i module b ng t p ệ l nh AT v i baud rate là 9600. Sau khi pair thành công v i thi HC05 s nh p nháy ch m cho th y k t n i Serial đã đ t l p. c thi
Ầ
Ề
Ể
PH N 3 : VI ĐI U KHI N STM32F100C6T6
ớ ệ i thi u dòng ARM – Cortex M3
ộ ầ ẩ ế ộ ử
ộ ề
ế ử ế ệ ớ ư ố ộ
ứ ệ ố ụ ệ ệ ư ồ ấ
ờ ự ứ ứ ụ ề
ể ụ ấ
ự ả ế ủ ừ ạ
ư ề ể ộ
ầ ổ ẩ ồ ể ấ
ộ ấ ủ ượ ệ ề ắ c thi
ằ ố ờ ệ ố ể ề ỗ
ự ả ế
ậ ệ ượ
th i gian x lý.
ậ ệ ử ữ ờ ượ ượ ữ 1 ) Gi Cortex là b x lý th h m i đ a ra m t ki n trúc chu n cho nhu c u đa ư ạ d ng v công ngh . Không gi ng nh các dòng ARM khác, dòng Cortex là m t ẩ lõi x lý hoàn thi n đ a ra m t chu n CPU và ki n trúc h th ng chung. Dòng Cortex g m 3 nhánh: dòng A dành cho các ng d ng cao c p, dòng R dành cho các ng d ng th i gian th c và dòng M dành cho các ng d ng đi u khi n và chi phí th p. Lõi ARM Cortex M3 là s c i ti n c a ARM7, t ng mang l i thành công vang d i cho công ty ARM. CortexM3 đ a ra m t lõi vi đi u khi n chu n ệ ọ ề nh m cung c p ph n t ng quát, quan tr ng nh t c a vi đi u khi n bao g m h ế ế t k cho h đi u hành th ng ng t( Interrupt system), SysTick timer ( đ i ( Debug system), memory map và nhi u tính th i gian th c), h th ng ki m l ậ ệ ậ ệ năng c i ti n khác. Các chip ARM7 và ARM9 có hai t p l nh ( t p l nh ARM ế ế ỗ ợ t k h tr 32bit và t p l nh Thumb 16bit), trong khi đó dòng Cortex đ c thi ể ạ ượ ự ự ố ợ ậ ệ t p l nh ARM Thumb2, là s ph i h p gi a 2 t p l nh trên đ đ t đ c s ươ ng code và t ng gi a dung l ng nh
2) Dòng STM32
ả ấ
ế ậ ư ấ
ể ự ớ ề ệ ấ ề ề ụ ể ỏ ẩ t l p các tiêu chu n m i v hi u su t, chi phí cũng nh các ắ ượ ng th p và đòi h i kh t khe v đi u khi n
10
ự ề Dòng STM32 do ST s n su t, vi đi u khi n d a trên lõi ARM Cortex M3. Dòng STM32 thi ứ ỏ ụ ng d ng đòi h i tiêu th năng l ờ th i gian th c.
ợ ợ ạ ề ượ
ầ ể ề ụ
ạ
ọ ầ ạ
ể ề
ủ ể ặ ớ
c ST tích h p thêm nhi u ngo i vi thích h p cho các Các dòng STM32 đ ủ ụ ứ ng d ng đi u khi n đa d ng. Thành ph n chính c a STM32 là nhân Cortex ư ể ế ố ớ M3, dùng IBus và DBus đ k t n i v i FLASH cũng nh các ngo i vi. Ngoài ế ượ c chia làm 2 nhóm k t ra thành ph n quan tr ng khác là DMA. Các ngo i vi đ ố ộ ố ệ ố ế i đa n i đ n hai giao di n khác nhau AHBAPB1 và AHBAPB2( có t c đ t ơ ớ l n h n AHBAPB1) 3 ) Vi đi u khi n STM32F100C6T6 STM32F100C là dòng “high density” c a STM32 v i các đ c đi m sau: ARM 32bit CortexM3 Microcontroller, 24MHz, 32kB Flash, 4kB SRAM, PLL, Embedded Internal RC 8MHz and 32kHz, RealTime Clock, Nested Interrupt Controller, Power Saving Modes, JTAG and SWD, 4 Synch. 16bit Timers with Input Capture, Output Compare and PWM, 2 16bit Advanced Timer, 2 16bit Basic Timer, 2 16bit Watchdog Timers, SysTick Timer, 3 SPI/I2S, 2 I2C, 2 USART, CAN 2.0B Active, 12bit A/D Converter, 2 12bit D/A Converter, SDIO, Fast I/O Ports
11
ơ ồ ề ể ế ố S đ nguyên lý k t n i vi đi u khi n :
Ầ
PH N 4 : MMC SD Card
ủ
ổ ầ ề ứ ư ấ ả ấ ạ ươ đĩa c ng đ u có c u t o t nhau: m i ng t ượ c
ố ượ ng
ố ỗ ổ ự đĩa đ ượ ng phân vùng tùy vào dung l ỗ ề ứ ỗ i đa là 4 phân vùng. M i phân vùng ch a nhi u Cluster, m i Cluster
. ượ ư c l u vào ể ư
ẽ ượ ư ế ổ ộ đĩa thì nó s đ
ể ư ể ộ
ư ề ế ể ẫ
12
ư ữ ấ 1 ) C u trúc l u tr file c a SD Card t c các H u nh t chia thành các phân vùng ( partition), s l ủ ổ c a đĩa, t ề ứ ch a nhi u Sector ộ Khi m t file đ c l u vào các Cluster, n u m t Cluster đã dùng đ l u m t file nào đó thì nó không th dùng đ l u 1 file khác ế ặ m c dù có th file đó v n ch a chi m h t Cluster đó, đi u này gây ra lãng phí ớ ộ b nh .
ủ ẻ ấ ớ
ủ ổ ứ ủ
đĩa là MBR, nó ch a Executable Code và thông tin c a 4 ư ướ C u trúc c a th nh ầ Sector đ u tiên c a phân vùng (partition) nh bên d i:
ủ ỗ ượ ứ ồ ườ Thông tin c a m i phân vùng đ c ch a trong 16 bytes , bao g m các tr ng :
đây là Starting sector of the partition, nó cũng chính là
13
ỉ ủ ở ủ ỗ ọ Thông tin quan tr ng ị đ a ch c a Boot Sector c a m i phân vùng.
ấ ỗ
ế ể ầ
ọ ư ướ ấ ỗ ủ 2 ) C u trúc file c a m i phân vùng ể ơ Phân vùng là n i mà ta c n tìm ra đ có th giao ti p đ cghi file lên SD ữ ư card. M i phân vùng có c u trúc l u tr thông tin chung nh bên d i:
ấ ạ ủ ượ ổ ứ c t ch c theo d ng FAT ( File Allocation
ầ ầ ằ ở ầ
ộ ứ ấ ả
ề ả ồ
ữ ệ ế ả ượ ị c đ nh v t
ầ ế ph n sau
ộ ả ứ
ư ụ ư ụ ố ề
ư ụ ữ ệ
ậ ự ứ ọ ế ề ầ ắ t v các vùng quan tr ng c n n m rõ : C u trúc file c a phân vùng đ ồ Table). Bao g m 4 ph n: ủ a. Reserved sectors: n m vùng đ u tiên c a m t phân vùng. Sector đ u tiên ủ t c các thông tin v phân vùng. c a Reserved sectors là Boot sector, nó ch a t ứ ủ ấ b. FAT Region: nó g m hai b n copy c a File Allocation Table, b n th hai r t ẽ ề ậ ị ớ hi m khi dùng đ n. Nó đ i vùng d li u.( Data Region) , s đ c p ở c. Root Directory Region: nó là m t b ng th m c( directory table) ch a thông ư ụ tin v các files và các th m c trong th m c g c. d. Data Region: đây là vùng th t s ch a các files d li u và các th m c con. Chi ti
ướ ủ ầ ằ ỗ
c 1 sector, n m đ u tiên c a m i phân vùng ề ủ ổ ứ ọ đĩa), ch a các thông tin quan tr ng v phân
14
ầ ườ ồ ướ + Boot sector : Có kích th ả ( không ph i là sector đ u tiên c a ư ả ng nh b ng d vùng. Bao g m các tr i:
ầ t c các thông tin ta c n ph i bi ế ể t đ
trên Boot sector này ch a t ư ố ả ố
ứ ấ ả ự ữ ố ườ ở ư Nh nói ớ ế giao ti p v i SD card nh : s sector d tr , s byte trong 1 sector, s sector ố ả trong 1 cluster, s b ng FAT copy ( th ng là 1)…
+File Allocation Table
ộ ụ ữ ệ ạ ế
ậ ườ ỗ ượ ớ ng h p dung l
ộ ẽ ượ ư ể ề
ứ ế ế ả Là m t danh sách các m c nh p ánh x đ n m i Cluster trong vùng d li u. ơ ợ Khi ghi m t file vào SD Card, tr ng file l n h n 1 cluster thì c l u trong nhi u cluster và chú ý là các cluster này có th không liên file s đ ti p nhau; do đó b ng FAT này giúp ta tìm ra cluster ti p theo ch a file.
ứ ụ ụ ậ ậ ỗ ồ ộ Nó g m các m c nh p m i m c nh p ch a m t trong 5 thông tin sau:
15
ữ ệ ố ủ ủ ế 1. S c a Cluster ti p theo trong dãy Cluster c a file d li u.
ữ ệ ế ỗ 2. K t thúc chu i các Cluster trong file d li u.
ụ ấ ậ ộ ấ 3. M c nh p đánh d u m t Cluster x u.
ụ ậ ộ ự ữ ấ 4. M c nh p đánh d u m t Cluster d tr .
ư ử ụ ộ ị ỉ ộ 5. M t giá tr 0 ch ra m t Cluster ch a s d ng.
ị ặ ụ ứ ầ ậ ệ Hai m c nh p đ u tiên ch a hai giá tr đ c bi t
ứ ấ ứ ả ụ ủ ậ M c nh p th nh t ch a b n copy c a Media Decriptor.
ụ ứ ứ ậ M c nh p th hai ch a endofclusterchain marker
ở ị ặ ứ ệ ầ t thành ra không có Cluster 0 và
ầ B i vì hai Cluster đ u tiên ch a giá tr đ c bi 1. Cluster đ u tiên theo sau Root directory là Cluster 2.
+ Root Directory Regio
ụ ậ ị Giá tr các m c nh p trong Fat
ư ụ ệ ủ
ộ ả ạ ặ ỗ ể ữ ư ụ ụ
16
ở ộ ứ ầ ộ ộ ấ ạ t c a file dùng đ trình bày m t th m c, có c u t o theo Là m t lo i đ c bi ư ạ ộ ở ượ ạ d ng b ng. M i th m c hay file l u tr trong nó đ c t o thành b i m t m c ư ậ nh p 32 bytes ch a các thông tin nh tên, ph n m r ng, thu c tính…
ầ ắ ầ ủ ư ụ Thông tin c n thi ế ở t đây là cluster b t đ u c a file hay th m c con.
ồ
ỉ ứ ữ ệ ủ ườ ộ ợ ộ ề ỗ ứ ữ ng h p m t cluster ch a d
ệ ủ ề ứ ữ ệ + Data Region :Ch a d li u cùa file, bao g m nhi u cluster. Chú ý là m i cluster ch ch a d li u c a m t file, không có tr li u c a nhi u file khác nhau.
ế ớ 3 ) Giao ti p v i Micro SD Card
ủ ữ ệ ườ ệ ượ ố ị ng tín hi u đ ữ c c đ nh, d
ệ ề ồ ướ ng c a d li u trên đ Trong SPI mode, h ừ ộ ố ế li u truy n đ ng b n i ti p theo t ng byte .
ừ ộ ộ ố ị ư ế ướ ệ L nh t SPI đ n Card có đ đ dài c đ nh ( 6 bytes) nh bên d i:
Trong đó: SCLK : SPI2_SCK
DI : SPI2_MOSI
17
DO : SPI2_MISO
ờ ủ ệ ừ ứ ạ ờ
NCR: th i gian đáp ng c a l nh ( tùy vào t ng lo i Card mà có th i gian khác nhau )
ộ ộ ệ ươ ứ c truy n đ n Card, m t đáp ng t
ệ ế ề ượ ể ượ ọ ừ c đ c t ứ Card. Vì vi c chuy n d li u đ
ng ng cho ể ữ ệ ượ ầ ủ
ớ
ể ị ả ề ụ ọ ị
ủ
ệ
ấ
a)C u trúc l nh c a SD Card
Khi m t khung l nh đ ệ c lái l nh đó ( R1, R2,R3 ) có th đ ế ụ ằ ệ ề b ng xung clock c a SPI do đó sau khi truy n xong khung l nh SPI c n ti p t c ằ ừ ứ ậ ượ ấ Card ( b ng cách c p xung clock cho Card thì m i có th nh n đ c đáp ng t ứ ậ ượ ớ ử g i liên t c giá tr 0xFF và đ c giá tr tr v cho t c đáp ng i khi nh n đ đúng).
ệ ộ ồ ườ ướ ộ M t khung l nh có đ dài 6 bytes g m các tr ư ng nh bên d i:
18
ộ ố ệ ườ ế ặ ớ M t s l nh th ng g p khi giao ti p v i Micro SD Card :
ứ ủ b) Đáp ng c a SD Card
ứ ạ c g i mà ta có d ng R1, R2 và R3. Trong
19
ệ ầ ớ ạ ứ ệ ượ ử Có 3 d ng đáp ng, tùy vào l nh đ đó đáp ng R1 là cho ph n l n các l nh .
ộ ỗ ấ ệ i xu t hi n thì bit
ị ứ ồ Đáp ng R1: có đ dài 8 bit, g m 7 bit tr ng thái. Khi m t l ươ ứ ng ng s đ t ộ ạ ẽ ượ ặ c đ t lên 1. Giá tr 0x00 nghĩa là thành công .
ứ ệ ớ ồ ộ ỉ Đáp ng R3: g m R1 c ng v i 32 bit OCR, ch dành cho l nh CMD58.
ộ ố ạ ư ứ ứ ặ Ngoài ra còn có m t s d ng đáp ng khác nh ng ng ít g p .
ở ạ
4 ) Kh i t o SD Card
ậ Ở ạ tr ng thái Idle, SD Card ch ch p nh n CMD0, CMD1, ACMD41và
ướ
ở ạ
Các b
c kh i t o Card:
ử ệ
ờ ạ
ử ệ
ư
ậ
ợ
ổ ừ
ợ
1) G i l nh CMD1 đ a Cadr r i tr ng Idle (g i l nh CMD1 và đ i nh n Response thích h p, Response thay đ i t
0x01 sang 0x00).
ế
ố ữ ệ
ổ ộ
ử ệ
ủ
ố
ặ 2) N u mu n thay đ i đ dài c a kh i d li u thì g i l nh CMD16 ( m c ị đ nh là 512 bytes).
ọ ệ CMD58, m i l nh khác s b t ỉ ấ ẽ ị ừ ố ch i.
ề ữ ệ
ố ữ ệ ẽ ượ ử ề ặ ộ c g i
ặ ậ
ữ ệ ố ồ
ườ
ữ 5 ) Quá trình truy n d li u gi a Host và SD Card ổ ữ ệ Trong quá trình trao đ i d li u, m t ho c nhi u kh i d li u s đ ủ ệ ứ ho c nh n sau đáp ng c a l nh. ư ộ ố ữ ệ ượ ậ M t kh i d li u đ c v n chuy n gi ng nh m t gói d li u bao g m 3 tr
20
ộ ể ng: Data Token, Data Block, CRC.
ố ữ ệ ọ ộ Quá trình đ c m t kh i d li u:
ố ỉ ắ ầ ủ ệ ị ị
ệ ầ ọ ố ữ Tham s ( argument) trong l nh CMD17 xác đ nh đ a ch b t đ u c a kh i d li u c n đ c.
ệ ọ ữ ệ ắ ầ ạ ộ ễ ậ ữ c ch p nh n, ho t đ ng đ c d li u b t đ u di n ra, d
Khi l nh CMD17 đ ệ ẽ ượ ử ế li u s đ ượ ấ c g i đ n Host.
ậ ượ ể ẽ ắ ầ ộ ề ộ c m t Data Token thích h p, b đi u khi n s b t đ u
ậ ữ ệ ợ Sau khi Host nh n đ nh n d li u và 2 bytes CRC theo sau Data token.
ế ể ậ ả ặ Host ph i nh n 2 bytes CRC m c dù có th không dùng đ n nó.
ế ỗ ẽ ượ ệ ấ ậ N u có l i xu t hi n, thì Error token s đ c nh n thay vì Data packet.
ề ọ
ệ ố ữ ệ ị ỉ ắ ầ ủ ố ữ ệ ộ
ọ ữ ệ ẽ ễ ạ ộ ữ ệ ệ ậ ấ c ch p nh n, ho t đ ng đ c d li u s di n ra, d li u
ượ c g i đ n Host. ậ ượ ể ẽ ắ ầ ậ ợ ộ ề c Response thích h p, b đi u khi n s b t đ u nh n
21
Quá trình đ c nhi u kh i d li u ị ố Tham s trong l nh CMD18 xác đ nh đ a ch b t đ u c a m t dãy kh i d li u liên ti p. ế Khi l nh CMD18 đ ẽ ượ ử ế s đ Sau khi Host nh n đ ữ ệ d li u.
ạ ộ ậ ữ ệ ử ệ ỉ ế c
ầ ượ ỏ ướ ệ ữ ệ c b qua tr ậ ượ c khi
ệ ậ Ho t đ ng nh n d li u ch k t thúc khi g i l nh CMD12, d li u nh n đ theo sau l nh CMD12 không có ý nghĩa, do đó nó c n đ nh n Respose cho l nh CMD12.
ệ ệ ệ ớ i thi u giao di n SP
ệ ệ
ộ ứ ư ứ ể ự ứ
ứ ặ ị
ồ ệ ố ế
ớ ề ữ ệ ế ị t b ngoài. c hai ch đ : haff duplex và full duplex v i thi
ề ụ ư ượ ử ụ c s d ng cho nhi u m c đích khác nh Simplex transfer
ể
ộ ở ấ ấ ệ ề ữ ệ ử ụ ứ
ở ẩ ể ấ giao th c I2S, nó cung c p m t giao di n truy n d li u ồ các tiêu chu n âm thanh khác nhau bao g m
ệ ể
ng.
ườ ng.
ề ề ữ ệ ể i d ng khung 8 bit hay 16 bit.
ề ướ ạ ặ Master ho c Slave Mode. Multimaster Mode.
ở ề ố ộ ạ ộ ế ấ ớ nhi u t c đ khác nhau, l n nh t lên đ n 18 Mhz.
ề ủ ướ c.
ậ ữ ệ ề ắ ấ ớ
ệ ờ
ề
ề ữ ệ ố ộ ợ ỗ ợ ệ
ệ ấ Master, giao di n SPI cung c p xung Clock
ở đây là Micro SD Card). ượ ữ ệ ệ c th c hi n khi d li u đ c ghi vào thanh ghi b ộ
ử ữ ệ ể ề ị
22
ố ế ể ế ị 6 ) Giao di n SPI a) Gi Trong ARM Cortex M3 dòng “ high density”, giao di n SPI có th th c hi n ch c năng nh là m t giao th c SPI hay là giao th c âm thanh I2S. Ch c năng m c đ nh là SPI. Giao di n SPI ( serial peripheral interface) phép truy n d li u n i ti p đ ng ế ộ ộ ở ả b Ngoài ra nó còn đ hay reliable communication s d ng mã ki m tra CRC. Khi SPI c u hình ộ ồ ố ế n i ti p đ ng b , có th c u hình I2S Philips standard, MSBjustified standard, LSB justified standard và PCM standard. ủ ặ b) Đ c đi m c a giao di n SP ồ ộ Truy n đ ng b Ful duplex trên 3 đ ườ ộ ồ Truy n đ ng b Simplex trên 2 đ D li u có th truy n d ể ấ ở Có th c u hình ả ạ ộ Có kh năng ho t đ ng ở ể Có th ho t đ ng ể ậ ự Có th l p trình c c tính và pha c a xung clock. ể Có th truy n MSB hay LSB tr ệ ụ ờ Cung c p hai c chuyên d ng cho vi c truy n và nh n d li u kèm v i ng t. ậ C báo hi u Bus SPI b n. ậ Tích h p Hardware CRC cho truy n thông tin c y. H tr DMA cho vi c truy n d li u t c đ cao. ạ ộ ở ế ộ c) SPI ho t đ ng ch đ Master ạ ộ ấ Khi c u hình SPI ho t đ ng Ở ớ ắ ế ị t b Slaver g n v i nó ( cho thi ự ượ ữ ệ ề ệ Vi c truy n d li u đ ệ đ m g i Tx buffer. ượ D li u sau đó đ ầ đ u tiên và sau đó đ c chuy n song song vào thanh ghi d ch trong khi truy n bit ượ c d ch n i ti p đ n chân MOSI có th MSB hay LSB
ờ ấ ướ ể ừ ữ ệ ượ c đ t lên 1 khi d li u đ c chuy n t Tx
ị
ộ ệ ậ ộ ữ ệ ượ c chuy n t
ượ ặ ượ ạ c đ t lên 1 và m t ng t đ ị c t o ra.
ượ ặ ắ ượ ạ c t o ra. ể ừ thanh ghi d ch sang b đ m nh n Rx ắ ộ ế ớ ệ ấ c tùy vào c u hình. C TXE đ tr bufer sang thanh ghi d ch và m t ng t đ ậ Khi nh n xong, d li u đ ờ buffer, c RXNE đ ể d) C u hình giao di n SPI đ giao ti p v i Micro SD Card
ệ ế ố ớ
ấ ế SPI2 đ n SD Card. ế SD Card đ n SPI2
ạ ộ
ở
Master Mode.
ề ướ ạ
i d ng khung 8 bit.
c.
ề ữ ệ
ể
ư
ề
ậ
ệ i ( CPHA =0 : vi c truy n và nh n
ở ạ
ủ
ạ
ủ
c nh đ u tiên c a xung clock, CPOL =0: tr ng thái tĩnh c a clock
ấ ử ụ
23
Micro SD Card k t n i v i giao di n SPI2 qua 3 chân 1) SPI2_SCK ( PB13): xung clock SPI2 c p cho SD Card. ữ ệ ừ 2) SPI2_MOSI ( PB15): d li u t ữ ệ ừ 3) SPI2_MISO (PB14): d li u t Ngoài ra còn có chân SD_SC ( PA3): cho phép SD Card ho t đ ng ệ C u hình giao di n SPI ệ S d ng giao di n SPI2. ạ ộ SPI1 ho t đ ng Full duplex. ữ ệ D li u truy n d ướ MSB tr Không dùng DMA đ truy n d li u. ố ộ T c đ : ử ệ g i l nh 36 MHz / 128 = 281 KHz ọ ữ ệ đ c d li u 36 MHz / 2 = 18 MHz ướ ạ Tr ng thái clock tĩnh nh bên d ầ ả x y ra ọ là âm) ( hay còn g i là SPI Mode 0)
ố ể Kh i hi n th
ụ
ấ
ộ
ị ườ
ệ ng hi n nay .
PH N 5:Ầ ị ử ụ S d ng LCD 16x2 là m t LCD r t thông d ng trên th tr
ả
ề
ể
ả
ấ ế ầ
ơ ồ ế ố
ấ ỉ ư
ư
ế
Khi s n xu t LCD, nhà s n xu t đã tích h p chíp đi u khi n bên trong l p ỏ v và ch đ a các chân giao ti p c n thi
ợ ớ t. S đ k t n i LCD nh hình :
24
ủ
Ý nghĩa các chân c a LCD :
25
26
27
ơ ồ ế ố ấ 3)S đ k t n i phím nh n
ướ ế ọ ọ c đó SW1 : ch n file tr SW2 : ch n file ti p theo.
ề SW3 : truy n file.
ừ ề SW4 : D ng quá trình truy n file.
Ệ
Ầ
Ả
Ậ
ả
ề
ứ
ệ
ọ
ệ ử
PH N 6: TÀI LI U THAM KH O VÀ CODE L P TRÌNH ệ 1)Tài li u tham kh o wikipedia.org ộ ố ồ M t s đ án v Bluetooth ạ ộ Pay It Forward Câu l c b Nghiên C u Khoa H c Khoa Đi n Đi n t Bách Khoa TP. HCM http://www.st.com ậ 2)Code l p trình sbit LCD_RS at GPIOB_ODR.B9; sbit LCD_EN at GPIOB_ODR.B7; sbit LCD_D4 at GPIOB_ODR.B6; sbit LCD_D5 at GPIOB_ODR.B5; sbit LCD_D6 at GPIOA_ODR.B8; sbit LCD_D7 at GPIOA_ODR.B11;
sbit Mmc_Chip_Select at GPIOb_ODR.B0;
const LINE_LEN = 43; char j; char err_txt[20] = "FAT16 not found"; char filename[9] = "aaa.wav"; char filenome[9] = "bbb.txt"; unsigned long i, size; unsigned short loop, loop2; char Buffer[512]; char txt3[] = "bbb.txt"; char txt4[] = "aaa.wav"; char f=0; void UART1_Write_Line(char *uart_text) {
28
UART1_Write_Text(uart_text); UART1_Write(13); UART1_Write(10); }
void Move_Delay() { Delay_ms(750); }
void M_Open_File_Read() { char character;
if(f==1){ Mmc_Fat_Assign(&filenome, 0); Mmc_Fat_Reset(&size); for (i = 1; i <= size; i++) { Mmc_Fat_Read(&character); UART1_Write(character);
} } if(f==2){ Mmc_Fat_Assign(&filename, 0); Mmc_Fat_Reset(&size); for (i = 1; i <= size; i++) { Mmc_Fat_Read(&character); UART1_Write(character); } }
}
void mo_file() { char status; char name;
29
status = Mmc_Fat_Exists("bbb.txt");
if (1 == status) { f = 1 ; Lcd_Cmd(_LCD_CLEAR); Lcd_Out(1,1,txt3);
//M_Open_File_Read(); } else{ Lcd_Cmd(_LCD_CLEAR); Lcd_Out_Cp("no file"); } }
void mo_file2() { char status; char name;
status = Mmc_Fat_Exists("aaa.wav");
if (1 == status) { f = 2; Lcd_Cmd(_LCD_CLEAR); Lcd_Out(1,1,txt4);
//M_Open_File_Read(); } else{ Lcd_Cmd(_LCD_CLEAR); Lcd_Out_Cp("no file"); } }
unsigned long clk; /*MAIN*/ void main() {
30
UART1_Init(9600); Delay_ms(10); GPIO_Digital_Input(&GPIOB_IDR, _GPIO_PINMASK_15); GPIO_Digital_Input(&GPIOB_IDR, _GPIO_PINMASK_14); GPIO_Digital_Input(&GPIOB_IDR, _GPIO_PINMASK_13); GPIO_Digital_Output(&GPIOB_BASE, _GPIO_PINMASK_8 ); GPIOB_ODR.B8=0; Lcd_Init(); Lcd_Cmd(_LCD_CLEAR); Lcd_Out(1,4,txt1); Lcd_Out(2,4,txt2); SPI1_Init_Advanced(_SPI_FPCLK_DIV4, _SPI_MASTER | _SPI_8_BIT | _SPI_CLK_IDLE_LOW | _SPI_FIRST_CLK_EDGE_TRANSITION | _SPI_MSB_FIRST | _SPI_SS_DISABLE | _SPI_SSM_ENABLE | _SPI_SSI_1, &_GPIO_MODULE_SPI1_PA567);
Delay_ms(10); do { if ( Button(&GPIOB_IDR, 14, 100, 0)) { if (!Mmc_Fat_Init()) { SPI1_Init_Advanced(_SPI_FPCLK_DIV4, _SPI_MASTER | _SPI_8_BIT | _SPI_CLK_IDLE_LOW | _SPI_FIRST_CLK_EDGE_TRANSITION | _SPI_MSB_FIRST | _SPI_SS_DISABLE | _SPI_SSM_ENABLE | _SPI_SSI_1, &_GPIO_MODULE_SPI1_PA567);
mo_file2();
} else {
31
UART1_Write_Line(err_txt); Lcd_Cmd(_LCD_CLEAR); Lcd_Out_Cp("no SDCARD"); }
} if ( Button(&GPIOB_IDR, 15, 100, 0)) { if (!Mmc_Fat_Init()) { SPI1_Init_Advanced(_SPI_FPCLK_DIV4, _SPI_MASTER | _SPI_8_BIT | _SPI_CLK_IDLE_LOW | _SPI_FIRST_CLK_EDGE_TRANSITION | _SPI_MSB_FIRST | _SPI_SS_DISABLE | _SPI_SSM_ENABLE | _SPI_SSI_1, &_GPIO_MODULE_SPI1_PA567);
mo_file();
} else { UART1_Write_Line(err_txt); Lcd_Cmd(_LCD_CLEAR); Lcd_Out_Cp("no SDCARD"); }
}
if ( Button(&GPIOB_IDR, 13, 100, 0)) { if (!Mmc_Fat_Init()) { SPI1_Init_Advanced(_SPI_FPCLK_DIV4, _SPI_MASTER | _SPI_8_BIT | _SPI_CLK_IDLE_LOW | _SPI_FIRST_CLK_EDGE_TRANSITION |
32
_SPI_MSB_FIRST | _SPI_SS_DISABLE | _SPI_SSM_ENABLE | _SPI_SSI_1, &_GPIO_MODULE_SPI1_PA567);
M_Open_File_Read();
} else { UART1_Write_Line(err_txt); Lcd_Cmd(_LCD_CLEAR); Lcd_Out_Cp("no SDCARD"); }
} }
while(1) ; }
33

