Thông báo

Tất cả đồ án đều đã qua kiểm duyệt kỹ của chính Thầy/ Cô chuyên ngành kỹ thuật để xứng đáng là một trong những website đồ án thuộc khối ngành kỹ thuật uy tín & chất lượng.

Đảm bảo hoàn tiền 100% và huỷ đồ án khỏi hệ thống với những đồ án kém chất lượng.

ĐỒ ÁN TỐT NGHIỆP ĐIỆN tử QUẢ CẦU QUANG BÁO

mã tài liệu 301000600006
nguồn huongdandoan.com
đánh giá 5.0
mô tả 300 MB Bao gồm tất cả file asm, hex, lst, frm, vbp, vbw,....,.lưu đồ giải thuật.. CDR thuyết minh, báo cáo power point, bản vẽ nguyên lý, bản vẽ thiết kế, FILE lập trình, và tất cả các clip quay lại đồ án này... và nhiều tài liệu liên quan kèm theo đồ án này
giá 989,000 VNĐ
download đồ án

NỘI DUNG ĐỒ ÁN

100 MB Bao gồm tất cả file,.lưu đồ giải thuật... thuyết minh, bản vẽ nguyên lý, bản vẽ thiết kế, FILE lập trình,  ĐỒ ÁN TỐT NGHIỆP ĐIỆN tử QUẢ CẦU QUANG BÁO

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HỒ CHÍ MINH

KHOA CƠ KHÍ CHẾ TẠO MÁY

BỘ MÔN CƠ ĐIỆN TỬ

NHIỆM VỤ CỦA ĐỒ ÁN TỐT NGHIỆP

1. Tên đề tài:

QUẢ CẦU QUANG BÁO

 ĐỒ ÁN TỐT NGHIỆP ĐIỆN tử QUẢ CẦU QUANG BÁO

2. Các thông tin ý tưởng ban đầu:

            - Dựa vào khả năng lưu ảnh của mắt người.

            - Dựa vào tính mới lạ của loại hình quang báo này.

3. Nội dung các phần thuyết minh và tính toán:

            - Tìm hiểu về vi điều khiển ARM7-LPC2148.

            - Tìm hiểu về IC PCA9633 (dùng để phối màu led).

            - Tìm hiểu về giao thức truyền I2C.

            - Tìm hiểu về phương pháp hiển thị quang báo.

4. Giáo viên hướng dẫn: 

5. Ngày giao nhiệm vụ: Ngày……tháng……năm 2012

....................................................

TÓM TẮT ĐỒ ÁN

Đề tài “Quả cầu quang báo” của nhóm liên quan đến các lĩnh vực: cơ khí, điện tử và công nghệ thông tin.

  1. Lĩnh vực cơ khí: Thiết kế và thi công phần cơ khí của hệ thống.
  2. Lĩnh vực điện tử: Chế tạo các mạch điện tử: mạch nguồn, mạch vi điều khiển ARM, mạch hiển thị.
  3. Lĩnh vực công nghệ thông tin: thiết kế giao diện điều khiển hệ thống.

Nội dung của đề tài gồm 6 chương và các vấn đề trọng tâm, cốt lõi được trình bày ở các chương 2,3 và 5.

  1. Chương 2: Giới thiệu và trình bày các chức năng của vi điều khiển ARM7 được sử dụng trong đề tài.
  2. Chương 3: Giới thiệu các chức năng của IC PCA9633
  3. Chương 5: Thiết kế, tính toán và chế tạo các mạch điện được sử dụng trong đề tài như: mạch nguồn, mạch vi điều khiển, mạch hiển thị.

ABSTRACT

Our subject is “Display Ball” that relates to following fields: mechanic, electronic and information technology.

  1. Mechanic: Design and make mechanical part of system.
  2. Electronic: Make electronic boards: power supply board, microcontroller ARM board, display board.
  3. Information technology: Design computer interface to control system.

Subject’s content includes 6 chapters and important, essential problems are presented in chapters: 2, 3 and 5.

  1. Chapter 2: Introduce and present fuctions of microcontroller ARM7 that is used in our subject.
  2. Chapter 3: Introduce fuctions of IC PCA9633
  3. Chapter 5: Design, calculate and make electronic circuits that are used in our subject such as: power supply, microcontroller, display.

MỤC LỤC

Trang bìa                                                                                                                                          i

Nhiệm vụ của đồ án tốt nghiệp                                                                                                    ii

Nhận xét của giáo viên hướng dẫn                                                                                            iii

Nhận xét của giáo viên phản biện                                                                                              iv

Lời cảm ơn                                                                                                                                      v

Tóm tắt đồ án                                                                                                                                vi

Abstract                                                                                                                                        vii

Mục lục                                                                                                                                        viii

Danh mục hình vẽ                                                                                                                          x

Danh mục bảng biểu                                                                                                                    xi

Danh mục từ viết tắt                                                                                                                    xii

 

CHƯƠNG 1: TỔNG QUAN                                                                                                       1

            1.1    Giới thiệu                                                                                                                   1

            1.2    Tình hình nghiên cứu                                                                                               1

           1.3     Mục tiêu nghiên cứu                                                                                        2

CHƯƠNG 2: SƠ LƯỢC VỀ VI ĐIỀU KHIỂN ARM7-LPC2148                                       3

            2.1    Giới thiệu vi điều khiển LPC2148                                                                         3

                     2.1.1   Đặc điểm                                                                                                        3

                     2.1.2   Sơ đồ khối                                                                                                      4

            2.2    Sơ đồ chân và tổ chức bộ nhớ                                                                                 5

                     2.2.1   Sơ đồ chân                                                                                                     5

                     2.2.2   Tổ chức bộ nhớ và địa chỉ của các thiết bị ngoại vi                                6

            2.3    Khối điều khiển hệ thống                                                                                        9

            2.4    Hoạt động ngắt                                                                                                        12

            2.5    Timer                                                                                                                        14

            2.6    Bộ truyền nhận bất đồng bộ (UART)                                                                  17

            2.7    Watchdog timer                                                                                                      20

            2.8    I2C                                                                                                                            23

CHƯƠNG 3: GIỚI THIỆU IC PCA9633                                                                              30

  1. Giới thiệu chung                                                                                             30       
  2. Mô tả chức năng                                                                                             32       
  3. Thanh ghi điều khiển                                                                                      34      
  4. Các thanh ghi                                                                                                  36
  5. Reset bằng phần mềm                                                                                     40
  6. Điều khiển độ sáng độc lập cùng với làm mờ/nhấp nháy nhóm                     41
  7. Đặc tính của I2C                                                                                             41
  8. Các giao tiếp trên bus                                                                                      43

CHƯƠNG 4: KHÁI QUÁT VỀ PHÀN MỀM KEIL UVISION3                                      46

  1. Khái quát                                                                                                                 46
  2. Sử dụng phần mềm Keil uVision                                                                          46

CHƯƠNG 5: THIẾT KẾ, THI CÔNG VÀ KẾT QUẢ                                                        52

  1. Module mạch nguồn                                                                                              52
  2. Module mạch vi điều khiển                                                                                  54
  3. Module mạch hiển thị                                                                                            57
  4. Kết quả đạt được                                                                                                     57
  5. Lưu đồ giải thuật của chương trình                                                                      59

CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN                                                      64

  1. Kết luận                                                                                                                    64
  2. Hướng phát triển                                                                                                     64

TÀI LIỆU THAM KHẢO                                                                                                         65

PHỤ LỤC                                                                                                                                     66

DANH MỤC HÌNH VẼ

 

Hình 1.1   Các mô hình đã được thực hiện                                                                                 1

Hình 2.1   Sơ đồ khối của LPC2148                                                                                            4

Hình 2.2   Sơ đồ chân của LPC2148                                                                                            5

Hình 2.3   Cấu trúc bộ nhớ                                                                                                            7

Hình 2.4   Cấu trúc bộ nhớ ngoại vi                                                                                            7

Hình 2.5   Sơ đồ bộ nhớ AHB                                                                                                       8

Hình 2.6   Các chế độ và các kiểu bộ dao động                                                                      10

Hình 2.7   Các logic của ngắt ngoài                                                                                           11

Hình 2.8   Sơ đồ khối Reset                                                                                                        11

Hình 2.9   Sơ đồ khối của bộ điều khiển ngắt vector ngắt                                                     14

Hình 2.10 Sơ đồ khối của UART                                                                                               17

Hình 2.11 Sơ đồ khối Watchdog                                                                                                23

Hình 2.12 Kết nối I2C bus                                                                                                          24

Hình 2.13 Sơ đồ khối của I2C                                                                                                    25

Hình 2.14 Định dạng ở chế độ Master truyền                                                                          27

Hình 2.15 Định dạng ở chế độ Master nhận                                                                            27

Hình 2.16 Chế độ Master nhận chuyển sang Master truyền sau repeated START            27

Hình 2.17 Định dạng ở chế độ Slave nhận                                                                               28

Hình 2.18 Định dạng ở chế độ Slave truyền                                                                            29

Hình 3.1   Các sơ đồ chân của IC PCA9633                                                                             30

Hình 3.2   Sơ đồ khối của PCA9633                                                                                         32

Hình 3.3   Địa chỉ Slave                                                                                                              33

Hình 3.4   Địa chỉ reset bằng phần mềm                                                                                   34

Hình 3.5   Thanh ghi điều khiển                                                                                                34

Hình 3.6   Các tín hiệu độ sáng + làm mờ nhóm                                                                     41

Hình 3.7   Truyền dữ liệu bit                                                                                                      42

Hình 3.8   Các điều kiện START và STOP                                                                               42

Hình 3.9   Cấu hình của hệ thống                                                                                              42

Hình 3.10 Sự nhận biết trên bus I2C                                                                                         43

Hình 3.11 Quá trình ghi vào một thanh ghi đặc trưng                                                            43

Hình 3.12 Quá trình ghi lên tất cả các thanh ghi dùng chức năng tăng dần tự động          44

Hình 4.1   Giao diện Keil uVision lúc mới khởi động                                                            46

Hình 4.2   Cửa sổ Create New Project                                                                                       47

Hình 4.3   Cửa sổ chọn chip                                                                                                       47

Hình 4.4   Cửa sổ hỏi copy đoạn code khởi động                                                                   47

Hình 4.5   Cửa sổ soạn thảo Text1                                                                                             48

Hình 4.6   Cửa sổ Save As                                                                                                          48

Hình 4.7   Cửa sổ Add Files to Group ‘Source Group 1’                                                       49

Hình 4.8   Cửa sổ Options for Target ‘Target1’                                                                       49

Hình 4.9   Biên dịch chương trình                                                                                             50

Hình 4.10 Báo lỗi khi chương trình bị sai                                                                                50

Hình 4.11 Thông báo khi code được lập trình đúng                                                               50

Hình 4.12 Giao diện sau khi debug                                                                                           51

Hình 5.1   Mạch nguồn cấp cho động cơ                                                                                  52

Hình 5.2   Hình chọn lựa cuộn cảm                                                                                           53

Hình 5.3   Lựa chọn diode                                                                                                          53

Hình 5.4   Sơ đồ nguyên lý mạch nguồn của các mạch điện                                                 54

Hình 5.5   Sơ đồ nguyên lý mạch vi điều khiển                                                                      55

Hình 5.6   Sơ đồ nguyên lý các chân cắm bus                                                                         56

Hình 5.7   Board chip điều khiển                                                                                              56

Hình 5.8   Sơ đồ nguyên lý mạch led                                                                                        57

Hình 5.9   Board led hiển thị                                                                                                      57

Hình 5.10 Mô hình đã hoàn thành                                                                                             57

Hình 5.11 Giao diện chương trình điều khiển                                                                         58

Hình 5.12 Lưu đồ giải thuật cho PCA9633                                                                              60

Hình 5.13 Lưu đồ giải thuật chương trình chính                                                                     62

Hình 5.14 Lưu đồ giải thuật ngắt UART                                                                                   63

DANH MỤC BẢNG BIỂU

Bảng 2.1   Các thanh ghi chọn chức năng chân                                                                         5

Bảng 2.2   Các bit của thanh ghi chọn chức năng chân                                                            6

Bảng 2.3   Ngoại vi VPB và các địa chỉ cơ bản                                                                          8

Bảng 2.4   Tóm tắt các chân                                                                                                          9

Bảng 2.5   Các thanh ghi ngắt ngoài                                                                                          10

Bảng 2.6   Chọn lựa chế độ hoạt động của Watchdog                                                            21

Bảng 2.7   Thanh ghi chế độ Watchdog                                                                                    22

Bảng 2.8   I2CONSET được định dạng ở chế độ Master                                                         26

Bảng 2.9   I2CONSET được định dạng ở chế độ Slave                                                           28

Bảng 3.1   Các chế độ tăng dần                                                                                                  35

Bảng 3.2   Các bit của thanh ghi MODE1                                                                                 36

Bảng 3.3   Các bit của thanh ghi MODE2                                                                                 37

Bảng 3.4   Các thanh ghi PWM                                                                                                  37

Bảng 3.5   Thanh ghi chu kỳ công suất nhóm                                                                          38

Bảng 3.6   Thanh ghi tần số nhóm                                                                                             38

Bảng 3.7   Thanh ghi trạng thái ngõ ra bộ điều khiển LED                                                    39

Bảng 3.8   Các thanh ghi địa chỉ phụ I2C-bus                                                                          39

Bảng 3.9   Thanh ghi địa chỉ LED All Call                                                                               40

DANH MỤC CÁC TỪ VIẾT TẮT

ACK

Acknowledge bit

AHB

Advanced High-performance bus

BOD

Brown-out Detect

DLAB

Divisor Latch Access Bit

FIQ

Fast Interrupt request

I/O

Input/Output

PCLK

Peripheral clock

PLL

Phase Locked Loop

PWM

Pulse Width Modulation

RGB

Red Green Blue

RTC

Real-time Clock

UART

Universal Asynchronous Receiver/Transmitter

USB

Universal Serial Bus

VIC

Vectored Interrupt Controller

VPB

VLSI Peripheral Bus

 

CHƯƠNG 1:

 TỔNG QUAN

1.1 Giới thiệu:

Ngày nay thì nhu cầu trang trí, quảng cáo đang ngày càng phát triển. Việc đưa vào trong những ứng dụng quảng cáo, trang trí những công nghệ mới để tạo ra những hiệu ứng độc đáo, lạ mắt với giá thành ngày càng giảm xuống thì chính là chìa khoá quyết định sự thành công của sản phẩm. Với những tiêu chí như vậy thì nhóm chọn đề tài là làm một thiết bị quang báo với tên gọi là QUẢ CẦU QUANG BÁO trong đó sẽ ứng dụng chip LPC2148 và IC PCA 9633.

Về cấu tạo đơn giản, tiêu hao ít năng lượng nhưng tạo ra được nhiều hiệu ứng khác nhau ( phụ thuộc vào sự phối hợp của các led). Đây là một ứng dụng quang báo nhỏ, gọn thích hợp dùng để trang trí trong các buổi tiệc, các cuộc họp…để làm tăng thêm vẻ đẹp, tính trang trọng của nơi đó.

1.2 Tình hình nghiên cứu:

Hiện nay, trên thế giới mô hình “Quả cầu quang báo” cũng đã được thực hiện rất nhiều với nhiều hiệu ứng và hình thức hiển thị khác nhau. Tuy nhiên, việc nghiên cứu về dạng mô hình này ở trong nước còn chưa được nhiều. Sau đây chúng ta có thể điểm qua một số mô hình đã được thực hiện trên thế giới.

Hình 1.1: Các mô hình đã được thực hiện

 

 

1.3 Mục tiêu nghiên cứu:

Mục đích nghiên cứu của đề tài là:

  • Nghiên cứu một loại vi điều khiển mới đó là ARM7 thông qua chip PLC2148.
  • Nghiên cứu giao thức I2C giữa chip LPC2148 với IC điều khiển led PCA9633.
  • Điều khiển phối màu led thông qua đó có thể thay đổi màu chữ của hệ thống quang báo.
  • Điều khiển hiệu ứng hệ thống quang báo bằng giao tiếp máy tính với chip PLC2148 thông qua bộ thu phát RF.
  • Nghiên cứu cách truyền điện trong các hệ thống quay tròn.
  • Nghiên cứu để có thể tạo ra nhiều hiệu ứng cho hệ thống quang báo. Ví dụ: thay đổi chữ hiển thị, hiệu ứng hoạt hình…

CHƯƠNG 2:

SƠ LƯỢC VỀ VI ĐIỀU KHIỂN ARM7 - PLC2148

 

2.1 Giới thiệu vi điều khiển PLC2148:

2.1.1 Đặc điểm:

- Vi điều khiển ARM7TDMI-S 32bit, được  đóng gói với kiểu vỏ LQFP 64 chân. 8 tới 40kB của RAM trong chip và 32 tới 512kB trong bộ nhớ flash. Độ lớn của giao tiếp là 128 bit, có thể hoạt động với tần số 60MHz.

- Hỗ trợ nạp chip bằng ISP/IAP, thời gian để ghi/xóa cả bộ nhớ  flash mất 0.4s và xóa chương trình mất 1ms.

- Bộ debug thời gian thực hỗ trợ bởi EmbeddedICE RT và Embedded Trace.

- Hai bộ 10 bit A/D cung cấp 14 ngõ vào tương tự (analog) với thời gian hay đổi là 2.44us mỗi kênh.

- Tích hợp bộ điều khiển USB tương thích 2.0.

            - Một bộ 10 bit D/A cung cấp tín hiệu ngõ ra là tương tự.

- Hai bộ định thời 32 bit với 4 chân capture và compare mỗi kênh, 6 ngõ ra PWM và đồng hồ thời gian thực watchdog.

- Nhiều chuẩn giao tiếp nối tiếp bao gồm 2 kênh UART(16C550), 2 kênh  I2C (400 kbit/s), SPI và SSP .

- Vector ngắt có địa chỉ truy cập và các mức ưu tiên.

- 45 chân điều khiển đa chức năng (GPIO) với mức áp chịu được 5V và 21 chân ngắt ngoài được thiết kế với kiểu vỏ là LQFP64.

- Tốc độ xử lý lên đến 60 MHz có thể lập trình từ bộ PLL với thời gian 100μs.

- Bộ dao động bên trong chip hoạt động với thạch anh bên ngoài trong khoảng từ 1 MHz tới 30MHz và với bộ dao động bên ngoài thì có thể lên đến 50MHz.

- Chế độ tiết kiệm năng lượng Idle và Power-down.

- Đồng hồ thời gian thực (RTC) với nguồn cung cấp độc lập và tần số 32 KHz.

- Đưa vi điều khiển vào lại chế độ hoạt động bình thường từ Power Down nhờ ngắt ngoài.

- Chức năng sử dụng tối ưu nguồn bằng cách cho phép/không cho phép từng ngoại vi riêng lẻ.

- Bộ xử lý được wake –up bằng các ngắt ngoài, USB, BOD, RTC (real-time clock).

- Tính năng reset lúc bật nguồn, CPU hoạt động với mức điện áp 3.0 tới 3.6 V và 5V đối với các chân I/O.

2.1.2 Sơ đồ khối:

Hình 2.1: Sơ đồ khối của LPC2148

 

2.2 Sơ đồ chân và tổ chức bộ nhớ:

2.2.1 Sơ đồ chân:

Hình 2.2: Sơ đồ chân của LPC2148

  1. Chức năng các chân:

Mỗi chân của LPC2148 có thể có nhiều chức năng hoặc input, output hoặc làm một chức năng cụ thể nào đó. Ví dụ P0.0 (chân số 1) có thể làm chức năng input, output hay cũng có thể làm chức năng TxD (UART0), PWM1.

Tên

Mô tả

Truy xuất

Địa chỉ

PINSEL0

Thanh ghi chọn chức năng chân 0

Đọc/viết

0xE002 C000

PINSEL1

Thanh ghi chọn chức năng chân 1

Đọc/viết

0xE002 C004

PINSEL2

Thanh ghi chọn chức năng chân 2

Đọc/viết

0xE002 C014

 

 

Bảng 2.1: Các thanh ghi chọn chức năng chân

Vì mỗi một chân có một số chức năng nên ta phải biết thiết lập chức năng cho các chân đó cho phù hợp với nhu cầu của mình. Điều này thì phụ thuộc vào thanh ghi chọn chân đó là PINSEL, có 3 thanh ghi PINSEL0 -> PINSEL2 như bảng trên.

  1. Các giá trị của thanh ghi chọn chức năng chân:

Các thanh ghi PINSEL điều khiển các chức năng của các chân thiết bị. Từng cặp bit trong  các thanh ghi này tương ứng với một chức năng đặc trưng của các chân.

Các giá trị của PINSEL0 và PINSEL1

Chức năng

Giá trị sau khi Reset

00

Chức năng cơ bản, điển hình là GPIO

00

01

Chức năng thứ nhất

10

Chức năng thứ hai

11

Chức năng thứ ba

 

Bảng 2.2: Các bit của thanh ghi chọn chức năng chân

Bit điều khiển hướng điều khiển trong thanh ghi IO0DIR/IO1DIR chỉ ảnh hưởng khi chức năng GPIO được chọn cho các chân. Đối với các chức năng khác, hướng được điều khiển một cách tự động.

  1. Các thanh ghi chọn chức năng chân (PINSEL0 -> PINSEL2) và chức năng của các chân:

Tham khảo các chương 6 và 7 của tài liệu UM10139.

Lấy ví dụ như ta muốn set chân P0.0 là TxD và P0.1 là RxD của UART0 còn các chân còn lại giữ nguyên thì ta sẽ dùng câu lệnh:

PINSEL0 |=0x05;      //set bit 0 và số 2 giữ nguyên các bit còn lại.

2.2.2 Tổ chức bộ nhớ và địa chỉ của các thiết bị ngoại vi:

Bộ xử lý ARM có thể quản lý một không gian địa chỉ bộ nhớ 4 GB. Bảng sau đây thể hiện sự phân bố địa chỉ của vùng bộ nhớ trong các thiết bị ARM:

Hình 2.3: Cấu trúc bộ nhớ

Hình 2.4: Cấu trúc bộ nhớ ngoại vi

Cả 2 hình 2.4 và 2.5 và bảng 2.3 dưới đây cho thấy các vùng địa chỉ ngoại vi khác nhau. Cả hai vùng địa chỉ khác nhau AHB và VPB chiếm các vùng không gian 2 Megabyte, mỗi vùng thì được chia thành 128 ngoại vi. Mỗi ngoại vi lại có kích thước 16 Kb. Tất cả các thanh ghi ngoại vi đều có kích thước 32 bit.

Hình 2.5: Sơ đồ bộ nhớ AHB

Ngoại vi VPB

Các đại chỉ cơ bản

Tên ngoại vi

0

0xE000 0000

Watchdog timer

1

0xE000 4000

Timer0

2

0xE000 8000

Timer1

3

0xE000 C000

UART0

4

0xE001 0000

UART1

5

0xE001 4000

PWM

6

0xE001 8000

Không sử dụng

7

0xE001 C000

I2C0

8

0xE002 0000

SPI0

9

0xE002 4000

RTC

10

0xE002 8000

GPI0

11

0xE002 C000

Khối kết nối chân

12

0xE003 0000

Không sử dụng

13

0xE003 4000

ADC0

14 – 22

0xE003 8000

0xE005 8000

Không sử dụng

23

0xE005 C000

I2C1

24

0xE006 0000

ADC1

25

0xE006 4000

Không sử dụng

26

0xE006 8000

SSP

27

0xE006 C000

DAC

28 – 35

0xE007 0000

0xE008 C000

Không sử dụng

36

0xE009 0000

USB

37 – 126

0xE009 4000

0xE01F 8000

Không sử dụng

127

0xE01F C000

Khối điều khiển hệ thống

Bảng 2.3: Ngoại vi VPB và các địa chỉ cơ bản

2.3 Khối điều khiển hệ thống:

  1. Tóm tắt chức năng của các khối điều khiển hệ thống:

Khối điều khiển hệ thống bao gồm vài đặc trưng của hệ thống và các thanh ghi điều khiển cho một số các chức năng mà không liên quan đến các thiết bị ngoại vi đặc trưng nào. Chúng bao gồm:

  • Bộ dao động thạch anh
  • Các ngõ vào ngắt ngoài
  • Điều khiển và trạng thái hệ thống hỗn hợp
  • Điều khiển sắp xếp bộ nhớ
  • PLL
  • Điều khiển nguồn điện
  • Reset
  • Bộ chia VPB
  • Wakeup timer

Mỗi một chức năng có các thanh ghi riêng của nó và các bit không cần là các bit dự trữ dự trữ dùng cho việc mở rộng trong tương lai. Các chức năng không liên quan đến nhau thì không bao giờ có cùng các địa chỉ thanh ghi.

  1. Mô tả các chân:

Tên chân

Hướng

Mô tả

X1

Ngõ vào

Ngõ vào bộ dao động thạch anh hoặc các mạch tạo xung clock bên trong.

X2

Ngõ ra

Ngõ ra bộ dao động thạch anh

EINT0

Ngõ vào

Ngõ vào ngắt ngoài 0.Tác động mức thấp/cao hoặc cạnh xuống/lên. Các chân P0.1 và P0.16 có thể được chọn để thực hiện chức năng này.

EINT1

Ngõ vào

Ngõ vào ngắt ngoài 1. Xem phần mô tả của EINT0. Các chân P0.3 và P0.14 có thể được chọn để thực hiện chức năng này.

EINT2

Ngõ vào

Ngõ vào ngắt ngoài 2. Xem phần mô tả của EINT0. Các chân P0.7 và P0.15 có thể được chọn để thực hiện chức năng này.

EINT3

Ngõ vào

Ngõ vào ngắt ngoài 3. Xem phần mô tả của EINT0. Các chân P0.9, P0.20 và P0.30 có thể được chọn để thực hiện chức năng này.

 

Ngõ vào

Ngõ vào Reset ngoài. Tác động mức thấp chân này sẽ Reset chip

Bảng 2.4: Tóm tắt các chân

  1. Mô tả các thanh ghi:

Tham khảo phần 3.3/trang 17 của tài liệu UM10139

  1. Bộ dao động thạch anh:

Hình 2.6: Các chế độ và các kiểu bộ dao động: a) Chế độ hoạt động tớ, b) Chế độ hoạt động dao động, c) Kiểu thạch anh bên ngoài

  1. Các thanh ghi của ngắt ngoài:

Tên

Mô tả

Truy xuất

Giá trị Reset

EXTINT

Thanh ghi cờ ngắt ngoài chứa các cờ ngắt của EINT0,1,2 và 3.

R/W

0

INTWAKE

Thanh ghi đánh thức ngắt chứa 4 bit cho phép có thể điều khiển ngắt ngoài nào sẽ cho phép khởi động chip từ chế độ Power-down.

R/W

0

EXTMODE

Thanh ghi chế độ ngắt ngoài điều khiển chân nào được tác động cạnh hay mức.

R/W

0

EXTPOLAR

Thanh ghi cực của ngắt ngoài điều khiển mức hoặc cạnh nào trên mỗi chân có thể sinh ra ngắt.

R/W

0

Bảng 2.5: Các thanh ghi ngắt ngoài

Hình 2.7: Các logic của ngắt ngoài

  1. Reset:

Reset ở LPC2148 có 2 nguồn đó là: dùng chân Reset hoặc Reset bằng Watchdog.

Hình 2.8: Sơ đồ khối Reset

  1. Các khối điều khiển khác: tham khảo chương 3 của tài liệu UM10139.

2.4 Hoạt động ngắt:

  1. Giới thiệu:

LPC2148 có:

  • Bộ điều khiển Vectơ ngắt ARM PrimeCellTM.
  • 32 ngõ vào yêu cầu ngắt.
  • 16 Vectơ ngắt IRQ.
  • 16 mức ưu tiên ngắt.
  • Tạo ngắt bằng phần mềm.

Có 3 lọai ngắt: FIQ, vector IRQ và non-vector IRQ

  • Vectored Interrupt Controller (VIC) hỗ trợ 32 yêu cầu interrupt, ta sẽ lập trình vector đó tương ứng với loại interrupt nào (FIQ hay IRQ).
  • Fast Interrupt Request (FIQ) là ngắt có độ ưu tiên cao nhất. Nếu có nhiều yêu cầu ngắt FIQ thì VIC sẽ OR các yêu cầu đó lại và tạo ra tín hiệu ngắt.
  • IRQ có độ ưu tiên trung bình, nhưng chỉ có tối đa 16 ngắt được thực hiện trong tổng số 32 yêu cầu ngắt. Bất kỳ yêu cầu ngắt nào cũng có thể gán vào các slot của 16 vectored IRQ, trong đó slot 0 có độ ưu tiên cao nhất và slot 15 có độ ưu tiên thấp nhất.
  • Non-vectored IRQ có độ ưu tiên thấp nhất.
    1. Các thanh ghi:

- VICIRQStatus : là thanh ghi trạng thái IRQ .Thanh ghi này cho biết hoạt động ngắt nào đó đang hoạt động và loại ngắt là IRQ.

Ví dụ: VICIRQStatus = 0x00000050H có nghĩa là Vector ngắt 4 (Timer 0) và 6 (Uart0) đang hoạt động và loại ngắt của 2 Vectơ này là IRQ.

- VICFIQStatus : là thanh ghi trạng thái FIQ .Thanh ghi này cho biết hoạt động ngắt nào đó đang hoạt động và loại ngắt là FIQ.

Ví dụ: VICFIQStatus = 0x00000080H có nghĩa là Vector ngắt 7 (Uart1) đang hoạt động và loại ngắt Vectơ này là FIQ.

- VICRawIntr : là thanh ghi đọc trạng thái của 32 yêu cầu ngắt hoặc các ngắt bằng phần mềm.

  • Bit nào bằng 0: không có yêu cầu ngắt hoặc ngắt phần mềm hoạt động.
  • Bit nào bằng 1: có yêu cầu ngắt hoặc ngắt phần mềm hoạt động.

- VICIntSelect : là thanh ghi chọn ngắt

  • Bit nào bằng 0: hoạt động ngắt là IRQ.
  • Bit nào bằng 1: hoạt động ngắt là FIQ.

- VICIntEnable: thanh ghi cho phép ngắt. Nếu bit nào đó bằng 1 thì yêu cầu ngắt nào đó được chọn sẽ được cho phép.

Ví dụ: VICIntEnable = 0x00000080H có nghĩa là hoạt động ngắt (Uart1) được cho phép.

- VICIntEnClr: thanh ghi xóa các ngắt cho phép. Thanh ghi cho phép phần mềm xóa một hoặc nhiều bit trong thanh ghi cho phép ngắt.

Ví dụ: VICIntEnClr = 0x00000080H có nghĩa là hoạt động ngắt (Uart1) được xóa.

- VICVectAddr: cho biết địa chỉ sẽ nhảy đến khi hoạt động ngắt xảy ra. Nó thường gán địa chỉ của một hàm ngắt trong chương trình.

- VICDefVectAddr: là thanh ghi cho biết địa chỉ của các ngắt IRQ non-vectored.

- VICVectAddr0-15: là các thanh ghi cho biết địa chỉ của các ngắt tương ứng với 16 slots vectored IRQ.

- VICVectCntl0-15: là các thanh ghi điều khiển các slot ngắt IRQ. Slot 0 có độ ưu tiên cao nhất.

Chú ý: Các bit của các thanh ghi tham khảo chương 5 của tài liệu UM10139

  1. Kiến trúc ngắt:

Nhìn vào sơ đồ khối ở dưới ta có thể thấy : Phần interrupt của LPC2148 có 4 khối: phần yêu cầu ngắt, khối trạng thái ngắt, khối ưu tiên, khối vector ngắt. Trong đó thì:

  • Khối yêu cầu ngắt : có vai trò khi bất cứ ngắt nào được bật lên thì nó sẽ cập nhật lại khối trạng thái ngắt.
  • Khối trạng thái ngắt: có vai trò chứa các thông tin về các ngắt hiện tại và sinh ra FIQ.
  • Khối vectored ngắt chứa thông tin về vector IRQ và địa chỉ cần nhảy tới khi có ngắt xảy ra.
  • Khối ưu tiên và tạo ngắt: có nhiệm vụ chọn ngắt nào sẽ làm, và địa chỉ nào sẽ nhảy tới.

 

Hình 2.9: Sơ đồ khối của bộ điều khiển vector ngắt

2.5 Timer:

  1. Đặc điểm:

LPC2148 bao gồm 2 timer 0 và 1 có các đặc điểm sau:

  • Là 1 timer/counter 32bit với bộ chia có thể lập trình được 32bit.
  • Có thể hoạt động ở chế độ timer hoặc counter.
  • Có 4 kênh thu thập (capture) trên 1 timer, có chức năng lưu nhanh giá trị của timer khi có ngõ vào thay đổi. Một sự kiện thu thập có thể tạo ra ngắt.
  • Có 4 thanh ghi match 32bit có thể cho phép:
  • Hoạt động liên tục cùng với việc tạo ngắt khi đạt được giá trị đặt trước.
  • Ngừng timer khi đạt giá trị đặt trước (match) và tạo ra ngắt.
  • Reset timer khi đạt giá trị đặt trước (match) và tạo ra ngắt.

- Có 4 ngõ ra bên ngoài tương ứng với các thanh ghi match, có các chức năng:

  • Tạo ngõ ra mức thấp khi đạt giá trị đặt trước.
  • Tạo ngõ ra mức cao khi đạt giá trị đặt trước.
  • Đảo giá trị ngõ ra khi đạt giá trị đặt trước.
  • Không làm gì cả khi đạt giá trị đặt trước.
    1. Mô tả:

Timer/Counter được thiết kế để đếm các chu kỳ của xung clock ngoại vi (PCLK) hoặc 1 nguồn xung clock bên ngoài, và có thể tạo ra ngắt hoặc thực hiện 1 hoạt động nào đó tại các giá trị timer đặc trưng dựa vào 4 thanh ghi match. Nó cũng bao gồm 4 ngõ vào thu thập để lưu nhanh giá trị timer khi ngõ vào thay đổi và tạo ra ngắt.

  1. Các thanh ghi:

- Thanh ghi ngắt IR: bao gồm 4 bit cho các ngắt match và 4 bit cho các ngắt  capture. Nếu 1 ngắt được tạo ra thì bit tương ứng trong thanh ghi IR sẽ ở mức cao. Mặt khác, bit đó sẽ ở mức thấp. Ghi mức logic 1 vào bit tương ứng trong thanh ghi IR sẽ reset ngắt.

- Thanh ghi điều khiển timer (TCR): được sử dụng để điều khiển hoạt động của timer/counter.

Ví dụ: Bit0 (counter enable) = 1: cho phép counter và bộ chia counter đếm.

            Bit0 = 0: counter không được cho phép.

            Bit1 (counter reset)= 1: counter và bộ chia counter được reset đồng bộ ở cạnh dương tiếp theo của PCLK. Counter vẫn duy trì reset cho tới khi TCR trở về 0.

- Thanh ghi điều khiển đếm (CTCR): được sử dụng để chọn lựa chế độ timer hay counter và trong chế độ counter để chọn chân và các cạnh để đếm.

- Thanh ghi timer counter (TC): là thanh ghi 32bit, được tăng dần khi bộ chia counter (PC) đạt đến giá trị cuối của nó. Nếu nó không bị reset trước khi đạt giá trị lớn nhất thì nó sẽ đếm qua giá trị 0xFFFF FFFF và quay trở lại giá trị 0x0000 0000. Điều này sẽ không tạo ra ngắt nhưng thanh ghi Match có thể được sử dụng để theo dõi tràn nếu cần.

- Thanh ghi bộ chia (PR): là thanh ghi 32bit dùng để xác định giá trị lớn nhất cho bộ chia counter.

- Thanh ghi bộ chia counter (PC): là thanh ghi 32bit điều khiển sự chia của xung PCLK cho 1 hằng số trước khi nó được đưa vào Timer Counter. Điều này cho phép điều khiển mối quan hệ độ phân giải timer so với thời gian lớn nhất trước khi timer tràn. Bộ chia counter tăng dần ở mỗi xung PCLK. Khi nó đạt đến giá trị trong thanh ghi PR thì Timer Counter sẽ được tăng dần và bộ chia counter được reset ở xung PCLK kế tiếp.

Ví dụ: TC sẽ tăng dần ở mỗi xung PCLK khi PR = 0, mỗi 2 PCLK khi PR = 1…

- Các thanh ghi Match (MR0 – MR3): Các giá trị của thanh ghi Match được so sánh liên tục với giá trị của Timer Counter. Khi 2 giá trị này bằng nhau thì các hoạt động nào đó sẽ được kích hoạt 1 cách tự động. Họat động này có thể tạo ra 1 ngắt, reset   Timer Counter, hoặc dừng timer. Các hoạt động được điều khiển bằng các thiết lập trong thanh ghi MCR.

- Thanh ghi điều khiển Match (MCR): được sử dụng để điều khiển các hoạt động nào được thực hiện khi giá trị 1 trong các thanh ghi Match bằng với Timer Counter.

Ví dụ: Bit0 (MR0I) = 1: sẽ tạo ra ngắt khi giá trị trong thanh ghi MR0 bằng với giá trị trong thanh ghi TC. Bit0 = 0 thì ngắt không được cho phép…

- Các thanh ghi thu thập (CR0 – CR3): mỗi thanh ghi thu thập thì được liên kết với 1 chân của chip và có thể được tải giá trị Timer Counter khi có 1 sự kiện đặc biệt xảy ra trên chân này. Các thiết lập trong thanh ghi CCR sẽ xác định chức năng thu thập nào được cho phép và 1 sự kiện thu thập nào xảy ra ở cạnh lên của chân tương ứng, ở cạnh xuống, hoặc ở cả 2 cạnh lên và xuống.

- Thanh ghi điều khiển thu thập (CCR): được sử dụng để điều khiển 1 trong 4 thanh ghi CR nào được tải giá trị trong Timer Counter khi có 1 sự kiện thu thập xảy ra va 1 ngắt nào được tạo ra bởi sự kiện đó.

- Thanh ghi Match ngoài (EMR): cung cấp cả trạng thái và điều khiển của các chân match ngoài MAT(0-3).

Chú ý: Tham khảo chức năng các bit của các thanh ghi ở chương 15 của tài liệu UM10139.

 

2.6 UART (bộ truyền nhận bất đồng bộ):

  1. Giới thiệu:

Trước hết UART là gì: Universal Asynchronous Receiver Transmitter.

Dùng để truyền và nhận dữ liệu nối tiếp. LPC2148 hỗ trợ 2 bộ truyền nhận nối tiếp UART0, UART1.

Hình 2.10: Sơ đồ khối của UART

Kiến trúc:

  • Mọi sự truyền nhận thông tin giữa CPU và UART đều thông qua APB.
  • Việc nhận tín hiệu của UART: thông qua chân RXD và đi vào thanh ghi dịch (UnRSR) sau đó dữ liệu sẽ được chuyển qua thanh ghi chứa dữ liệu (UART RX Buffer Register FIFO) và dữ liệu sẽ ở đây chờ CPU tới đọc.
  • Việc truyền tín hiệu của UART : cũng tương tự như thế, CPU truyền dữ liệu vào trong buffer ở trong thanh ghi UnTHR (UART Tx Holding Register FIFO), sau đó dữ liệu từ thanh ghi này được chuyển sang thanh ghi dịch (UnTSR) và từ từ truyền ra ngoài thông qua chân TxD.
  • Về tốc độ truyền dữ liệu UART cho phép cho thiết lập tốc độ baud thông qua các thanh ghi. Và ta phải tự tìm ra tốc độ baud nào hợp lý nhất (tức xác suất lỗi trên đường truyền ít nhất).
  • Các sự thiết lập interrupt ở trong thanh ghi UnIER và UnIIR.
  • Thông tin từ việc truyền nhận (2 chân Tx và Rx) được lưu trong thanh ghi UnLSR.
  • Thông tin điều khiển nằm ở trong thanh ghi UnLCR.

UART giao tiếp với bên ngoài qua 2 chân TxD và RxD (mũi tên màu đỏ ở trên hình).

Nhìn vào sơ đồ khối ta có thể thấy UART gồm có 4 bộ chính:

  • Bộ Interrupt : điều khiển việc interrupt, lưu trữ status và khi nào có interrupt sẽ đẩy ra chân UnINTR.
  • Bộ điều khiển Clock UnBRG điều khiển việc sinh ra CLK từ 2 dữ liệu vào là UnDLL và UnDLM.
  • Bộ truyền dữ liệu : UnTX có 2 thanh ghi : thanh ghi chứa dữ liệu và thanh ghi truyền serial ra ngoài thông qua chân TxD.
  • Bộ nhận dữ liệu : UnRX gồm có 2 thanh ghi là thanh ghi chứa dữ liệu và thanh ghi truyền serial. Dữ liệu nhận vào ở chân RxD sẽ đẩy vào thanh ghi truyền serial rồi đưa vào thanh ghi nhận dữ liệu.
  1. Các thanh ghi UART: (tham khảo thêm chương 9 và 10 của tài liệu UM10139)

- Thanh ghi bộ đệm nhận (UnRBR): là thanh ghi chỉ đọc, 8 bit chứa các ký tự cũ nhất có thể được đọc bởi CPU. Bit DLAB trong UnLCR phải bằng 0 thì mới truy xuất UnRBR được.

- Thanh ghi giữ truyền (UnTHR): là thanh ghi chỉ ghi, 8 bit và tương tự như thanh ghi UnRBR nhưng nó dùng để truyền dữ liệu nên nó là thanh ghi chứa dữ liệu mới nhất được truyền. Bit DLAB trong UnLCR phải bằng 0 thì mới truy xuất UnRBR được.

- Các thanh ghi chốt chia UART( UnDLL và UnDLM): được sử dụng để chia xung clock được cung cấp bởi bộ chia để tạo ra tốc độ baud của xung clock và bằng 16x(tốc độ baud mong muốn). Các thanh ghi U0DLL và U0DLM cùng nhau tạo thành bộ chia 16 bit trong đó U0DLL chứa 8 bit thấp và U0DLM chứa 8 bit cao của bộ chia. Bit DLAB phải bằng 1 để có thể truy xuất vào các thanh ghi này được.

- Thanh ghi phân đoạn (UnFDR):  thanh ghi này điều khiển bộ chia xung clock để tạo tốc độ baud và có thể đọc và viết. Bộ chia này lấy xung clock VPB và tạo ra xung clock ngõ ra.

Tốc độ baud UARTn có thể được tính:

                                     (2.1)   

Trong đó: PCLK là xung clock ngoại vi và DIVADDVAL, MULVAL là các thông số đặc trưng của máy phát tốc độ baud.

Giá trị của MULVAL và DIVADDVAL nên tuân theo các điều kiện sau:

  1. 0 < MULVAL ≤ 15
  2. 0 ≤ DIVADDVAL ≤ 15

Nếu giá trị của thanh ghi U0FDR không tuân theo 2 yêu cầu trên thì ngõ ra bộ chia đoạn sẽ không xác định. Nếu DIVADDVAL bằng 0 thì bộ chia đoạn không được cho phép và xung clock sẽ không được chia.

Giá trị của U0FDR không nên được sửa đổi trong khi đang truyền/nhận dữ liệu hoặc dữ liệu sẽ bị mất hoặc bị lỗi.

Ví dụ: Cách tính tốc độ baud UART: Sử dụng công thức tính tốc độ baud ở trên, nó có thể được xác định với hệ thống có PCLK = 20 MHz, U0DL = 130 (U0DLM = 0x00 và U0DLL = 0x82), DIVADDVAL = 0 và MULVAL = 1 sẽ cho phép UARTn với tốc độ baud UART0 = 9615 bauds.

- Thanh ghi cho phép ngắt (UnIER): được sử dụng để kích hoạt 3 interrupt (RBR interrupt, THRE interrupt, RX Line Status Interrupt) và cho phép auto-baud rate và time out.

- Thanh ghi nhận biết ngắt (UnIIR): cung cấp cho chúng ta đó là interrupt gì và độ ưu tiên của nó như thế nào. Như có interrupt đang đợi không? Interrupt đó là gì? Có chế độ auto-baud không? Đã kết thúc chưa? Có bị time out không?

Về độ ưu tiên ngắt thì có 3 độ ưu tiên:

  • Receive Line Status (RLS) (ưu tiên cao nhất) 
  • Receive Data available (RDA) (ưu tiên mức 2)
  • Character Time out Indicator (CTI) (ưu tiên mức 2)
  • THRE interrupt

- Thanh ghi điều khiển FIFO (UnFCR): điều khiển hoạt động của UARTn Rx và Tx FIFOs.

- Thanh ghi điều khiển đường truyền (UnLCR): thiết lập các định dạng để truyền và nhận.

- Thanh ghi trạng thái đường truyền (UnLSR): là thanh ghi chỉ đọc cung cấp thông tin trạng thái trên các khối UARTn Tx và Rx.

- Còn các thanh ghi phục vụ cho các mục đích khác và các bit của các thanh ghi trên tham khảo chương 9 và 10 của tài liệu UM10139.

2.7 Watchdog Timer:

  1. Đặc điểm:

Reset bên trong nếu không được nạp lại tuần hoàn.

Được cho phép bởi phần mềm nhưng cần một hoạt động reset bằng phần cứng hoặc reset/ngắt watchdog để không cho phép.

Chuỗi nạp (feed sequence) không đúng hoặc không đầy đủ sẽ dẫn đến reset hoặc ngắt nếu được cho phép.

Có cờ để theo dõi việc reset Watchdog.

Timer 32 bit có thể lập trình với bộ đếm gộp trước bên trong.

Chu kỳ thời gian có thể lựa chọn từ (TPCLK x 256 x 4) đến (TPCLK x 232 x 4) trong bội số của TPCLK x 4.

  1. Ứng dụng:

Mục đích của Watchdog là để reset vi điều khiển trong 1 khoảng thời gian hợp lý nếu nó vào trạng thái sai. Khi được cho phép, watchdog sẽ tạo ra 1 hoạt động reset hệ thống nếu người sử dụng lập trình sai để nạp lại cho watchdog trong 1 khoảng thời gian đã xác định trước.

  1. Mô tả:

Watchdog bao gồm 1 bộ đếm gộp trước cố định chia cho 4 và 1 counter 32 bit. Xung clock được nạp đến timer qua bộ đếm gộp trước. Timer sẽ giảm trong mỗi xung. Giá trị nhỏ nhất mà counter sẽ giảm là 0xFF. Việc đặt giá trị nhỏ hơn 0xFF sẽ làm cho 0xFF được nạp vào trong counter. Do đó khoảng watchdog nhỏ nhất là (TPCLK x 256 x 4) và lớn nhất là (TPCLK x 232 x 4). Watchdog được sử dụng theo phương pháp sau đây:

  • Đặt giá trị nạp lại cho watchdog timer trong thanh ghi WDTC.
  • Cài đặt chế độ hoạt động trong thanh ghi WDMOD.
  • Khởi động Watchdog bằng cách ghi 0xAA theo sau bởi 0x55 vào thanh ghi WDFEED.
  • Watchdog nên được nạp lại lần nữa trước khi counter của Watchdog tràn dưới để tránh reset hoặc ngắt.

Khi counter của Watchdog tràn dưới, bộ đếm chương trình sẽ bắt đầu từ 0x0000 0000 giống như trường hợp reset bên ngoài. Cờ Watchdog Time-Out (WDTOF) dùng để xác định nếu có hiện tượng reset Watchdog xảy ra. Cờ này phải được xóa bằng phần mềm.

  1. Các thanh ghi:

- Thanh ghi chế độ Watchdog (WDMOD): thanh ghi này điều khiển hoạt động của Watchdog bằng cách kết hợp các bit WDEN và WDRESET.

WDEN

WDRESET

Chế độ hoạt động

0

X (0 hoặc 1)

Hoạt động nhưng Watchdog không chạy

1

0

Chế độ ngắt Watchdog

1

1

Chế độ Reset Watchdog

 

 

Bảng 2.6: Chọn lựa chế độ hoạt động của Watchdog

Khi các bit WDEN và WDRESET được set thì chúng không thể được xóa bằng phần mềm. Cả 2 cờ này được xóa bằng cách hoạt động reset bên ngoài hoặc việc tràn dưới Watchdog timer.

Bit

Ký hiệu

Mô tả

Giá trị reset

0

WDEN

Bit cho phép ngắt Watchdog

0

1

WDRESET

Bit cho phép reset Watchdog

0

2

WDTOF

Cờ Watchdog time-out

0 (sau khi reset bên ngoài)

3

WDINT

Cờ ngắt Watchdog

0

7:4

-

Dự trữ

NA

 

Bảng 2.7: Thanh ghi chế độ Watchdog

WDTOF được set khi Watchdog tràn. Cờ này được xóa bằng phần mềm.

WDINT là cờ ngắt Watchdog được set khi Watchdog bị tràn. Cờ này được xóa khi có bất kỳ hoạt động reset nào xảy ra. Khi quá trình ngắt Watchdog xảy ra, nó có thể bị không cho phép trong quá trình ngắt.

- Thanh ghi Watchdog Timer (WDTC): thanh ghi này xác định thời gian Watchdog timer tràn. Mỗi lần 1 chuỗi nạp xảy ra thì nộii dung của WDTC được nạp lại vào trong Watchdog timer. Nó là thanh ghi 32 bit với 8 bit thấp luôn được set ở mức 1. Nếu giá trị được ghi vào dưới 0xFF thì giá trị 0xFF sẽ được nạp vào WDTC. Do đó khoảng thời gian tràn nhỏ nhất là TPCLK x 256 x 4.

- Thanh ghi Watchdog Feed (WDFEED): việc ghi giá trị 0xAA được theo sau là 0x55 vào thanh ghi này sẽ nạp lại Watchdog timer vào giá trị của WDTC. Hoạt động cũng sẽ khởi động Watchdog nếu nó được cho phép qua thanh ghi WDMOD. Việc set bit WDEN trong thanh ghi WDMOD thì chưa đủ để cho Watchdog khởi động. Một chuỗi nạp thích hợp phải được hoàn thành đầu tiên trước khi Watchdog có thể tạo hoạt động ngắt hoặc reset. Sau đó, Watchdog sẽ bỏ qua các lỗi nạp. Khi giá trị 0xAA được ghi vào trong thanh ghi WDFEED thì hoạt động kế tiếp trong khoảng không gian thanh ghi Watchdog là ghi giá trị 0x55 vào thanh ghi WDFEED mặt khác Watchdog thì được kích. Hoạt động ngắt hoặc reset sẽ được tạo ra trong khoảng PCLK thứ hai theo sau một hoạt động truy xuất không đúng đến thanh ghi Watchdog timer trong suốt 1 chuỗi nạp.

- Thanh ghi giá trị Watchdog Timer (WDTV): thanh ghi này dùng để đọc giá trị hiện tại của Watchdog Timer. Giá trị reset là 0x0000 00FF

  1. Sơ đồ khối:

Hình 2.11: Sơ đồ khối Watchdog

2.8 I2C:

  1. Đặc điểm:

Giao tiếp chuẩn I2C, có thể thiết lập ở chế độ Master, Slave hay Master/Slave.

Cho phép truyền nhận dữ liệu liên tục mà không bị gián đoạn dữ liệu.

Xung clock có thể lập trình, cho phép điều chỉnh tốc độ truyền I2C.

Có thể truyền dữ liệu 2 chiều giữa con Master và Slave.

Sự đồng bộ xung clock nối tiếp cho phép các thiết bị có tốc độ bit khác nhau có thể giao tiếp trên cùng 1 đường bus.

Sự đồng bộ xung clock có thể được sử dụng như là tín hiệu bắt tay để trì hoãn hoặc phục hồi truyền dữ liệu.

Bus I2C có thể được sử dụng cho các mục đích kiểm tra và chuẩn đoán.

  1. Mô tả:

Kiểu bus I2C của LPC2148 như hình vẽ sau:

Hình 2.12: Kết nối I2C bus

Phụ thuộc vào trạng thái của bit điều khiển truyền hay nhận (R/W) mà ta có 2 kiểu truyền dữ liệu sau đây:

- Dữ liệu được truyền từ Master đến Slave nhận. Byte đầu tiên được truyền bởi con chủ là byte địa chỉ của Slave. Các byte tiếp theo sẽ là các byte dữ liệu và Slave sẽ trả lại tín hiệu ACK sau mỗi byte nhận được.

- Dữ liệu được truyền từ Slave đến Master nhận. Byte đầu tiên là byte địa chỉ của Slave thì được truyền bởi Master. Sau đó Slave sẽ trả về tín hiệu ACK. Các byte tiếp theo sẽ được truyền từ Slave đến Master và Master sẽ trả lại tín hiệu ACK sau mỗi byte nhận được (trừ byte cuối).

- Master sẽ tạo ra tất cả như là xung clock, trạng thái Start, Stop. Việc truyền dữ liệu sẽ được kết thúc với trạng thái Stop hoặc là với tín hiệu lập lại của Start.

  1. Sơ đồ khối:

Hình 2.13: Sơ đồ khối của I2C

  1. Các thanh ghi:

- Thanh ghi thiết lập điều khiển I2C (I2CONSET): điều khiển hoạt động của giao thức I2C. Việc ghi mức 1 vào 1 bit của thanh ghi này làm cho bit tương ứng trong thanh ghi điều khiển I2C được set. Ngược lại thì ghi mức 0 không có ảnh hưởng gì.

-  Thanh ghi xóa điều khiển I2C (I2CONCLR): tương tự như thanh ghi I2CONSET dùng để điều khiển hoạt động của giao thức I2C. Khi ghi mức 1 vào 1 bit của thanh ghi này sẽ xóa bit tương ứng trong thanh ghi điều khiển I2C.

- Thanh ghi trạng thái I2C (I2STAT): cung cấp các mã trạng thái chi tiết để cho phép phần mềm xác định hoạt động nào tiếp theo cần được thực hiện.

- Thanh ghi dữ liệu I2C (I2DAT): trong suốt quá trình truyền hoặc nhận dữ liệu được truyền đi hoặc nhận được chứa trong thanh ghi này.

- Thanh ghi địa chỉ Slave I2C (I2ADR): chứa 7 bit địa chỉ Slave để giao thức I2C hoạt động ở chế độ Slave, và không được sử dụng trong chế độ Master.

- Các thanh ghi xác định chu kỳ công suất I2C (I2SCLH và I2SCLL): trong đó thanh ghi I2SCLH xác định thời gian cao và thanh ghi I2SCLL xác định thời gian thấp của xung clock I2C. Cả 2 thanh ghi này dùng để xác định tần số xung clock được tạo ra bởi Master của I2C và các thời gian được sử dụng trong chế độ Slave.

Chú ý: Chức năng của các bit trong các thanh ghi trên tham khảo chương 11 của tài liệu UM10139.

  1. Thiết lập tốc độ I2C và chu kỳ công suất: được xác định qua công thức:

                                                                            (2.2)   

Với: PCLK là tần số đã qua bộ chia của tần số xung VPB.

        VPB là tần số hoạt động của LPC2148.

Giá trị của 2 thanh ghi I2CSCLH và I2CSCLL không nhất thiết phải bằng nhau nhưng giá trị mỗi thanh ghi phải lớn hơn hoặc bằng 4.

  1. Các chế hoạt động của I2C:
  • Chế độ Master truyền:

Khi đó Master ở chế độ truyền và Slave ở chế độ nhận. Thanh ghi I2CONSET phải được thiết lập như sau. I2EN phải được gán = 1 để kích hoạt chức năng I2C. Nếu bit AA = 0 thì giao tiếp I2C sẽ không nhận ra bất cứ địa chỉ nào nếu có một thiết bị khác đang là Master trên kênh truyền.

Bit

7

6

5

4

3

2

1

0

Ký hiệu

-

I2EN

STA

STO

SI

AA

-

-

Giá trị

-

1

0

0

0

0

-

-

 

Bảng 2.8: I2CONSET được định dạng ở chế độ Master

Trong chế độ này, bit R/W nên bằng 0 tức là “ghi”. Byte đầu tiên được truyền chứa địa chỉ Slave và bit Write. Sau mỗi byte được truyền thì 1 bit nhận biết sẽ được nhận. Các điều kiện START và STOP được tạo ra để xác định sự bắt đầu và kết thúc của việc truyền dữ liệu nối tiếp.

Giao thức I2C sẽ vào chế độ này khi phần mềm set bit STA. Mức logic I2C này sẽ gửi tín hiệu START khi bus rỗi. Sau khi tín hiệu START được truyền, bit SI sẽ được set, và mã trạng thái trong thanh ghi I2STAT là 0x08. Mã này được sử dụng để chuyển đến quá trình tải địa chỉ Slave và bit Write vào thanh ghi I2DAT và sau đó xóa bit SI. Bit SI được xóa bằng cách ghi mức 1 vào bit SIC trong thanh ghi I2CONCLR.

Khi địa chỉ Slave và bit R/W đã được truyền và 1 bit nhận biết đã được nhận, bit SI được set lần nữa và bây giờ mã trạng thái là 0x18,0x20 hoặc 0x38 đối với chế độ Master, hoặc 0x68, 0x78, hoặc 0xB0 nếu chế độ Slave được cho phép (set bit AA lên 1).

Hình 2.14: Định dạng ở chế độ Master truyền

  • Chế độ Master nhận:

Trong chế độ này, dữ liệu được nhận từ 1 Slave truyền. Việc truyền dữ liệu được khởi tạo giống chế độ Master truyền. Khi tín hiệu START được truyền, 1 quá trình phục vụ ngắt tải địa chỉ Slave và bit hướng dữ liệu vào thanh ghi I2DAT và sau đó xóa bit SI. Trong trường hợp này, bit R/W phải bằng 1.

Hình 2.15: Định dạng ở chế độ Master nhận

Sau tín hiệu repeated START, I2C có thể chuyển sang chế độ Master truyền.

Hình 2.16: Chế độ Master nhận chuyển sang Master truyền sau tín hiệu repeated START

Khi địa chỉ Slave và bit hướng dữ liệu đã truyền và 1 bit nhận biết đã được nhận thì bit SI được set và thanh ghi trạng thái sẽ chỉ ra mã trạng thái. Đối với chế độ Master, các mã trạng thái có thể là 0x40, 0x48 hoặc 0x38. Đối với chế độ Slave, các mã trạng thái có thể là 0x68, 0x78 hoặc 0xB0.

  • Chế độ Slave nhận:

Trong chế độ này, các byte dữ liệu được nhận từ Master truyền. Để khởi tạo chế độ Slave nhận, người sử dụng ghi vào thanh ghi I2ADR và thanh ghi I2CONSET như sau:

Bit

7

6

5

4

3

2

1

0

Ký hiệu

-

I2EN

STA

STO

SI

AA

-

-

Giá trị

-

1

0

0

0

1

-

-

 

Bảng 2.9: I2CONSET được định dạng ở chế độ Slave

Bit I2EN phải được set lên 1 để cho I2C hoạt động. Bit AA phải được set lên 1 để nhận biết địa chỉ Slave của nó hoặc địa chỉ general call. Các bit STA, STO và SI bằng 0. Sau khi I2ADR và I2CONSET được khởi tạo thì giao thức I2C sẽ đợi cho đến khi nó được đánh địa chỉ của chính nó hoặc địa chỉ general được theo sau bởi bit R/W. Nếu bit R/W = 0, nó sẽ vào chế độ Slave nhận. Ngược lại, nó vào chế độ Slave truyền. Sau khi địa chỉ và bit R/W đã được nhận, bit SI sẽ được set lên và 1 mã trạng thái thích hợp có thể được đọc từ thanh ghi I2STAT.

Hình 2.17: Định dạng ở chế độ Slave nhận

  • Chế độ Slave truyền:

Byte đầu tiên được nhận và điều khiển như trong chế độ Slave nhận. Tuy nhiên, trong chế độ này bit R/W phải bằng 1. Dữ liệu nối tiếp được truyền qua SDA trong khi xung clock nối tiếp được nhập qua SCL. Các tín hiệu START và STOP được nhận biết khi bắt đầu và kết thúc truyền nối tiếp. Trong các ứng dụng đã được đưa ra, I2C có thể hoạt động khi là 1 Master khi là 1 Slave. Trong chế độ Slave, phần cứng I2C tự tìm địa chỉ Slave của chính nó và địa chỉ General. Nếu 1 trong các địa chỉ trên được nhận biết thì 1 ngắt sẽ xảy ra. Khi các vi điều khiển muốn trở thành Master thì phần cứng sẽ đợi cho tới khi bus rỗi trước khi vào chế độ Master để các hoạt động thích hợp của Slave không bị ngắt. Nếu cơ chế trọng tài bị mất trong chế độ Master thì giao thức I2C sẽ chuyển sang chế độ Slave ngay lập tức và có thể nhận biết địa chỉ Slave của chính nó.

 

Hình 2.18: Định dạng ở chế độ Slave truyền

Chú ý: Các mã trạng thái I2C tham khảo chương 11 của tài liệu UM10139.

CHƯƠNG 3: GIỚI THIỆU IC PCA9633

 

3.1 Giới thiệu chung:

  1. Giới thiệu:

PCA9633 là thiết bị điều khiển LED 4 bit được điều khiển bằng bus I2C dùng cho các ứng dụng pha trộn màu đỏ/ xanh lá cây/ xanh dương/ hổ phách (RGBA). Mỗi ngõ ra LED đều có bộ điều khiển Individual PWM có độ phân giải 8 bit (256 bước) với tần số cố định là 97 kHz với chu kỳ công suất có thể điều chỉnh được từ 0 % đến 99.6 % để tạo ra các độ sáng riêng cho LED. Một bộ điều khiển Group PWM có độ phân giải 8 bit có 2 loại tần số: tần số cố định 190 Hz và tần số có thể điều chỉnh được từ 24 Hz đến mỗi 10.73 giây với chu kỳ công suất có thể điều chỉnh được từ 0 % đến 99.6 % được sử dụng cho việc làm mờ và nhấp nháy LED.

Mỗi ngõ ra LED có thể ở mức thấp, mức cao (không có điều khiển PWM) với giá trị trong bộ điều khiển Individual PWM hoặc với các giá trị trong cả hai bộ điều khiển Individual và Group PWM. PCA9633 hoạt động ở vùng điện áp 2.3V đến 5.5V và các ngõ ra là 5.5V.

PCA9633 được cung cấp 3 chế độ chọn lựa địa chỉ I2C-bus khác nhau: I2C bus cố định (loại 8 chân), 4 địa chỉ I2C khác nhau từ 2 chân có thể lập trình (loại 10 chân), 126 địa chỉ I2C khác nhau từ 7 chân có thể lập trình (loại 16 chân). Chúng đều giống nhau về phần mềm ngoại trừ số địa chỉ khác nhau.

Thanh ghi reset bằng phần mềm (SWRST) cho phép Master reset PCA9633 qua bus I2C.

Hình 3.1: Các sơ đồ chân của IC PCA9633

  1. Đặc điểm:

- Có các bộ điều khiển 4 LED. Mỗi ngõ ra có thể lập trình được:

  • Tắt
  • Sáng
  • Lập trình độ sáng LED.
  • Lập trình nhóm LED mờ/nhấp nháy kết hợp với lập trình độ sáng LED.

- Độ sáng trên mỗi ngõ ra LED có thể lập trình với độ phân giải 8 bit thay đổi từ tắt hoàn toàn (mặc định) đến độ sáng lớn nhất sử dụng tín hiệu PWM 97 kHz.

- Điều khiển độ sáng của nhóm LED với độ phân giải 8 bit cho phép làm mờ các LED (sử dụng tín hiệu PWM 190 Hz ) từ tắt hoàn toàn đến độ sáng lớn nhất (mặc định).

- Điều khiển làm nhấp nháy nhóm LED với độ phân giải 8 bit với tần số có thể lập trình được từ 24 Hz đến 10.73 giây và chu kỳ công suất từ 0% đến 99.6%.

- Chân ngõ vào cho phép tác động mức thấp (). Các ngõ ra LED lập trình lên mức 1, 0 hoặc ở chế độ trở kháng cao ( mặc định khi khởi động) khi  ở mức cao.

- 2 chân địa chỉ (10 pin) và 7 chân địa chỉ (16 pin) có thể cho phép từ 4 đến 126 IC PCA9633 được kết nối với cùng 1 bus I2C. Không có chân địa chỉ ở loại 8 pin.

- 4 địa chỉ I2C có thể lập trình bằng phần mềm (1 địa chỉ LED Group Call và 3 địa chỉ LED Sub Call) cho phép các linh kiện có thể được định địa chỉ ở cùng một thời điểm (ví dụ: 1 thanh ghi sử dụng trong trường hợp gọi tất cả “All Call” để tất cả các PCA9633 trên cùng 1 bus I2C có thể được đánh địa chỉ cùng một lúc và thanh ghi thứ 2 sử dụng 3 địa chỉ khác nhau để 1/3 các PCA9633 trên bus I2C có thể được đánh địa chỉ cùng một lúc trong 1 nhóm).

- Bộ dao động 25 MHz bên trong không cần các linh kiện phụ bên ngoài.

- Có bộ lọc nhiễu trên các ngõ vào SDA/SCL.

- Dòng tiêu thụ khi standby thấp.

- Khoảng điện áp cung cấp từ 2.3V đến 5.5V.

- Hoạt động ở nhiệt độ từ  đến .

  1. Ứng dụng:

- Điều khiển màu các LED RGB hoặc RGBA.

- Hiển thị thông tin trạng thái LED.

- Hiển thị bằng LED.

- Bàn phím chiếu sáng ngược sử dụng trong các điện thoại di động hoặc các thiết bị cầm tay.

  1. Sơ đồ khối:

Hình 3.2: Sơ đồ khối của PCA9633

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

  1. Các địa chỉ của thiết bị:

Theo sau điều kiện START, Master sẽ xuất địa chỉ của Slave mà nó đang truy xuất.

Có lớn nhất 128 địa chỉ có thể lập trình bằng cách sử dụng 7 chân địa chỉ. Hai trong các địa chỉ đó, Software Reset và LED All Call không được sử dụng bởi vì trạng thái mặc định khi khởi động của nó là ON, vậy trừ đi còn lớn nhất 126 địa chỉ có thể được lập trình. Bằng cách sử dụng các địa chỉ dự trữ khác chúng ta sẽ giảm được tổng số các địa chỉ có thể.

  1. Địa chỉ I2C-bus Slave bình thường:

Địa chỉ I2C-bus Slave của PCA9633 như hình dưới:

Hình 3.3: Địa chỉ Slave

Chú ý: Đối với loại 16 chân, các địa chỉ I2C bus dự phòng được sử dụng khi chúng có thể kết hợp với:

Các địa chỉ I2C dự trữ cho ứng dụng trong tương lai (0000 011, 1111 1XX).

Các Slave được sử dụng cho các dự án có địa chỉ 10 bit (1111 0XX).

Các Slave được thiết kế tương ứng với địa chỉ General Call (0000 000).

Mã Master hoạt động ở chế độ tốc độ cao (0000 1XX).

Bit cuối cùng của byte địa chỉ xác định hoạt động được thực hiện. Khi nó được set lên mức 1 thì hoạt động đọc (read) được chọn, còn mức 0 là hoạt động viết (write).

  1. Địa chỉ LED All Call I2C-bus:

Giá trị mặc định lúc khởi động (thanh ghi ALLCALLADR): E0h hoặc 1110 000.

Có thể lập trình qua I2C-bus (lập trình thay đổi được).

Khi khởi động, địa chỉ LED All Call I2C-bus được cho phép. PCA9633 sẽ gửi 1 tín hiệu nhận biết (ACK) khi E0h () hoặc E1h () được gửi bởi Master.

Chú ý: Địa chỉ mặc định LED All Call I2C-bus (E0h hoặc 1110 000x) không được sử dụng như là một địa chỉ I2C-bus Slave bình thường khi địa chỉ này được cho phép lúc khởi động. Tất cả các PCA9633 trên bus I2C sẽ nhận được địa chỉ này nếu nó được gửi bởi Master I2C-bus.

  1. Các địa chỉ LED Sub Call I2C-bus (địa chỉ phụ I2C):

3 địa chỉ khác của I2C-bus có thể được sử dụng.

Giá trị mặc định lúc khởi động là :

  • Thanh ghi SUBADR1 : E2h hoặc 1110 001
  • Thanh ghi SUBADR2 : E4h hoặc 1110 010
  • Thanh ghi SUBADR3 : E8h hoặc 1110 100

Có thể lập trình qua bus I2C (lập trình thay đổi được).

Close