1. Trang chủ
  2. » Cao đẳng - Đại học

Tài liệu hướng dẫn sử dụng ST7

74 241 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 74
Dung lượng 1,66 MB

Nội dung

Tài liệu hướng dẫn sử dụng ST7 Tài liệu hướng dẫn sử dụng ST7 Tài liệu hướng dẫn sử dụng ST7 Tài liệu hướng dẫn sử dụng ST7 Tài liệu hướng dẫn sử dụng ST7 Tài liệu hướng dẫn sử dụng ST7 Tài liệu hướng dẫn sử dụng ST7 Tài liệu hướng dẫn sử dụng ST7 Tài liệu hướng dẫn sử dụng ST7 Tài liệu hướng dẫn sử dụng ST7 Tài liệu hướng dẫn sử dụng ST7 Tài liệu hướng dẫn sử dụng ST7 Tài liệu hướng dẫn sử dụng ST7 Tài liệu hướng dẫn sử dụng ST7 Tài liệu hướng dẫn sử dụng ST7 Tài liệu hướng dẫn sử dụng ST7 Tài liệu hướng dẫn sử dụng ST7 Tài liệu hướng dẫn sử dụng ST7 Tài liệu hướng dẫn sử dụng ST7 Tài liệu hướng dẫn sử dụng ST7 Tài liệu hướng dẫn sử dụng ST7 Tài liệu hướng dẫn sử dụng ST7 Tài liệu hướng dẫn sử dụng ST7 Tài liệu hướng dẫn sử dụng ST7 Tài liệu hướng dẫn sử dụng ST7 Tài liệu hướng dẫn sử dụng ST7 Tài liệu hướng dẫn sử dụng ST7 Tài liệu hướng dẫn sử dụng ST7 Tài liệu hướng dẫn sử dụng ST7 Tài liệu hướng dẫn sử dụng ST7 Tài liệu hướng dẫn sử dụng ST7 Tài liệu hướng dẫn sử dụng ST7 Tài liệu hướng dẫn sử dụng ST7 Tài liệu hướng dẫn sử dụng ST7 Tài liệu hướng dẫn sử dụng ST7 Tài liệu hướng dẫn sử dụng ST7 Tài liệu hướng dẫn sử dụng ST7 Tài liệu hướng dẫn sử dụng ST7 Tài liệu hướng dẫn sử dụng ST7

Trang 1

BIÊN DỊCH TỪ TÀI LIỆU ST7 USER GUIDE CỦA

STMICROELECTRONICS

TP.HCM, THÁNG 1 NĂM 2008

Trang 2

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP 2

MỤC LỤC

MỤC LỤC 2

TỔNG QUAN VỀ VI ĐIỀU KHIỂN 5

I GIỚI THIỆU KHÁI QUÁT VỀ VI ĐIỀU KHIỂN 6

II PHÂN LOẠI 6

III CẤU TRÚC TỔNG QUAN CỦA VDK: 7

VI ĐIỀU KHIỂN ST7 9

I GIỚI THIỆU 10 U II SƠ ĐỒ CHÂN 11

III SƠ ĐỒ BỘ NHỚ VÀ THANH GHI 12

IV VÙNG NHỚ LẬP TRÌNH FLASH (Flash Programming Memory) 14

1 Giới thiệu 14

2 Đặc điểm chính (main features) 15

3 Chế độ lập trình (Programming Modes) 15

4 Giao tiếp ICC (ICC Interface) 16

5 Bảo vệ vùng nhớ ( Memory Protection) .16

6 Tài liệu liên quan (Related Documentation) .17

7 Mô tả thanh ghi (Register description) 17

V DATA EEPROM 17

1 Giới thiệu (Introduction) .17

2 Đặc điểm chính .18

3 Truy xuất bộ nhớ 18

VI BỘ XỬ LÝ TRUNG TÂM (Central Processing Unit) 19

1 Giới thiệu 19

2 Đặc điểm chính .19

3 Các thanh ghi nội .20

Trang 3

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP 3

VII NGẮT 23

1 Ngắt mềm không che được 24

2 Ngắt ngoại 24

3 Ngắt thiết bị ngoại vi 24

VIII CÁC CỔNG I/O : 28

1 Giới thiệu: 28

2 Chức năng: 28

3 Thực thi các cổng I/O 30

4 Các chân không được sử dụng 31

5 Chế độ tiết kiệm năng lượng 31

6 Ngắt 31

IX CÁC THIẾT BỊ NGOẠI VI ĐƯỢC TÍCH HỢP: 31

1 Bộ định thời Watchdog (WDG) : 31

2 Bộ định thời 12 bit tự động nạp lại 33

3 Giao tiếp ngoại vi nối tiếp (SPI) 45

4 Bộ chuyển đổi tín hiệu tương tự sang tín hiệu số 59

X TẬP LỆNH ASSEMBLER CỦA VI ĐIỀU KHIỂN ST7 65

1 Các lệnh số học 65

2 Các lệnh Logic 66

3 Các lệnh xử lí bit 66

4 Các lệnh nhảy 67

5 Các lệnh di chuyển dữ liệu 68

6 Một số lệnh khác 68

XI CÁC CHẾ ĐỘ ĐINH ĐỊA CHỈ CỦA HỌ VI ĐIỀU KHIỂN ST7 71

1 Định địa chỉ tức thời 71

Trang 4

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP 4

2 Định địa chỉ trực tiếp ngắn 71

3 Định địa chỉ trực tiếp dài 71

4 Định địa chỉ NO OFFSET INDEXED 72

5 Định địa chỉ SHORT INDEXED ADDRESSING 72

6 Định địa chỉ LONG INDEXED 72

7 Định địa chỉ gián tiếp ngắn 72

8 Định địa chỉ gián tiếp dài 72

9 Định địa chỉ SHORT INDIRECT INDEXED 73

10 Định địa chỉ LONG INDIRECT INDEXED 73

11 Định địa chỉ tương đối 73

12 Thao tác trên bit 73

Trang 5

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP 5

TỔNG QUAN VỀ VI ĐIỀU KHIỂN

Trang 6

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP 6

I 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à VĐK:

Về phần cứng: VXL 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 VĐK 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ộ VXL và VĐK 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 của các VXL thường mạnh

về các kiểu định địa chỉ với các lệnh cung cấp các hoạt động trên các lượng dữ liệu lớn như 1byte, ½ byte, word, double word, Ở các bộ VĐK, 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 VĐK cấu tạo về phần cứng và khả năng xử lí thấp hơn nhiều soi với VXL nên giá thành của VXL 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

II PHÂN LOẠI

i Độ dài thanh ghi

Trang 7

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP 7

Dựa vào độ dài của các thanh ghi và các lệnh của VĐK mà người ta chia ra các loại VĐK 8bit, 16bit, hay 32bit

Các loại VĐK 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 VĐK 16bit chúng ta đều có thể viết trên VDK 8bit với chương trình thích hợp

ii Kiến trúc CISC và RISC

VXL hoặc VDK CISC là VDK có tập lệnh phức tạp Các VDK 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

VDK RISC là VDK 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

iii 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 Điều này làm cho VĐK gọn nhẹ hơn, giá thành nhẹ hơn

Một số loại VDK có trên thị trường:

+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

ii ROM:

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á

Trang 8

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP 8

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

iii RAM:

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

iv 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

v Bộ định thời: Được sử dụng cho các mục đích chung về thời gian

Trang 9

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP 9

VI ĐIỀU KHIỂN ST7

Trang 10

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP 10

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 mạch(ICD-in-circuit debugging)

Trang 11

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP 11

II SƠ ĐỒ CHÂN

Trang 12

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP 12

III 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 13

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP 13

Trang 14

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP 14

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ó

IV VÙNG NHỚ LẬP TRÌNH FLASH (Flash Programming Memory)

Trang 15

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP 15

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

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 tuần tự để nạp chương trình)

3.2 In-Application programming (IAP)

Trang 16

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP 16

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

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

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

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)

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ớ

Trang 17

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP 17

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 xó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

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”

7 Mô tả thanh ghi (Register description)

Thanh ghi trạng thái/điều khiển Flash (Flash control/status register-FCSR)

Có khả năng đọc /ghi

Giá trị reset: 0000 0000 (00h)

RASS key thứ 1: 0101 0110 (56h)

RASS key thứ 2: 1010 1110 (AEh)

Chú ý: thanh ghi này phục vụ cho lập trình sử dụng ICP, IAP hay các phương pháp lập trình khác

Nó điều khiển lập trình Flash và tác vụ xóa

Khi một EPB hay công cụ lập trình khác được sử dụng( in socket or ICP mode), the RASS keys được gửi một cách tự động

V DATA EEPROM

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 18

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP 18

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

Trang 19

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP 19

Đối với ST7, DATA EEPROM cũng có thể được dùng để thực thi mã máy Trá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)

VI BỘ XỬ LÝ TRUNG TÂM (Central Processing Unit)

• Hai thanh ghi đánh chỉ số 8 bits

• Thanh ghi stack pointer 16 bits

Trang 20

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP 20

• Ngắt phần cứng có thể che

• Ngắt phần mềm không thể che

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)

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 CPU 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):

Trang 21

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP 21

Đọ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 22

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP 22

Bit 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 23

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP 23

VII 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 Figure 20 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à chươ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

Trang 24

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP 24

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

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 đồ ở Figure 20

2 Ngắt ngoại

Vector ngắt ngoại có thể được nạp vào thanh ghi PC nếu xảy ra sự kiện ngắt ngoại tương ứng

và bit I được xóa về 0 Những ngắt này cho phép bộ xử lí thoát khỏi chế độ tiết kiệm năng lượng HALT

Cự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

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:

Trang 25

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP 25

ƒ 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

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

Trang 26

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP 26

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

ƒ Thay đổ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

Trang 27

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP 27

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

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 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

* Trạng thái reset

Bit 1:0 = Được dành sẵn

Trang 28

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP 28

VIII CÁC CỔNG I/O :

1 Giới thiệu:

Các cổng I/O dùng để truyền dữ liệu Mỗi cổng có thể chứa đến 8 chân Mỗi chân đều có thể được lập trình là cổng xuất hay cổng nhập Bên cạnh đó, một số chân cụ thể còn có các chức năng khác

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 29

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP 29

Trang 30

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP 30

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

Trang 31

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP 31

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

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

1.2 Các đặc điểm chính:

ƒ Bộ đếm lùi tự do khả lập trình

ƒ Reset 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

Trang 32

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP 32

1.3 Mô tả chức năng:

Giá trị bộ đếm được chứa trong thanh ghi CR (bit T[6:0]), giảm sau mỗi 16000 chu kì máy,

và độ dài khoảng thời gian đếm có thể được lập trình bởi người sử dụng Nếu watchdog được kích hoạt ( bit WDGA có giá trị 1) và khi bộ đếm 7-bit T[6:0] đếm ngược từ 40h về 3Fh (T6 trở về 0), nó sẽ reset lai MCU ( thời gian trung bình là 30.10-6s)

Chương trình ứng dụng phải thiết lập giá trị cho thanh ghi CR trong nhữnng 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)

ƒ Bit T6 phải có giá trị 1 để MCU không bị reset

ƒ Các bit T[5:0] chứa giá trị số đếm, thể hiện khoảng thời gian còn lại trước khi watchdog reset MCU

Sau một lần reset, watchdog sẽ bị vô hiệu hóa Sau khi được kích hoạt, không thể vô hiệu hóa lại watchdog, trừ khi MCU được reset

Trang 33

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP 33

1.4 Chọn WatchDog bằng phần cứng

Nếu phần cứng Watchdog được lựa chọn bởi Option Byte thì watchdog sẽ luôn được kích hoạt và bit WDGA trong thanh ghi CR sẽ không được sử dụng

1.5 Ngắt

Không sử dụng ngắt đối với thiết bị ngoại vi Watchdog

1.6 Mô tả thanh ghi điều khiển (CR)

Giá trị khởi tạo: 0111 1111 (7Fh)

Bit 7 = Bit kích hoạt WDRA

Bit này được gán giá trị là 1 bằng phần mềm và chỉ bị xóa bằng phần cứng sau khi reset Khi WDGA =1, watchdog được kích hoạt, có thể sinh tín hiệu reset MCU

WDGA =0, watchdog bị vô hiệu hóa

Bit WDGA không được sử dụng nếu watchdog đã được chọn trong Option Byte

Bit 6:0 = T[6:0] - bộ định thời 7-bit

Những bit này chứa giá trị đếm xuống MCU sẽ được reset khi nó đếm từ 40h tới 3Fh ( T6 trở về 0)

2 Bộ định thời 12 bit tự động nạp lại

2.1 Giới thiệu

Bộ định thời 12 bit tự động nạp lại có thể được sử dụng cho các mục đích nói chung về thời gian Nó dựa trên một bộ đếm lên chay độc lập 12-bit với một thanh ghi bắt tín hiệu nhập và bốn kênh ngõ ra PWM Có 6 chân giao tiếp với bên ngoài:

ƒ Bốn ngõ ra PWM

Trang 34

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP 34

ƒ Chân ATIC cho chức năng bắt tín hiệu nhập

ƒ Thanh ghi bắt tín hiệu nhập 12 bit (ATICR)

ƒ Kích hoạt một quá trình bằng tín hiệu kích cạnh lên hoặc kích cạnh xuống

ƒ Có thể sử dụng ngắt IC

Trang 35

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP 35

2.3 Mô tả chức năng

Chế độ PWM

Chế độ này cho phép các chân ngõ xuất PWMx sinh lên đến 4 tín hiệu Pulse Width Modulated (xung được điều chỉnh độ rộng) Các ngõ xuất PWMx có thể được kích hoạt hoặc vô hiệu bằng các bit OEx trong thanh ghi PWMCR

Tần số PWM và Duty Cycle

Bốn tín hiệu PWM có chung một tần số (fPWM) được điều khiển bởi chu kì bộ đếm và giá trị thanh ghi ATR

fPWM = fCOUNTER / (4096 – ATR)

Theo cách thức dưới đây,

ƒ Nếu fCOUNTER là 32 MHz, thì giá trị tối đa của fPWM là 8 MHz (Giá trị ATR = 4092), giá trị tối thiểu là 8 MHz ( Giá trị ATR = 0)

ƒ Nếu fCOUNTER là 4 MHz, thì giá trị tối đa của fPWM là 2 MHz (Giá trị ATR = 4094), giá trị tối thiểu là 1 MHz ( Giá trị ATR = 0)

Giá trị lớn nhất của ATR là 4094 vì nó phải thấp hơn giá trị DCR – trong trường hợp này là

4095

Lúc khởi động, bộ đếm bắt đầu đếm từ 0

Khi bộ đếm lên bị tràn (sự kiện OVF), giá trị Duty Cycle đã được nạp trước được chuyển vào thanh ghi Duty Cycle (DCR) và các tín hiệu PWMx được gán mức cao Khi bộ đếm lên đạt đến giá trị DCRx thì tín hiệu PWMx được gán mức thấp Để thu được tín hiệu trên chân PWM, thì nội dung của thanh ghi DCRx tương ứng phải lớn hơn nội dung của thanh ghi ATR

Các bit cực tính có thể được dùng để đảo ngược tín hiệu bất kì trong 4 tín hiệu xuất Quá trình đảo ngược được đồng bộ với việc tràn số đếm nếu bit TRAN trên thanh ghi TRANCR được gán giá trị 1 (giá trị khởi tạo)

Trang 36

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP 36

Chế độ so sánh ngõ xuất

Để sử dụng chức năng này, nạp một giá trị 12-bit vào thanh ghi DCRxH và DCRxL Khi bộ đếm lên CNTR đạt đến giá trị chứa trong các thanh ghi DCRxH và DCRxL, bit CMPF trong thanh ghi PWMxCSR sẽ được gán 1 và một yêu cầu ngắt được sinh nếu bit CMPIE được gán 1 Chú ý: Chức năng so sánh ngõ xuất chỉ có hiệu lực khi giá trị DCRx khác 0 (giá trị khởi tạo)

Chức năng Gián đoạn (Break)

Chức năng Gián đoạn được sử dụng để shutdown trong tình trạn khẩn cấp

Chức năng Gián đoạn được kích hoạt bởi một chân BREAK (tích cực mức thấp) Để sử dụng chân BREAK thì trước đó phải gán giá trị 1 cho bit BPEN trong thanh ghi BREAKCR bằng phần mềm

Khi chân BREAK xuất hiện giá trị mức thấp, bit BA sẽ được gán 1 và chức năng Gián đoạn

sẽ được kích hoạt

Phần mềm có thể gán giá trị 1 cho bit BA để kích hoạt chức năng gián đoạn mà không cần sử dụng chân BREAK

Khi chức năng gián đoạn được kích hoạt (Bit BA = 1):

ƒ Khuôn mẫu Gián đoạn (Các bit PWM[3:0] trong thanh ghi BREAKCR) được gán vào các chân xuất PWMx (sau khi qua bộ đảo)

ƒ Bộ đếm 12 bit PWM được gán giá trị khởi tạo

ƒ ARR, DCRx và các thanh ghi tương ứng được gán giá trị khởi tạo

ƒ Thanh ghi PWMCR được reset

Khi chức năng Gián đoạn bị vô hiệu sau khi thực hiện gián đoạn (bit BA được chuyển từ 1 sang 0), việc điều khiển các ngõ xuất PWM được chuyển sang cho các thanh ghi Ngõ giao tiếp (Port Register)

Trang 37

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG ST7 – ST GROUP 37

Ngày đăng: 06/11/2017, 20:53

TỪ KHÓA LIÊN QUAN

w