Tải bản đầy đủ (.pdf) (59 trang)

Thiết kế và điều khiển hệ thống ổn định nhiệt độ cho lò ấp trứng loại nhỏ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.58 MB, 59 trang )

NHIỆM VỤ ĐỒ ÁN
Nhiệm vụ của đề tài là tập trung vào tìm hiểu Thiết kế và điều khiển hệ
thống ổn định nhiệt độ cho lò ấp trứng loại nhỏ, nội dung của đề tài bao gồm:
 Khảo sát và phân tích hệ thống lò ấp trứng, yêu cầu nhiệt độ của lò.
 Thiết kế cơ cấu phần cứng nhằm thu thập nhiệt độ và điều khiển sự ổn
định nhiệt.
 Lập trình điều khiển ổn định nhiệt cho lò.
 Viết báo cáo tổng kết đồ án.

1


LỜI CAM ĐOAN
Tôi xin cam đoan cuốn đồ án này do chính tôi nghiên cứu. Hệ thống phần
cứng và chương trình phần mềm do tôi thiết kế và xây dựng. Các thông tin số
liệu trong đồ án là hoàn toàn trung thực, chính xác và có nguồn gốc rõ ràng.
Trong quá trình nghiên cứu tôi có tham khảo một số tài liệu có trong danh mục
tài liệu tham khảo được liệt kê cuối đồ án.
Sinh viên

Nguyễn Văn Huân

2


MỤC LỤC
NHIỆM VỤ ĐỒ ÁN............................................................................................1
LỜI CAM ĐOAN................................................................................................2
MỤC LỤC ..........................................................................................................3
DANH MỤC HÌNH ẢNH ...................................................................................5
LỜI NÓI ĐẦU ....................................................................................................7


CHƯƠNG 1. TỔNG QUAN VỀ VI ĐIỀU KHIỂN STM32 ................................8
1.1. Lịch sử hình thành và phát triển................................................................8
1.1.1. Giới thiệu ...........................................................................................8
1.1.2. Cortex là gì..........................................................................................9
1.2. Đặc điểm của ARM STM32 ....................................................................10
1.2.1. Các giai đoạn phát triển của STM32..................................................10
1.2.2. Tính ưu việt.......................................................................................11
1.2.3. Sự an toàn .........................................................................................12
1.2.4. Tính bảo mật .....................................................................................12
1.2.5. Phát triển phần mềm..........................................................................13
1.2.6. Dòng Performance và Access của STM32.........................................13
1.3. Lõi Cortex-M0 .......................................................................................14
1.4. So sánh giữa các dòng ARM ...................................................................15
1.5. Giới thiệu kit STM32F0 ..........................................................................16
1.5.1. Tổng quan kít STM32F051R8T6.......................................................17
1.5.2 Cấu trúc phần cứng STM32F0............................................................19
1.5.3. Các khối chức năng kit STM32F0 .....................................................20
1.6. Mạch nạp.................................................................................................30
1.7. Chương trình biên dịch Keil c và cách tạo project...................................31
1.7.1. Chương trình biên dịch Keil C v4......................................................31
1.7.2.Tạo Project mới..................................................................................34
CHƯƠNG 2. KHẢO SÁT, PHÂN TÍCH BÀI TOÁN ĐIỀU KHIỂN NHIỆT ĐỘ
TRONG LÒ ẤP TRỨNG LOẠI NHỎ...............................................................42
2.1. Giới thiệu ................................................................................................42

3


2.2. Yêu cầu hệ thống.....................................................................................42
2.3. Phân tích các khối chức năng ...............................................................43

2.3.1. Khối cảm biến(LM35).......................................................................43
2.3.2. Khối Nguồn.......................................................................................44
2.3.3. Khối hiển thị LCD.............................................................................45
2.3.4. Khối xử lí trung tâm KIT STM32F051R8T6 .....................................47
CHƯƠNG 3: THIẾT KẾ HỆ THỐNG VÀ KẾT QUẢ THỰC NGHIỆM..........49
3.1. Thiết kế hệ thống.....................................................................................49
3.1.1. Sơ đồ mạch nguyên lí từng khối ........................................................49
3.1.2. Sơ đồ tổng thể hệ thống.....................................................................51
3.3 Chương trình hệ thống..............................................................................52
3.4. Kết quả hệ thống .....................................................................................55
3.5. Đánh giá kết quả......................................................................................56
KẾT LUẬN.......................................................................................................57
TÀI LIỆU THAM KHẢO .................................................................................58

4


DANH MỤC HÌNH ẢNH
Hình 1.1. Chíp ARM thế hệ thứ nhất M1.............................................................8
Hình 1.2 Biểu đồ các giai đoạn phát triển của STM32 .......................................11
Hình 1.3 Đặc điểm cuả bốn nhánh trong họ STM32 ..........................................14
Hình 1.4. Sự phát triển của STM32 ...................................................................15
Hình 1.5. Biểu đồ thể hiện tốc độ xử lí của các chip STM32.............................15
Hình 1.6. Cấu trúc các dòng chip STM32 .........................................................16
Hình 1.7. Hình ảnh kit STM32F0 .....................................................................17
Hình 1.8. Thông số kỹ thuật của kit STM32F0 ..................................................18
Hình 1.9. Sơ đồ khối STM32F0-Discovery........................................................19
Hình 1.10. Mặt trên của KIT STM32F0.............................................................21
Hình 1.11. Mặt dưới của KIT STM32F051R8T6 ...............................................22
Hình 1.12. Nạp chương trình CN2 ....................................................................23

Hình 1.13. Kết nối CN3 (SWD)........................................................................23
Hình 1.14. Nạp chương trình CN3 (SWD)........................................................24
Hình 1.15. Vị trí các Led ...................................................................................27
Hình 1.16. Vị trí các nút bấm trên KIT ..............................................................28
Hình 1.17. Mạch nạp j-link V7 ..........................................................................30
Hình 1.18. Mạch nạp J-link V8..........................................................................30
Hình 1.19. Truy nhập trang chủ Keil C và ấn download ....................................31
Hình 1.20. Điền thông tin cá nhân .....................................................................31
Hình 1.21. Click để tải phần mềm về máy .........................................................32
Hình 1.22. Tải Keil C về máy ............................................................................32
Hình 1.23. Cài đặt chương trình.........................................................................33
Hình 1.24. Cài đặt chương trình(tiếp) ................................................................33
Hình 1.25. Chọn đườg dẫn và ấn “ Next”...........................................................34
Hình 1.26. Ấn Next để cài đặt và chờ kết thúc ...................................................34
Hình 1.27. Tạo project mới................................................................................35
Hình 1.28. Chọn đường dẫn tới thư mục để lưu project và đặt tên cho project ...35
Hình 1.29. Chọn vi điều khiển muốn lập trình ...................................................36

5


Hình 1.30. Thêm các thành phần cần trong project ............................................36
Hình 1.31. Thêm thư viện..................................................................................37
Hình 1.32. Project đã đủ thư viện ......................................................................37
Hình 1.33. Cửa sổ Options for target .................................................................38
Hình 1.34. Chọn tần số thạch anh ......................................................................38
Hình 1.35. Tạo file .hex.....................................................................................39
Hình 1.36. Thêm thư viện trong C/C++ .............................................................39
Hình 1.37. Chọn công cụ nạp.............................................................................40
Hình 1.38. Viết code cho chương trình ..............................................................40

Hình 1.39. Kết quả dịch chương trình................................................................41
Hình 2.1. Sơ đồ khối hệ thống đo nhiệt hiển thị LCD ........................................43
Hình 2.2. Sơ đồ chân cảm biến LM35................................................................43
Bảng 2.3. Chức năng chân LCD 16x2................................................................45
Hình 2.4. Bảng chức năng các chân LCD ..........................................................46
Hình 2.5. Kết nối LCD 16x2 với VĐK ..............................................................47
Hình 2.6. KIT STM32F051R8T6 ......................................................................47
Hình 3.1. Mạch nguyên lí khối cảm biến ...........................................................49
Hình 3.2. Sơ đồ mạch nguyên lí khối vi điều khiển............................................50
Hình 3.3. Mạch nguyên lí khối hiển thị LCD .....................................................50
Hình 3.4. Sơ đồ tổng thể hệ thống......................................................................51
Hình 3.5. Sơ đồ mạch nguyên lý........................................................................51
Hình 3.6. Hệ thống đo nhiệt độ sử dụng cảm biến LM35...................................55

6


LỜI NÓI ĐẦU
Trong hoạt động sản xuất nông nghiệp hiện nay, việc tự động hóa khâu
sản xuất là rất quan trọng. Nhiều năm trở lại đây, có rất nhiều ứng dụng của vi
điều khiển vào hoạt động chăn nuôi, …Một trong những yếu tố quan trọng của
ngành nông nghiệp chăn nuôi gia cầm là khâu sản xuất con giống, để nâng cao
chất lượng sản xuất đòi hỏi phải có những côn giống tốt nhất. Từ thực tế thấy
được tầm quan trọng của việc ấp nở con giống từ trứng gia cầm và đặc biệt là
việc ổn định nhiệt độ lò ấp trứng. Vì thế em đã lựa chọn đề tài “Thiết kế và điều
khiển hệ thống ổn định nhiệt độ cho lò ấp trứng loại nhỏ”.
Trong quá trình hoàn thành đề tài do kinh nghiệm và kiến thức còn hạn
chế nên em không tránh khỏi những thiếu sót. Em rất mong nhận được sự chỉ
bảo, góp ý của các thầy cô để báo cáo của em được hoàn thiện hơn
Em xin chân thành cảm ơn các thầy cô giáo trong trường Đại học Công

Nghệ Thông Tin và Truyền Thông - Đại học Thái Nguyên và đặc biệt là cô giáo
ThS. Lưu Thị Liễu - Khoa Công Nghệ Điện Tử và Truyền Thông đã tận tình chỉ
bảo, hướng dẫn, giúp đỡ và tạo mọi điều kiện thuận lợi giúp em hoàn thành đề
tài này.
Thái Nguyên, tháng 6 năm 2016
Sinh viên thực hiện

Nguyễn Văn Huân

7


CHƯƠNG 1. TỔNG QUAN VỀ VI ĐIỀU KHIỂN STM32
1.1. Lịch sử hình thành và phát triển
1.1.1. Giới thiệu
ARM (Acorn RISC Machine) là một loại cấu trúc vi xử lý 32-bit kiểu
RISC (Reduced Instructions Set Computer - Máy tính với tập lệnh tối giản) được
sử dụng rộng rãi trong các hệ thống nhúng. Do có đặc điểm tiết kiệm năng lượng
nên các bộ vi xử lí ARM ngày càng chiếm ưu thế trong các sản phẩm thiết bị
điện tử di động.
Chip ARM bắt đầu được thiết kế từ năm 1983 trong một dự án phát triển
của công ty máy tính Acorn. Nhóm thiết kế dẫn đầu bởi Roger Wilson và Steve
Furber và năm 1985 nhóm đã cho ra đời mẫu chip ARM thế hệ đầu tiên có tên là
ARM1.

Hình 1.1. Chíp ARM thế hệ thứ nhất M1
Năm 1986 nhóm đã hoàn thành sản phẩm thực được gọi tên là ARM2,
ARM2 có đường truyền dữ liệu 32-bit, không gian địa chỉ 26-bit cho phép quản
lý đến 64 Mbyte địa chỉ và 16 thanh ghi 32-bit. Một trong những thanh ghi này
đóng vai trò là bộ đếm chương trình với 6 bit cao nhất và 2 bit thấp nhất lưu giữ


8


các cờ trạng thái của bộ vi xử lý. Có thể nói ARM2 là bộ vi xử lý 32-bit khả dụng
đơn giản nhất trên thế giới, chỉ gồm 30.000 transistor. Sự đơn giản như vậy có
được nhờ ARM không có vi chương trình và cũng giống như hầu hết các CPU
vào thời đó, không hề chứa cache. Vì có cấu trúc đơn giản nên ARM có đặc điểm
tiêu thụ công suất thấp đồng thời vẫn đảm bảo tính năng vượt trội so với các
dòng vi xử lí khác. Thế tiếp theo là ARM3, ARM3 được tạo ra với 4KB cache và
có chức năng được cải thiện tốt hơn các thế hệ trước đó.
Vào những năm cuối thập niên 80, hãng máy tính Apple Computer bắt đầu
hợp tác với Acorn để phát triển các thế hệ lõi ARM mới và kết quả của sự hợp
tác này là sự ra đời của thế hệ ARM6
Hiện tại thì ARM vẫn tiếp tục phát triển, cập nhật kiến trúc này một cách
toàn diện hơn. Hiện nay phiên bản được sử dụng phổ biến đó là phiên bản ARM7
và đã và đang phát triển phiên bản ARM8 sử dụng điện toán xử lý 64 bít.
Trong vài năm trở lại đây, một trong những xu hướng chủ yếu của các
thiết kế với vi điều khiển là sử dụng các chip ARM7 và ARM9 như một vi điều
khiển đa dụng. Ngày nay các nhà sản xuất IC đưa ra thị trường hơn 240 dòng vi
điều khiển sử dụng lõi ARM. Tập đoàn ST Microelectronic vừa cho ra mắt dòng
STM32, vi điều khiển đầu tiên dựa trên nền lõi ARM Cortex-M3 thế hệ mới do
hãng ARM thiết kế, lõi ARM Cortex-M3 là sự cải tiến của lõi ARM7 truyền
thống. Dòng STM32 thiết lập các tiêu chuẩn mới về hiệu suất, chi phí, cũng như
khả năng đáp ứng của ứng dụng tiêu thụ năng lượng thấp và tính điều khiển thời
gian thực khắt khe.
1.1.2. Cortex là gì
Dòng ARM Cortex là một 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 chip 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 phân nhánh chính: dòng A dùng cho các ứng dụng
cao cấp, dòng R dùng cho các ứng dụng thời gian thực như các đầu đọc và dòng
M dùng cho các ứng dụng vi điều khiển và chi phí thấp. STM32 đươc thiết kế
dựa trên dòng Cortex-M3, dòng Cortex-M3 được thiết kế đặc biệt để nâng cao

9


hiệu suất hệ thống, kết hợp với tiêu thụ năng lượng thấp. Cortex-M3 được thiết
kế dựa trên nền kiến trúc mới do đó chi phí sản xuất thấp để cạnh tranh với các
dòng vi điều khiển 8 bit và 16 bit truyền thống.
Cortex-M3 được thiết kế như một lõi chi phí thấp nhưng nó vẫn là một
CPU 32 bit với 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ợ một 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 ( read time operating system). Các chíp ARM7 và ARM9 có
2 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 32 bit và tập lệnh 16 bit. Tập lệnh Thumb-2 được thiết kế đặc biệt
dành cho chương trình 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.
1.2. Đặc điểm của ARM STM32
1.2.1. Các giai đoạn phát triển của STM32
Hiện nay STM32 đã chải qua 3 giai đoạn:
- Cortex-M0: Đây là thế hệ đầu tiên của STM32 bao gồm các chip
STM32F0
- Cortex-M3: Đây là thế hệ thứ 2 của STM32 bao gồm các chip
STM32L1, STM32F1, STM32F2

- Cortex-M4: Đây là thế hệ thứ 3 của STM32 bao gồm các chip
STM32F3, STM32F4

10


Hình 1.2 Biểu đồ các giai đoạn phát triển của STM32
1.2.2. Tính ưu việt
Ngoại vi của STM32 giống như những vi điều khiển khác, có hai bộ
chuyển đổi ADC, timer, I2C, SPI, USB và RTC. Tuy nhiên mỗi ngoại vi trên đều
có đặc tính riêng. Ví dụ như bộ ADC 12 bit có gắn một cảm biến nhiệt độ để tự
động điều chỉnh khi nhiệt độ thay đổi và hỗ trợ nhiều mode chuyển đổi. Mỗi bộ
timer có bốn khối capture compare, mỗi khối timer có thể kiên kết với các khối
timer khác để tạo ra một mảng các timer tinh vi. Một timer cao cấp chuyên hỗ trợ
điều khiển động cơ, với 6 đầu vào PWM với dead time lập trình được và một
đường break input sẽ buộc tín hiệu PWM sang một trạng thái an toàn đã được cài
sẵn. Ngoại vi nối tiếp SPI có một khối kiểm tổng CRC bằng phần cứng cho 8 và
16 word hỗ trợ tích cực cho giao tiếp thẻ nhớ SD hoặc MMC.
STM32 có hỗ trợ thêm 7 kênh DMA(Direct Memory Access). Mỗi kênh có
thể dùng để truyền dữ liệu đến các thanh ghi ngoại vi hoặc từ các thanh ghi ngoại
vi đi với kích thước từ (word ) dữ liệu truyền có thể là 8/16 hoặc 32 bit. Mỗi ngoại
vi có thể có một bộ điều khiển DMA đi kèm dùng để gửi hoặc đòi dữ liệu theo yêu
cầu. Một bộ phận sử bus nội và ma trận bus tối thiểu hóa sự tranh chấp bus giữa
truy cập dữ liệu thông qua CPU và các kênh DMA. Điều đó cho phép các đơn vị
DMA hoạt động linh hoạt, dễ dùng và tự động điều khiển các luồng dữ liệu bên
trong vi điều khiển.

11



STM32 là một vi điều khiển tiêu thụ năng lượng thấp và đạt hiệu quả cao.
Nó có thể hoạt động ở điện áp 2V, chạy ở tần số 72 Mhz và dòng tiêu thụ chỉ có
36mA với tất cả các khối bên trong vi điều khiển đều được hoạt động. Kết hợp
với chế độ tiết kiệm năng lượng của Cortex, STM32 tiêu thụ 2µA khi ở chế độ
standby. Một bộ dao động nội RC 8Mhz cho phép chip nhanh chóng thoát khỏi
chế độ tiết kiệm năng lượng trong khi bộ dao động ngoài đang khởi động. Khả
năng nhanh đi vào và thoát khỏi chế độ tiết kiệm năng lượng làm giảm nhiều sự
tiêu hao năng lượng tổng thể.
1.2.3. Sự an toàn
Ngày nay các ứng dụng hiện đại thường phải hoạt động trong môi trường
khắt khe, đòi hỏi tính an toàn cao, cũng như đòi hỏi sức mạnh xử lí và càng nhiều
thiết bị ngoại vi tinh vi. Để đáp ứng các yêu cầu khắt khe đó STM32 cung cấp
một số tính năng phần cứng hỗ trợ các tính năng tốt nhất. Chúng bao gồm một bộ
phát hiện điện áp thấp, một hệ thống bảo vệ xung clock và hai bộ watchdogs. Bộ
đầu tiên là watchdog cửa sổ. Watchdog này phải được làm tươi trong một khung
thời gian xác định. Nếu nhấn nó quá sớm hoặc quá muộn thì nó sẽ bị kích hoạt.
Bộ thứ hai là một Watchdog độc lập, có bộ dao động bên ngoài tách biệt với
xung nhịp hệ thống chính. Hệ thống bảo vệ xung nhịp có thể phát hiện lỗi của
dao động chính bên ngoài (thường là thạch anh) và chuyển sang dùng bộ dao
động nội RC 8Mhz.
1.2.4. Tính bảo mật
Một trong những yêu cầu khắt khe khác của thiết kế hiện đại là nhu cầu
bảo mật mã chương trình để ngăn chặn sao chép trái phép phần mềm. Bộ nhớ
FLASH của STM32 có thể được khóa để chống truy cập đọc Flash thông qua
cổng debug. Khi tính năng bảo vệ được kích hoạt, bộ nhớ Flash cũng được bảo
vệ chống ghi để ngăn chặn mã không tin cậy được chèn vào bảng vecto ngắt.
Hơn nữa bảo vệ ghi có thể được cho phép trong phần còn lại của bộ nhờ Flash.
STM32 cũng có một đồng hồ thời gian thực và một khu vực nhỏ dữ liệu trên
SRAM được nuôi nhờ nguồn pin. Khu vực này có một đầu vào chống giả mạo,
có thể kích hoạt một sự kiện ngắt khi có sự thay đổi trạng thái ở đầu vào này.


12


Ngoài ra một sự kiện chống giả mạo sẽ tự động xóa dữ liệu được lưu trên SRAM
được nuôi bằng nguồn pin.
1.2.5. Phát triển phần mềm
Nếu bạn đã sử dụng một vi điều khiển dựa trên lõi ARM, các công cụ phát
triển đã được hỗ trợ tập lệnh Thumb-2 và dòng Cortex. Ngoài ra ST cũng cung cấp
một thư viện điều khiển thiết bị ngoại vị, một thư viện phát triển USB như một thư
viện ANSI C và mã nguồn đó là tương thích với các thư viện trước đó được công bố
cho vi điều khiển ARM7 và ARM9. Có rất nhiều RTOS mã nguồn mở và thương
mại và middleware (TCP/IP, hệ thống tập tin,.v.v..) hỗ trợ cho họ Cortex. Dòng
Cortex-M3 cũng đi kèm một hệ thống gỡ lối hoàn toàn mới gọi là CodeSight. Truy
cập vào hệ thống CodeSight thông qua cổng Debug (Debug Access Port ), cổng này
hỗ trợ kết nối chuẩn JTAG hoặc giao diện 2 dây (serial wire -2 Pin), cũng như cung
cấp trình điều khiển chạy gỡ lối, hệ thống CodeSight trên STM32 cung cấp một data
watchpoint và một công cụ theo dõi(instrucmentation trace). Công cụ này có thể gửi
thông tin về ứng dụng được lựa chọn đến công cụ gỡ lối. Điều này có thể cung cấp
thêm các thông tin gỡ lối và cũng có thể sử dụng trong quá trình thử nghiệm phần
mềm.
1.2.6. Dòng Performance và Access của STM32
Họ STM32 có hai nhánh đầu tiên riêng biệt: dòng Performance và dòng
Access. Dòng Performance tập hợp đầy đủ các thiết bị ngoại vi và chạy với xung
nhịp tối đa 72Mhz. Dòng Access có các thiết bị ngoại vi ít hơn và chạy với tốc độ
xung nhịp là 32Mhz. Quan trọng hơn là cách bố trí chân (pins layout) và các kiểu
đóng gói chíp (package type) là như nhau giữa dòng Access avf dòng
Performance. Điều này cho phép các phiên bản của STM32 được hoán vi mà
không cần sửa đổi hay sắp xếp lại footprint (mô hình chân của chip trong công cụ
layout bo mạch). Trên PCB (Printed Circuit Board ).

Ngoài 2 dòng performance và Access đầu tiên thì hiện nay ST đã đưa ra
thị trường thêm 2 dòng USB Access và Connectivity như hình bên dưới.

13


Hình 1.3 Đặc điểm cuả bốn nhánh trong họ STM32
1.3. Lõi Cortex-M0
Dòng ARM Cortex-M0 là dòng vi điều khiển lõi ARM có kích thước nhỏ
nhất, tiêu thụ điện năng thấp nhất và có kiến trúc được sắp xếp hợp lý tương
thích để phát triển các ứng dụng. Lõi ARM Cortex-M0 với kích thước rất nhỏ,
tiêu thụ điện năng thấp và tích hợp các đặc tính kỹ thuật hiện đại như:
- CPU Cortex-M0 cung cấp khả năng điều khiển ngắt ngoại lệ gọi là vector
điều khiển ngắt lồng nhau (NVIC), được liên kết chặt chẽ với nhân vi xử lý để cung
cấp các tính năng: hỗ trợ vector ngắt gián đoạn lồng nhau; tiết kiệm bộ vi xử lý và
có khả năng phục hồi; giảm và xác định độ trễ ngắt; thay đổi mức ưu tiên năng
động.
-Dung lượng bộ nhớ Flash ROM lớn.
- Dải điện áp rộng từ 2.5V~5.5V.
- Tích hợp sẵn nhiều ngoại vi như: UART, USB, ISP, I2C, I2S, PWM,
LCD…
- Tích hợp thạch anh nội lên đến 22MHz, có thể điều chỉnh độ chính xác
nhờ phần tử thạch anh bên ngoài 32,768Khz.
- Khả năng hỗ trợ nạp đa năng.
- Có khả năng chống nhiễu tốt, thích hợp cho các ứng dụng dân dụng cũng
như trong công nghiệp.
- Dải nhiệt độ hoạt động từ -40ºC ~ +85ºC.

14



- Cung cấp các ứng dụng mạnh mẽ và khả năng kết nối với nhiều giao
diện ngoại vi.
1.4. So sánh giữa các dòng ARM
Những dòng chip thế hệ sau có tốc độ xử lý cao hơn, RAM và bộ nhớ lớn
hơn.

Hình 1.4. Sự phát triển của STM32
Tốc độ xử lý của chip ngày càng tăng :

Hình 1.5. Biểu đồ thể hiện tốc độ xử lí của các chip STM32
So sánh cấu hình các dòng chip:
- Dòng stm32F0xx là dòng chip cơ bản, không được tích hợp nhiều phần
cứng, phù hợp với các ứng dụng cơ bản.

15


- Các dòng chip stm32F1xx đến stm32F4xx có tích hợp USB2.0 , Ethenet,
CAN, audio –camera.

Hình 1.6. Cấu trúc các dòng chip STM32
1.5. Giới thiệu kit STM32F0
Bộ STM32F0 giúp ta khám phá các tính năng thiết bị và để phát triển các
ứng dụng một cách dễ dàng. Nó được dựa trên vi điều khiển STM32F051R8T6,
một loạt vi điều khiển STM32F0 32-bit ARM ® Cortex ™ -M0, và bao gồm một
công cụ ST-LINK/V2 nhúng gỡ lỗi, đèn LED, nút bấm và một board nguyên
mẫu.

16



1.5.1. Tổng quan kít STM32F051R8T6

Hình 1.7. Hình ảnh kit STM32F0
- Vi điều khiển STM32F051R8T6 gồm 64 KB Flash, 8 MB bộ nhớ RAM
trong một gói LQFP64.
- On-board ST-LINK/V2 với chế độ lựa chọn chuyển sang sử dụng các bộ
như ST-LINK/V2 (với kết nối SWD cho lập trình và gỡ lỗi) .
- Board cung cấp điện: Bus thông qua USB hoặc từ một nguồn cung cấp
điện áp 5 V cung cấp điện bên ngoài ứng dụng bên ngoài: 3 V và 5 V .
- Bốn đèn LED:
+ LD1 (màu đỏ) cho 3,3 V điện vào .
+ LD2 (màu đỏ / xanh lá cây) để giao tiếp USB .
+ LD3 (màu xanh) cho sản lượng PC9.
+ LD4 (màu xanh) cho đầu ra PC8 .

17


- Hai nút bấm (người sử dụng và thiết lập lại).
- Tiêu đề mở rộng cho tất cả các LQFP64 I / O để kết nối nhanh chóng và
dễ dàng tạo mẫu bảng thăm dò.
- Một bảng bổ sung được cung cấp có thể được kết nối với cổng mở rộng
cho mẫu dễ dàng hơn và thăm dò.

Hình 1.8. Thông số kỹ thuật của kit STM32F0
- Thông số kỹ thuật trên kít đóng vai trò rất quan cho người lập trình và
thiết kế các dự án trên kít STM32F0
- Chiều rộng kít là 53.34 mm

- Chiều dài kít là 88.9 mm
- Khoảng các giữa các chân là 2.54 mm

18


1.5.2 Cấu trúc phần cứng STM32F0
Kit

STM32F0-Discovery

được

thiết

kế

trên

vi

điều

khiển

STM32F051R8T6 bao gồm LQFP 64 pin. Hình 2.2 minh họa các kết nối giữa
các thiết bị ngoại vi của nó và STM32F051R8T6 (ST-LINK/V2, nút bấm, đèn
LED và kết nối )

Hình 1.9. Sơ đồ khối STM32F0-Discovery

Vi điều khiển ARM STM32F051R8T6 kết hợp hiệu suất cao Cortex - M0
32-bit RISC lõi hoạt động ở một tần số 48 MHz , tốc độ cao kỷ lục (lên đến 64
Kbytes bộ nhớ Flash và lên đến 8 Kbytes SRAM ) , và một loạt các thiết bị ngoại
vi và I / O. Thiết bị cung cấp tiêu chuẩn giao tiếp truyền thông (2 kết nối I2Cs , 2
kết nối SPIs , và 2 kết nối USARTs ) , 12-bit ADC, 6 timer 16-bit và một bộ đếm
thời gian PWM tiên tiến kiểm soát .
Vi điều khiển STM32F051R8T6 hoạt động trong khoảng nhiệt độ từ - 40
đến 85 ° C nhiệt độ , từ 2,4 V đến 3,6 V cung cấp điện. Một tập hợp toàn diện
các chế độ tiết kiệm năng lượng cho phép thiết kế các ứng dụng năng lượng thấp.

19


Những tính năng này làm cho các vi điều khiển STM32F051R8T6 thích
hợp cho một loạt các ứng dụng như kiểm soát ứng dụng và người sử dụng giao
diện, thiết bị cầm tay , A/V thu và truyền hình kỹ thuật số, thiết bị ngoại vi máy
tính , nền tảng chơi game , xe đạp điện , thiết bị tiêu dùng , máy in , máy quét,
báo động hệ thống , hệ thống liên lạc video…
Các chương trình và gỡ lỗi công cụ ST-LINK/V2 được tích hợp trên
STMF0. Các ST-LINK/V2 nhúng có thể được sử dụng theo 2 cách khác nhau tùy
theo các nước.
+ Chương trình / gỡ lỗi MCU trên ST-Link trên kit
+ Chương trình / gỡ lỗi một MCU trong mạch nạp chương trình ứng dụng
bên ngoài bằng cách sử dụng một cáp kết nối với kết nối SWD CN3.
Các ST-LINK/V2 nhúng chỉ hỗ trợ cho các thiết bị SWD STM32. Để biết
thông tin về việc gỡ lỗi và lập trình các tính năng tham khảo hướng dẫn sử dụng
UM1075 (ST-LINK/V2 trong mạch debugger / lập trình cho STM8 và STM32)
trong đó mô tả chi tiết tất cả các tính năng ST-LINK/V2.
1.5.3. Các khối chức năng kit STM32F0
1.5.3.1. Sơ đồ nguyên lí của KIT STM32F0

Thông qua sơ đồ có thể xác định vị trí các tính năng trên KIT STM32F0.
Pin 1 CN2, CN3, P1 và P2 kết nối được xác định bởi một hình vuông.

20


Hình 1.10. Mặt trên của KIT STM32F0
Đây là sơ đồ kích thước và khoảng cách các chân trên KIT, đây là thông
số rất quan trọng giúp người thiết kế tạo ra thư viện mạch nguyên lý và mạch in
cho linh kiện.

21


Hình 1.11. Mặt dưới của KIT STM32F051R8T6
1.5.3.2. Sử dụng ST-LINK/V2 nạp chương trình cho kit STM32F0
Các chương trình và gỡ lỗi công cụ ST-LINK/V2 được tích hợp trên
STM32F0-DICOVERY. Các ST-LINK/V2 có thể được sử dụng theo 2 cách khác
nhau theo các trạng thái jumper (xem bảng 2):
• Chương trình / gỡ lỗi MCU trên board,
• Chương trình / gỡ lỗi một MCU trong board ứng dụng ngoài bằng cách
sử dụng một cáp kết nối với kết nối SWD CN3.
Các ST-LINK/V2 chỉ hỗ trợ nạp cho các thiết bị SWD STM32.
Để nạp chương trình cho kit STM32F0 ta cần cắm vào hai jumper trên
CN2 như hình dưới đây:

22


Hình 1.12. Nạp chương trình CN2

1.5.3.3. Sử dụng ST-LINK/V2 nạp chương trình bằng mạch nạp ngoài STM32
Có thể sử dụng sử dụng ST-LINK/V2 để chương trình STM32 bằng một
ứng dụng bên ngoài. Đơn giản chỉ cần loại bỏ các jumper 2 từ CN2 như thể hiện
trong hình 2.4 , và kết nối ứng dụng của bạn để kết nối debug CN3 theo bảng
sau:

Hình 1.13. Kết nối CN3 (SWD)

23


Hình 1.14. Nạp chương trình CN3 (SWD)
1.5.3.4. Khối nguồn
- Nguồn được cung cấp bằng máy tính thông qua cáp USB, hoặc một
nguồn điện 5V từ bên ngoài thông qua cáp nguồn.
- D1 và D2 là hai điốt bảo vệ nguồn 5V và 3V khi nguồn được cung cấp
từ bên ngoài.
- Nguồn 5V và 3V có thể được sử dụng như nguồn cung cấp điện đầu ra
cho các ứng dụng được kết nối với chân P1 và P2.
- Nguồn 5V cũng có thể được sử dụng như là nguồn cung cấp năng lượng
đầu vào. Giả sử khi cổng USB không được kết nối với máy PC, trong trường hợp
này, STM32F0 phải được hỗ trợ bởi một đơn vị cung cấp điện hoặc thiết bị phụ
trợ tuân thủ các tiêu chuẩn EN-60.950-1: 2006 + A11/2009, và phải được an toàn
điện áp với khả năng hạn chế.

24


- VDD = 2,0 đến 3,6 V: Nguồn điện bên ngoài cho I / O, cung cấp bên
ngoài thông qua VDD chân.

- VDDA = 2,0-3,6 V: Bên ngoài cung cấp điện tương tự cho ADC, cài đặt
lại các khối, RCS và PLL (điện áp tối thiểu được áp dụng cho VDDA là 2,4 V khi
ADC và DAC được sử dụng). Mức điện áp VDDA phải luôn luôn lớn hơn hoặc
bằng mức điện áp VDD và phải được cung cấp đầu tiên.
- VBAT = 1,65-3,6 V: Cung cấp điện cho RTC, bên ngoài đồng hồ dao
động 32 KHz .
- Các POR giám sát chỉ cung cấp điện áp VDD. Trong giai đoạn khởi
động nó là cần thiết rằng VDDA nên đến đầu tiên và lớn hơn hoặc bằng VDD.
- Các màn hình PDR cả VDD và điện áp cung cấp VDDA, tuy nhiên
người giám sát cung cấp điện VDDA có thể bị vô hiệu hóa (bằng cách lập trình
một chút Lựa chọn chuyên dụng) để giảm điện năng tiêu thụ nếu thiết kế ứng
dụng đảm bảo rằng VDDA cao hơn hoặc bằng VDD.
- Cơ quan quản lý có ba chế độ hoạt động: chính (MR), năng lượng thấp
(LPR) và điện xuống.
- MR được sử dụng trong chế độ hoạt động bình thường (Run)
- LPR có thể được sử dụng trong ngưng chế độ mà nhu cầu điện giảm
- Công suất xuống được sử dụng trong chế độ chờ: sản lượng điều là trở
kháng cao: mạch hạt nhân được hỗ trợ xuống, lôi kéo không tiêu thụ (nhưng nội
dung của sổ đăng ký và SRAM bị mất)
- Điều này luôn được kích hoạt sau khi thiết lập lại. Nó bị vô hiệu hóa ở
chế độ chờ, cung cấp trở kháng đầu ra cao.
- Trong chế độ ngủ , chỉ có CPU được dừng lại. Tất cả các thiết bị ngoại vi
tiếp tục hoạt động và có thể thức dậy CPU khi một ngắt / sự kiện xảy ra
- Dừng chế độ đạt được mức tiêu thụ điện năng rất thấp trong khi giữ lại
nội dung của SRAM và đăng ký . Tất cả các đồng hồ trong lĩnh vực 1,8 V được
dừng lại, PLL, HSI RC và dao động tinh thể HSE bị vô hiệu hóa . Các điều chỉnh
điện áp cũng có thể được đặt trong hoặc bình thường hoặc trong chế độ điện năng
thấp. Thiết bị này có thể được đánh thức từ chế độ dừng của bất cứ dòng nào exti

25



×