CHƯƠNG I: HỌ VI ĐIỀU KHIỂN DSPIC33 VÀ DSPIC33FJ128MC804 Vi điều khiển dsPIC33 được sử dụng trong luận văn đóng vai trò là IC điều khiển toàn bộ thiết bị. Các tài liệu chi tiết về vi điều khiển này được nhà sản xuất cung cấp đầy đủ trên trang chủ của hãng [5].1 Đặc điểm cơ bản của họ vi điều khiển dsPIC33 Dòng dsPIC33 có rất nhiều chức năng mạnh, nhưng trong giới hạn của đề tài, tôi chỉ tập trung tìm hiểu về: - Đặc điểm tổng quát. - Sơ đồ khối, sơ đồ chân, chức năng của các chân. - Các đặc điểm nổi bật của các cổng vào ra.
- Cách tổ chức bộ nhớ, giới thiệu các thanh ghi hay dùng trong quá trình lập trình. - Bộ chuyển đổi tín hiệu tương tự sang số. - Các giao tiếp truyền thông SPI, UART.2 Đặc điểm tổng quát của vi điều khiển dsPIC33FJ128MC804 DsPIC33 là một trong 4 dòng vi điều khiển 16 bít của Microchip ra đời năm 2007 với những đặc điểm điển hình như sau [6]: Vùng hoạt động: - Điện áp nuôi thấp: từ 3,0 đến 3,6 V. - Xung nhịp hỗ trợ từ 20 đến 40 MIPS.
- Dải nhiệt độ hoạt động từ -40 oC đến 125 oC. Vi điều khiển hiệu suất cao: - Có kiến trúc Harvard. - Tập lệnh tối ưu cho trình biên dịch ngôn ngữ C. - 16 bít dữ liệu, 24 bít cho lệnh.
- Bộ nhớ chương trình có thể định địa chỉ lên tới bốn triệu từ lệnh. - Bộ nhớ dữ liệu: 64 kbyte. - 83 tập lệnh cơ sở, hầu hết xử lý trong một chu kỳ. - Hai bộ tích lũy 40 bít.
- Hỗ trợ phép nhân chia 16 bít. Truy cập bộ nhớ trực tiếp: - Hỗ trợ đến tám kênh. - 2 kbyte bộ nhớ đệm. - Hầu hết các ngoại vi đều hỗ trợ truy nhập bộ nhớ trực tiếp.
Bộ định thời / Bộ so sánh/ Bộ điều chế độ rộng xung - Có đến năm bộ định thời 16 bít, cho phép ghép hai bộ thành bộ định thời 32 bít. Đào Nam Thái-K16Đ2 Khoa Điện tử Viễn Thông LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 10 - Một bộ định thời chạy với thạch anh ngoài 32,768 kHz. - Bốn bộ FIFO cho mỗi bộ bắt tín hiệu. - Bộ so sánh 16 bít.
Bộ điều khiển ngắt: - Độ trễ năm chu kỳ máy. - Hỗ trợ 53 nguồn ngắt, ba ngắt ngoài, bẩy mức ưu tiên lập trình được. Cổng vào ra số: - Cho phép chọn chức năng ngoại vi của từng chân. - 31 chân cho phép đánh thức vi điều khiển khi phát hiện thay đổi điện áp.
- Các chân lối vào đều hỗ trợ đến 5 V. - Các chân lối ra hỗ trợ ra nguồn 5 V ở chế độ cực góp hở. Flash và SRAM: - Flash 128 kbyte. - Bộ nhớ flash chia thành các phần Boot, Secure, General Security.
Quản lý hệ thống: - Có nhiều chế độ lấy xung dao động. - Bộ ổn nguồn 2,5 V được đặt ngay trên vi điều khiển. Bộ chuyển đổi tương tự sang số: - 10 bít: Tốc độ 1,1 Msps. - 9 kênh ADC, có thể nhận ADC trong chế độ tiết kiệm năng lượng.
Bộ chuyển đổi số sang tương tự: - 16 bít, hai kênh. - Tốc độ lấy mẫu tối đa 100 ksps. Công nghệ CMOS: - Tiêu thụ năng lượng thấp, công nghệ Flash tốc độ nhanh. Các ngoại vi giao tiếp: - SPI: 8 bit, 16 bít, hộ trợ tất cả các định dạng đồng hồ nối tiếp.
- I2C: Cho phép định địa chỉ 7 bít, 10 bít. Khả năng dò và phân xử xung đột đường truyền. - UART: có hai bộ với FIFO gồm bốn ký tự. - CAN: 32 bộ đệm nhận, 16 bộ lọc nhận, ba mặt nạ.
- PMP: Hỗ trợ tám bộ, 16 bít dữ liệu, 16 bít đường địa chỉ. - CRC: Có 8 byte hàng đợi, 16 bit cho dữ liệu đầu vào. Hình 1-2 thể hiện các chức năng và hiệu suất của các dòng vi điều khiển của Microchip. Trong đó, dsPIC33 là dòng vi điều khiển 16 bít có hiệu suất cao và nhiều chức năng nhất.
Đào Nam Thái-K16Đ2 Khoa Điện tử Viễn Thông LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 11 Hình 1-2: Biểu đồ thể hiện chức năng và hiệu suất của dòng dsPIC33 so với các dòng vi điều khiển khác của Microchip.3 Sơ đồ khối, sơ đồ chân, chức năng của các chân 1.1 Sơ đồ khối Các ngoại vi được kết nối với nhân xử lý bằng đường dữ liệu 16 bít. Ngoại trừ thanh ghi chốt địa chỉ có độ rộng đường dữ liệu là 24 bít. Hình 1-3 dưới đây mô tả cấu trúc của một vi điều khiển dsPIC33 bao gồm những thành phần chính như sau: - Bộ xử lý trung tâm. - Cấu trúc bộ nhớ.
- Bộ tạo dao động - Các bộ ngoại vi. - Các cổng vào ra. - Các bus địa chỉ và dữ liệu Đào Nam Thái-K16Đ2 Khoa Điện tử Viễn Thông LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 12 Hình 1-3: Sơ đồ khối của DSPIC33FJ128MC804 1.2 Sơ đồ chân DSPIC33FJ128MC804 được đóng gói kiểu TQFP, có tổng cộng 44 chân. Các chân được tô đen trong hình 1-4 là các chân có thể chịu mức điện áp 5 V.
Đào Nam Thái-K16Đ2 Khoa Điện tử Viễn Thông LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 13 Hình 1-4: Sơ đồ chân của DSPIC33FJ128MC804 1.3 Bảng mô tả chức năng của chân Mỗi chân của họ vi điều khiển dsPIC33 đều kiêm nhiệm nhiều chức năng khác nhau. Bảng dưới sẽ mô tả chức năng của các nhóm chân. Bảng 1-1: Chức năng các chân của dsPIC33FJ128MC804 Nhóm Vị trí chân Loại Mô tả chân 7,17,28,40 VDD Cung cấp nguồn dương dải rộng <5 V Nguồn nuôi 6,16,29 VSS Nối đất Bộ dao động 30,31 OSCx Đầu vào của xung dao động thạch anh ngoài Bộ nạp và Lối vào xung dao động điều khiển việc nạp và 9,22,42 PGECx gỡ rối gỡ rối chương trình theo chuẩn ICSP Đào Nam Thái-K16Đ2 Khoa Điện tử Viễn Thông LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 14 Lối truyền dữ liệu để nạp và gỡ rối theo chuẩn 8,21,41 PGEDx ICSP Lối vào cho bộ chuyển đổi tín hiệu tương tự 19->27 ANx sang tín hiệu số Lối ra của bộ chuyển đổi tín hiệu số sang tín 10,11,14,15 DACx hiệu tương tự Các ngoại vi Các chân có khả năng tạo ngắt khi có sự thay CNx đổi điện áp vào tại các chân đó PWMx Chân ra của bộ điều chế độ rộng xung PMxx Các chân I/O của cổng song song 1.4 Mô tả chi tiết các đặc điểm chính của dsPIC33FJ128MC804 Phần này sẽ mô tả chi tiết hơn về cấu tạo, chức năng và nguyên tắc hoạt động của họ vi điều khiển dsPIC33.1 CPU và cầu hình dao động 1.1 Tổng quan Cấu trúc CPU của dsPIC33 theo kiến trúc Harvard đã được sửa đổi với tập lệnh nâng cao để hỗ trợ bộ xử lý số (DSP). CPU có tập lệnh 24 bít với độ dài chương trình có thể thay đổi được.
Thanh ghi chương trình (PC) có độ rộng 23 bít hỗ trợ dải địa chỉ lên tới 4Mx24 bít. Cơ chế cung cấp trước các lệnh đơn hỗ trợ việc duy trì tốc độ cũng như dự đoán trước các lệnh sắp được thực thi. Tất cả các lệnh sẽ được thực hiện trong một chu kỳ máy, ngoại trừ các lệnh làm thay đổi luồng của chương trình hoặc các bảng lệnh. DsPIC33 có hai tập lênh riêng biệt dành cho MCU và DSP.
Hai tập lệnh này đều bao gồm nhiều chế độ địa chỉ và được tối ưu hóa hiệu năng của ngôn ngữ lập trình C. Hầu hết các lệnh đều tương thích với việc đọc ghi bộ nhớ dữ liệu và chương trình trong một chu kỳ máy.2 Cách định địa chỉ dữ liệu Khoảng không dữ liệu có thể được định địa chỉ bằng 32K words hoặc 64 kbyte và được chia làm hai khối X và Y. Mỗi khối đều có bộ phát địa chỉ (AGU) độc lập. Các lệnh dành cho MCU hoạt động đơn nhất trên khối X và có thể truy cập vào toàn bộ khoảng không dữ liệu.
Các lệnh dành cho DSP thì hoạt động trên cả hai khối và chia khoảng không dữ liệu thành hai phần. Đào Nam Thái-K16Đ2 Khoa Điện tử Viễn Thông LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 15 Hơn 32 kbyte của khoảng không dữ liệu có thể ánh xạ cho bất kỳ 16 nghìn từ của khoảng không chương trình bằng việc định nghĩa 8 bít trong thanh ghi PSVPAG (Program Space Visibility Page). Tính năng ánh xạ khoảng không chương trình sang khoảng không dữ liệu phục vụ cho việc truy cập khoảng không chương trình nếu nó đã là dữ liệu.3 Tổng quan về bộ xử lý tín hiệu số Bộ xử lý tín hiệu số (DSP) cho phép thực hiện phép nhân 17 bít, 40 bít ALU, hai bộ tích lũy 40 bít, hai bộ dịch hai hướng 40 bít. Bộ dịch này cũng cho phép dịch sang trái hoặc phải nhiều hơn 16 bít trong một chu kỳ lệnh.
Tập lệnh cho bộ DSP hoạt động liền mạch với tất cả các lệnh khác để tối ưu hóa hiệu năng thời gian thực. Các tính năng của bộ DSP được cấu hình bởi các bit trong thanh ghi CORCON được liệt kê dưới đây: - IF: Nhân DSP phân số, nguyên. - US: Nhân DSP có dấu hoặc không dấu. - RND: Biến đổi vòng.
- SATA - SATB - SATDW 1. Tổ chức bộ nhớ 1. Khoảng không địa chỉ chương trình Bộ nhớ được định địa chỉ 24 bít. Các địa chỉ này được nạp vào thanh ghi PC (Program counter) 23 bít trong quá trình thực thi chương trình.
Các ứng dụng truy cập vào vùng nhớ chương trình sẽ bị cấm trong dải từ 0x000000 đến 0x7FFFFF, ngoại trừ lệnh cho phép truy cập các bít cấu hình và nhận diện chip TBLRD/TBLWT. Hình 1-5 mô tả cấu trúc của địa chỉ thanh ghi bộ đếm chương trình. Hình 1-5: Tổ chức bộ nhớ chương trình Đào Nam Thái-K16Đ2 Khoa Điện tử Viễn Thông LUAN VAN CHAT LUONG download : add luanvanchat@agmail.2 Khoảng không địa chỉ dữ liệu Độ rộng bus dữ liệu là 16 bít. Khoảng không dữ liệu được truy cập bởi việc sử dụng bộ AGU.
Để đọc các byte dữ liệu, CPU sẽ đọc cả một từ (word), sau đó sử dụng LSB của thanh ghi EA để xác định byte cần đọc. Byte đó sẽ được thay thế LSB trên đường dừ liệu. Việc ghi byte dữ liệu sẽ chỉ được viết vào mảng hoặc thanh ghi với địa chỉ tương ứng. Việc truy cập theo word phải được sắp thành hàng theo các địa chỉ chẵn.
Nếu dữ liệu không được sắp thành hàng thì bẫy lỗi sẽ được tạo ra và lệnh không thể được hoàn thành. Các thanh ghi chức năng đặc biệt được đặt từ địa chỉ 0x0000 đến 0x07FF, các thanh ghi này được sử dụng để thiết lập ngoại vi và nhân CPU, phục vụ cho việc điều khiển các hoạt động của vi điều khiển. Nhân của dsPIC33 có hai vùng dữ liệu là X và Y.