Vì vậy em quyết định chọn đề tài “Điều khiển các thiết bị trong phòng thông qua màn hình cảm ứng và điện thoại”, trong đó sử dụng vi điều khiển trung tâm là ARM STM32F407VET6, được điề
Trang 1THÀNH PHỐ HỒ CHÍ MINH
ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG
ĐIỀU KHIỂN CÁC THIẾT BỊ TRONG PHÒNG THÔNG
QUA MÀN HÌNH CẢM ỨNG VÀ ĐIỆN THOẠI
GVHD: NGUYỄN ĐÌNH PHÚ SVTT: TRẦN VIẾT GIÁP SVTH: NGUYỄN VĂN TUẤN ANH
Tp Hồ Chí Minh, tháng 2019
SKL 0 0 5 4 6 5
Trang 2LỜI CAM ĐOAN
Chúng tôi xin cam đoan đây là công trình nghiên cứu của riêng chúng tôi Các số
liệu sử dụng trong đề tài có nguồn gốc rõ ràng dựa trên một số tài liệu trước đó Các kết
quả nghiên cứu trong đề tài do chúng tôi tự tìm hiểu, phân tích một cách trung thực,
khách quan và phù hợp với thực tiễn Nếu không đúng như đã nêu trên, chúng tôi xin
chịu trách nhiệm hoàn toàn về đề tài của mình
Nhóm thực hiện đề tài Trần Viết Giáp Nguyễn Văn Tuấn Anh
Trang 3LỜI CẢM ƠN
Xin chân thành cảm ơn đến quý thầy cô khoa Điện tử – truyền thông đã giảng dạy
em trong suốt bốn năm học và tạo điều kiện thuận lợi để nhóm em thực hiện đề tài Cảm
ơn gia đình, xã hội đã là nguồn động viên to lớn về vật chất và tinh thần trong suốt thời
gian học hành, để em có được tương lai, theo đuổi ước mơ và sự nghiệp Đặc biệt cảm
ơn thầy Nguyễn Đình Phú đã tạo điều kiện, chia sẻ những kinh nghiệm quý báu và
hướng dẫn em cách học tập cũng như nghiên cứu để hoàn thành tốt đồ án tốt nghiệp này
Cuối cùng xin chúc gia đình, bạn bè và quý thầy, cô nhiều sức khỏe và thành công trong
công việc
Xin chân thành cảm ơn!
Nhóm thực hiện đề tài
Trần Viết Giáp Nguyễn Văn Tuấn Anh
Trang 4TÓM TẮT
Ngày nay, dưới sự phát triển mạnh mẽ của khoa học kỹ thuật đã làm cho cuộc
sống con người ngày càng tốt hơn, tiện nghi hơn Trong đó phải kể đến IoT – Internet
of Thing, theo Wikipedia IoT nghĩa là kết nối vạn vật Nó giúp con người có thể dễ dàng
kiểm soát và dùng ít sức lực hơn trong công việc cũng như cuộc sống Và công việc điều
khiển các thiết bị điện luôn là mảnh đất màu mỡ để thử nghiệm và triển khai IoT
Đáp ứng nhu cầu thực tế của phòng học thực tập tại trường đại học em đang theo
học Nhu cầu muốn các thiết bị trong phòng học được “thông minh” hơn và có thể điều
khiển từ xa thông qua điện thoại
Do đó, việc đưa IoT vào lĩnh vực điều khiển thiết bị là việc làm minh chứng cho
sự tiện dụng và lợi ích mạnh mẽ của nó Vì vậy em quyết định chọn đề tài “Điều khiển
các thiết bị trong phòng thông qua màn hình cảm ứng và điện thoại”, trong đó sử dụng
vi điều khiển trung tâm là ARM STM32F407VET6, được điều khiển thông qua tấm cảm
ứng điện dung, ngoài ra còn được điều khiển bằng điện thoại qua kết nối Bluetooth
Kết quả đạt được:
- Tạo được giao diện điều khiển trên màn hình LCD
- Gửi được lệnh từ ứng dụng xuống vi điều khiển
- Giao tiếp được với tấm cảm ứng
- Điều khiển được mức logic của các chân I/O thông qua tấm cảm ứng
Trang 5MỤC LỤC
LỜI CAM ĐOAN I
LỜI CẢM ƠN II
TÓM TẮT III
MỤC LỤC IV
DANH MỤC HÌNH ẢNH VI
CHƯƠNG 1 TỔNG QUAN 1
1.1 ĐẶTVẤNĐỀ 1
1.2 MỤCTIÊU 1
1.3 NỘIDUNGNGHIÊNCỨU 2
1.4 GIỚIHẠN 2
1.5 BỐCỤC 3
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 4
2.1 VIĐIỀUKHIỂN 4
2.1.1 Bộ xử lý arm Cortex-m4 4
2.1.2 Vi điều khiển STM32F407VET6 và Kit STM32F407 Discovery 7
2.1.3 Kit STM32F407 Discovery 19
2.2 MODULEBLUETOOTHHC-05 22
2.2.1 Giới thiệu giao thức UART 22
2.2.2 Giới thiệu giao thức Bluetooth 23
2.2.3 Module bluetooth HC-05 23
2.3 MODULELCDTFT 26
2.3.1 Giới thiệu giao thức I2C 26
2.3.2 Màn hình LCD TFT 27
2.4 MODULERELAYSSR 30
2.4.1 Giới thiệu Relay SSR 30
2.4.2 Module SSR FOTEK-40DA 32
CHƯƠNG 3 TÍNH TOÁN VÀ THIẾT KẾ 34
3.1 CÁC YÊU CẦU THIẾT KẾ 34
3.2 TÍNHTOÁNVÀTHIẾTKẾHỆTHỐNG 34
3.2.1 Thiết kế sơ đồ khối 34
3.2.2 Thiết kế khối ứng dụng 35
3.2.3 Sử dụng Module Bluetooth 35
3.2.4 Thiết kế khối màn hình 37
3.2.5 Tính toán và lựa chọn Relay 38
3.2.6 Thiết kế nguồn 40
3.3 SƠ ĐỒ NGUYÊN LÝ CỦA TOÀN MẠCH 42
CHƯƠNG 4 THI CÔNG HỆ THỐNG 43
4.1 THICÔNGBẢNGMẠCHKẾTNỐI 43
4.1.1 Giới thiệu 43
4.1.2 Vẽ mạch in 44
Trang 64.1.3 Xuất file mạch in ra pdf tiến hành in 45
4.1.4 Kết quả sau khi thi công 46
4.1.5 Chạy thử 48
4.2 THICÔNGMẠCHRELAY 49
4.2.2 Kết quả 50
4.3 LẬPTRÌNHHỆTHỐNG 51
4.3.1 Lưu đồ giải thuật 51
4.3.2 Phần mềm lập trình cho vi điều khiển 55
4.3.3 Giới thiệu phần mềm biên dịch hình ảnh sang mã hex 56
4.3.4 Viết chương trình hệ thống 57
4.4 PHẦNMỀMLẬPTRÌNHCHOĐIỆNTHOẠI,MÁYTÍNH,… 58
4.4.1 Giới thiệu 58
4.4.2 Chương trình chạy ứng dụng trên Android 59
4.4.3 Icon ứng dụng 62
4.3.3 Hướng dẫn sử dụng 63
4.5 VIẾTTÀILIỆUHƯỚNGDẪNSỬDỤNG,THAOTÁC 64
CHƯƠNG 5 KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 65
5.1 KẾTQUẢ 65
5.1.1 Hiển thị màn hình lcd 65
5.1.2 Ứng dụng điều khiển trên điện thoại 66
5.1.3 Bật tắt Relay 66
5.2 NHẬNXÉT 67
5.3 ĐÁNHGIÁ 67
CHƯƠNG 6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 68
6.1 KẾTLUẬN 68
6.2 HƯỚNGPHÁTTRIỂN 69
TÀI LIỆU THAM KHẢO 70
PHỤ LỤC 72
Trang 7DANH MỤC HÌNH ẢNH
Hình 2.1 So sánh ARM Cortex M3 và M4 5
Hình 2.2 Cấu trúc lõi ARM của các dòng ARM Cortex M3 & M4 6
Hình 2.3 Cấu trúc vi điều khiển Cortex M3 & M4 7
Hình 2.4 Cấu trúc hệ thống của STM32F407VET6 10
Hình 2.5 Mạch Reset 12
Hình 2.6 Bộ nguồn xung bên ngoài 13
Hình 2.7 Sơ đồ khối của timer 16
Hình 2.8 Chế độ Capture/Compare kênh 1 17
Hình 2.9 Dạng sóng Edge- aligned PWM 18
Hình 2.10 Hình ảnh sơ đồ chân STM32F407 Discovery 20
Hình 2.11 Hình ảnh thực tế Kit STM32F407 Discovery 21
Hình 2.12 Cách kết nối hai thiết bị sử dụng giao thức UART 22
Hình 2.13 Khung truyền dữ liệu của giao thức UART 22
Hình 2.14 Mặt trên module bluetooth HC-05 24
Hình 2.15 Mặt dưới module bluetooth HC-05 24
Hình 2.16 Mô tả phương thức truyền I2C 27
Hình 2.17 Mặt trước màn hình LCD TFT 28
Hình 2.18 Mặt sau màn hình LCD TFT 28
Hình 2.19: Relay SSR 31
Hình 2.20: Cấu tạo bên trong một SSR điển hình 31
Hình 2.21 Relay sử dụng SSR 32
Hình 2.22: SSR FOTEK-40DA 32
Hình 2.23: Sơ đồ bên trong ssr FOTEK-40DA 33
Hình 3.1 Sơ đồ khối hệ thống 34
Hình 3.2: Module Bluetooth HC-05 36
Hình 3.3 Sơ đồ kết nối chân Module Bluetooth và Kit STM32F407 Discovery 36
Hình 3.4 Thông số điện áp của nhà sản xuất cho màn hình LCD 37
Hình 3.5 Sơ đồ nguyên lý kế nối STM32F407 Discovery và LCD 38
Hình 3.6 Sơ đồ nguyên lý Relay kết nối tới khối điều khiển 40
Hình 3.7 Hình ảnh nguồn đề xuất 41
Hình 3.8: Sơ đồ nguyên lí toàn mạch 42
Hình 4.1 Sơ đồ kích thước STM32F407 Discovery 43
Hình 4.2 Sơ đồ kích thước LCD 44
Hình 4.3 Mạch in hai lớp của bảng mạch kết nối 44
Hình 4.4 Mặt trên mạch in của bảng mạch kết nối 45
Trang 8Hình 4.5 Mặt dưới mạch in của bảng mạch kết nối 45
Hình 4.6 Kết quả bảng mạch in 46
Hình 4.7 Kết quả bảng mạch in 47
Hình 4.8 Màn hình khi chưa được cấp nguồn 48
Hình 4.9 Kết quả chạy thử màn hình 48
Hình 4.10 Kết quả chạy thử kết nối với Module Bluetooth 49
Hình 4.11 Đấu nối SSR-40DA 49
Hình 4.12 Kết quả đấu nối bảng mạch SSR 50
Hình 4.13 Lưu đồ chương trình 51
Hình 4.14 Lưu đồ chương trình nhấn Icon điều hòa 52
Hình 4.15 Lưu đồ chương trình nhấn Icon quạt 53
Hình 4.16 Lưu đồ chương trình nhấn Icon đèn 54
Hình 4.17 Giao diện phần mềm viết chương trình 56
Hình 4.18 Icon chương trình biên dịch hình ảnh 56
Hình 4.19 Giao diện chương trình biên dịch hình ảnh 56
Hình 4.24 Icon ứng dụng điều khiển Android 63
Hình 4.25 Giao diện kết nối Bluetooth 63
Hình 4.26 Giao diện ứng dụng Android 64
Hình 5.1 Màn hình LCD 65
Hình 5.2 Ứng dụng trên điện thoại 66
Hình 5.3 Kết quả bật tắt Relay 66
Trang 9DANH MỤC BẢNG
Bảng 2.1 Cấu hình GPIO………16
Bảng 2.2 Đặc điểm kỹ thuật của màn hình LCD TFT……… 28
Bảng 2.3 Sơ đồ chân màn hình LCD TFT……… 29
Bảng 3.1 Thông số SSR FOTEK-40DA……… 31
Bảng 4.1 Danh sách linh kiện dự kiến……….……… ….45
Bảng 4.3 Số lượng linh kiện dự kiến……… ……50
Trang 10Chương 1 TỔNG QUAN
1.1 ĐẶT VẤN ĐỀ
Cùng với sự phát triển không ngừng nghỉ của công nghiệp hóa hiện đại hóa, việc đưa những tiến bộ về khoa học kỹ thuật áp dụng vào thực tiễn giúp con người dễ dàng kiểm soát, nâng cao chất lượng công việc, trong khi đó chỉ cần tốn ít sức lực hơn so với trước kia Chúng giúp con người tạo ra của cải vật chất nhiều hơn, giảm bớt chi phí sản xuất hơn Không chỉ thế, chúng còn giúp con người nâng cao chất lượng cuộc sống
Đáp ứng nhu cầu thực tế của phòng học thực tập tại trường đại học em đang theo học Nhu cầu muốn các thiết bị trong phòng học được “thông minh” hơn Và có thể điều khiển được từ xa thông qua điện thoại Do đó, việc đưa IoT vào lĩnh vực điều khiển thiết
bị là việc làm minh chứng cho sự tiện dụng và lợi ích mạnh mẽ của nó
Hiện nay việc sử dụng vi xử lý nền tảng cấu trúc ARM (Advanced RISC Machine) là một loại cấu trúc vi xử lý 32 bit và 64 bit kiểu RISC được sử dụng rộng rãi trong thiết kế nhúng Do có giá thành thấp và sức mạnh cũng như tính năng vượt trội
Vì vậy nhóm em quyết định chọn đề tài “Điều khiển các thiết bị trong phòng thông qua
màn hình cảm ứng và điện thoại”, trong đó sử dụng vi xử lý trung tâm là ARM
STM32F407VET6, được điều khiển thông qua tấm cảm ứng điện dung, ngoài ra còn điều khiển bằng điện thoại qua kết nối Bluetooth
1.2 MỤC TIÊU
Hệ thống dùng vi điều khiển STM32F407VET6
Giao tiếp được vi điều khiển với màn hình LCD
Giao tiếp được vi điều khiển với tấm cảm ứng
Giao tiếp được vi điều khiển với Module Bluetooth HC-05
Viết được ứng dụng Android và giao tiếp với vi điều khiển
Đồng bộ chức năng trên điện thoại và màn hình LCD
Hiển thị thời gian trên màn hình LCD
Sau 18h sẽ tự động tắt tất cả các thiết bị
Sử dụng Relay SSR (Solid State Relay) thay thế cho Relay cơ khí truyền thống
Trang 111.3 NỘI DUNG NGHIÊN CỨU
Nội dung 1: Tìm hiểu vi điều khiển STM32F407VET6 Discovery
Nội dung 2: Nghiên cứu và đưa ra các giải pháp hoạt động của mạch
Nội dung 3: Thiết kế và thi công mạch điều khiển giao tiếp giữa vi điều khiển STM32F407 Discovery, màn hình LCD và tấm cảm ứng điện dung
Nội dung 4: Thiết kế ứng dụng Android cho điện thoại và giao tiếp với vi điều khiển
Nội dung 5: Thiết kế và thi công khối điều khiển đóng mở các thiết bị
Nội dung 6: Chỉnh sửa lại các lỗi lập trình, tối ưu lại chương trình
Nội dung 7: Thi công mô hình hoàn chỉnh
Nội dung 9: Chạy thử nghiệm hệ thống
Nội dung 10: Viết báo cáo luận văn
Nội dung 11: Báo cáo đề tài tốt nghiệp
1.4 GIỚI HẠN
Sử dụng trong phạm vi phòng học
Sử dụng kết nối Bluetooth với khoảng cách tối đa 10m
Điều khiển 2 điều hòa, 4 quạt và 8 đèn
Sử dụng màn hình cảm ứng để điều khiển
Sử dụng điện thoại để điều khiển với chức năng giống màn hình cảm ứng
Lập trình sử dụng phần mềm IAR và thư viện tham khảo của nhà sản xuất
Trang 121.5 BỐ CỤC
Chương 1: Tổng Quan
Chương 2: Cơ Sở Lý Thuyết
Chương 3: Thiết Kế và Tính Toán
Chương 4: Thi Công Hệ Thống
Chương 5: Kết Quả, Nhận Xét, Đánh Giá
Chương 6: Kết Luận
Trang 13Chương 2 CƠ SỞ LÝ THUYẾT
2.1 VI ĐIỀU KHIỂN
Vi điều khiển là một hệ thống bao gồm một vi xử lý có giá thành thấp (khác với
bộ vi xử lý đa năng dùng trong máy vi tính) kết hợp với các khối ngoại vi như bộ nhớ, các module vào/ra, các module biến đổi số sang tương tự và tương tự sang số, Còn ở máy tính thì các module thường được xây dựng bởi các chip và mạch ngoài
Vi điều khiển thường được dùng để xây dựng các hệ thống nhúng Nó xuất hiện khá nhiều trong các thiết bị điện, điện tử, máy giặt, lò vi sóng, điện thoại, đầu đọc DVD, thiết bị đa phương tiện, dây chuyền tự động
Hiện nay trên thị trường có rất nhiều hãng sản xuất vi điều khiển, mỗi hãng có những dòng sản phẩm danh tiếng của riêng mình Những sản phẩm đang rất thông dụng trên thị trường là họ vi điều khiển PIC của hãng Microchip, vi điều khiển 8051 của Intel,
vi điều khiển AVR của Atmel, Vi điều khiển ARM của Stmicroelectronics, hay kit Arduino được phát triển trên nền tảng chip AVR, Mỗi dòng sản phẩm đều có những
ưu và nhược điểm của riêng chúng
Tuy nhiên nổi bật hơn cả là dòng STM32 của hãng Stmicroelectronics Với lõi Cortex M4, nó mang trong mình sức mạnh đáng nể, mức tiêu thụ năng lượng thấp cùng giá thành rất phải chăng so với những vi điều khiển cùng giá của các hãng khác
Những thiết kế của đề tài này đòi hỏi sức mạnh của bộ vi điều khiển mang lại, cũng như mong muốn tối ưu kinh phí khi sử dụng với sức mạnh đó Vì vậy, nhóm quyết định chọn dòng vi điều khiển này
2.1.1 Bộ xử lý arm Cortex-m4
Cấu trúc ARM (viết tắt từ tên gốc là Acorn RISC Machine) là một loại cấu trúc
vi xử lý 32 bit kiểu RISC (viết tắt của Reduced Intruction Set Computer - Máy tính với tập lệnh đơn giản hóa) được sử dụng rộng rãi trong các thiết kế nhúng Do có đặc điểm tiết kiệm năng lượng, các bộ CPU ARM chiếm ưu thế trong các sản phẩm điện tử di động, mà với các sản phẩm này việc tiêu tán công suất thấp là một mục tiêu thiết kế quan trọng hàng đầu
Dòng ARM Cortex bao gồm ba cấu hình khác nhau: cấu hình A cho các ứng dụng tinh vi, yêu cầu cao chạy trên các hệ điều hành mở và phức tạp như Linux, Android
Trang 14được phát triển từ ARM 11 Cấu hình R dành cho các hệ thống thời gian thực, phát triển từ ARM 9 Cấu hình M được tối ưu cho các ứng dụng vi điều khiển, cần tiết kiệm chi phí Bộ vi xử lý Cortex M4 là bộ vi xử lý ARM dựa trên cấu trúc ARM7, thế hệ tiếp theo của Cortex M3 và được thiết kế đặc biệt để đạt được hiệu suất cao trong các ứng dụng nhúng cần tiết kiệm năng lượng và chi phí, chẳng hạn như các vi điều khiển, hệ thống cơ ô tô, hệ thống kiểm soát công nghiệp và hệ thống mạng không dây Không giống với ARM 7 được thiết kế theo kiến trúc Von Neuman (bộ nhớ chương trình và bộ nhớ dữ liệu chung với nhau), Cortex – M4 được thiết kế dựa theo kiến trúc Harvard (bộ nhớ chương trình và bộ nhớ dữ liệu tách biệt với nhau), và có nhiều bus cho phép thực hiện các thao tác song song với nhau, do đó là tăng hiệu suất của chip
Bộ xử lý Cortex – M4 là thế hệ tiếp theo của bộ xử lý Cortex – M3, sự khác nhau
là không nhiều, vậy nên mọi thứ liên quan tới bộ xử lý Cortex M3 vẫn có thể áp dụng vào Cortex M4, cụ thể sự khác nhau đó là: Cortex M4 cung cấp một đơn vị xử lý dấu chấm động tùy chọn trong các tác vụ xử lý toán học và được ký hiệu là M4F Ngoài ra Cortex M4 cung cấp thêm tùy chọn bộ xử lý tín hiệu DSP, việc này khiến lõi bộ xử lý Cortex M4 có cung cấp thêm khả năng xử lý tùy chọn DSP, và vì M4 có sẵn DSP nên công suất tiêu tán theo một số tài liệu cho thấy nó ít hơn gấp 3 lần so với Cortex M3 khi
xử lý DSP không tích hợp
Hình 2.1 So sánh ARM Cortex M3 và M4
Vi điều khiển Cortex M3 & M4 được tiêu chuẩn hóa gồm một CPU 32 bit, cấu trúc bus (bus structure), đơn vị xử lí ngắt có hỗ trợ tính năng lồng ngắt vào nhau (nested interrupt unit), hệ thống kiểm lỗi (debug system) và tiêu chuẩn bố trí bộ nhớ (standard memory layout) Một trong những thành phần chính của lõi Cortex – M3 & M4 là NIVC
Trang 15(Nested Vector Interupt Controller) Trong trường hợp xuất hiện các interrupt lồng nhau (tức là xảy ra ngắt khi đang xử lý ngắt trước đó), NIVC sử dụng một phương thức gọi
là “tail chain” cho phép ngắt liên tiếp được phục vụ với độ trễ chỉ có sáu chu kì xung nhịp Trong suốt giai đoạn lưu trữ dữ liệu lên vùng nhớ stack để bắt đầu thực thi chương trình phục vụ ngắt, một ngắt có mức ưu tiên cao hơn ngắt hiện tại có thể cạnh tranh với (pre-empt) ngắt hiện tại mà không chịu bất kì trì hoãn nào
Cấu trúc ngắt cũng đi kèm với chế độ tiết kiệm năng lượng của trong lõi Cortex – M3 & M4 CPU có thể được cấu hình tự động vào chế độ tiết kiệm năng lượng sau khi thoát khỏi ngắt Sau đó lõi tiếp tục ngủ cho đến khi một exception (ngắt đặc biệt) xuất hiện
CPU hỗ trợ hai chế độ hoạt động: Thread và Handler, mỗi chế độ có thể được cấu hình với mỗi vùng stack riêng biệt của nó, điều này cho phép thiết kế các phần mềm phức tạp và hỗ trợ các hệ điều hành thời gian thực, lõi Cortex có hỗ trợ timer 24 bit tự động nạp lại giá trị, nó sẽ cung cấp một ngắt timer đều đặn cho một nhân RTOS (Real Time Operating System)
Các chip ARM7 và ARM9 có hai tập lệnh (tập lệnh ARM 32 bit và tập lệnh Thumb 16-bit), trong khi đó dòng Cortex được thiết kế hỗ trợ tập lệnh ARM Thumb -
2, tập lệnh này được pha trộn giữa tập lệnh 16 bit và 32 bit, nhằm đạt được hiệu suất cao của của tập lệnh ARM 32-bit với mật độ mã chương trình tối ưu của tập lệnh Thumb 16 bit Tập lệnh Thumb-2 được thiết kế đặc biệt dành cho trình biên dịch C/C++, tức là các ứng dụng dựa trên nền Cortex hoàn toàn có thể được viết bằng ngôn ngữ C mà không cần đến chương trình khởi động viết bằng Assembler như ARM7 và ARM9
ARM core
32 bit ALU
Hardware divider Single cycle 32 bit multiplier
Instruction interface Data interface
Hình 2.2 Cấu trúc lõi ARM của các dòng ARM Cortex M3 & M4
Trang 16ARM core ETM Configurable
NVIC
Seria wire viewer
SRAM and peripheral I/F Code interface
Data watchpoints Flash PatchMemory protection unit
Bus matrix DAP
Hình 2.3 Cấu trúc vi điều khiển Cortex M3 & M4
Stmicroelectronics đã đưa ra thị trường 4 dòng vi điều khiển dựa trên ARM7 và ARM9, nhưng STM32 được đánh giá là một bước tiến quan trọng về chi phí và hiệu suất, giá chỉ gần 1 Euro với số lượng lớn, STM32 là sự thách thức thật sự với các vi điều khiển 8 và 16 bit truyền thống STM32 đầu tiên gồm 14 biến thể khác nhau, được phân thành hai nhỏ: dòng Performance có tần số hoạt động của CPU lên tới 72Mhz và dòng Access có tần số hoạt động lên tới 136 Mhz Các biến thể STM32 trong hai nhóm này tương thích hoàn toàn về cách bố trí chân và phần mềm, đồng thời kích thước bộ nhớ FLASH ROM có thể lên tới 128K và 20K SRAM
2.1.2 Vi điều khiển stm32f407vet6 và kit stm32f407 discovery
a Vi điều khiển STM32F407VET6
Vi điều khiển STM32F407VET6 là một loại vi điều khiển lõi Cortex-M4 được tiêu chuẩn hóa gồm một CPU32 bit trên nền tảng ARM với cấu trúc RISC (viết tắt của Reduced Intruction Set Computer – máy tính với tập lệnh đơn giản hóa) được sử dụng rộng rãi trong thiết kế nhúng Do có đặc điểm tiết kiệm năng lượng, các bộ cpu ARM chiếm ưu thế trong các sản phẩm điện tử di động, mà với các sản phẩm tiêu tán công suất thấp nhằm tiết kiệm pin là một mục tiêu thiết kế hàng đầu
Trang 17b Hệ thống chính bao gồm:
Bộ xử lý:
- Lõi: CPU ARM 32-bit Cortex – M4 & FPU(bộ xử lý dấu chấm động)
- Tần số hoạt động lên tới 168 mhz
- Bộ nhớ được bảo vệ
- Bộ xử lý tín hiệu DSP
Bộ nhớ:
- Bộ nhớ flash lên đến 1Mbyte
- Bộ nhớ SRAM lên đến 192 + 4 Kbyte bao gồm 64 – Kbyte của dữ liệu CCM RAM
- Cung cấp giao diện điều khiển LCD song song với 2 chế độ 8080 /6800
- Xung đồng hồ, reset và nguồn hỗ trợ
- Cung cấp cho các ứng dụng từ các ngõ I/O với điện áp từ 1.8 – đến 3.6V
- Tần số dao động từ bộ dao động từ 3 đến 26 mhz
- Bộ dao động nội với tần số 16mhz
- Bộ dao động cung cấp 32khz cho real time clock với bộ hiệu chỉnh
- Bộ dao động nội RC với tần số 16khz đi cùng với bộ hiệu chỉnh
- Chế độ tiết kiệm năng lượng
Trang 18- Hỗ trợ lên đến 140 cổng I/O với khả năng ngắt
- Hỗ trợ 136 cổng I/O với tần số nhanh 84mhz
- Hộ trợ 138 cổng I/O với mức cung cấp áp tối đa 5V
Giao tiếp:
- Hỗ trợ 3 bộ giao tiếp I2C (smbus/pmbus)
- Hỗ trợ tối đa 4 giao diện uarts/2 uarts
- Hỗ trợ 3 giao diện SPI
- Giao diện 2 x CAN
- Giao diện SDIO
- Các kết nối nâng cao
- Cổng USB 2.0 tốc độ cao cho các thiết bị ngoại vi hoặc OTG
- Cổng USB 2.0 tốc độ cao/ tốc độ tối đa cho các thiết bị OTG, chuyên dụng hoặc đóng vai trò như 1 máy chủ
- Cung cấp giao diện kết nối camera chế độ song song 8 tới 14 bit
- Icode bus: kết nối bus lệnh của Cortex - M3 tới bộ nhớ FLASH
- Hỗ trợ cổng Ethernet
Dưới đây là cấu trúc của STM32F407VET6
Trang 19Hình 2.4 Cấu trúc hệ thống của STM32F407VET6
Trang 20c Cấu trúc bộ nhớ
Bộ nhớ chương trình, bộ nhớ dữ liệu, thanh ghi và cổng I/O được tổ chức trong phạm vi 4GB Bộ nhớ bắt đầu từ địa chỉ 0x00000000 SRAM bắt đầu từ địa chỉ 0x20000000 và tất cả SRAM nội điều được bố trí ở điểm bắt đầu vùng bit band Vùng nhớ thiết bị ngoại vi bắt đầu từ địa chỉ 0x40000000 và vùng nhớ bit band Các thanh ghi điều khiển của nhân Cortex bắt đầu từ địa chỉ 0xE0000000
Vùng nhớ dành cho FLASH được chia nhỏ thành 3 vùng Vùng thứ nhất gọi là User Flash bắt đầu từ địa chỉ 0x00000000 Kế tiếp là system Memory hay còn gọi là vùng nhớ hệ thống Vùng này có độ lớn 4Kbytes thông thường sẽ được nhà sản xuất cài đặt bootloader Cuối cùng là vùng nhớ nhỏ bắt đầu từ địa chỉ 0x1FFFFF80 chứa thông tin cấu hình dành cho STM32 Bootloader thường được dùng để tải chương trình thông qua cổng UART1 và chứa vùng User Flash
Để kích hoạt bootloader của STM32 người dùng phải thiết lập các chân BOOT0
và BOOT1 ở mức điện áp thấp và cao tương ứng Khi đó, sau khi STM32 được khởi động chương trình sẽ đặt bootloader và dịa chỉ 0x00000000 và thực thi nó thay thực thi chương trình của người dùng ở User Flash Để giao tiếp với bootloader, ST cung cấp một chương trình chạy PC, chương trình này có khả năng ghi, xóa những vùng nhớ ở User Flash Ngoài ra chúng ta có thể cấu hình các chân bootpins đưa SRAM nội vào đại chỉ 0x00000000, cho phép tải xuống và thực thi chương trình này tại SRAM Điều này làm tăng tốc độ tải chương trình và hạn chế số lần ghi vào Flash
d Reset and clock control
STM32 có nhiều nguồn Reset khác nhau ngoài đường Reset bên ngoài STM32
có thể bị buộc khởi động lại từ: các bộ Watchdogs nội, một Reset thông qua NIVC, một Reset mở/tắt nguồn nội và mạch phát hiện điện áp nguồn thấp Nếu một tín hiệu Reset xuất hiện, một nhóm cờ trong thanh ghi kiểm soát và trạng thái RCC có thể được đọc để xác định nguyên nhân gây ra Reset Trạng thái của những cờ này vẫn còn tồn tại cho đến khi hệ thống được cấp nguồn trở lại hoặc cho đến khi người dùng thiết lập bit Remove Reset Mạch Reset được thể hiện trong hình sau:
Trang 21Hình 2.5 Mạch Reset
Xung clock của vi điều khiển Có ba nguồn xung chính được sử dụng trong hệ thống:
- Bộ giao động nội HSI
- Bộ giao động ngại HSE
- Vòng khóa pha PLL
Ngoài ra có thể sử dụng nguồn xung khác: 40Khz dao động nội tần số thấp RC
sử dụng cho RTC, Watchdog, Auto Wakeup hoặc tần số 32,768Khz dao động ngoại từ tinh thể thạch anh gắn ngoài cung cấp cho bộ thời gian thực RTC
Trong hầu hết các ứng dụng xung nhip hệ thống được dùng bởi bộ xử lí Cortex
và các thiết bị ngoại vi khác sẽ lấy từ một giao động thạch anh bên ngoài kết nối thông qua các chân HSE Hệ thống tạo xung nhịp dao động này chứa một khối CSS thực hiện nhiệm vụ giám sát giao động thạch anh bên ngoài Nếu dao động thạch anh ngoài có vấn
đề thì nó sẽ sử dụng hệ thống giao động thạch anh nội HSI 8Mhz
Trang 22Hình 2.6 Bộ nguồn xung bên ngoài
Trang 23Input Pull-down 1 0
Output Push-pull 0 0 00: Reserved
01: output speed 10 MHz 10: output speed 2 MHz 11: output speed 50 MHz
- Để sử dụng NIVC cần qua ba bước cấu hình Đầu tiên cấu hình bảng Vector cho các nguồn ngắt mà ta muốn sử dụng Tiếp theo cấu hình bảng thanh ghi NIVC để cho phép và thiết lập các mức ưu tiên của ngắt trong NIVC và cuối cùng cần phải cấu hình các thiết bị ngoại vi và cho phép ngắt tương ứng Bảng vector ngắt của Cortex bắt đầu ở vùng dưới của bảng địa chỉ Tuy nhiên bảng vetor bắt đầu từ địa chỉ 0x00000004 thay vì là 0x00000000 như ARM7 và ARM9, bốn byte đầu tiên được sử dụng để lưu trữ địa chỉ bắt đầu của con trỏ ngăn xếp Mỗi vector ngắt có độ rộng 4 byte và giữ địa chỉ bắt đầu của chương trình phục vụ ngắt tương ứng, 15 vector ngắt đầu tiên là các ngắt đặt biệt chỉ xảy ra trong lõi Cortex, bao gồm reset vector, non-maskable interrupt, quản
lý fault và error, debug exceptions và ngắt timer của SysTick Các ngắt ngoại
vi người dung bắt đầu từ vetor 16, được định nghĩa bởi nhà sản xuất và được liên kết đến thiết bị ngoại vi Trong phần mềm, bảng vector thường được giữ
Trang 24trong chương trình khởi động bằng cách định vị các địa chỉ trình phục vụ ngắt tại địa chỉ nền của bộ nhớ
Ngắt ngoại
- Bộ điều khiển ngắt ngoại có 19 ngắt và kết nối vào bảng vector ngắt thông qua bộ NIVC 16 ngắt được kết nối thông qua các chân của công GPIO và tạo ngắt khi có xung cạnh lên hoặc cạnh xuống hoặc cả hai 3 ngắt còn lại được kết nối với “TRC alARM”, “USB wake up” và “Power voltage detect” NIVC cung cấp bảng vector ngắt riêng biệt dành cho các ngắt từ 0 - 4, ngắt RTC, ngắt power detect và ngắt USB wake up Các ngắt còn lại chia làm 2 nhóm 5
- 10, và 11 - 15 được cung cấp thêm 2 bảng ngắt bổ sung
- Các ngắt ngoại rất quan trọng trong quản lý tiêu thụ năng lượng của STM32 Chúng có thể được sử dụng để đánh thức nhân vi xử lý từ chế độ STOP khi
cả 2 nguồn tạo nhịp xung chính ngưng hoạt động EXTI có thể tạo ra ngắt để thoát khỏi sự kiện Wait của chế độ Interrupt và thoát khỏi chế độ Wait của chế độ Event
g Timer
STM32 có bốn khối định thời Timer 1 là khối nâng cao dành cho điều khiển động cơ, 3 khối còn lại đảm nhiệm chức năng đa nhiệm Tất cả chúng đều có chung kiến trúc, khối nâng cao sẽ có thêm các đặc tính phần cứng riêng Tất cả các bộ TIMER đều gồm bộ đếm 16 bit với thanh ghi chia tần số dao động 16 bit (prescaler) và thanh ghi tự nạp (auto - reload) Bộ đếm của khối định thời có thể được cấu hình để đếm lên, đếm xuống hay trung tính (lên xuống xen kẽ nhau)
Xung nhịp cho đồng hồ có thể được lựa chọn dựa trên 8 nguồn khác nhau: từ đồng hồ chuyên biệt được lấy từ đồng hồ hệ thống, từ xung nhịp chân ra lấy từ khối định thời khác, hoặc từ nguồn xung nhịp ngoại Khối định thời sử dụng cổng chọn để lấy xung nhịp đầu vào thích hợp, người dùng có thể sử dụng chân ETR để điều khiển cổng chọn này
Trang 25Hình 2.7 Sơ đồ khối của timer
Kênh Capture/Compare:
- Mỗi kênh Capture/Compare được điều khiển bởi duy nhất một thanh ghi Chức năng của thanh ghi này có thể thay đổi tùy thuộc cấu hình Ở chế độ Capture, thanh ghi này có nhóm các bit đảm nhiệm thiết bị lọc dữ liệu đầu vào và chế độ đánh giá các ngõ PWM Một khối Capture cơ bản gồm có bốn kênh vào để cấu hình bộ phát hiện xung (Edge Detector) Khi một xung cạnh
Trang 26lên hay xung cạnh xuống được phát hiện, bộ đếm hiện thời sẽ được cập nhập vào các thanh ghi 16 bit Capture/Compare
- Khi sự kiện Capture xảy ra bộ đếm có thể được khởi động lại hay tạm ngưng Một ngắt DMA có thể được sử dụng trong trường hợp này Ở chế độ Compare, STM32 cung cấp hàm chuẩn so sánh và bộ tạo xung PWM
Hình 2.8 Chế độ Capture/Compare kênh 1
Chế độ PWM:
- Chế độ PWM tạo ra tín hiều có độ rộng xung thay đổi ở một tần số xác định
Ở chế độ tạo xung PWM, giá trị Period được lưu trong thanh ghi Auto reload Trong khi đó giá trị Duty được lưu trong thanh ghi Capture/Compare Có hai kểu tạo xung PWM, canh lề cạnh (Edge - aligned) và canh lề giữa (center - aligned)
- Với Edge - aligned cạnh xuống của tín hiệu trùng với thời điểm thanh ghi reload cập nhật lại giá trị Với center - aligned thời điểm thanh ghi reload cập nhập lại là khoảng giữa của chu kỳ Duty
Trang 27Hình 2.9 Dạng sóng Edge- aligned PWM
Chế độ Encoder Interface:
- Encoder chỉ đọc được trên hai kênh TIMX_CH1 và TIMX_CH2 của tất cả các kênh timer (1, 2, 3, 4, 8) Chọn chế độ encoder interface, SMS = 001 trong thanh ghi TIMx_SMCR nếu bộ đếm chỉ đếm cạnh TI2, SMS = 010 nếu là bộ đếm chỉ đếm cạnh TI1 và SMS bằng 011 nếu nó được đếm trên cả TI1 và TI2
- Chọn TI1 và TI2 polarty bằng cách lập trình các bit CCP1 và CCP2 trong thanh ghi TIMx - CCER, khi cần thiết ta nên lập trình bộ lọc đầu vào filter để giảm nhiễu STM32 hỗ trợ 3 chế độ 1x 2x và 4x, ở chế độ 4x encoder sẽ được nhân bốn độ phân giải
Trang 282.1.3 Kit STM32F407 Discovery
a Giới thiệu chung:
Kit STM32F407 Discovery hiện là loại kít được sử dụng ở rất nhiều trường đại học hiện nay trong giảng dạy vi điều khiển ARM, nếu so sánh về ngoại vi và sức mạnh của STM32F407 Discovery so với các dòng ARM của các hãng khác thì ở cùng một tầm giá, ARM của ST vượt trội về cấu hình và ngoại vi hơn rất nhiều Tích hợp sẵn nhiều công cụ có thể tận dụng tối đa sức mạnh của vi điều khiển STM32F407VET6
Thông số kỹ thuật:
- Vi điều khiển chính: STM32F407VET6 Micocontroller Featuring 32-bit ARM Cortex-M4, 1 Mb Flash, 192 Kb Ram và được đóng gói trong 1 con chip với 100 chân
- Tích hợp sẵn mạch nạp và mạch Debug St-Link/V2
- Hoạt động với tần số rất cao 168mhz
- Nguồn cấp từ cổng Mini USB qua các ic nguồn chuyển thành 3.3 vôn để cấp cho MCU
- Có sẵn các chân nguồn 3v và 5v
- Có sẵn cảm biến gia tốc
- Có sẵn bộ xử lý âm thanh St Mems Mp4dt02
- Cảm biến chuyển động St Mems Lis32dl
- Có sẵn bộ dac với công nghệ class D
- Có sẵn 8 led
- Có nút nhấn và nút Reset tích hợp
- Có cổng Micro USB OTG
Trang 29 Dưới đây là sơ đồ chân STM32F407 Discovery
Hình 2.10 Hình ảnh sơ đồ chân STM32F407 Discovery
Trang 30 Hình ảnh thực tế của Kit STM32F407 Discovery
Hình 2.11 Hình ảnh thực tế Kit STM32F407 Discovery
- Một số thông số về bộ nhớ của STM32F407 Discovery cần lưu ý khi viết chương trình
- Flash memory: bộ nhớ có thể ghi được, dữ liệu không bị mất khi mất điện Ta
có thể xem bộ nhớ này như một nơi dùng để chứa dữ liệu Chương trình được viết cho STM32F407 discovery sẽ được lưu ở đây Kích thước vùng nhớ này thường dựa vào vi điều khiển được sử dụng Ở đây là STM32F407VET6 với thông số 1 Mb flash memory Loại bộ nhớ này chịu được khoảng 10,000 lần ghi / xóa
- Ram: giống ram của máy tính, sẽ bị mất dữ liệu khi ngắt điện nhưng tốc độ
đọc ghi xóa nhanh Kích thước nhỏ hơn flash memory
- Eeprom: bộ nhớ tương tự flash memory nhưng có chù kỳ ghi/xóa cao hơn –
khoảng 100,000 lần và có kích thước rất nhỏ Để đọc/ghi dữ liệu ta có thể dùng thư viện eeprom của STM
Trang 312.2 MODULE BLUETOOTH HC-05
2.2.1 Giới thiệu giao thức UART
Giới thiệu về giao thức truyền UART: Thuật ngữ UART trong tiếng anh là viết
tắt của cụm tự Universal Synchronous & Synchronous Serial Reveiver and Transmitter Nghĩa là bộ truyền nhận nối tiếp không đồng bộ UART thường được dùng trong máy tính công nghiệp, truyền thông, vi điều khiển hay một số các thiết bị truyền tin khác Mục đích của UART sinh ra là để truyền tín hiệu qua lại lẫn nhau hay truyền từ vi điều khiển tới vi điều khiển hoặc truyền từ ngoại vi tới vi điều khiển
Trong đó hai thiết bị giao tiếp với nhau thông qua giao thức UART bằng hai đường dẫn RX (read) và TX (transmit) Vì phương thức giao tiếp không đồng bộ nên hai thiết bị giao tiếp với nhau phải được thống nhất về khung truyền, tốc độ truyền
Hình 2.12 Cách kết nối hai thiết bị sử dụng giao thức UART.
Hình 2.13 Khung truyền dữ liệu của giao thức UART
Trong đó:
- Start bit: Báo hiệu quá trình truyền dữ liệu
- Data bit: Dữ liệu giao tiếp, thường là 8 bit và có thể thay đổi bằng lập trình
Trang 32- Parity bit: Bit kiểm tra chẵn lẻ, dùng để phát hiện lỗi
- Stop bit: Báo hiệu kết thúc chu trình truyền 1 frame bt dữ liệu
2.2.2 Giới thiệu giao thức Bluetooth
Bluetooth là chuẩn truyền thông không dây để trao đổi dữ liệu ở khoảng cách ngắn Chuẩn truyền thông này sử dụng sóng radio ngắn (UHF radio) trong dải tần số ims (2.4 tới 2.485 GHz) Khoảng cách truyền của các loại Bluetooth vào khoảng 10m
Nó giúp trao đổi dữ liệu của các thiết bị điện tử ở tầm gần mà không cần thông qua bất
kỳ sợi dây nào
Các chuẩn kết nối:
- Qua lịch sử phát triển thì bluetooth có nhiều chuẩn kết nối, và càng ra đời sau thì tốc độ cũng như tính năng được cải thiện rất nhiều
- Bluetooth 1.0: Tốc độ 1MBSP nhưng nhiều lỗi về tương thích
- Bluetooth 1.1: Phiên bản sửa lỗi của 1.0 và không thay đổi tốc độ
- Bluetooth 1.2: Thời gian dò tìm và kết nối nhanh hơn 1.1
- Bluetooth 2.0: Ổn định hơn, tốc độ và kết nối nhanh hơn
- Bluetooth 2.1: Cải tiến thêm tính năng
- Bluetooth 3.0: Tốc độ lên đến 24MBSP
- Bluetooth 4.0: Vừa tiết kiệm năng lượng vừa truyền tải nhanh
- Bluetooth 4.1: Cải thiện lỗi chồng chéo dữ liệu với mạng 4G
- Bluetooth 4.2: Cải thiện tốc độ gấp 2.5 lần so với Bluetooth 4.1
Trang 33Hình 2.14 Mặt trên module bluetooth HC-05
Hình 2.15 Mặt dưới module bluetooth HC-05
Các chân giao tiếp của module
- KEY: Chân chọn chế độ hoạt động AT hoặc data mode
- VCC: Chân cấp nguồn 3.6 đến 6VDC
- GND: Chân nối với nguồn GND
- TXD, RXD: Hai chân UART để giao tiếp với vi điều khiển
- STATE: Chân thả nổi, không cần quan tâm
Các chế độ hoạt động
- HC-05 có hai chế độ hoạt động là Command Mode và Data Mode
- Ở chế độ Command Mode ta có thể giao tiếp với Module thông qua cổng Serial trên Module bằng tập lệnh at quen thuộc Ở chế độ độ Data Mode Module có thể truyền nhận dữ liệu tới các thiết bị khác Chân KEY dùng để
Trang 34chuyển đổi qua lại giữa hai chế độ này Có hai cách để bạn có thể chuyển Module hoat động trong chế độ Data Mode
- Nếu đưa chân này lên mức logic cao trước khi cấp nguồn Module sẽ đưa vào chế độ Command Mode với Baudrate mặc định 38400 Chế độ này cần thiết khi không biết Baudrate trong Module được thiết lập ở tốc độ bao nhiêu Khi
di chuyển sang chế độ này đèn led trên Module sẽ nhấp nháy chậm khoảng 2s Và ngược lại khi chân KEY nối mức logic thấp trước khi cấp nguồn Module sẽ hoạt động ở chế độ Data Mode
- Nếu Module đang hoạt động ở chế độ Data Mode, để có thể đưa Module vào hoạt động ở chế độ Command Mode bạn đưa chân KEY lên mức cao Lúc này Module sẽ vào chế độ Command Mode nhưng với tốc độ Baudrate được bạn thiết lập ở lần cuối cùng Vì thế bạn cần phải biết Baudrate hiện tại của thiết bị để có thể tương tác được với nó Chú ý nếu Module của bạn chưa thiết lập lại lần nào thì những thông số mặc định của nó như sau:
Baudrate - 9600, Data - 8 bits, Stop bits - 1, Parity - không có
- Ở chế độ Master: Module sẽ tự động dò thiết bị Bluetooth khác và tiế+n hành
ghép chủ động mà không cần thiết lập gì thêm
2.2.4 Các tập lệnh
Các tập lệnh AT
- AT: Lệnh test, nó sẽ trả về ok nếu Module sẽ hoạt động ở Command Mode
- AT + version?: Trả về Firmware hiện tại của Module
- AT + uart=9600,0,0: Thiết lập Baudrate 9600, 1 bit Stop, No Parity
Các tập lệnh Master
- AT + rmaad: Ngắt kết nối với các thiết bị đã ghép
- At + role = 1: Đặt Module ở Master
Trang 35- At + reset: Reset lại thiết bị
- At+cmode=0: Cho phép kết nối với bất kỳ địa chỉ nào
- At+inqm=0,5,5: Dừng tìm kiếm thiết bị khi đã tìm được 5 thiết bị hoặc sau 5s
- At + pswd = 1234: Cài đặt Passkey cho thiết bị
- At + inq: Bắt đầu tìm kiếm thiết bị để ghép nối
- Sau lệnh này một loạt các thiết bị tìm thấy được hiển thị Định ra kết quả sau lệnh này như sau: Inq: Address, Type, Signal
- Phần địa chỉ sẽ có định dạng như sau: 0123:4:567890 Để sử dụng địa chỉ này trong các lệnh tiếp theo ta phải thay dấu “:” thành “,” Ví dụ 0123:4:5678990 -> 0123,4,567890
- AT + pair = <Address>,<Timeout>: Đặt Timeout(s) khi kết nối với 1 Slave
- At + Link = <Address>: Kết nối với Slave
Các lệnh ở chế độ Slave
- At + Orgl: Reset lại cài đặt mặc định
- At + Raad: Xóa mọi thiết bị đã ghép nối
- At + Role = 0: Đặt là chế độ Slave
- At + Addr: Hiển thị địa chỉ của Slave
2.3 MODULE LCD TFT
2.3.1 Giới thiệu giao thức I2C
Giao tiếp I2C là viết tắt của Inter Integarated Circuit, là một truyền phương thức truyền dẫn Bus nối tiếp được phát triển bởi hãng sản xuất linh kiện điện tử Philips SemIconductor Ban đầu, loại Bus này chỉ sử dụng trong các linh kiện của Philips nhưng sau này do tính đơn giản và sự ưu việt của nó, I2C dần dần được chuẩn hóa và dùng rộng rãi trong các Module truyền thông nối tiếp của các loại vi mạch tích hợp ngày nay
Một giao tiếp I2C gồm 2 dây: SDA (Serial Data) là đường truyền dữ liệu hai chiều, và dây SCL (Serial Clock) là đường truyền xung đồng bộ I2C truyền với tốc độ tiêu chuẩn là 100KHz và tốc độ cao là 400KHz I2C có thể hoạt động chế độ một chủ một tớ hoặc một chủ nhiều tớ
Quá trình truyền I2C như sau: Bên chủ truyền tín hiệu Start vào tớ, sau đó nó sẽ gửi liên tiếp 7 bits dữ liệu chứa địa chỉ bên tớ mà nó muốn giao tiếp Các bit msb sẽ
Trang 36truyền trước Bit thứ 8 là quy định nhận bit “0” hoặc gửi bit “1” của thiết bị tớ, tiếp theo
là bit ack để xác nhận thiết bị có nhận đủ 1 byte hay không, cuối cùng là tín hiệu stop
để kết thúc quá trình truyền
Hình 2.16 Mô tả phương thức truyền I2C
I2C trong STM32F407 Discovery hỗ trợ giao tiếp với mạch tích hợp ngoài Giao diện I2C có thể cấu hình hoạt động ở chết độ Slave hoặc Master Có hai ngắt cho một nhân Cortex, một cho địa chỉ và một cho truyền nhận Thêm vào đó, để đảm bảo dữ liệu truyền được chính xác thì STM32F407 Discovery được tích hợp thêm khối kiểm tra lỗi vào giao diện I2C để kiểm tra mã CRC8 bits và được thực hiện bởi phần cứng
2.3.2 Màn hình LCD TFT
Màn hình sử dụng có tên mã “ER-TFTMO70-4V2.1” Là một màn hình LCD kích thước 7 inch điều khiển bằng Chip SSD1963 sử dụng giao thức cổng song song
Độ phân giải màn hình 800x480 với khả năng hiển thị lên đến 16.5 triệu màu sắc, góc nhìn rộng và hình ảnh sắc nét
Trang 37Hình 2.17 Mặt trước màn hình LCD TFT
Hình 2.18 Mặt sau màn hình LCD TFT
Bảng 2.2 Đặc điểm kỹ thuật của màn hình LCD TFT
Trang 38Kiểu kết nối FFC or Pin Header
Bảng 2.3 Sơ đồ chân của màn hình LCD TFT
3 /CS Chân lựa chọn chip, tích cực mức thấp
5 E_ /RD 6800 Mode: E(cho phép tín hiệu)
8080 Mode: RD#(đọc tín hiệu nhấp nháy)
6800 Mode: R/W#
0:xung ghi 1:xung đọc
8080 Mode: WR#(ghi tín hiệu nhấp nháy)
7 E/RESET_NC Chân Reset, tích cực mức thấp
Chân dữ liệu
8-bit MCU interface: DB0-DB7;
9-bit MCU interface: DB0-DB8;
16-bit MCU interface: DB0-DB15;
18-bit MCU interface: DB0-DB17;
24-bit MCU interface: DB0-DB23;
Trang 3934
RTP CLK_XL CTP SCL
RTP CLK_XL: Đầu vào xung clock bên ngoài, dạng logic
CTP SCL: Xung clock
35
RTP DIN_YU CTP_SDA RTP DIN_YU: Dữ liệu đầu vào, dạng logic,
hoạt động mỗi cạnh lên của xung clock CTP_SDA: Ngõ vào ra nối tiếp
36
TP DOUT_YD CTP_INT
TP DOUT_YD: Dữ liệu đầu ra, dạng logic, hoạt động mỗi cạnh lên của xung clock CTP_INT: Gửi tín hiệu ngắt tới vi điều khiển cho biết sẵn sàng để đọc dữ liệu ngắt đó
CTP INT
CTP_WAKE: Tín hiệu ngắt thông báo sẵn sàng từ ngủ đông sang chế độ hoạt động CTP INT: Tín hiệu ngắt để thông báo cho bộ
xử lý máy chủ rằng dữ liệu cảm ứng đã sẵn sàng để đọc
38 TP PEN_VSS Bút ngắt, ngõ ra cổng logic mạch CMOD mở
2.4 MODULE RELAY SSR
2.4.1 Giới thiệu Relay SSR
SSR là viết tắt của Solid State Relay, tiếng việt có nghĩa là rơ le trạng thái rắn Relay này không dùng công tắc cơ khí đóng mở như Relay bình thường mà sử dụng công tắc bán dẫn để đóng cắt mạch Nó đóng vai trò là một thiết bị chuyển mạch điện tử bật hoặc tắt khi có một điện áp nhỏ bên ngoài được đặt trên các đầu nối điều khiển của
nó
SSR là loại thiết bị điện chuyển mạch điện tử không tiếp xúc có hiệu suất tuyệt vời và sử dụng công nghệ, thiết bị tiên tiến Đầu vào của nó chỉ yêu cầu một dòng điều khiển nhỏ và khả năng tương thích cực tốt với TTL, HTL, mạch tích hợp CMOS Mạch đầu ra của SSR thông qua Thyristor hoặc bóng bán dẫn công suất cao để kết nối và ngắt kết nối dòng tải Đầu vào và đầu ra kết nối với Photocoupling (1 oại opto quang), do đó
nó có rất nhiều ưu việt, chẳng hạn như đáng tin cậy, không có tiếng ồn, độ bền cao, trọng lượng nhỏ, không xảy ra tia lửa, không có nhiễu do dòng cảm ứng giống như Relay cơ khí, không có sự ăn mòn, không có rung động và độ ồn
Trang 40 Hiện nay SSR được sử dụng rộng rãi trong các thiết bị ngoại vi máy tính, nhiệt điện, máy CNC, hệ thống điều khiển từ xa, thiết bị tự động hóa công nghiệp, đèn tín hiệu, và rất nhiều ứng dụng khác nhờ những tính năng ưu việt của nó mang lại
Hình 2.19: Relay SSR
Hình 2.20: Cấu tạo bên trong một SSR điển hình