tài liệu hướng dẫn thí nghiệm vi xử lý và vi điều khiển, 2012

25 758 0
tài liệu hướng dẫn thí nghiệm vi xử lý và vi điều khiển, 2012

Đ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

1  Tà i liệ u hướng dan thı́ nghiệ m Vi xử lý và Vi đieu khien, 2012   Mục tiêu: Sau đọc xong tài liệu này, sinh viên có thể: - Sử dụng KIT MSP-EXP430FG4618 để thực lab - Sử dụng Debug MSP-FET430UIF để nạp chương trình cho chip MSP430 KIT MSP- EXP430FG4618 - Sử dụng phần mềm IAR để lập trình chương trình đơn giản - Thực liên quan đến xuất/nhập, ngắt, timer Kit MSP-EXP430FG4618 1.1 Giới thiệu chung: KIT MSP-EXP430FG4618 hãng TI bo mạch tích hợp chip MSP430FG4618 MSP430F2013 nên cung cấp ngoại vi phổ biến họ MSP430 Đặc biệt, chip 4618 2013 giao tiếp với (xem hình 2) giao tiếp với thiết bị bên Có thể sử dụng gói công cụ sau để lập trình debug: IAR Embeeded Workbench, TI Code Composer Essential (CCE) TI code Composer Studio (CCS) Thiết bị để lập trình debug cho chip TI TI USB Flash Emulation Tool (FET)   Hình KIT MSP-EXP430FG4618 TI tài trợ cho môn Kỹ thuật Máy tính  Biên soạn: Phạm Xuân Trung, Bộ môn Kỹ thuật Máy  nh, Khoa Điện tử Viễn thông, Trường ĐH Bách khoa, ĐH Đà Nẵng    2  Tà i liệ u hướng dan thı́ nghiệ m Vi xử lý và Vi đieu khien, 2012   1.2 Sơ đồ khối phân bổ linh kiện KIT MSP-EXP430FG4618 Hình Sơ đồ khối phân bổ linh kiện KIT MSP-EXP430FG4618  1.2.1 JTAG Hai header JTAG1 JTAG2 để lập trình debug MSP430 riêng biệt: JTAG1 cho MSP430FG4618 JTAG2 cho MSP430F2013 JTAG1 cho MSP430FG4618 dùng kiểu kết nối JTAG chuẩn dây, JTAG cho MSP430F2013 dùng kiểu giao tiếp JTAG Spy-Bi-Wire (2 dây) Điều cho phép chân port sử dụng trình debug 1.2.2 Microphone: Microphone (MIC) kết nối với MSP430FG4618 qua chân hình Microphone kích hoạt hay không qua chân MSP430FG4618 Hình Sơ đồ nguyên lý Microphone KIT MSP430FG4618   Biên soạn: Phạm Xuân Trung, Bộ môn Kỹ thuật Máy  nh, Khoa Điện tử Viễn thông, Trường ĐH Bách khoa, ĐH Đà Nẵng    3  Tà i liệ u hướng dan thı́ nghiệ m Vi xử lý và Vi đieu khien, 2012   1.2.3 Buzzer Buzzer kết nối với port I/O P3.5 MSP430FG4618 Buzzer hoàn toàn bị cách ly với jumper JP1 Lưu ý: trình thí nghiệm, sau thử nghiệm thành công, sinh viên nên tháo JP1 để tránh làm ảnh hưởng người xung quanh 1.2.4 LCD LCD kit loại SoftBaugh SBLCDA4, có chế độ: tĩnh, 2-mux, 3-mux 4-mux LCD hỗ trợ giao tiếp với MSP430FG4618 qua LCD driver có sẵn 1.2.5 Nút nhấn S1 S2: Hai nút nhấn S1 S2 nối với cổng xuất/nhập số P1 có chức ngắt MSP430FG4618 Hình Sơ đồ nguyên lý kết nối nút nhấn S1 & S2 với MSP430FG4618 1.2.6 Các LED đơn KIT MSP430FG4618 có LED: LED1, LED2, LED4 kết nối với chip MSP430FG4618, LED3 kết nối với chip MSP430F2013 LED3 LED4 ngắt khỏi kết nối Jumper để tiết kiệm lượng cho kit (LED3 dùng jumper JP2, LED4 dùng JP3) LED LED1 LED2 LED3 LED4 Kết nối với chip MSP430FG4618 MSP430FG4618 MSP430F2013 MSP430FG4618 Port P2.2 P2.1 P1.0 P5.1 Ghi Jumper JP2 JP3 Bảng 1: Kết nối LED                                                                    Hình 5. Sơ đồ nguyên lý kết nối LED1, LED2 & LED4 với MSP430FG4618 Hình Sơ đồ nguyên lý kết nối LED3 với MSP430F2013 Biên soạn: Phạm Xuân Trung, Bộ môn Kỹ thuật Máy  nh, Khoa Điện tử Viễn thông, Trường ĐH Bách khoa, ĐH Đà Nẵng    4  Tà i liệ u hướng dan thı́ nghiệ m Vi xử lý và Vi đieu khien, 2012   1.2.7 Giao tiếp RS232 Chip MSP430FG4618 hỗ trợ chuẩn giao tiếp RS-232 chân thông qua ngoại vi USC chip (được cấu hình chế độ UART) Hình Sơ đồ nguyên lý giao tiếp cổng RS232 với MSP430FG4618 1.2.8 Jumper Hình 8. Sơ đồ bố trí jumper KIT MSP430FG4618 Biên soạn: Phạm Xuân Trung, Bộ môn Kỹ thuật Máy  nh, Khoa Điện tử Viễn thông, Trường ĐH Bách khoa, ĐH Đà Nẵng    5  Tà i liệ u hướng dan thı́ nghiệ m Vi xử lý và Vi đieu khien, 2012   Header Chức dung Jumper kết nối Khi không dùng jumper kết nối Yêu cầu JTAG1 Bộ FET để lập trình-debug FG4618 FG4618 không sử dụng X JTAG2 Bộ FET để lập trình-debug F2013 F2013 không sử dụng X PWR1 Cung cấp nguồn cho FG4618 Ngoài ra, FG4618 không cung cấp nguồn dùng để đo dòng Cung cấp nguồn cho F2013 Ngoài ra, F2013 không cung cấp nguồn dùng để đo dòng Yêu cầu cần gắn jumper để sử dụng FG4618 Yêu cầu cần gắn jumper để sử dụng F2013 Cung cấp nguồn cho kit pin AAA Ngoài ra, dung để đo dòng tổng cộng kit Để sử dụng buzzer (nối với chân FG4618-P3.5) Pin không cung cấp nguồn cho chip MSP430 Yêu cầu cần dùng pin Không dùng buzzer Tùy chọn JP2 Cho phép LED3 hoạt động (LED3 nối với chân F2013-P1.0) Không dùng LED3 Tùy chọn/ yêu cầu dùng LED3 JP3 Cho phép LED4 hoạt động (LED4 nối với chân FG4618-P5.1) Không dùng LED4 Tùy chọn/ yêu cầu dùng LED4 JP4 Suy hao mức điện áp audio (69%) 98% suy hao ngõ audio DAC12 Tùy chọn H1(1-2, 3-4) Cấu hình cho I2C 1-2: SDA-UCBOSDA 3-4: SCL-UCBOSCL Cấu hình cho SPI 1-2: SDI – UCB0SIMO 3-4: SDO – UCB0SOMI 5-6: P1.4 – P3.0 (CS) 7-8: SCLK – UCB0CLK VCC_1: chân phía Dùng cho FG4618/JTAG1 VCC_2: chân phía Dùng cho F2013/JTAG2 LCL: cung cấp Vcc đến FET FET: nguồn từ FET (jumper BATT không thiết lập) PWR2 BATT JP1 H1(1-2, 3-4, 56,7-8) Vcc Không giao tiếp qua I2C Yêu cầu cho giao tiếp bên processor Không giao tiếp qua SPI Yêu cầu cho giao tiếp bên processor Nguồn từ JTAG Yêu cầu sử dụng không cần pin Bảng 2. Liệt kê chức jumper KIT MSP430FG4618 kết nối Biên soạn: Phạm Xuân Trung, Bộ môn Kỹ thuật Máy  nh, Khoa Điện tử Viễn thông, Trường ĐH Bách khoa, ĐH Đà Nẵng    6  Tà i liệ u hướng dan thı́ nghiệ m Vi xử lý và Vi đieu khien, 2012   1.3 Sơ đồ nguyên lý KIT MSP-EXP430FG4618                                             Hình 9. Sơ đồ nguyên lý toàn KIT MSP430FG4618 Biên soạn: Phạm Xuân Trung, Bộ môn Kỹ thuật Máy  nh, Khoa Điện tử Viễn thông, Trường ĐH Bách khoa, ĐH Đà Nẵng    7  Tà i liệ u hướng dan thı́ nghiệ m Vi xử lý và Vi đieu khien, 2012   2.Đặc tính cách cài đặt Debug MSP-FET430UIF 2.1 Giới thiệu công cụ FET FET (Flash Emulation Tool) cho phép lập trình - debug họ vi xử lý MSP430 qua chuẩn kết nối JTAG đầy đủ(4 dây) JTAG tiết kiệm chân (2 dây, Spy Bi-Wire) Do đó, FET dùng để phát triển ứng dụng họ MCU qua chế giao tiếp FET qua USB cổng song song, tương ứng với loại MSP-FET430UIF (Hình 10) MSP- FET430PIF Hiện tại, Công ty TI tài trợ loại MSP – FET430UIF cho môn Kỹ thuật Máy tính nên tất thí nghiệm KIT MSP430FG4618 sử dụng loại Hình 10 Bộ Debug MSP-FET430UIF Đặc tính Hỗ trợ tất họ MSP430 dựa Flash (F1xx, F2xx, F4xx, F5xx) MSP-FET430UIF x MSP-FET430PIF x x x KHÔNG x x x x KHÔNG KHÔNG x x KHÔNG x x Cho phép cấu hình bảo mật JTAG để bảo vệ code Cho phép tạo nguồn cấp chỉnh 1.8V-3.6V 100mA Cố định tạo nguồn cấp 2.8V Debug dùng JTAG chuẩn dây Debug dùng JTAG chuẩn dây (Spy-Bi-Wire) Hỗ trợ CCE Hỗ trợ IAR Bảng So sánh vài tình loại MSP-FET430UIF MSP- FET430PIF 2.2.Cài đặt driver Debug MSP-FET430UIF lên PC Hiện tại, phòng thí nghiệm Mô Vi xử lý trang bị PC cài đặt windows nên việc thiết lập driver cho Debug MSP-FET430UIF tuân theo bước sau Bước 1: Download driver cho FET430UIF lưu vào PC Đối với Windows 7-64 bit: processors.wiki.ti.com/images/d/dc/TUSBWINVCP_Win7-64.zip Đối với Windows 7-32 bit: processors.wiki.ti.com/images/6/6a/TUSBWINVCP_Win7-32.zip Đối với WindowsXP-32 bit: processors.wiki.ti.com/images/7/73/TUSBWINVCP_XP32.zip Đối với WindowsXP-64 bit: processors.wiki.ti.com/images/3/3b/TUSBWINVCP_XP64.zip Đối với hệ điều hành khác, lựa chọn drive phù hợp địa chỉ: Biên soạn: Phạm Xuân Trung, Bộ môn Kỹ thuật Máy  nh, Khoa Điện tử Viễn thông, Trường ĐH Bách khoa, ĐH Đà Nẵng    8  Tà i liệ u hướng dan thı́ nghiệ m Vi xử lý và Vi đieu khien, 2012   http://processors.wiki.ti.com/index.php/MSP430_JTAG_Interface_USB_Driver Bước 2: Gắn FET430UIF vào máy vi tính qua cổng USB Bước 3: Click phải chuột vào Computer/ chọn Properties cho cửa sổ sau Tiếp theo click vào Device Manager Bước 4: Click phải phần thiết bị mà chưa cài đặt, chọn Properties Tiếp đến chọn tab Driver / Update Driver… chọn đường dẫn đến file driver download bước Công cụ soạn thảo, mô phỏng, biên dịch nạp chương trình: Để lập trình debug, người phát triển ứng dụng sử dụng gói công cụ sau đây: IAR Embeeded Workbench, TI Code Composer Essential (CCE) TI Code Composer Studio (CCS) IAR chọn sử dụng tính đơn giản, gọn nhẹ Tham khảo website http://www.iar.com/ để biết thêm thông tin IAR Download IAR Embedded Workbench Code size limited Kickstart version tại: http://www.ti.com/lit/zip/slac050 Cơ sử dụng IAR để tạo project lập trình MSP430 tuân theo bước sau Biên soạn: Phạm Xuân Trung, Bộ môn Kỹ thuật Máy  nh, Khoa Điện tử Viễn thông, Trường ĐH Bách khoa, ĐH Đà Nẵng    9  Tà i liệ u hướng dan thı́ nghiệ m Vi xử lý và Vi đieu khien, 2012   Bước 1: chạy chương trình IAR Embedded Workbench IDE theo đường dẫn Start/All Programs/IAR Systems/ IAR Embeeded Workbench Kickstart for MSP430 4.21/ IAR Embeeded Workbench Hoặc click chuột vào Icon desktop hình Sau cửa sổ giao diện chương trình hiển thị Bước 2: Từ cửa sổ giao diện chính, chọn Project/ Create New Project … Bước 3: chọn ngôn ngữ sử dụng Trong thí nghiệm này, chọn Empty project C/main Asm/asm click OK Ở đây, lựa chọn Empty project sử dụng, sau click vào nút Biên soạn: Phạm Xuân Trung, Bộ môn Kỹ thuật Máy  nh, Khoa Điện tử Viễn thông, Trường ĐH Bách khoa, ĐH Đà Nẵng    10  Tà i liệ u hướng dan thı́ nghiệ m Vi xử lý và Vi đieu khien, 2012   OK để tiến hành bước Bước 4: Chọn đường dẫn muốn lưu project tên Project Trong ví dụ này, tên project lab1 lưu thư mục “my lab” Nếu bước chọn Empty project cửa sổ có giao diện sau: Biên soạn: Phạm Xuân Trung, Bộ môn Kỹ thuật Máy  nh, Khoa Điện tử Viễn thông, Trường ĐH Bách khoa, ĐH Đà Nẵng    11  Tà i liệ u hướng dan thı́ nghiệ m Vi xử lý và Vi đieu khien, 2012   Nếu bước chọn C/main cửa sổ có giao diện sau: Bước 5: thiết lập tùy chọn: vi điều khiển, debug, file nạp,… Chọn Project/Option… (hoặc Alt+F7) Trong mục General Options -> chọn tab Target -> chọn MSP430FG4618 Biên soạn: Phạm Xuân Trung, Bộ môn Kỹ thuật Máy  nh, Khoa Điện tử Viễn thông, Trường ĐH Bách khoa, ĐH Đà Nẵng    12  Tà i liệ u hướng dan thı́ nghiệ m Vi xử lý và Vi đieu khien, 2012   Tiếp tục, chọn tab khác để thiết lập sau (các lựa chọn lại, xem help để rõ hơn) Trong tab Output: chọn Output file: Executable Trong tab Library Configuration: chọn Library: CLIB Trong mục C/C++ Compiler: (nếu lựa chọn ngôn ngữ lập trình ngôn ngữ C) Trong tab Optimizations: chọn level: None (để hỗ trợ tối đa trình debug) Trong tab List: chọn Output list file: Assembler mnemonics Trong mục Debugger: Trong tab Setup: chọn Driver: FET Debugger Biên soạn: Phạm Xuân Trung, Bộ môn Kỹ thuật Máy  nh, Khoa Điện tử Viễn thông, Trường ĐH Bách khoa, ĐH Đà Nẵng    13  Tà i liệ u hướng dan thı́ nghiệ m Vi xử lý và Vi đieu khien, 2012   Trong FET Debugger: Trong tab Setup: chọn Connection: Texas Instrument USB-IF Xong chọn lựa bước 5, click OK để lưu lại tùy chọn để tiếp tục bước Bước 6: Thiết lập file lập trình (Nếu bước chọn ngôn ngữ C Asm có sẵn số file mặc định cửa sổ làm việc, ta sử dụng để lập trình, remove chúng để tạo file khác, add thêm file vào.) File/ New/File, cửa sổ có giao diện hình sau: Với hình soạn thảo phía bên phải cửa sổ làm việc, người lập trình biên soạn chương trình Biên soạn: Phạm Xuân Trung, Bộ môn Kỹ thuật Máy  nh, Khoa Điện tử Viễn thông, Trường ĐH Bách khoa, ĐH Đà Nẵng    14  Tà i liệ u hướng dan thı́ nghiệ m Vi xử lý và Vi đieu khien, 2012   Sau đó, file lưu bằng: File/Save với tên định dạng: “lab1.c” ( Hoặc bước chọn ngôn ngữ C cửa sổ soạn thảo giống hình ) Biên soạn: Phạm Xuân Trung, Bộ môn Kỹ thuật Máy  nh, Khoa Điện tử Viễn thông, Trường ĐH Bách khoa, ĐH Đà Nẵng    15  Tà i liệ u hướng dan thı́ nghiệ m Vi xử lý và Vi đieu khien, 2012   File “lab1.c” chưa đưa vào project lab1 Để đưa file “lab1.c” vào project để dùng, ta cần: Project/Add file…, cửa sổ chọn “lab1.c” giao diện sau: Lúc này, cửa sổ làm việc project sau: Bước 7: Biên dịch file lập trình Thực hiện: Project/Compile (hoặc Ctrl + F7), lúc IAR yêu cầu lưu lại Workspace làm việc với giao diện sau Nhập tên Workspace, hướng dẫn này, lab.eww Biên soạn: Phạm Xuân Trung, Bộ môn Kỹ thuật Máy  nh, Khoa Điện tử Viễn thông, Trường ĐH Bách khoa, ĐH Đà Nẵng    16  Tà i liệ u hướng dan thı́ nghiệ m Vi xử lý và Vi đieu khien, 2012   Sau lưu Workspace, trình biên dịch thực Nếu lỗi thông báo sau (nếu có lỗi, tra cứu từ help) Bước 8: Lập trình-debug cho chip Thực Project/Download and Debug (hoặc Ctrl+D) Để thấy kết thực kit: Debug/Go (hoặc F5) Biên soạn: Phạm Xuân Trung, Bộ môn Kỹ thuật Máy  nh, Khoa Điện tử Viễn thông, Trường ĐH Bách khoa, ĐH Đà Nẵng    17  Tà i liệ u hướng dan thı́ nghiệ m Vi xử lý và Vi đieu khien, 2012   Khi biên dịch nạp thành công, ta tiến hành debugger trực tiếp mạch Step   Thiết lập cho thí nghiệm Sau bước mà người làm thí nghiệm phải nắm kỹ trước bắt tay vào sử dụng công cụ để thực thí nghiệm Trong thí nghiệm, trình bày bước thiết lập thêm tùy thuộc Bước 1: Thiết lập MSP-EXP430FG4618 - Kiểm tra/sử dụng jumper PWR1 để cung cấp nguồn cho FG4618 (jumper PWR1 nằm khoảng kit, phía bên phải chip M430G4618, đặt kit vị trí hình 1) - Kiểm tra/ không sử dụng jumper BATT (jumper BATT phía dưới, bên phải kit) Khi thí nghiệm, thiết lập để không sử dụng pin cung cấp nguồn cho chip với mục đích tiết kiệm pin - Kiểm tra/ sử dụng jumper Vcc (jumper Vcc phía dưới, bên phải kit) Để thiết lập sử dụng nguồn từ FET (khi không dùng pin), thiết lập jumper vị trí FET cho hàng (nghĩa jumper kết nối, jumper kết nối header tận bên phải: header phía dưới: dùng cho FG4618/JTAG1, chân phía trên: dùng cho F2013/JTAG2) Bước 2: Kết nối FET430UIF - Kết nối dây USB máy tính FET - Kết nối dây 14 pin JTAG FET kit MSP-EXP430FG4618 Biên soạn: Phạm Xuân Trung, Bộ môn Kỹ thuật Máy  nh, Khoa Điện tử Viễn thông, Trường ĐH Bách khoa, ĐH Đà Nẵng    18  Tà i liệ u hướng dan thı́ nghiệ m Vi xử lý và Vi đieu khien, 2012   Thay đổi Jump mạch: Trên mạch nạp, led xanh (Power) báo hiệu nguồn, led đỏ (Mode) báo hiệu mạch nạp Bước 3: Sử dụng IAR để lập trình-debug Bước 4: Thực thí nghiệm 5.Cấu trúc chương trình C thông thường cho MSP430 Biên soạn: Phạm Xuân Trung, Bộ môn Kỹ thuật Máy  nh, Khoa Điện tử Viễn thông, Trường ĐH Bách khoa, ĐH Đà Nẵng    19  Tà i liệ u hướng dan thı́ nghiệ m Vi xử lý và Vi đieu khien, 2012    Chú ý: o Trong hàm main ta thường thấy dòng lệnh: WDTCTL = WDTPW + WDTHOLD; Stop watchdog timer để khỏi reset chip Nếu lệnh (và tùy chọn khác WDTCTL) mạch không hoạt động o Trong C cho MSP430, có số định nghĩa trước (ở file header), ta hay dùng số này: BIT0 = 0000 0001 BIT1 = 0000 0010 BIT2 = 0000 0100 … BIT7 = 1000 0000 o Một chân MSP430 thường có nhiều chức năng, ta muốn sử dụng chức định nghĩa cho Ví dụ: P1DIR = 0xFF; // toàn port1 Output P1DIR = 0x00; //toàn port1 Input Như muốn số chân port1 Output số chân port1 Input làm nào? Không giống số VĐK khác, MSP430 không cho phép ta tác động trực tiếp đến chân riêng lẻ, tác động lên port (8 chân) Như muốn tác động lên chân riêng lẻ ta dùng phép toán OR, AND XOR Ví dụ: P1DIR |= BIT1; //chân P1.1 chân Output, chân khác ko bị ảnh hưởng lệnh P1DIR &= ~BIT1; // chân P1.1 chân Input (nếu ta ko định nghĩa mặc định Input) P2DIR |= BIT0 + BIT1 + BIT3; //chân P2.0, P2.1, P2.3 Output Lệnh viết lại: P2DIR |= 0x0B; // BIT0 + BIT1 + BIT3 = 11d=0Bh P2DIR &= ~(BIT4+BIT5); //P2DIR &=~0x30; //chân P2.4, P2.5 Input o Xuất port theo bit riêng lẻ Như việc định nghĩa chân, MSP430 không cho ta tác động trực tiếp đến chân nào, muốn xuất bit hay nhiều bit ta sử dụng cách dùng với định nghĩa chân Ví dụ muốn cho P1.1=1, P1.3=1, P2.1=0 P1OUT |= BIT1+BIT3 ; //P1.1=1, P1.3=1 P2OUT &=~ BIT1 ; //P2.1=0 Hoặc đảo bit chân lện XOR ^ P1OUT ^= BIT4 ; //chân P1.4 đảo trạng thái o Kiểm tra trạng thái chân Ngoài ngắt ta kiểm tra trạng thái chân mức thấp (0V) hay mức cao (1.8V đến 3.6V) Ví dụ kiểm tra chân P1.2 if( (P1IN&BIT2)==0 ) //nếu chân P1.2 //do anything else //do anything // viết if( P1IN&BIT2==0 ), thiếu ngoặc sai Biên soạn: Phạm Xuân Trung, Bộ môn Kỹ thuật Máy  nh, Khoa Điện tử Viễn thông, Trường ĐH Bách khoa, ĐH Đà Nẵng    20  Tà i liệ u hướng dan thı́ nghiệ m Vi xử lý và Vi đieu khien, 2012   Các thí nghiệm Bài 1: GPIO Các ghi liên quan đến GPIO: 1.1 Direction Register PxDIR (P1DIR, P2DIR): Đây ghi bit điều khiển chiều chân port P1DIR điều khiển PORT1, P2DIR điều khiển PORT2  Bit = 1: Chân PORT tương ứng cấu hình thành output  Bit = 0: Chân PORT tương ứng cấu hình thành input 1.2 Input Register (PxIN): Đây ghi bit chứa giá trị đọc từ chân PORT  Bit = 1: Chân PORT tương ứng mức cao  Bit = 0: Chân PORT tương ứng mức thấp 1.3 Output Register (PxOUT): Đây ghi điều khiển ngõ PORT  Bit = 1: Xuất mức cao chân PORT tương ứng  Bit = 0: Xuất mức thấp chân PORT tương ứng 1.4 Function Select Register: Đây ghi chọn chức cho chân PORT Mỗi chân PORT cấu hình chọn chức Input/Output chức đặc biệt khác  Bit = 1: Chọn chức đặc biệt  Bit = 0: Chọn chức GPIO Các lưu ý viết chương trình cho lab này: 2.1 Watchdog Timer Trong lab này, không cần sử dụng Watchdog timer Để tắt Watchdog timer, ghi giá trị 5A vào bit cao ghi WDTCTL set thứ ghi WDTCTL WDTCTL = 0x5A00 | 0x0080 Hoặc: (WDTCTL = WDTPW | WDTHOLD ) 2.2 Delay: Bởi chương trình chưa định nghĩa clock nên CPU sử dụng thạch anh 32.768 kHz Để có thời gian delay khoảng 1s, vòng delay đếm xuống từ 30.000SV dùng câu lệnh để tạo delay: for(int i=30000;i>0;i++); Biên soạn: Phạm Xuân Trung, Bộ môn Kỹ thuật Máy  nh, Khoa Điện tử Viễn thông, Trường ĐH Bách khoa, ĐH Đà Nẵng    21  Tà i liệ u hướng dan thı́ nghiệ m Vi xử lý và Vi đieu khien, 2012   Bài 1.1 Yêu cầu: Sinh viên viết chương trình cho LED1 LED2 sáng tắt luân phiên Thời gian lần sáng tắt khoảng 1s Câu hỏi 1: Các LED kết nối với MCU hình Điền vào chỗ trống để trả lời câu hỏi + LED1 nối vào chân MCU? (Cổng (Port) nào?) Trả lời:…………………………………………… + LED2 nối vào chân MCU? (Cổng (Port) nào?) Trả lời:…………………………………………… + Để điều khiển LED, chân port phải input hay output? Trả lời:…………………………………………… + Để LED sáng, phải xuất giá trị chân port? Trả lời:…………………………………………… Câu hỏi 2: Hoàn chỉnh chương trình cách điền vào chỗ trống: #include void main (void) { volatile unsigned int i; WDTCTL = ……… | ………; P2DIR |= …………………….; P2OUT &= ………………….; P2OUT |= ……………………; while(1) { i= ………………………….; (i ); while (i !=0); //Stop Watchdog Timer //Configure P2.1 and P2.2 as Output // Turn off LED1, LED2 // Turn on LED 1, turn off LED //Infinite loop //Delay //Toggle Port P2.1 and P2.2 using an exclusive-OR P2OUT ^= ………………………; } } Biên soạn: Phạm Xuân Trung, Bộ môn Kỹ thuật Máy  nh, Khoa Điện tử Viễn thông, Trường ĐH Bách khoa, ĐH Đà Nẵng    22  Tà i liệ u hướng dan thı́ nghiệ m Vi xử lý và Vi đieu khien, 2012   Bài 1.2 Yêu cầu: Sinh viên viết chương trình để đảo trạng thái LED1 SW1 nhấn Câu hỏi 1: Các SW(switch) kết nối với MCU hình Điền vào chỗ trống để trả lời câu hỏi + SW1 nối vào chân MCU? (Cổng (Port) nào?) Trả lời:…………………………………………… + SW2 nối vào chân MCU? (Cổng (Port) nào?) Trả lời:…………………………………………… + Để đọc trạng thái switch, chân port phải input hay output? Trả lời:…………………………………………… Câu hỏi 2: Hoàn chỉnh chương trình cách điền vào chỗ trống: #include void main (void) { volatile unsigned int i; WDTCTL = ………………………….; P2DIR |= …………………………… ; P1DIR &= ……………………… ; while (1) { while ((P1IN & 0x01)); P2OUT ^= …………………….; for(……………………… .); while (……………………… ); for(……………………… .); } } //Stop Watchdog Timer //Configure P2.2 as Output (LED1) //Configure P1.0 as Input (S1) //Wait for the press of the button //Toggle Port P2.2 //Delay, button debounce //Wait for the release of the button //Delay, button debounce Biên soạn: Phạm Xuân Trung, Bộ môn Kỹ thuật Máy  nh, Khoa Điện tử Viễn thông, Trường ĐH Bách khoa, ĐH Đà Nẵng    23  Tà i liệ u hướng dan thı́ nghiệ m Vi xử lý và Vi đieu khien, 2012   Bài GPIO & INTERRUPT MSP430 thiết kế để làm việc với ứng dụng công suất thấp Vì CPU thường trạng thái “off” phần lớn thời gian Để đưa CPU vào trạng thái “off”, bit SCG1, SCG0 CPUOFF ghi SR set Một ngắt xảy đánh thức CPU Khi ghi SR lưu vào stack CPU thực thi ISR Khi thoát khỏi ISR, ghi SR lấy từ stack làm cho CPU tắt trở lại Đưa CPU vào trạng thái công suất thấp cho phép ngắt: Bit GIE ghi SR set cho phép ngắt Ta đưa CPU vào trạng thái công suất thấp, cho phép ngắt lệnh: _BIS_SR (LPM3_bits + GIE); Trong đó: LPM3_bits = (SCG1+SCG0+CPUOFF) Định nghĩa chương trình phục vụ ngắt (ISR): Ta định nghĩa ISR vector ngắt ISR_VECTOR cấu trúc sau: #pragma vector=ISR_VECTOR interrupt void myISR (void) { ……………………… } 1.5 Các ghi cấu hình ngắt cho chân PORT: Mỗi chân PORT MSP430 dùng để tạo ngắt Các ngắt cấu hình thông qua ghi PxIFG, PxIE, PxIES 1.5.1 Interrupt enable Register (PxIE) : Mỗi bit ghi dùng phép/không cho phép ngắt chân PORT tương ứng  Bit = 1: Cho phép ngắt  Bit = 0: Cấm ngắt 1.5.2 Interrupt Edge Select Registers (PxIES): Dùng để chọn cạnh tín hiệu ngắt  Bit = 1: Ngắt cạnh xuống tín hiệu  Bit = 0: Ngắt cạnh lên tín hiệu 1.5.3 Interrupt Flag Registers (PxIFG): Thanh ghi chứa cờ ngắt Các cờ tự đọng bật phần cứng, phải xóa phần mềm Các cờ bật phần mềm phép ngắt  Bit = 1: Một ngắt chờ xử lý  Bit = 0: Không có ngắt chờ Biên soạn: Phạm Xuân Trung, Bộ môn Kỹ thuật Máy  nh, Khoa Điện tử Viễn thông, Trường ĐH Bách khoa, ĐH Đà Nẵng    24  Tà i liệ u hướng dan thı́ nghiệ m Vi xử lý và Vi đieu khien, 2012   Biên soạn: Phạm Xuân Trung, Bộ môn Kỹ thuật Máy  nh, Khoa Điện tử Viễn thông, Trường ĐH Bách khoa, ĐH Đà Nẵng    25  Tà i liệ u hướng dan thı́ nghiệ m Vi xử lý và Vi đieu khien, 2012   Bài 2.1 Yêu cầu: Sinh viên viết chương trình đảo trạng thái LED1 Switch nhấn Trong chương trình sử dụng ngắt chân port giao tiếp Switch Câu hỏi 1: Các SW(switch) kết nối với MCU hình Điền vào chỗ trống để trả lời câu hỏi + SW1 nối vào chân Port CPU? Trả lời:…………………………………………… + Khi Switch nhấn, có chuyển trạng thái chân PORT? + Để cho phép ngắt chân P1.0, ta phải ghi …… vào bit…….của ghi …………….? + Để chọn cạnh xuống cho ngắt chân P1.0, ta phải ghi ……vào bit…….của ghi ………? Câu hỏi 2: Hoàn chỉnh chương trình cách điền vào chỗ trống: #include #pragma vector=……………………………………… interrupt void Port_1 (void) { //define an interrupt service routine at 0xFFE8 volatile unsigned int i; P2OUT ^= ………………………; //Toggle Port P2.2 for(………………………………); //Delay, button debounce while (………………………… ); //Wait for the release of the button for(……………………………….); //Delay, button debounce P1IFG &= ~0x01; //Clean P1.0 Interrupt Flag (bit of P1IFG register) } void main (void) { WDTCTL = ………………………; //Stop Watchdog Timer P2DIR |= …………………………; //Configure P2.2 as Output (LED1) P1DIR &= ……………………… ; //Configure P1.0 as Input (S1) P1IE |= ………………………… ; //Interrupt Enable in P1.0 P1IES |= ………………………….; //P1.0 Interrupt flag high-to-low transition _BIS_SR (……………………… ); //Low Power Mode with interrupts enabled } Biên soạn: Phạm Xuân Trung, Bộ môn Kỹ thuật Máy  nh, Khoa Điện tử Viễn thông, Trường ĐH Bách khoa, ĐH Đà Nẵng    [...]... nh, Khoa Điện tử Vi n thông, Trường ĐH Bách khoa, ĐH Đà Nẵng    17  Tà i liệ u hướng dan thı́ nghiệ m Vi xử lý và Vi đieu khien, 2012   Khi biên dịch và nạp thành công, ta có thể tiến hành debugger trực tiếp trên mạch bằng các Step   4 Thiết lập cơ bản cho thí nghiệm Sau đây là các bước cơ bản nhất mà người làm thí nghiệm phải nắm kỹ trước khi bắt tay vào sử dụng mọi công cụ để thực hiện các bài thí nghiệm. .. nh, Khoa Điện tử Vi n thông, Trường ĐH Bách khoa, ĐH Đà Nẵng    21  Tà i liệ u hướng dan thı́ nghiệ m Vi xử lý và Vi đieu khien, 2012   Bài 1.1 Yêu cầu: Sinh vi n vi t chương trình cho LED1 và LED2 sáng tắt luân phiên Thời gian giữa 2 lần sáng tắt là khoảng 1s Câu hỏi 1: Các LED được kết nối với MCU như hình trên Điền vào chỗ trống để trả lời các câu hỏi dưới đây + LED1 nối vào chân nào của... anything // nếu vi t if( P1IN&BIT2==0 ), thiếu 1 ngoặc là sai Biên soạn: Phạm Xuân Trung, Bộ môn Kỹ thuật Máy  nh, Khoa Điện tử Vi n thông, Trường ĐH Bách khoa, ĐH Đà Nẵng    20  Tà i liệ u hướng dan thı́ nghiệ m Vi xử lý và Vi đieu khien, 2012   6 Các bài thí nghiệm Bài 1: GPIO 1 Các thanh ghi liên quan đến GPIO: 1.1 Direction Register PxDIR (P1DIR, P2DIR): Đây là các thanh ghi 8 bit điều khiển... u hướng dan thı́ nghiệ m Vi xử lý và Vi đieu khien, 2012   Sau đó, file được lưu bằng: File/Save với tên và định dạng: “lab1.c” ( Hoặc nếu ở bước 3 đã chọn ngôn ngữ C thì cửa sổ soạn thảo sẽ giống như hình dưới đây ) Biên soạn: Phạm Xuân Trung, Bộ môn Kỹ thuật Máy  nh, Khoa Điện tử Vi n thông, Trường ĐH Bách khoa, ĐH Đà Nẵng    15  Tà i liệ u hướng dan thı́ nghiệ m Vi xử lý và Vi đieu khien, 2012   File... Biên soạn: Phạm Xuân Trung, Bộ môn Kỹ thuật Máy  nh, Khoa Điện tử Vi n thông, Trường ĐH Bách khoa, ĐH Đà Nẵng    22  Tà i liệ u hướng dan thı́ nghiệ m Vi xử lý và Vi đieu khien, 2012   Bài 1.2 Yêu cầu: Sinh vi n vi t chương trình để đảo trạng thái LED1 mỗi khi SW1 được nhấn Câu hỏi 1: Các SW(switch) được kết nối với MCU như hình trên Điền vào chỗ trống để trả lời các câu hỏi dưới đây + SW1 nối vào chân nào của MCU? (Cổng (Port)... chờ xử lý  Bit = 0: Không có ngắt nào đang chờ Biên soạn: Phạm Xuân Trung, Bộ môn Kỹ thuật Máy  nh, Khoa Điện tử Vi n thông, Trường ĐH Bách khoa, ĐH Đà Nẵng    24  Tà i liệ u hướng dan thı́ nghiệ m Vi xử lý và Vi đieu khien, 2012   Biên soạn: Phạm Xuân Trung, Bộ môn Kỹ thuật Máy  nh, Khoa Điện tử Vi n thông, Trường ĐH Bách khoa, ĐH Đà Nẵng    25  Tà i liệ u hướng dan thı́ nghiệ m Vi xử lý... này chưa được đưa vào project lab1 Để đưa file “lab1.c” vào project để dùng, ta cần: Project/Add file…, một cửa sổ hiện ra và chọn “lab1.c” như giao diện sau: Lúc này, trong cửa sổ làm vi c project sẽ như sau: Bước 7: Biên dịch file lập trình Thực hiện: Project/Compile (hoặc Ctrl + F7), lúc này IAR sẽ yêu cầu lưu lại Workspace làm vi c với giao diện sau Nhập tên Workspace, trong hướng dẫn này, là lab.eww... Biên soạn: Phạm Xuân Trung, Bộ môn Kỹ thuật Máy  nh, Khoa Điện tử Vi n thông, Trường ĐH Bách khoa, ĐH Đà Nẵng    23  Tà i liệ u hướng dan thı́ nghiệ m Vi xử lý và Vi đieu khien, 2012   Bài 2 GPIO & INTERRUPT MSP430 được thiết kế để làm vi c với các ứng dụng công suất thấp Vì vậy CPU thường ở trạng thái “off” trong phần lớn thời gian Để đưa CPU vào trạng thái “off”, các bit SCG1, SCG0 và CPUOFF trong thanh ghi SR được set... Tà i liệ u hướng dan thı́ nghiệ m Vi xử lý và Vi đieu khien, 2012   Nếu ở bước 3 chọn C/main thì cửa sổ có giao diện như sau: Bước 5: thiết lập các tùy chọn: vi điều khiển, debug, file nạp,… Chọn Project/Option… (hoặc Alt+F7) Trong mục General Options -> chọn tab Target -> chọn MSP430FG4618 Biên soạn: Phạm Xuân Trung, Bộ môn Kỹ thuật Máy  nh, Khoa Điện tử Vi n thông, Trường ĐH Bách khoa, ĐH Đà Nẵng ... thanh ghi SR được set Một ngắt xảy ra sẽ đánh thức CPU Khi đó thanh ghi SR được lưu vào stack và CPU thực thi ISR Khi thoát khỏi ISR, thanh ghi SR được lấy ra từ stack và làm cho CPU tắt trở lại Đưa CPU vào trạng thái công suất thấp và cho phép ngắt: Bit GIE trong thanh ghi SR khi được set sẽ cho phép ngắt Ta đưa CPU vào trạng thái công suất thấp, cho phép ngắt bằng lệnh: _BIS_SR (LPM3_bits + GIE); ... trực tiếp mạch Step   Thiết lập cho thí nghiệm Sau bước mà người làm thí nghiệm phải nắm kỹ trước bắt tay vào sử dụng công cụ để thực thí nghiệm Trong thí nghiệm, trình bày bước thiết lập thêm... IAR Bảng So sánh vài tình loại MSP-FET430UIF MSP- FET430PIF 2.2.Cài đặt driver Debug MSP-FET430UIF lên PC Hiện tại, phòng thí nghiệm Mô Vi xử lý trang bị PC cài đặt windows nên vi c thiết lập driver... u hướng dan thı́ nghiệ m Vi xử lý và Vi đieu khien, 2012   Các thí nghiệm Bài 1: GPIO Các ghi liên quan đến GPIO: 1.1 Direction Register PxDIR (P1DIR, P2DIR): Đây ghi bit điều khiển chiều chân port P1DIR điều

Ngày đăng: 06/11/2015, 20:55

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan