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 HC­05

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 HC­05. ể ề   ­ Vi đi u khi n giao ti p module HC­05 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 HC­05

ố ế ị ư ệ ỗ ợ ế ạ ộ 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 Ad­hoc (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 pa­nô 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à T­Mobile’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 1­2GB  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 Wi­Fi. 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 Wi­Fi 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 Wi­Fi 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 (8­27  ụ ệ ớ 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 HC­05

ệ ạ ộ

ạ ộ ế ệ

ườ ậ ậ a)Thông s  kĩ thu t module HC­05 ủ   ­Đ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 HC­06. 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.  Cortex­M3 đ 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   32­bit và t p l nh Thumb 16­bit), trong khi đó dòng Cortex đ c thi ể ạ ượ ự ự ố ợ ậ ệ t p l nh ARM Thumb­2, 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 I­Bus và D­Bus đ  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 AHB­APB1 và AHB­APB2( có t c đ  t ơ ớ l n h n AHB­APB1) 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 32­bit Cortex­M3 Microcontroller, 24MHz, 32kB Flash, 4kB SRAM, PLL,  Embedded Internal RC 8MHz and 32kHz, Real­Time Clock, Nested Interrupt  Controller, Power Saving Modes, JTAG and SWD, 4 Synch. 16­bit Timers with  Input Capture, Output Compare and PWM, 2 16­bit Advanced Timer, 2 16­bit  Basic Timer, 2 16­bit Watchdog Timers, SysTick Timer, 3 SPI/I2S, 2 I2C, 2  USART, CAN 2.0B Active,  12­bit A/D Converter, 2 12­bit 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 đ c­ghi 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 end­of­cluster­chain 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, MSB­justified 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