Nghiên cứu họ vi điều khiển ST7 của hãng ST Microelectronics để ứng dụng trong đào tạo kỹ thuật công nghệ các sản phẩm thuộc họ vi điều khiển ST7 Nghiên cứu họ vi điều khiển ST7 của hãng ST Microelectronics để ứng dụng trong đào tạo kỹ thuật công nghệ các sản phẩm thuộc họ vi điều khiển ST7 luận văn tốt nghiệp thạc sĩ
Trang 1B Ộ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
MICROELECTRONIC ĐỂ ỨNG DỤNG TRONG ĐÀO
NGÀNH SƯ PHẠM KỸ THUẬT ĐIỆN TỬ
Hà N ội, 2010
Trang 2TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
MICROELECTRONIC ĐỂ ỨNG DỤNG TRONG ĐÀO
Trang 3L ỜI CAM ĐOAN
Tôi xin cam đoan những gì mà tôi viết trong luận văn này là do sự tìm hiểu
và nghiên cứu của bản thân tôi Mọi kết quả nghiên cứu cũng như ý tưởng của các tác giả khác nếu có đều được trích dẫn nguồn gốc cụ thể
Luận văn này cho đến nay chưa được bảo vệ tại bất kỳ một hội đồng bảo vệ
luận văn thạc sỹ nào và chưa được công bố trên bất kỳ một phương tiện thông tin nào
Tôi xin hoàn toàn chịu trách nhiệm về những gì mà tôi đã cam đoan ở trên đây
Hà N ội, ngày 10 tháng 10 năm 2010
Người thực hiện
Hoàng Nh ật Thanh
Trang 4LỜI CẢM ƠN Sau 6 tháng nghiên cứu, đến nay đề tài “ Nghiên cứu họ vi điều khiển ST 7
c ủa hãng ST Microelectronics để ứng dụng trong đào tạo kỹ thuật công nghệ các
s ản phẩm thuộc họ vi điều khiển ST 7” đã hoàn thành mục tiêu ban đầu đề ra
Tôi xin chân thành cảm ơn thầy giáo TS Phạm Văn Bình- Trưởng bộ môn
xử lý mạch tín hiệu – khoa Điện tử viễn thông trường ĐH Bách khoa Hà Nội đã hướng dẫn tận tình để tôi hoàn thành bản luận văn này
Tôi xin được gửi lời cảm ơn chân thành đến các thầy, cô trong khoa Sư
phạm kỹ thuật, Viện đào tạo sau đại học trường Đại học Bách Khoa Hà Nội đã giúp
đỡ tôi rất nhiều về kiến thức chuyên môn và tài liệu nghiên cứu
Chân thành cảm ơn Ban giám hiệu cùng các đồng nghiệp tại trường Cao đẳng Điện tử - Điện lạnh Hà Nội và gia đình đã tạo điều kiện thuận lợi cho tôi học tập và nghiên cứu trong thời gian qua
Tuy bản thân đã rất cố gắng nhưng luận văn khó có thể tránh được thiếu sót,
rất mong nhận được sự góp ý của các thầy cô và đồng nghiệp để đề tài được hoàn thiện hơn
Hà Nội, tháng 10 năm 2010 Người thực hiện: Hoàng Nhật Thanh
Trang 5Chương 1: TỔNG QUAN VỀ VI ĐIỀU KHIỂN
1.1 GI ỚI THIỆU KHÁI QUÁT VỀ VI ĐIỀU KHIỂN 11
1.3.7 ADC- Analog-to-Digital Converter 14
Chương 2: H Ọ VI ĐIỀU KHIỂN ST7 CỦA HÃNG
Trang 62.5.1 Giới thiệu (Introduction) 24
2.11.4 Định địa chỉ NO OFFSET INDEXED 78
Trang 72.11.5 Định địa chỉ SHORT INDEXED ADDRESSING 78
2.11.9 Định địa chỉ SHORT INDIRECT INDEXED 78 2.11.11 Định địa chỉ LONG INDIRECT INDEXED 78
Chương 3: THIẾT KẾ VÀ HỆ THỐNG LẠI KIẾN
THỨC MỘT CÁCH TRỰC QUAN NÂNG CAO
HIỆU QUẢ TIẾP CẬN VỚI VI ĐIỀU KHIỂN
3.2.8 Bài 08 – Tính tổng của 20 số 88 3.2.9 Bài 09 – Tính tổng của hơn 20 số 89 3.2.10 Bài 10 – Tính tổng và trung bình các giá trị trong 91
3.6 H ệ thống kiến thức với những liên kết chặt chẽ 96
Chương 4: Kết luận
Trang 8ADC (Analog-to-Digital Converter): Bộ phận chuyển tín hiệu analog sang tín
hiệu digital
ALU (Arithmetic Logic Unit) là bộ phận thao tác trên các dữ liệu
CISC: là vi điều khiển có tập lệnh phức tạp
CPU (Central Processing Unit): Khối xử lý trung tâm
RISC: là vi điều khiển có tập lệnh đơn giản
ROM (Read Only Memory) là bộ nhớ dùng để lưu giữ chương trình
ICP (In-circuit programming): giao tiếp với thiết bị lập trình bên ngoài
EEPROM: có thể được lập trình hay xóa
I/O: Các cổng dùng để truyền dữ liệu
MOSI: dữ liệu Master Out / Slave In
SCK: Xung nối tiếp ngõ xuất bởi SPI master và ngõ nhập bởi SPI slave
SS: Chọn slave
Operation : chỉ định các lệnh thao tác cho assembly
Operand: đối tượng mà lệnh thao tác
Comment : ghi các ghi chú liên quan đến dòng lệnh
RCF - Reset cờ nhớ ; RSP - Reset Stack Pointer
HALT ; WFI – Chế độ tiêu thụ thấp
TRAP – Ngắt (phần mềm)
RET - Return ; IRET -Interrupt Return: ngắt
SIM – Thiết lập Interrupt Mask ; RIM - Reset Interrupt Mask
Trang 9Hình 2.1: Sơ đồ khối vi điều khiển ST7 Trang 16 Hình 2.2: Sơ đồ các chân vi điều khiển ST7 16 Hình 2.3: Sơ đồ bộ nhớ vi điều khiển ST7 17 Hình 2.4: Sơ đồ các thanh ghi phần cứng (Hardware register) 18
Hình 2.6: Sơ đồ CPU có kiến trúc 8-bit và có 6 thanh ghi nội 24 Hình 2.7: Stack pointer là một thanh ghi 16 bits 26 Hình 2.8: Sơ đồ khối các cổng I/O dùng để truyền dữ liệu 29 Hình 2.9: Sơ đồ khối bộ định thời Watchdog 35 Hình 2.10: Sơ đồ khối bộ định thời 12 bit tự động nạp 38 Hình 2.11: Sơ đồ tín hiệu Pulse Width Modulated (xung được
Hình 2.12: Sơ đồ khối khuôn mẫu gián đoạn 42 Hình 2.13: Đồ thị tín hiệu đầu vào bộ đếm 44 Hình 2.14: Sơ đồ khối giao tiếp ngoại vi nối tiếp SPI 45 Hình 2.15 : Tín hiệu SPI master giao tiếp với các slave 52 Hình 2.16 : Tín hiệu chọn slave bằng phần mềm 53 Hình 2.17 : Tín hiệu quá trình truyền SPI 54 Hình 2.18 : Tín hiệu xóa bit WCOL về 0 56 Hình 2.19 : Hệ thống đơn master điển hình 57
Hình 3.1: Tạo mới file asm để viết ứng dụng 82
Hình 3.3: Các loại phương tiện theo Hình nón tư duy 96 Hình 3.4: Sơ đồ Mind map là cách cho phép biến đổi kiến thức
phẳng và tuyến tính thành dạng cây 97
Trang 10Bảng 2.1: Biểu đồ mô tả những chế độ truy xuất vùng nhớ khác
nhau
Trang 25
Bảng 2.3: Bảng trạng thái quá trình ngắt 32
Bảng 2.4: Bảng trạng thái của các cổng I/O 37
Bảng 2.5: Bảng giá trị các thanh ghi ADC 39
Bảng 3.1: Lưu đồ thuật toán tính tổng X 83
Bảng 3.2: Lưu đồ thuật toán thực hiện đếm 10 84
Bảng 3.3: Lưu đồ thuật toán thực hiện đếm 100 86
Bảng 3.4: Lưu đồ thuật toán thực hiện tính tổng của 20 số 88
Bảng 3.5: Lưu đồ thuật toán thực hiện tính tổng của hơn 20 số 88
Bảng 3.6: Lưu đồ thuật toán tính tổng các giá trị trong bảng 89
Bảng 3.7: Lưu đồ giải thuật điều khiển LED On_Off 92
Bảng 3.8: Lưu đồ giải thuật điều khiển ADC 93
Bảng 3.9: Lưu đồ giải thuật điều khiển LED 7 thanh 94
Trang 111 Lý do ch ọn đề tài
Đổi mới phương pháp dạy học đang là chủ trương của nhà nước ta Nghị quyết
Đại hội đại biểu toàn quốc lần thứ IX đã nêu rõ: "Đổi mới mạnh mẽ phương pháp dạy học, khắc phục lối truyền thụ một chiều, rèn luyện nếp tư duy sáng tạo của người học Từng bước áp dụng các phương pháp dạy học tiên tiến và phương tiện hiện đại vào quá trình dạy học "
Trường Cao đẳng Điện tử - Điện lạnh Hà Nội đang có những khó khăn trong việc đổi mới về phương pháp và phương tiện dạy học và đang từng bước khắc phục những khó khăn và thay đổi cho phù hợp với nhu cầu mới của thời đại về giáo dục và
đào tạo cũng như gắn đào tạo với nhu cầu của xã hội
Hiện nay, trong dũng phỏt triển như vũ bóo của khoa học cụng nghệ, vi điều khiển ngày càng đúng một vai trũ quan trọng Chỳng được ứng dụng rộng rói trong cỏc dõy truyền sản xuất nhỏ, cỏc rụ bốt, cỏc mạch điện tử ứng dụng… Đặc biệt nú vụ cựng cần thiết cho những sinh viờn ngành kĩ thuật trong việc nghiờn cứu khoa học, làm những đồ ỏn nhỏ,v…v Nhưng hầu hết sinh viờn đều khú khăn trong việc tiếp cận
và tỡm hiểu về vi điều khiển Những vướng mắc của sinh viờn thường xuyờn gặp phải như :
Băn khoăn khụng biết dung loại vi điều khiển nào cho phự hợp, hiện nay cú khỏ nhiều loại vi điều khiển khỏc nhau,
Rồi khi chọn vi điều khiển này thỡ lại vướng mắc trong việc tỡm hiểu tài liệu cho phự hợp, dễ hiểu cú thể nhanh chúng nắm bắt được… Hầu hết sinh viờn hiện nay
phải mày mũ tỡm hiểu dần dần qua những người biết trước, hay trờn internet Khụng
cú những hướng dẫn trực quan dễ tiếp cận
Nắm bắt được những khú khăn chung của sinh viờn cũng như chớnh cụng tỏc
giảng dạy của cỏ nhõn tại trường Cao đẳng cụng nghệ núi riờng khi lần đầu tiếp cận
với vi điều khiển, tụi đó chọn đề tài Vi điều khiển để hy vọng sẽ đem lại những bạn sinh viờn cú thể nhanh chúng nắm bắt được và thỏa sức sỏng tạo nghiờn cứu khoa
Trang 12một đồng kiến thức sẽ dần được lấp đầy dần dần qua từng bài học Cũng theo đú cỏc
chức năng cơ bản của vi điều khiển sẽ được xuất hiện đầy đủ qua từng bài tập đơn
giản đến phức tạp Để cuối cựng tụi đó xõy dựng một bài tập hoàn chỉnh bao gồm đầy
đủ cỏc chức năng của vi xử lý như ngắt, IO, SPI, ADC, …
2 M ục đớch và nhiệm vụ nghiờn cứu
- Nghiờn cứu họ vi điều khiển ST7 của hóng ST Microelectronics để ứng dụng trong đào tạo kỹ thuật cụng nghệ cỏc sản phẩm thuộc họ vi điều khiển ST7
- ứng dụng vi điều khiển ST7 của hãng ST Microelectronics trong giảng dạy lý thuyết và thực hành học phần Vi Xử lý nhằm góp phần nâng cao chất lượng đào tạo
tại Trường Cao đẳng Điện tử - Điện lạnh Hà Nội
3 Đối tượng và phạm vi nghiờn cứu
- Đối tượng nghiờn cứu: Nghiờn cứu họ vi điều khiển ST7 của hóng ST Microelectronics
- Phạm vi nghiờn cứu: Tìm hiểu về họ vi điều khiển ST7 và xây dựng các bài tập ứng dụng
4 Gi ả thiết khoa học
Nếu ứng dụng tốt họ vi điều khiển ST7 của hóng ST Microelectronics
thỡ sẽ mang lại cỏc kết quả sau:
- Thực hiện viết được chương trỡnh cho họ vi điều khiển ST7
- Nõng cao chất lượng giảng dạy và học tập tại cỏc trường Cao đẳng cụng nghệ
- Phỏt triển nền cụng nghiệp gúp phần vào cụng việc cụng nghiệp húa và hiện đại húa đất nước
5 Phương phỏp nghiờn cứu
- Nghiờn cứu lý thuyết (nghiờn cứu cơ sở lý luận, tổng hợp phõn tớch tài liệu cú liờn quan)
- Nghiờn cứu thực nghiệm( Quan sỏt, xõy dựng phương phỏp thực hiện, bài tập minh hoạ)
Trang 13T ỔNG QUAN VỀ VI ĐIỀU KHIỂN
1.1 GIỚI THIỆU KHÁI QUÁT VỀ VI ĐIỀU KHIỂN
Bộ Vi xử lý có khả năng vượt bậc so với các hệ thống khác về khả năng tính toán, xử lý, và thay đổi chương trình linh hoạt theo mục đích người dùng, đặc biệt
hiệu quả đối với các bài toán và hệ thống lớn.Tuy nhiên đối với các ứng dụng nhỏ,
tầm tính toán không đòi hỏi khả năng tính toán lớn thì việc ứng dụng vi xử lý cần cân nhắc Bởi vì hệ thống dù lớn hay nhỏ, nếu dùng vi xử lý thì cũng đòi hỏi các
khối mạch điện giao tiếp phức tạp như nhau Các khối này bao gồm bộ nhớ để chứa
dữ liệu và chương trình thực hiện, các mạch điện giao tiếp ngoại vi để xuất nhập và điều khiển trở lại, các khối này cùng liên kết với vi xử lý thì mới thực hiện được công việc Để kết nối các khối này đòi hỏi người thiết kế phải hiểu biết tinh tường
về các thành phần vi xử lý, bộ nhớ, các thiết bị ngoại vi Hệ thống được tạo ra khá
phức tạp, chiếm nhiều không gian, mạch in phức tạp và vấn đề chính là trình độ người thiết kế Kết quả là giá thành sản phẩm cuối cùng rất cao, không phù hợp để
áp dụng cho các hệ thống nhỏ
Vì một số nhược điểm trên nên các nhà chế tạo tích hợp một ít bộ nhớ và một số
mạch giao tiếp ngoại vi cùng với vi xử lý vào một IC duy nhất được gọi là Microcontroller-Vi điều khiển
Một số đặc điểm khác nhau giữa vi xử lí và vi điều khiển:
Về phần cứng: vi xử lí cần được ghép thêm các thiết bị ngoại vi bên ngoài như bộ
nhớ, và các thiết bị ngoại vi khác, … để có thể tạo thành một bản mạch hoàn chỉnh Đối với vi điều khiển thì bản thân nó đã là một hệ máy tính hoàn chỉnh với CPU, bộ
nhớ, các mạch giao tiếp, các bộ định thời và mạch điều khiển ngắt được tích hợp bên trong mạch
Về các đặc trưng của tập lệnh: Do ứng dụng khác nhau nên các bộ vi xử lí và vi điều khiển cũng có những yêu cầu khác nhau đối với tập lệnh của chúng Tập lệnh
Trang 14động trên các lượng dữ liệu lớn như 1byte, ½ byte, word, double word, Ở các bộ vi điều khiển, các tập lệnh rất mạnh trong việc xử lý các kiêu dữ liệu nhỏ như bit hoặc
một vài bit
Do vi điều khiển cấu tạo về phần cứng và khả năng xử lí thấp hơn nhiều so với vi
xử lí nên giá thành của vi điều khiển cũng rẻ hơn nhiều Tuy nhiên nó vẫn đủ khả năng đáp ứng được tất cả các yêu cầu của người dùng
Vi điều khiển được ứng dụng trong các dây chuyền tự động loại nhỏ, các robot có
chức năng đơn giản, trong máy giặt, ôtô v.v
1.2 PHÂN LOẠI
1.2.1 Độ dài thanh ghi
Dựa vào độ dài của các thanh ghi và các lệnh của vi điều khiển mà người ta chia
ra các loại vi điều khiển 8bit, 16bit, hay 32bit
Các loại vi điều khiển 16bit do có độ dài lệnh lớn hơn nên các tập lệnh cũng nhiều hơn, phong phú hơn Tuy nhiên bất cứ chương trình nào viết bằng vi điều khiển 16 bit chúng ta đều có thể viết trên vi điều khiển 8 bit với chương trình thích hợp
1.2.2 Ki ến trúc CISC và RISC
Vi xử lí hoặc vi điều khiển CISC là vi điều khiển có tập lệnh phức tạp Các vi điều khiển này có một số lượng lớn các lệnh nên giúp cho người lập trình có thể linh
hoạt và dễ dàng hơn khi viết chương trình
Vi điều khiển RISC là vi điều khiển có tập lệnh đơn giản Chúng có một số lượng
nhỏ các lệnh đơn giản DO đó, chúng đòi hỏi phần cứng ít hơn, giá thành thấp hơn,
và nhanh hơn so với CISC Tuy nhiên nó đòi hỏi người lập trình phải viết các chương trình phức tạp hơn, nhiều lệnh hơn
1.2.3 Ki ến trúc Harvard và kiến trúc Vonneumann
Kiến trúc Harvard sử dụng bộ nhớ riêng biệt cho chương trình và dữ liệu Bus địa
chỉ và bus dữ liệu độc lập với nhau nên quá trình truyền nhận dữ liệu đơn giản hơn
Kiến trúc Vonneumann sử dụng chung bộ nhớ cho chương trình và dữ liệu
Trang 15Một số loại vi điều khiển có trên thị trường:
- VDK MCS-51: 8031, 8032, 8051, 8052,
- VDK ATMEL: 89Cxx, AT89Cxx51
- VDK AVR AT90Sxxxx
- VDK PIC 16C5x, 17C43
1.3 CẤU TRÚC TỔNG QUAN CỦA VI ĐIỀU KHIỂN:
1.3.1 CPU – Central Processing Unit
Là trái tim của hệ thống Là nơi quản lí tất cả các hoạt động của vi điều khiển Bên trong CPU gồm:
+ ALU (Arithmetic Logic Unit) là bộ phận thao tác trên các dữ liệu
+ Bộ giải mã lệnh và điều khiển, xác định các thao tác mà CPU cần thực hiện + Thanh ghi lệnh IR, lưu giữ opcode của lệnh được thực thi
+ Thanh ghi PC, lưu giũ địa chỉ của lệnh kế tiếp cần thực thi
+ Một tập các thanh ghi dùng để lưu thông tin tạm thời
1.3.2 ROM – Read Only Memory :
ROM là bộ nhớ dùng để lưu giữ chương trình ROM còn dùng để chứa số liệu các
bảng, các tham số hệ thống, các số liệu cố định của hệ thống Trong quá trình hoạt động nội dung ROM là cố định, không thể thay đổi, nội dung ROM chỉ thay đổi khi ROM ở chế độ xóa hoặc nạp chương trình
1.3.3 RAM- Random Access Memory:
RAM là bọ nhớ dữ liệu Bộ nhớ RAM dùng làm môi trường xử lý thông tin, lưu
trữ các kết quả trung gian và kết quả cuối cùng của các phép toán, xử lí thông tin Nó cũng dùng để tổ chức các vùng đệm dữ liệu, trong các thao tác thu phát, chuyển đổi
dữ liệu
1.3.4 BUS:
BUS là các đường dẫn dùng để di chuyển dữ liệu Bao gồm: bus địa chỉ, bus dữ
liệu , và bus điều khiển
Trang 161.3.6 Watchdog: Bộ phận dùng để reset lại hệ thống khi hệ thống gặp “bất thường”
1.3.7 ADC- Analog-to-Digital Converter:
Bộ phận chuyển tín hiệu analog sang tín hiệu digital Các tín hiệu bên ngoài đi vào vi điều khiển thường ở dạng analog ADC sẽ chuyển tín hiệu này về dạng tín
hiệu digital mà vi điều khiển có thể hiểu được
Trang 17H Ọ VI ĐIỀU KHIỂN ST7 CỦA HÃNG MICROELECTRONICS 2.1 GI ỚI THIỆU
ST Microelectronics là tập đoàn sản xuất linh kiện bán dẫn hàng đầu trên thế giới
ST có trụ sở tại Geneva, Thụy Sỹ Hiện nay ST tập trung nghiên cứu công nghệ cao vào 5 lĩnh vực chính: Viễn thông, điện tử gia dụng, máy tính, giao thông và công nghiệp
ST đã có mặt tại Việt Nam và sẽ đem đến cho khách hàng công nghệ vi điện
tử tiên tiến nhất, cung cấp các chương trình đào tạo, hỗ trợ kỹ thuật
Với các giải pháp, ứng dụng của ST cũng như thiện chí của mình trong việc phát triển sự hiểu biết và khả năng nội địa, ST tin rằng mình có thể đóng góp vào
việc tạo ra ngành công nghiệp điện tử nội địa thực sự, với khả năng hỗ trợ trên phạm
vi rộng lớn các ngành công nghiệp khác-từ tài chính ngân hàng, giao thông vận tài hay truyền thông…tại Việt Nam
Vi điều khiển ST 7 của hãng ST Microelectronics là một máy tính được tích hợp trên một chíp, nó thường được sử dụng để điều khiển các thiết bị điện tử Vi điều khiển, thực chất, là một hệ thống bao gồm một vi xử lý có hiệu suất đủ dùng và giá thành thấp kết hợp với các khối ngoại vi như bộ nhớ, các mô đun vào/ra, các mô đun
biến đổi số sang tương tự và tương tự sang số
Vi điều khiển ST 7 của hãng ST Microelectronics 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 dụng cụ điện tử, thiết bị điện, 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, v.v
ST7LITE2 là thành viên của họ vi điều khiển ST7 Tất cả thiết bị ST7 cơ bản dựa trên nhân 8 bit chuẩn công nghiệp bình thường, nét đặc biệt là có một tập lệnh nâng cao
ST7LITE2 mô tả bộ nhớ Flash với khả năng lập trình circuit(ICP) và application (IAP)theo khối từng byte một
Trang 18in-WAIT (đợi), SLOW (chậm), hay HALT (nghỉ), sự tiêu thụ năng lượng giảm xuống khi ứng dụng ở trạng thái nhàn rỗi (idle) hay tạm nghỉ (stand by)
Tập lệnh và chế độ định địa chỉ của ST7 cho thấy sức mạnh và tính linh hoạt đối
với những người phát triển phần mềm, cho phép thiết kế mã ứng dụng ngắn gọn và đạt hiệu quả cao Thêm vào đó , tất cả vi điều khiển ST7 có đặc điểm tính toán trên
từng bit, tính toán số không dấu 8x8 và chế độ định địa chỉ gián tiếp
Thiết bị có một module debug trên chip (DM) hỗ trợ debug trên circuit debugging)
mạch(ICD-in-Hình 2.1: Sơ đồ khối vi điều khiển ST7
Trang 19Hình 2.2: Sơ đồ các chân vi điều khiển ST7
2.3 SƠ ĐỒ BỘ NHỚ VÀ THANH GHI
Như được thấy trong figure 4, MCU có khả năng định địa chỉ đến 64 k bytes bộ
nhớ và có những thanh ghi xuất/nhập
Bộ nhớ bao gồm 128 bytes định vị các thanh ghi phần cứng (Hardware register)
xem bảng 2, 384 bytes RAM, 256 bytes EEPROM và 8 kbytes bộ nhớ lập trình
Không gian bộ nhớ RAM dành tới 128 bytes cho vùng stack được đánh địa chỉ từ
0180F tới 01FFh
Những bytes địa chỉ cao nhất chứa trạng thái reset và bảng vector ngắt
Vùng nhớ Flash chứa 2 sector(Figure 4) được ánh xạ vào tầm địa chỉ cao nhất vì
vậy bảng reset và vector ngắt được định vị ở sector 0 (F000h – FFFFh)
Kích thước của Flash sector 0 và những lựa chọn thiết bị khác được định dạng bởi
option byte
Quan trọng (Important): vùng nhớ dành sẵn (“reserved”) không bao giờ được
truy suất Truy suất vùng nhớ này có thể có những ảnh hưởng không lường trước
được trên thiết bị
Trang 20Hình 2.3: Sơ đồ bộ nhớ vi điều khiển ST7
Trang 22Hình 2.4: Sơ đồ các thanh ghi phần cứng (Hardware register) Ghi chú: x = không xác định, R/W = Đọc/ghi
Chú ý:
1 Nội dung của thanh ghi DR của các cổng giao tiếp I/O chỉ có thể được đọc ở
cấu hình ngõ xuất Trong cấu hình ngõ nhập, giá trị của các chân I/O sẽ được trả về thay vì nội dung của thanh ghi DR
2 Các bit liên đới với những chân không sử dụng phải được giữ ở giá trị khởi tạo
của nó
2.4 VÙNG NH Ớ LẬP TRÌNH FLASH (Flash Programming Memory)
2.4.1 Gi ới thiệu
Bộ nhớ của ST7 sử dụng công nghệ Xflash( Extended Flash), Xflash là flash mở
rộng, có thể được xóa bằng điện và lập trình theo byte hoặc cho đến khối 32 bytes song song
Thiết bị Xflash có thể được lập trình off-board( được cắm vào công cụ lập trình)
Trang 23hoặc on-board tùy vào phương pháp lập trình circuit programming hay
In-application programming
Việc tổ chức bộ nhớ theo ma trận cho phép mỗi sector được lập trình và xóa không ảnh hưởng đến sector khác
2.4 2 Đặc điểm chính (main features)
• ICP (In-circuit programming)
• IAP (In-application programming)
• ICT (In-circuit testing) - load và thực thi mẫu kiểm tra ứng dụng của user trong Ram
• Kích thước sector 0 được thiết lập bởi option byte
• Bảo vệ đọc và ghi
2.4.3 Ch ế độ lập trình (Programming Modes)
ST7 có thể được lập trình theo 3 cách:
• Lập trình bình thường, ở chế độ này sử dụng Flash sector 0 và 1, option byte
và data EEPROM (nếu có) có thể được lập trình hay xóa
• In-Circuit Programming: ở chế độ này sử dụng vùng nhớ Flash sector 0 và 1, option byte và
EEPROM (nếu có) có thể được lập trình hay xóa không cần tháo thiết bị ra khỏi board ứng dụng
• In-Application programming: ở chế độ này,vùng nhớ sector 1 và dữ
liệu trong vùng EEPROM(nếu có) có thể được lập trình hay xóa mà không lấy thiết bị ra khỏi board ứng dụng trong lúc ứng dụng đang chạy
2.4.3.1 In-circuit programming(ICP)
ICP sử dụng giao thức được gọi là ICC (In-cỉcuit communication) cho phép
một vi điều khiển cắm trên board mạch in (PCB-printed cỉcuit board) giao tiếp với thiết bị lập trình bên ngoài thông qua cáp ICP hoạt động theo 3 bước:
• Đưa ST7 vào chế độ ICC : Điều này được thực hiện bằng cách điều khiển chuỗi tín hiệu đặc biệt thông qua chân ICCCLK/DATA trong lúc chân RESET ở
mức thấp khi ST7 vào chế độ ICC, nó tìm thấy vector RESET đặc biệt chỉ tới bộ
nhớ hệ thống của có chứa thủ tục giao thức ICC Thủ tục này cho phép ST7 nhận bytes từ giao tiếp ICC
• Nạp code driver ICP vào trong ram từ chân ICCDATA
• Thi hành doạn mã vừa nạp vào trong ram để lập trình vùng nhớ FLASH
Phụ thuộc vào đoạn mã được nạp vào ram , lập trình vùng nhớ FLASH có thể
bị thay đổi (số bytes chương trình, định vị chương trình, hay lựa chọn giao tiếp
Trang 24tuần tự để nạp chương trình)
2.4.3.2 In-Application programming (IAP)
Chế độ này sử dụng một chương trình điều khiển IAP được nạp vào sector 0
bởi người sử dụng trước đó( in ICP mode)
Chế độ này được điều khiển hoàn toàn bởi phần mềm của user Điều này cho phép nó uyển chuyển với ứng dụng của user
Chế độ IAP có thể được dùng để lập trình mọi vùng nhớ trừ secter 0, đây là vùng cấm không được ghi hoặc xóa vì nó dùng để phục hồi trong trường hợp thực thi chương trình bị lỗi
2.4.4 Giao ti ếp ICC (ICC Interface)
ICP cần tối thiểu từ 4 cho đến 6 chân để kết nối với công cụ lập trình Những chân này là:
RESET: Reset thiết bị
VSS : Devide power supply ground
ICCCLK: Cổng nhập dữ liệu tuần tự ICC
CLKIN/PB4: Chân nhận xung CLOCK từ bên ngoài
VDD: Nguồn cung cấp cho ứng dụng
2.4.5 B ảo vệ vùng nhớ ( Memory Protection)
Có hai kiểu bảo vệ vùng nhớ khác nhau: bảo vệ đọc và bảo vệ ghi xóa được dùng bởi cá nhân
2.4.5.1 B ảo vệ đọc (read-out protection)
Bảo vệ đọc, khi được chọn cung cấp sự bảo vệ dựa trên nguồn gốc nội dung vùng nhớ chương trình và dựa trên truy suất ghi tới vùng nhớ Flash
Trong thiết bị Flash , sự bảo vệ này được bỏ đi bởi lựa chọn tái lập trình Trong trường hợp này, cả bộ nhớ dữ liệu E2 và bộ nhớ lập trình được tự động xóa và thiết
bị có thể được lập trình lại bảo vệ đọc phụ thuộc vào loại thiết bị:
Trong thiết bị Flash , nó được cho phép và loại bỏ thông qua bit FMP_R trong byte lựa chọn (option byte)
Trong thiết bị rom nó được cho phép bởi lựa chọn mặt nạ đặc biệt trong danh sách lựa chọn(option byte)
2.4.5.2 B ảo vệ ghi xóa vùng nhớ Flash (Flash Write/eraser Protection)
Bảo vệ ghi /xóa , khi được thiết lập thì không thể overwrite và xóa bộ nhớ chương trình Nó không dùng với dữ liệu E2 mục đích của nó cung cấp chế độ
bảo mật cao cho ứng dụng và ngăn chặn mọi thay đổi nội dung vùng nhớ
Cảnh báo: mỗi lần thiết lập chế độ bảo vệ này, nó có thể không bao giờ được
Trang 25xóa Thiết bị Flash
được bảo vệ ghi thì không tái lập trình được nữa bảo vệ ghi/xóa được cho phép thông qua bit FMP_W trong byte option
2.4.6 Tài li ệu liên quan (Related Documentation)
Để có thêm chi tiết về lập trình Flash và giao thức ICC, tham khảo “The ST7 Flash programming reference manual” và “The ST7 ICC protocol reference manual”
2.4.7 Mô t ả thanh ghi (Register description)
Thanh ghi trạng thái/điều khiển Flash (Flash control/status register-FCSR) Có
2.5.1 Gi ới thiệu (Introduction)
Bộ nhớ chỉ đọc có khả năng lập trình xóa bằng điện(EEPROM) được dùng để lưu trữ dữ liệu Sử dụng EEPROM yêu cầu một giao thức truy xuất cơ bản được
mô tả trong chương này
Trang 26Hình 2.5: Sơ đồ khối EEPROM
2.5 2 Đặc điểm chính
• Lên đến 32 byte được lập trình trong cùng chu kỳ
• EEPROM điện thế đơn (mono-voltage)
Tác vụ đọc( Read Operation [E2LAT = 0])
EEPROM có thể được đọc như bộ nhớ ROM bình thường khi bit E2LAT của thanh ghi EECSR được xóa
Đối với ST7, DATA EEPROM cũng có thể được dùng để thực thi mã máy
Trang 27Tránh ghi lên vùng nhớ DATA EEPROM khi nó đang thực thi lệnh, điều này có
thể dẫn tới một đoạn code không được mong đợi được thực thi
Tác vụ ghi (E2LAT = 1)
Để truy xuất chế độ ghi, bit E2LAT phải được lập bởi phần mềm( bit E2PGM còn lại được xóa)
B ảng 2.1: Biểu đồ mô tả những chế độ truy xuất vùng nhớ khác nhau
2.6 B Ộ XỬ LÝ TRUNG TÂM (Central Processing Unit)
Trang 28• Thanh ghi stack pointer 16 bits
• Ngắt phần cứng có thể che
• Ngắt phần mềm không thể che
2.6.3 Các thanh ghi n ội
Sáu thanh ghi nội được chỉ trong hình 10 thì không xuất hiện trong vùng bộ
nhớ và được truy xuất bằng những câu lệnh đặc biệt
THANH GHI TÍCH LŨY (Accumulator-A):
Thanh ghi A là một thanh ghi dùng chung 8-bit thường dùng để chứa toán hạng
và kết quả của các phép toán số học và logic và dùng để tính toán
THANH GHI CHỈ SỐ (X và Y):
Trong chế độ định địa chỉ bằng chỉ số, hai thanh ghi 8 bits này thường dùng để
tạo ra những địa chỉ trực tiếp hoặc chứa kết quả tạm thời cho việc tính toán Thanh ghi Y không bị ảnh hưởng bởi lệnh gọi những chương trình con( không push vào
hoặc pop ra stack)
Hình 2.6: Sơ đồ CPU có kiến trúc 8-bit và có 6 thanh ghi nội Program counter(PC): PC là thanh ghi 16-bit chứa địa chỉ của lệnh kế tiếp để được thực thi bởi
Trang 29CPU Nó được tạo bởi hai thanh ghi 8-bit, PCL là 8 bits thấp, PCH là 8 bits cao CONDITION CODE REGISTER (CC): Đọc / Ghi
Giá trị khởi tạo : 111x1xxx
Thanh ghi CC 8-bit chứa trạng thái ngắt quãng và 4 cờ trạng thái của kết quả
vừa được tính toán Thanh ghi này có thể được điều khiển bởi lệnh push và pop
Những bit này có thể được truy xuất riêng rẽ hay được điều khiển bởi những câu lệnh đặc biệt
Bit H (half cary): Bit này được lập bởi phần cứng khi có nhớ xuất hiện giữa bit
3 và 4 trong ALU khi thực hiện lệnh ADD hoặc ADC Nó cũng được reset bởi
phần cứng khi thực hiện những lệnh trên
H = 0: không có half carry xuất hiện H = 1: có half carry xuất hiện
Bit này được kiểm tra bằng lệnh JRH hoặc JRNH bit H rất có ích trong chương trình BCD
Bit I (interrup mask): Bit này được lập bởi phần cứng khi bước vào interrup
hoặc bằng phần mềm để khóa tất cả interrup ngoại trừ interrup mềm TRAP Bit này được xóa bởi phần mềm
I = 0: cho phép ngắt
I = 1: cấm ngắt
Bit này được điều khiển bởi lệnh RIM,SIM,IRET và được kiểm tra bởi lệnh JRM và JRNM
Bit N (Negative): Bit này được set và clear bởi phần cứng nó biểu diễn dấu kết
của quả của phép toán số học , nó chính là bit thứ 7 của kết quả
0: kết quả của phép tính cuối cùng là dương hoặc bằng 0
1: kết quả của phép tính cuối cùng là âm
Bit này được truy suất bởi lệnh JRMI và JRPL
Bit Z (zero): Bit này được lập và xóa bởi phần cứng bit này chỉ ra rằng kết quả
của phép toán là 0
0: kết quả phép toán khác không
1: kết quả phép toán bằng không
Bit này được truy xuất bởi lệnh kiểm tra JREQ và JRNE
Trang 30Bit C (nhớ/mượn): Bit này được lập và xóa bởi phần cứng và phần mềm nó chỉ
ra rằng có tràn hoặc mượn xảy ra khi thực hiện phép toán số học
0: không có nhớ hoặc mượn xuất hiện
1: có nhớ hoặc mượn xuất hiện
Bit này được điều khiển bởi lệnh SCF, RCF và kiểm tra bởi lệnh JRC và JRNC
Nó cũng bị ảnh hưởng bởi lệnh dịch và quay
STACK POINTER (SP) : Đọc / ghi
Giá trị khởi tạo: 01FFh
Stack pointer là một thanh ghi 16 bits luôn luôn chỉ đến byte kế tiếp trong vùng stack Nó bị giảm đi sau khi đẩy dữ liệu vào vùng stack và tăng lên sau khi lấy dữ
liệu ra khỏi vùng stack( Figure 11)
Vùng stack có 128 bytes có địa chỉ từ 0180h tới 01FFh Sau khi reset MCU hay sau lệnh reset stack(RSP) con trỏ stack chứa giá trị 01FFh( bit sp0 đến sp6 được lập) ở địa chỉ cao nhất của vùng stack
Chú ý: khi vượt qua địa chỉ thấp của vùng stack(0180h) con trỏ stack sẽ chỉ đến địa chỉ cao nhất của stack(01FFh) , vì vậy dữ liệu trước đó sẽ bị ghi đè lên và bị
mất Trường hợp tương tự khi stack vượt qua địa chỉ cao nhất của stack
Stack thường dùng để lưu địa chỉ trả về khi gọi chương trình con (trả về PC của
lệnh tiếp theo lời gọi chương trình con ) và ngữ cảnh CPU( PC+X+A+CC) khi có interrup
Trang 31Hình 2.7: Stack pointer là một thanh ghi 16 bits
2.7 NG ẮT
Nhân ST7 có thể bị ngắt bởi một hoặc hai yếu tố khác nhau: Các ngắt phần cứng
có thể che và ngắt phần mềm không thể che (TRAP) Lưu đồ quá trình ngắt được
chỉ ra trong bảng 2.2 Ngắt có thể che phải được khởi động bằng cách gán 0 cho bit
I để có thể được phục vụ Tuy nhiên, việc vô hiệu ngắt có thể được chốt và và tiến hành khi nó chúng được kích hoạt
Chú ý: Sau khi reset, tất cả các ngắt đề bị vô hiệu hóa Khi một ngắt được phục
vụ:
Quá trình bình thường bị đình chỉ sau khi thực thi xong lệnh hiện tại
Các thanh ghi PC, X, A và CC được lưu vào trong stack
Bit I của thanh ghi CC được gán 1 để ngăn không cho thêm lệnh ngắt nào được thực hiện
Thanh ghi PC được nạp giá trị vector ngắt của lệnh ngắt được phục vụ và lệnh đầu tiên của thủ tục phục vụ ngắt sẽ được tìm nạp
Thủ tục phục vụ ngắt nên được kết thúc bằng câu lệnh IRET để phục hồi trạng thái các thanh ghi đã được đưa vào stack Sau lệnh IRET, bit I được xóa về 0 và
Trang 32chương trình chính được phục hồi
Quản lí quyền ưu tiên
Mặc định, một phục vụ ngắt không thể bị ngắt quãng vì bit I được gán giá trị 1
bởi phần cứng để bắt đầu một tác vụ ngắt
Trong trường hợp khi một vài ngắt được diễn ra đồng thời, quyền ưu tiên do
phần cứng chỉ định sẽ quyết định một trong số đó được thực hiện trước
Ngắt và Chế độ tiết kiệm năng lượng
Tất cả các ngắt cho phép bộ xử lí thoát khỏi chế độ tiết kiệm năng lương WAIT
Chỉ có một số các ngắt ngoại có khả năng cho phép bộ xử lí thoát khỏi chế độ tiết
kiệm năng lượng HALT
2.7.1 Ng ắt mềm không che được
Ngắt này được bắt đầu khi câu lệnh TRAP được thực thi mà không cần quan tâm đến trạng thái của bit I Nó sẽ được phục vụ như trong lưu đồ ở Hình 2.2
Trang 33Cực tính ngắt ngoại được chọn thông qua thanh ghi hỗn hợp hoặc thanh ghi
ngắt (nếu có)
Một ngắt ngoại được kích hoạt sẽ được chốt và yêu cầu ngắt sẽ tự động bị xóa khi bắt đầu thủ tục phục vụ ngắt
2.7.3 Ng ắt thiết bị ngoại vi
Các cờ ngắt thiết bị ngoại vi khác nhau trong thanh ghi trạng thái có thể gây ra
ngắt khi chúng được kích hoạt nếu có đủ 2 điều kiện:
Bit I trên thanh ghi CC có giá trị 0
Bit kích hoạt tương ứng được gán giá trị 1 trên thanh ghi điều khiển
Nếu một trong hai điều kiện trên không thỏa mãn, Ngắt sẽ bị khóa và đợi cho đến khi thỏa mãn
Xóa một yêu cầu ngắt được thực hiện theo một trong các cách sau:
Ghi giá trị 0 vào bit tương ứng trên thanh ghi trạng thái
Truy xuất thanh ghi trạng thái trong khi cờ được gán 1 và tiếp sau đó là đọc
hoặc ghi một thanh ghi kết hợp
Chú ý: Quá trình xóa trên sẽ reset lại chốt nội Vì thế các ngắt đang trong trạng thái đợi sẽ bị mất nếu quá trình trên được thực thi
Trang 34B ảng 2.3: Bảng trạng thái quá trình ngắt
THANH GHI EXTERNAL INTERRUPT CONTROL (EICR)
Đọc/Ghi
Giá trị khởi tạo : 0000 0000 (00h)
Bit 7:6 = IS3[1:0] -tính nhạy ei3
Những bit này chỉ ra tính nhạy ngắt cho ei3 (Cổng B0) theo như bảng 6
Bit 5:4 = IS2[1:0] -tính nhạy ei2
Những bit này chỉ ra tính nhạy ngắt cho ei2 (Cổng B3) theo như bảng 6 Bit 3:2
= IS1[1:0] -tính nhạy ei1
Những bit này chỉ ra tính nhạy ngắt cho ei1 (Cổng A7) theo như bảng 6 Bit 1:0
= IS0[1:0] -tính nhạy ei0
Những bit này chỉ ra tính nhạy ngắt cho ei0 (Cổng A0) theo như bảng 6 Chú ý: Thanh ghi 8 bit này chỉ có thể được ghi khi bit I trên thanh ghi CC được gán giá trị 1
Trang 35Thay đổi độ nhạy của một ngắt ngoại sẽ xóa ngắt đang trong trạng thái chờ này Điều này có thể được sử dụng để xóa những ngắt không mong muốn đang trong trạng thái chờ
THANH GHI EXTERNAL INTERRUPT SELECTION (EISR)
Đọc/Ghi
Giá trị khởi tạo: 0000 1100 (0Ch)
Bit 7:6 = ei3[1:0] – Chọn chân ei3
Các bit này được ghi bằng phần mềm Chúng lực chọn các chân giao tiếp cổng
B được sử dụng cho ngắt ngoại ei3 như bảng dưới đây
Bit 5:4 = ei2[1:0] – Chọn chân ei2
Các bit này được ghi bằng phần mềm Chúng lực chọn các chân giao tiếp cổng
B được sử dụng cho ngắt ngoại ei2 như bảng dưới đây
1) Trạng thái reset
1) Trạng thái reset
2) PB4 không thể được sử dụng như một ngắt ngoại trong chế độ HALT
Bit 3:2 = ei1[1:0] – Chọn chân ei1
Trang 36Các bit này được ghi bằng phần mềm Chúng lực chọn các chân giao tiếp cổng
A được sử dụng cho ngắt ngoại ei1 như bảng dưới đây
* Trạng thái reset
Bit 1:0 = ei1[1:0] – Chọn chân ei0
Các bit này được ghi bằng phần mềm Chúng lực chọn các chân giao tiếp cổng
A được sử dụng cho ngắt ngoại ei0 như bảng dưới đây
2.8.2 Ch ức năng:
Mỗi cổng đều có một thanh ghi Data (DR) và một thanh ghi Data Direction (DDR) Thanh ghi Option (OR)- Thanh ghi dùng để quy định cổng xuất hay nhập- thì có thể được cung cấp hoặc không
Mỗi chân I/O được lập trình với các bit tương ứng trên các thanh ghi DDR, DR hay OR: bit x tương ứng với chân x của cổng
Trang 37Hình 2.8: Sơ đồ khối các cổng I/O dùng để truyền dữ liệu
Trang 38DR
Tùy vào thiết bị, có thể thiết lập một cổng I/O như là một cổng nhận tín hiệu
ngắt bằng cách gán giá trị 1cho bit ORx tương ứng Ở chức năng này một tín hiệu kích cạnh hoặc một tín hiệu số trên cổng nhập sẽ sinh ra một yêu cầu ngắt thông qua vector ngắt tương ứng
Việc nhận tín hiệu kích cạnh lên hay xuống sẽ được lập trình độc lập cho mỗi vector ngắt Thanh ghi External Interrupt Control (EICR) hoặc thanh ghi hỗn hợp (Miscellaneous) sẽ điều khiển các trạng thái này, tùy vào từng thiết bị
2.2 Chế độ cổng xuất
Thiết lập một chân là cổng xuất bằng cách gán 0 cho bit DDRx tương ứng
Việc ghi bit DR sẽ gán một giá trị số vào cổng I/O thông qua chốt Việc đọc bit DR
sẽ trả về giá trị được chứa trước đó
2.3 Chức năng thay thế (alternative function):
Rất nhiều cổng I/O có một hoặc nhiều chức năng alternate Việc này có thể bao
gồm xuất tín hiệu từ, hoặc nhận tín hiệu vào một thiết bị ngoại vi on-chip Bảng
mô tả chân sẽ mô tả tín hiệu của thiết bị ngoại vi nào có thể là tín hiệu xuất/ nhập đến cổng nào
Một tín hiệu đến từ một thiết bị ngoại vi on-chip có thể là tín hiệu xuất trên một chân I/O Để làm điều này, chúng ta sẽ kích hoạt thiết bị ngoại vi on-chip như là
một cổng xuất ( thiết lập bit trong thanh ghi Control của thiết bị ngoại vi) Khi đó
việc thiết lập các thiết bị ngoại vi sẽ có ưu tiên cao hơn việc thiết lập các cổng I/O tiêu chuẩn Trạng thái của cổng I/O có thể được đọc ở địa chỉ của thanh ghi Data
DR của chân I/O tương ứng
Khi I/O được thiết lập chức năng alternate thì nó sẽ được thả nổi (floating), vì
nếu ở trạng thái kéo lên (pull-up) sẽ làm tăng sự tiêu thụ điện năng Trước khi sử
dụng I/O như một cổng nhập alternate, phải thiết lập nó không có ngắt Nếu không
việc ngắt có thể bị sai lệch
Các cổng I/O mà có thể được thiết lập chức năng alternate cho cả các tín hiệu tương tự lẫn các tín hiệu số thì cần thêm một số chú ý đặc biệt Người sử dụng phải điều khiển các thiết bị ngoại vi sao cho các tín hiệu không đến cùng một thời điểm
tại cùng một chân
2.8.3 Th ực thi các cổng I/O
Việc thực thi phần cứng trên mỗi cổng I/O phụ thuộc vào việc thiết lập các thanh ghi DDR hoặc OR và chức năng của các cổng I/O đặc biệt như cổng nhập ADC
Trang 39Chuyển đổi trạng thái của các cổng I/O từ trạng thái này sang trạng thái khác nên được thực hiện trong một chuỗi sự kiện được bảo vệ khỏi các hiệu ứng lề không mong đợi Các chuyển đổi an toàn được liệt kê trong Figure 32 dưới đây.Những chuyển đổi khác có khả năng rủi ro và nên tránh vì chúng có thể có
những hiệu ứng lề như việc sinh các ngắt bị sai lệch
B ảng 2.4: Bảng trạng thái của các cổng I/O
2.8 4 Các chân không được sử dụng
Những chân không được sử dụng phải được gắn với các mức điện thế cố định
2.8.5 Ch ế độ tiết kiệm năng lượng
Có hai chế độ : Chế độ WAITvà HALT Ở các chế độ này, các cổng I/O không
có bất cứ hiệu ứng hay sự thi hành nào Các ngắt ngoại sẽ giải phóng thiết bị khỏi
chế độ tiết kiệm năng lượng
2.8.6 Ng ắt
Một sự kiện ngắt ngoại xuất hiện khi các bit tương ứng ở các thanh ghi DDR và
OR là 1 và bit I trong thanh ghi CC bị xóa về 0 (lệnh RIM)
2.9 CÁC THIẾT BỊ NGOẠI VI ĐƯỢC TÍCH HỢP:
2.9.1 B ộ định thời Watchdog (WDG) :
1.1 Giới thiệu:
Bộ định thời Watchdog được dùng để phát hiện các sự cố lỗi phần mềm, xảy ra
do một tác nhân bên trong hay một điều kiện luận lí không biết trước khiến chương trình ứng dụng hoạt động không theo trình tự bình thường Bộ phận Watchdog sẽ
tạo sự kiện reset MCU vào cuối một khoảng thời gian định trước, nếu chương trình không nạp lại nội dung của bộ đếm trước khi bit T6 trở về 0
1.2 Các đặc điểm chính:
Bộ đếm lùi tự do khả lập trình
Trang 40Reset khả lập trình
Reset (nếu watchdog được kích hoạt) khi bit T6 trở về 0
Có thể chọn reset ở chế độ HALT (tiết kiệm năng lương) (thiết lập bằng cách
chỉnh sửa byte option) Phần cứng Watchdog có thể được chọn bằng Option Byte
Hình 2.9: Sơ đồ khối bộ định thời Watchdog
Chương trình ứng dụng phải thiết lập giá trị cho thanh ghi CR trong những khoảng thời gian đều đặn để tránh việc MCU bị reset Bộ đếm được sử dụng là một
bộ đếm chạy độc lập: nó đếm xuống cả khi watchdog bị vô hiệu Giá trị trong thanh ghi CR phải nằm giữa FFh và C0h :
Bit WDGA có giá trị 1 (watchdog được kích hoạt)