Kĩ thuật vi điều khiển được sử dụng nhờ nhữngtính năng ưu việt như: khả năng lập trình phù hợp với thiết kế nhỏ và lớn cũng nhưgiao tiếp với thiết bị ngoại vi và máy tính đã đem lại sự h
Trang 1TRƯỜNG ĐẠI HỌC VINH KHOA CÔNG NGHỆ
Trang 2VINH, 5/2010
Trang 3Mục lục
Mục lục 1
Lời nói đầu 5
Thuật ngữ viết tắt 6
Chương 1 Giới thiệu đề tài 8
1.1 Mục đích đề tài 8
1.2 Phương pháp nghiên cứu 8
1.3 Tình hình nghiên cứu phát triển công nghệ vi điều khiển ARM, quang báo trong và ngoài nước 9
1.3.1 ARM 9
1.3.2 Quang báo 11
Chương 2 Vi điều khiển ARM LPC2103 13
2.1 Giới thiệu chung 13
2.1.1 Khái quát 13
2.1.2 Các tính năng cơ bản 13
2.1.2.1 Tổng quan kiến trúc 14
2.1.2.2 Bộ xử lí ARM7TDMI-S 14
2.1.2.3 Hệ thống nhớ flash trên chíp 16
2.1.2.4 Hệ thống nhớ SRAM trên chíp 17
2.1.3 Ứng dụng 17
2.1.4 Sơ đồ khối 18
2.2 Khối điều khiển hệ thống<System Control Block> 22
2.2.1 Khái quát 22
2.2.2 Các chân chức năng 22
2.2.3 Các thanh ghi chức năng 23
2.2.4 Nguồn dao động 24
2.2.5 Ngõ vào ngắt ngoài 24
2.2.5.1 Khái quát các thanh ghi 24
2.2.5.2 Thanh ghi chứa các cờ ngắt ngoài ( EXINT-0xE01FC140) 25
2.2.5.3 Thanh ghi thiết lập chức năng wakeup dùng ngắt ngoài (EXTWAKEUP-0xE01FC144) 26
Trang 42.2.5.4 Thanh ghi thiết lập các chế độ ngắt ngoài (EXTMODE-0x01FC148) 26
2.2.5.5 Thanh ghi thiết lập cực tính cho chế độ ngắt ngoài (EXTPOLAR-0xE01FC14C) 27
2.2.5.6 Kết hợp nhiều chân ngắt ngoài cho cùng nguồn ngắt 28
2.2.6 Vòng khóa pha (Phase locked loop-PLL) 28
2.2.6.1 Miêu tả thanh ghi 29
2.2.6.2 Thanh ghi điều khiển PLL 31
2.2.6.3 Thanh ghi tạo cấu hình PLL (PLLCFG-0xE01FC084) 32
2.2.6.4 Thanh ghi trạng thái PLL (PLLSTAT-0xE01FC088) 33
2.2.6.5 Các chế độ hoạt động của PLL 34
2.2.6.6 Thanh ghi cập nhật giá trị PLL liên tục (PLLFEED-0xE01FC08C) 34
2.2.6.7 PLL và chế độ Power Down 35
2.2.6.8 Tính toán tần số dao động của PLL 35
2.2.6.9 Thủ tục xác định cấu hình PLL 35
2.2.7 Điều khiển nguồn 36
2.2.7.1 Diễn tả thanh ghi 36
2.2.7.2 Thanh ghi điều khiển nguồn (PCON-0xE01FC0C0) 37
2.2.7.3 Thanh ghi điều khiển nguồn cho ngoại vi (PCONP-0xE01FC0C4) 37
2.2.8 Reset 38
2.2.9 Bộ chia VPB 39
2.2.9.1 Thanh ghi của bộ chia VPB (VPBDIV - 0xE01FC100) 39
2.2.10 Wakeup time 40
2.3 Bộ điều khiển vector ngắt(VIC) 41
2.3.1 Chức năng 41
2.3.2 Diễn giải 41
2.3.3 Các thanh ghi điều khiển ngắt 42
2.3.4 Các bước thực hiện 1 chương trình ngắt 43
2.3.4.1 Đối với ngắt FIQ 43
2.3.4.2 Đối với ngắt IRQ 43
2.3.4.3 Đối với ngắt non IRQ 44
2.4 Sử dụng các thanh ghi xuất nhập đa dụng (GPIO) 45
Trang 52.5 Sử dụng ADC 46
2.6 UART0 và UART1 48
2.6.1 Chức năng 48
2.6.2 Diễn tả các chân chức năng 48
2.6.3 Diễn tả các thanh ghi chức năng 48
2.6.3.1 Thanh ghi đệm truyền thu <U0RBR - 0xE000C000> 48
2.6.3.2 Thanh ghi giữ giá trị truyền phát <U0THR - 0xE000C000> 49
2.6.3.3 Thanh ghi cho phép ngắt truyền thông nối tiếp <U0IER - 0xE000C004> 50
2.6.3.4 Thanh ghi nhận dạng ngắt truyền thông nối tiếp <U0IIR - 0xE000C008> 51
2.6.3.5 Thanh ghi điều khiển FIFO cho truyền thông nối tiếp <U0FCR-0xE000C008> 52
2.6.3.6 Thanh ghi điều khiển đường truyền cho truyền thông nối tiếp <U0LCR-0xE000C00C> 53
2.6.3.7 Thanh ghi điều khiển trạng thái cho đường truyền cho truyền thông nối tiếp (U0LSR-0xC000C014) 54
2.6.4 Kiến trúc của bộ truyền thông nối tiếp UART0 56
2.7 Time/Counter TIMER0 và TIMER1 57
2.7.1 Tính năng chính 57
2.7.2 Các thanh ghi điều khiển Timer/Counter 57
2.7.2.1 Thanh ghi cờ ngắt của Timer/Counter (IR, T0IR và T1IR) 57
2.7.2.2 Thanh ghi điều khiển Timer/Counter (TCR, T0TCR và T1TCR) 58
2.7.2.3 Thanh ghi điều khiển đếm (CCR, T0CTCR và T1CTCR) 58
2.7.2.4 Thanh ghi điều khiển ở chế độ Match (MCR, T0MCR và T1MCR): 59
Chương 3 Phương pháp lập trình với ARM 60
3.1 Công cụ phát triển 60
3.2 Cài đặt keil 61
3.3 Trình biên dịch C 62
3.4 Xây dựng một đề án 63
3.4.1 Tạo một đề án 63
Trang 63.4.2 Quản lý một đề án (Project manager) 64
3.4.2.1 Cửa sổ soạn thảo chương trình (Application Editor) 65
3.4.2.2 Cửa sổ trạng thái ra (Outout Window) 65
3.4.2.3 Môi trường soạn thảo cấu hình linh kiện(Device Editor) 65
3.4.3 Môi trường gỡ rối Debbug 65
Chương 4 Ứng dụng lập trình quang báo 67
4.1 Cấu trúc nguyên lý phần cứng 67
4.1.1 Sơ đồ khối tổng quát 67
4.1.2 Khối nguồn 68
4.1.3 Khối điều khiển trung tâm 70
4.1.3.1 Mạch kết nối JTAG 71
4.1.3.2 Mạch Reset hệ thống 71
4.1.3.3 Mạch giao tiếp cổng COM 72
4.1.4 Khối đệm và giải mã hàng 73
4.1.5 Khối đệm và giải mã cột 75
4.1.6 Khối hiển thị (ledmatrix) 77
4.2 Thiết kế phần mềm 80
4.2.1 Thiết kế lưu đồ chương trình 80
4.2.1.1 Lưu đồ chương trình chính 81
4.2.1.2 Lưu đồ chương trình hiển thị 82
4.2.1.3 Lưu đồ hiệu ứng dich chữ 84
4.2.1.4 Lưu đồ hiệu ứng chữ rơi 85
KẾT LUẬN 86
Phụ lục 1 Tài liệu tham khảo 87
Phụ lục 2 Mã nguồn chương trình 88
Trang 7Lời nói đầu
Ngày nay đại đa số các lĩnh vực sản xuất điều khiển, giám sát, đo lường….đềuđược trang bị hệ thống tự động hóa Kĩ thuật vi điều khiển được sử dụng nhờ nhữngtính năng ưu việt như: khả năng lập trình phù hợp với thiết kế nhỏ và lớn cũng nhưgiao tiếp với thiết bị ngoại vi và máy tính đã đem lại sự hoàn hảo, độ chính xác và tínhmềm dẻo cao thông qua giao tiếp giữa người và máy
Vi điều khiển quản lý hoạt động của hệ thống thông qua phần mềm, nhờ vậy ta
có thể mở rộng và thay đổi hoạt động một cách dễ dàng bằng cách thay đổi một sốthông số của chương trình Vi điều khiển hoạt động theo chương trình đã nạp sẵn, đọccác tín hiệu từ bên ngoài đưa vào sau đó lưu trữ và xử lý, trên cơ sở đó đưa ra cácthông báo, tín hiệu điều khiển các thiết bị bên ngoài hoạt động theo đúng thông số vàyêu cầu của hệ thống
Qua những kiến thức học tập và nghiên cứu một số họ vi điều khiển và được sự
hướng dẫn tận tình của thầy Đặng Thái Sơn em đã mạnh dạn chọn đề tài “Nghiên cứu
vi điều khiển ARM LPC2301 ứng dụng lập trình quang báo” làm đồ án tốt nghiệp
với mong muốn nâng cao khả năng hiểu biết của mình về dòng vi điều đang được ứngdụng rộng rãi này và kỹ thuật để làm ra một sản phẩm đáp ứng yêu cầu thực tế
Nội dung đồ án gồm 4 chương:
Chương 1 Giới thiệu đề tài
Chương 2 Vi điều khiển ARM LPC2103
Chương 3 Phương pháp lập trình với ARM
Chương 4 Ứng dụng lập trình quang báo
Em xin chân thành cảm ơn thầy giáo KS.Đặng Thái Sơn đã tận tình hướng dẫn
em hoàn thành tốt đồ án này
Mặc dù đã cố gắng nhưng với điều kiện khó khăn, kinh nghiệm hạn chế và thờigian có hạn nên kết quả đạt được còn hạn chế Em rất mong được sự góp ý và phêbình của quý thầy cô và bạn đọc
Sinh viên
Trang 8Thuật ngữ viết tắt
triển RISC
Bus
Bus chức năng thực thi cao
Máy tính với tập lệnh đầy đủ
Ports
Ngõ vào ra đa dụng
Environment
Môi trường thiết kế hợp nhất
Trang 9LR Link Register Thanh ghi liên kết
Computer
Máy tính khả trình thông minh
Computer
Máy tính với tập lệnh suy giảm
Receiver/Transmitter
Chuẩn truyền/nhận không đồng bộ
Trang 10Chương 1 Giới thiệu đề tài
1.1 Mục đích đề tài
Nghiên cứu để hiểu rõ về cấu trúc phần cứng, phần mềm lập trình Ứng dụnglập trình bảng điện tử thực hiện một số hiệu ứng thông dụng như: hiệu ứng dịch chữtrái, dịch phải, cuộn tròn, chớp tắt, hiệu ứng chữ rơi,…
1.2 Phương pháp nghiên cứu
Để thực hiện đề tài em đã thực hiện các trình tự nghiên cứu tuần tự như sau:Tìm hiểu một số chip vi điều khiển khả trình phổ dụng:
- Nghiên cứu cấu trúc và các tính năng của ARM LPC2103
- Nghiên cứu môi trường phát triển IDE
- Nghiên cứu phương pháp thiết kế và lập trình trên chip ARM
Tham khảo các thiết kế có sẵn với ARM
Phần cứng đáp ứng các yêu cầu đặt ra:
- Lập sơ đồ khối hệ thống
- Sơ đồ nguyên lý của modun sử dụng
Thiết kế phần mềm với các tính năng đặt ra:
- Thiết kế lưu đồ thuật toán chương trình chính
- Thiết kế modul chương trình chính
- Thiết kế lưu đồ thuật toán các modul chương trình con
- Thiết kế các modul chương trình con
Nạp chạy thử mạch và ghi nhận kết quả
Trang 111.3 Tình hình nghiên cứu phát triển công nghệ vi điều khiển ARM, quang báo trong và ngoài nước
1.3.1 ARM
Cấu trúc ARM (viết tắt từ tên gốc là Acorn RISC Machine) là một loại cấu trúc
vi xử lý 32-bit kiểu RISC được sử dụng rộng rãi trong các thiết kế nhúng Do có đặcđiểm tiết kiệm năng lượng, các bộ CPU ARM chiếm ưu thế trong các sản phẩm điện
tử di động, mà với các sản phẩm này việc tiêu tán công suất thấp là một mục tiêu thiết
kế quan trọng hàng đầu
Ngày nay, hơn 75% CPU nhúng 32-bit là thuộc họ ARM, điều này khiến ARMtrở thành cấu trúc 32-bit được sản xuất nhiều nhất trên thế giới CPU ARM được tìmthấy khắp nơi trong các sản phẩm thương mại điện tử, từ thiết bị cầm tay (PDA, điệnthoại di động, máy đa phương tiện, máy trò chơi cầm tay, và máy tính cầm tay) chođến các thiết bị ngoại vi máy tính (ổ đĩa cứng, bộ định tuyến để bàn.) Một nhánh nổitiếng của họ ARM là các vi xử lý Xscale của Intel
Việc thiết kế ARM được bắt đầu từ năm 1983 trong một dự án phát triển củacông ty máy tính Acorn
Nhóm thiết kế, dẫn đầu bởi Roger Wilson và Steve Furber, bắt đầu phát triểnmột bộ vi xử lý có nhiều điểm tương đồng với Kỹ thuật MOS 6502 tiên tiến Acorn đãtừng sản xuất nhiều máy tính dựa trên 6502, vì vậy việc tạo ra một chip như vậy làmột bước tiến đáng kể của công ty này
Nhóm thiết kế hoàn thành việc phát triển mẫu gọi là ARM1 vào năm 1985, vàvào năm sau, nhóm hoàn thành sản phẩm “thực’’ gọi là ARM2 ARM2 có tuyến dữliệu 32-bit, không gian địa chỉ 26-bit tức cho phép quản lý đến 64Mbyte địa chỉ và 16thanh ghi 32-bit Một trong những thanh ghi này đóng vai trò là bộ đếm chương trìnhvới 6 bit cao nhất và 2 bit thấp nhất lưu giữ các cờ trạng thái của bộ vi xử lý Có thểnói ARM2 là bộ vi xử lý 32-bit khả dụng đơn giản nhất trên thế giới, với chỉ gồm30.000 transistor (so với bộ vi xử lý lâu hơn bốn năm của Motorola là 68000 vớikhoảng 68.000 transistor) Sự đơn giản như vậy có được nhờ ARM không có vichương trình (mà chiếm khoảng ¼ đến 1/3 trong 68000) và cũng giống như hầu hết
Trang 12các CPU vào thời đó, không hề chứa cache Sự đơn giản này đưa đến đặc điểm tiêuthụ công suất thấp của ARM, mà lại có tính năng tốt hơn cả 286 Thế hệ sau, ARM3,được tạo ra với 4KB cache và có chức năng được cải thiện tốt hơn nữa.
Vào những năm cuối thập niên 80, hãng máy tính Apple Computer bắt đầu hợptác với Acorn để phát triển các thế hệ lõi ARM mới Công việc này trở nên quan trọngđến nỗi Acorn nâng nhóm thiết kế trở thành một công ty mới gọi là Advanced RISCMachines Vì lý do đó bạn thường được giải thích ARM là chữ viết tắt của AdvancedRISC Machines thay vì Acorn RISC Machine Advanced RISC Machines trở thànhcông ty ARM Limited khi công ty này được đưa ra sàn chứng khoán London vàNASDAQ năm 1998
Kết quả sự hợp tác này là ARM6 Mẫu đầu tiên được công bố vào năm 1991 vàApple đã sử dụng bộ vi xử lý ARM 610 dựa trên ARM6 làm cơ sở cho PDA hiệuApple Newton Vào năm 1994, Acorn dùng ARM 610 làm CPU trong các máy vi tínhRiscPC của họ
Trải qua nhiều thế hệ nhưng lõi ARM gần như không thay đổi kích thước.ARM2 có 30.000 transistors trong khi ARM6 chỉ tăng lên đến 35.000 Ý tưởng củanhà sản xuất lõi ARM là sao cho người sử dụng có thể ghép lõi ARM với một số bộphận tùy chọn nào đó để tạo ra một CPU hoàn chỉnh, một loại CPU mà có thể tạo ratrên những nhà máy sản xuất bán dẫn cũ và vẫn tiếp tục tạo ra được sản phẩm vớinhiều tính năng mà giá thành vẫn thấp
Thế hệ thành công nhất có lẽ là ARM7TDMI với hàng trăm triệu lõi được sửdụng trong các máy điện thoại di động, hệ thống video game cầm tay, và SegaDreamcast Trong khi công ty ARM chỉ tập trung vào việc bán lõi IP, cũng có một sốgiấy phép tạo ra bộ vi điều khiển dựa trên lõi này
Dreamcast đưa ra bộ vi xử lý SH4 mà chỉ mượn một số ý tưởng từ ARM (tiêután công suất thấp, tập lệnh gọn …) nhưng phần còn lại thì khác với ARM Dreamcastcũng tạo ra một chip xử lý âm thanh được thiết kế bởi Yamaha với lõi ARM7 Bêncạnh đó, Gameboy Advance của Nintendo, dùng ARM7TDMI ở tần số 16,78 MHz
Hãng DEC cũng bán giấy phép về lõi cấu trúc ARM (đôi khi chúng ta có thể bịnhầm lẫn vì họ cũng sản xuất ra DEC Alpha) và sản xuất ra thế hệ Strong ARM Hoạtđộng ở tần số 233 MHz mà CPU này chỉ tiêu tốn khoảng 1 watt công suất (những đời
Trang 13sau còn tiêu tốn ít công suất hơn nữa) Sau những kiện tụng, Intel cũng được chấpnhận sản xuất ARM và Intel đã nắm lấy cơ hội này để bổ sung vào thế hệ già cỗi i960của họ bằng Strong ARM Từ đó, Intel đã phát triển cho chính họ một sản phẩm chứcnăng cao gọi tên là Xscale.
1.3.2 Quang báo
Trong đời sống hiện đại ngày nay, quảng cáo là một phần không thể thiếutrong nhịp sống bùng nổ công nghệ thông tin như hiện nay Ở bất cứ nơi đâu ta cũngbắt gặp những biển quảng cáo từ đơn giản, thủ công cho đến những biển quảng cáođiện tử hiện đại, thẩm mỹ Đó là những bảng quảng cáo điện tử mà chúng ta gọi lànhững bảng đèn quang báo Công nghệ điện tử này còn được sử dụng trong nhiều lĩnhvực như những biển báo giao thông, những bảng điểm trên những sàn giao dịch chứngkhoán, hay tại các sân bay, siêu thị Những bảng quang báo này góp phần làm chothành phố chúng ta có được một bộ mặt của một thành phố hiện đại và văn minh Tácdụng của bảng quang báo là khá to lớn và tính kinh tế của việc dùng quảng cáo bằngLED nó tăng tính chú ý và đẹp
Quảng đóng vai trò quan trọng trong sự phát triển của một công ty, doanhnghiệp hay thậm chí là của một cửa hàng Quảng cáo tốt sẽ đem lại nhiều lợi ích tolớn Cũng chính vì vậy mà không ngạc nhiên khi hàng năm các doanh nghiệp đã đầu
tư rất nhiều vào vấn đề này Một trong những biện pháp được ưa dùng hiện nay đó là
sử dụng bảng quảng cáo bằng đèn LED, vì sự đơn giản, hiện đại, bắt mắt, chi phí hợp
lý cũng như tính hiệu quả của nó Những bảng thông tin, cổng chào hay những bảngLED quảng cáo với màu sắc sặc sỡ, bắt mắt, gây nhiều chú ý chắc hẳn đã không còn
xa lạ đối với người dân, nhất là người dân đô thị
Quảng cáo bằng đèn LED hiện nay được ứng dụng rất rộng rãi trong nhiềungành, nhiều lĩnh vực Nó không chỉ giới hạn bởi việc hiển thị các dòng chữ, các biểnhiệu nhấp nháy mà còn có thể hiển thị các hình ảnh đồ họa, các hình ảnh full colour vàđặc biệt là có thể hiển thị được cả video Nó cũng không chỉ giới hạn trong việc quảngcáo trong nhà (indoor), bán ngoài trời (semi – outdoor ) mà còn có thể quảng cáo ở cảngoài trời, ngay giữa ban ngày với độ sáng và độ sắc nét cao
Trong những năm gần đây quang báo (bảng diện tử) được phát triển mạnh mẽvới nhiều chủng loại phục vụ cho các mục đích khác nhau
Trang 14Có nhiều IC chuyên dụng được sử dụng làm bảng điện tử cùng với việc kết hợpcác công nghệ mới như FPGA, CPLD thì bảng điện tử thực sự được phát triển về quy
mô và mức độ kỹ thuật:
- Các loại màn hình Full Color Indoor, Out Door
- Bảng điện tử Led hiển thị số
- Bảng điện tử Led ma trận một màu
- Bảng điện tử Led ma trận ba màu, đa sắc
- Bảng điện tử hiển thị thông tin Chứng khoán
- Bảng điện tử hiển thị tỷ giá Ngân hàng, Kết quả xổ số, Nghiệp vụ Bưu điện
- Bảng điện tử hiển thị múi giờ quốc tế
- Bảng điện tử Led động - Biển vẫy
- Trang trí nội thất , quán bar bằng công nghệ LED
- Trang trí tòa nhà bằng LED
Qua tìm hiểu các nguồn thông tin (mạng internet, thăm dò thị trường, báo chícông nghệ,….) em thấy có rất nhiều công ty lớn cũng như các công ti vừa và nhỏ thiết
kế bảng điện tử với các công nghệ hiện đại và nhu cầu của xã hội là rất lớn
Trong khuôn khổ đề tài với tính chất học thuật em mạnh dạn đưa ra ứng dụngARM vào điều khiển bảng điện tử vì những tính năng mạnh ưu việt, tốc độ xử lý vàdung lượng nhớ được tích hợp trên nó
Trang 15Chương 2 Vi điều khiển ARM LPC2103
2.1 Giới thiệu chung
2.1.1 Khái quát
LPC2103 là vi điều khiển 32 bít hỗ trợ thời gian thực và trace nhúng xây dựngtrên cấu trúc của ARM7TDMI-S LPC2103 có 32kB bộ nhớ flash tốc độ cao, vùngnhớ nội mở rộng tới 128 bit địa chỉ, cấu hình cho phép thực thi các chỉ lệnh 32bit chỉtrong một chu kì xung nhịp Để tiện cho những ứng dụng nhỏ, LPC2103 hỗ trợ tậplệnh 16 bít thu gọn (Thumb) Với chế độ thu gọn này, kích thước tập lệnh chỉ còn 70%
so với tập lệnh 32bit làm cùng chức năng
Đóng gói 48 chân, sử dụng ít năng lượng, time 32bit, 8 kênh ADC, 9 nguồnngắt ngoài, LPC2103 thích hợp cho những ứng dụng công nghiệp, hóa học, nghiêncứu điều khiển, và cả thương mại
Hỗ trợ cấu trúc JTAG, ISP, IAP cho phép mở rộng các ứng dụng nhúng
2.1.2 Các tính năng cơ bản
- Vi điều khiển ARM7TDMI-S 32bit đóng gói 48 chân
- 8kB SRAM trong chip, 32kB bộ nhớ flash có thể lập trình (chu kì ghi xóa ítnhất là 10.000 lần)
- Bus mở rộng 8/16/32
- Lập trình ISP/IAP sử dụng chế độ boot loader Có thẻ xóa một sector hoặctoàn bộ chip trong thời gian 1ms, lập trình ghi 256 bytes trong thời gian1ms
- Hỗ trợ chạy mô phỏng thời gian thực ngay trên ứng dụng nhúng(embeddedICE RT)
- 8 kênh ADC 10bit với thời gian chuyển đổi 2,44ms
- 2 Time 32bit kết nối với 7 kênh capture và 7 kênh compare
- 2 Time 16 bit kết nối với 3 kênh capture và 7 kênh compare
- Giao diện nối tiếp gồm 2 kênh UART <16C550>, I2C tốc độ cao
<400kbits/s>, 2 kênh SPI
Trang 16- Xung nhịp CPU tối đa 60MHz có sẵn nhờ vòng khóa pha trên chip có thểlập trình được (PLL).
- Vector ngắt có địa chỉ truy cập và các mức ưu tiên
- Đến 32 chân xuất nhập đa dụng ở mức điện áp 5V
- Có 13 chân ngắt ngoài theo mức hoặc cạnh
- Tần số CPU có thể đạt 70MHz thông qua khả năng lập trình PLL trên chípvới tần số vào từ 10MHz đến 25MHz và thời gian thiết lập là 100
- Bộ dao động tích hợp trên chíp hoạt động với dao động thạch anh bên ngoàitần số từ 1MHz đến 25MHz
- Các chế độ tiết kiệm nguồn Idle, Power down và Pown down với sự kíchhoạt của RTC
- Chức năng sử dụng tối ưu nguồn bằng cách cho phép hoặc không cho phéptừng nguồn ngoại vi riêng lẻ
- Đưa vi điều khiển vào lại chế độ hoạt động bình thường từ chế độ Powerdown nhờ ngắt ngoài hoặc RTC
2.1.2.1 Tổng quan kiến trúc
Bộ xử lí trung tâm (CPU) của LPC2103 ARM7TDMI-S hỗ trợ giao tiếp busAMBA (Advanced Microcontroller Bus Architecture) Ngoại vi AHB cho phép kếtnối tới dải địa chỉ 2MB Mỗi vùng nhớ AHB có 16kB Các chức năng ngoại vi củaLPC2103 được kết nối tới bus AHB Các ngoại vi APB cũng cho phép kết nối tới dảiđịa chỉ 2MB bắt đầu ở điểm 3.5GB Mỗi ngoại vi APB cũng được định vị đến khônggian nhớ 16kB trong không gian nhớ APB
Sự kết nối ngoại vi đến chân được điều khiển bởi khối kết nối chân Điều nàyphải được cấu hình bằng phần mềm tùy theo ứng dụng yêu cầu của người sử dụng
2.1.2.2 Bộ xử lí ARM7TDMI-S
ARM7TDMI-S là bộ lí 32bit đa năng có tốc độ thực thi cao, tiêu thụ nănglượng thấp Kiến trúc ARM dựa trên nguyên lí kiến trúc RISC(Reduced InstructionSet Conputer) với tập lệnh và mã máy đơn giản hơn kiến trúc CISC(ComplexInstruction Set Computer)
Kĩ thuật pipeline được sử dụng để bộ xử lí và hệ thống nhớ có thể hoạt độngliên tục
Trang 17Bộ xử lí ARM7TDMI-S cũng sử dụng chế độ THUM, phù hợp với các ứngdụng tốc độ cao với bộ nhớ hạn chế Ý tưởng chính của chế độ THUM cung cấp tậplệnh suy giảm Vậy bộ xử lý ARM7TDMI-S có hai tập lệnh cơ bản:
- Tập lệnh tiêu chuẩn 32bit
- Tập lệnh thum on 16bit THUM
ARM7 có kiến trúc load-and-store vì vậy để thực hiện bất kỳ câu lệnh xử lý dữliệu nào đầu tiên dữ liệu phải được chuyển từ bộ nhớ lưu trữ đến tập thanh ghi xử lýcủa hệ thống Chỉ lệnh xử lý dữ liệu sẽ được thực thi và sau đó dữ liệu sẽ được lưu dữtrở lại bộ nhớ
Hình 2.1 Sơ đồ thể hiện thực hiện lệnh ADD của ARM7
Tập thanh ghi trung tâm bao gồm 16 thanh ghi có độ rộng 32bit ký hiệu từ R15 Các thanh ghi từ R0-R12 là các thanh ghi người sử dụng, chúng không có mụcđích đặc biệt nào khác Các thanh ghi R13-R15 có các chức năng đặc biệt trong CPU:
R0 R13 là con trỏ dữ liệu SP (stack pointer)
- R14 gọi là thanh ghi liên kết LR (link register)
- R15 là bộ đếm chương trình PC (program counter)
Nhiều câu lệnh có thể được thực hiện trên các thanh ghi R13-R15 nếu chúngđược sử dụng theo tiêu chuẩn thanh ghi người sử dụng
Trang 18Hình 2.2 Mô tả tập thanh ghi của ARM7.
CPSR (Curent Program Status Register) là thanh ghi trạng thái chương trình.Thanh ghi này chỉ ra kết quả hoạt động xử lý dữ liệu hiện tại, các cờ người sử dụng,thiết lập chế độ hoạt động và cho phép ngắt
2.1.2.3 Hệ thống nhớ flash trên chíp
LPC2103 tích hợp 32kB bộ nhớ flash trên chip Bộ nhớ này được sử dụng đểlưu trữ chương trình và dữ liệu chương trình của bộ nhớ có thể được nạp theo cáccách sau:
- Sử dụng giao diện JTAG truyền nối tiếp
R2
R0R0R0R0R0R0
R1
R4 R3
Current Program Status Register
PC LR SP
Trang 192.1.2.4 Hệ thống nhớ SRAM trên chíp
Hệ thống nhớ SRAM trên chíp có thể được sử dụng cho việc lưu trữ mã và dữliệu SRAM có thể được truy nhập theo 8bit, 16bit và 32bit LPC2103 có 8kB SRAMtrên chíp
SRAM của LPC2103 được thiết kế để quản lý bộ nhớ theo byte
SRAM sử dụng điều khiển phối hợp bộ đệm phản hồi để ngăn CPU vào tìnhtrạng treo vi điều khiển khi truy cập dữ liệu ngược Bộ đệm phản hồi luôn giữ giá trịcuối của phần mềm vào SRAM Dữ liệu này chỉ được ghi vào SRAM khi phần mềmyêu cầu quá trình ghi nhận khác Nếu quá trình Reset xảy ra, thanh ghi SRAM sẽkhông phản ánh đúng giá trị ghi vào SRAM ngay trước khi Reset hệ thống Muốn truycập đúng dữ liệu, phần mềm cần đưa ra đúng mã nhận dạng Vì thế, trước khi vào chế
độ Idle hay Power- down, giá trị này được ghi vào bộ nhớ đệm<dummy> để sau khiReset, sẽ truy cập đúng giá trị mong muốn
2.1.3 Ứng dụng
- Điều khiển trong công nghiệp
- Hệ thống y tế
- Cổng thông tin, truyền thông đa phương tiện
- Mục đích học thuật, nghiên cứu ứng dụng
- Các mục đích đa dụng khác.
Trang 202.1.4 Sơ đồ khối
Hình 2.3 Sơ đồ khối của LPC2103
Trang 21Vùng bus ngoại vi AHB/VPB không được định nghĩa.
Bảng mô tả chức năng các chân của LPC2103
Bảng 2.1 Mô tả các chân chức năng của ARM LPC2103
từng bit Hoạt động của các chân Port0 phụ thuộcvào chức năng từng chân được chọn thông quakhối kết nối chân (Pin Connect Block)
Chú ý chân P0.31 chỉ được phép cấu hình là chânra
P0.0/TXD0/
MAT3.1 13 I/O P0.0 chân vào ra đa dụng.O TXD0 ngõ ra của UART0
P0.1/RXD0/
MAT3.2 14 I/O P1.0 chân vào ra đa dụng.I Ngõ vào UART0
CAP0.1 22 I/O P0.4 ngõ vào/ra đa dụng.I/O Ngõ xung clock cho SPI0 Ngõ ra clock SPI của
master hoặc ngõ vào clock của slave
P0.5/MISO0/
MAT0.1 23 I/O P0.5 ngõ vào ra đa dụng.I/O MISO ngõ vào ra dữ liệu SPI0 Ngõ vào của
master hoặc ngõ ra của slave
I/O MAT0.1 ngõ ra PWM kênh 1 của time0
P0.6/MOSI/
CAP0.2 24 I/O P0.6 ngõ vào ra đa dụng.I/O MISO0 ngõ dữ liệu cho SPI0 Ngõ ra của master
hoặc ngõ vào của slave
P0.7/SSEL0/
MAT2.0 28 I/O P0.7 ngõ vào ra đa dụng.I SSEL0 lựa chọn slave cho SPI0
P0.8/TXD1/
MAT2.1 29 I/O P0.8 ngõ vào ra đa dụng.O TXD1 ngõ ra của UART1
Trang 22O MAT2.2 ngõ ra PWM kênh 2 time2.
P0.9/RXD1/
MAT2.2 30 I/O P0.9 ngõ vào ra đa dụng.I RXD1 ngõ vào UART1
P0.10/RTS1/
CAP1.0/AD0.3 35 I/O P0.10 ngõ vào ra đa dụng.O RTS1 ngõ ra để gửi dữ liệu đối với UART1
P0.11/CTS1/
CAP1.1/AD0.4 36 I/O P0.11 ngõ vào ra đa dụng.I CTS1 đồng bộ để nhân dữ liệu của bộ UART1
P0.12/DSR1/
MAT1.0/AD0.5 37 I/O P0.12 ngõ vào ra đa dụng.I DSR1 đầu vào thiết lập sẵn sàng nhận dữ liệu của
UART1
SCK1/EINT1 44 I/O P0.14 ngõ vào ra đa dụng.I DCD1 phát hiện dữ liệu vào của UART1
I/O SCK1 xung clock nối tiếp cho SPI1
P0.15/RI1/
EINT2 45 I/O P0.15 ngõ vào ra đa dụng.I RI1 dùng cho UART1
P0.16/EINT0/
MAT0.2 46 I/O P0.16 ngõ vào ra đa dụng.I EINT0 ngõ vào ngắt ngoài 0
P0.17/CAP1.2/
SCL1 47 I/O P0.17 ngõ vào ra đa dụng.I CAP1.2 ngõ vào capture kênh 2 timer 1
I/O SCL1 xung clock cho I2C1
P0.18/CAP1.3/
SDA1 48 I/O P0.18 ngõ vào ra đa dụng.I CAP1.3 ngõ vào capture kênh 3 timer1
I/O SDA1 ngõ dữ liệu cho I2C
P0.19/MAT1.2/
MISO1 1 I/O P0.19 ngõ vào ra đa dụng.O MAT1.2 ngõ ra PWM kênh 2 timer1
I/O MISO1 ngõ dữ liệu của SPI1
P0.20/MAT1.3/
MOSI1 2 I/O P0.20 ngõ vào ra đa dụng.O MAT1.3 ngõ ra PWM kênh 3 timer1
I/O MOSI1 ngõ dữ liệu của SPI1
P0.21/SSEL1/
MAT3.0 3 I/O P0.21 ngõ vào ra đa dụng.I SSEL1 chân chọn SPI1
Trang 23O MAT3.0 ngõ ra PWM kênh 0 timer3
P0.27/TRST/
CAP2.0 8 I/O P0.27 ngõ vào ra đa dụng.I TRST kiểm tra reset cho giao diện JTAG
P0.28/TMS/
CAP2.1 9 I/O P0.28 ngõ vào ra đa dụng.I TMS lựa chọn chế độ cho giao diện JTAG
P0.29/TCK/
CAP2.2 10 I/O P0.29 ngõ vào ra đa dụng.I TCK kiểm tra JTAG cho giao diện JTAG
P0.30/TDI/
MAT3.3 15 I/O P0.30 ngõ vào ra đa dụng.I TDI kiểm tra dữ liệu cho giao diện JTAG
Trang 242.2 Khối điều khiển hệ thống<System Control Block>
2.2.1 Khái quát
Khối điều khiển hệ thống có một số chức năng và thanh ghi có quan hệ với một
số thiết bị ngoại vi:
Bảng 2.2 Các chân chức năng điều khiển hệ thống
hệ thống từ các chế độ tiết kiệm nguồn(powerdown hoặc Idle)+ P0.1 và P0.16 có thể được chọn để thực hiên chức năngnày
+ Mức thấp trên các chân này ngay sau khi Reset ngoài sẽ cấuhình cho phần cứng ngoài yêu cầu vào ISP
Các chân P0.3 và P0.14 thực hiên chức năng này
+ Các chân P0.3 và P0.14 thực hiện chức năng này
+ Các chân P0.7 và P0.15 thực hiện chức năng này
chế độ reset: các ngoại vi vào trạng thái mặc định, vi xử lý bắtđầu từ địa chỉ 0x00000000
Trang 252.2.3 Các thanh ghi chức năng
Bảng 2.3 Các thanh ghi chức năng điều khiển hệ thống
Ngắt ngoài
EXTMODE Thanh ghi định chế độ
Điều khiển phân vùng bộ nhớ
Điều khiển nguồn
Bộ chia bus ngoại vi VPB
Trang 262.2.5.1 Khái quát các thanh ghi
Chứa năng ngắt ngoài dùng 4 thanh ghi đi kèm với nó Thanh ghi EXINT chứa
cờ ngắt và thanh ghi EXTWAKEUP chứa bit cho phép từng ngắt ngoài có thể wakeup
Trang 27hệ thống từ chế độ power down Thanh ghi EXTMODE và EXTPOLAR cho biết cácthông số ngắt mức cạnh.
Bảng 2.4 Các thanh ghi ngắt ngoài
0xE01FC140 EXTINT Thanh ghi cờ ngắt ngoài chứa các cờngắt ngoài cho EINT0, EINT1, và
0xE01FC144 EXTWAKE Thanh ghi Wakeup ngắt ngoài chứa 3bit cho phép điều khiển mỗi nguồn ngắt
ngoài có thể là nguồn để wakeup hệthống khi vi xử lý đang trong chế độPower down
Đọc/ghi
0xE01FC148 EXTMODE Thanh ghi chọn chế độ ngắt ngoài là
0xE01FC14C EXTPOLAR Thanh ghi phân cực ngắt ngoài: điều
khiển ngắt trên mỗi chân là cạnh haymức
Đọc/ghi
2.2.5.2 Thanh ghi chứa các cờ ngắt ngoài ( EXINT-0xE01FC140)
Khi ngõ vào ngắt ngoài được chọn, sự thay đổi mức (hoặc cạnh) trên chân chứcnăng tương ứng sẽ tạo ra cờ ngắt trên thanh ghi ngắt ngoài Cờ ngắt này sẽ được đápứng bởi vector ngắt (VIC) tương ứng
Ghi “1” vào các bit EINT0 đến EINT3 trên thanh ghi EXTINT sẽ xóa các bitđáp ứng Nếu ở chế độ ngắt mức, việc ghi các bit này sẽ có tác động chỉ khi các chânngắt ngoài tương ứng đang ở trạng thái không tích cực
Trang 28Bảng 2.5 Thanh ghi cờ ngắt ngoài
EINT0 được chọn và chân tương ứng của
2.2.5.3 Thanh ghi thiết lập chức năng wakeup dùng ngắt ngoài 0xE01FC144)
(EXTWAKEUP-Bảng 2.6 Thanh ghi wakeup ngắt ngoài
ngoài EINT0 sẽ wave up vi xử lý từchế độ Power down
0
wake up vi xử lý từ chế độ Powerdown
0
2.2.5.4 Thanh ghi thiết lập các chế độ ngắt ngoài (EXTMODE-0x01FC148)
Các bit trên thanh ghi này cho phép đặt chế độ ngắt ngoài là ngắt cạnh hay ngắtmức Chỉ có các chân được cấu hình cho phép ngắt ngoài và được cho phép bởi thanhghi ngắt toàn cục VICIntEnable mới có thể thực hiện chức năng ngắt ngoài
Trang 29Phần mềm lập trình chỉ nên thay đổi bit trong thanh ghi này khi các ngắt đãđược cấm bởi thanh ghi VICIntEnable và nên gán bit tương ứng trong thanh ghiEXTINT bằng ‘1’ trước khi cho phép hoặc thay đổi chế độ hoạt động.
Bảng 2.7 Thanh ghi thiết lập chế độ ngắt ngoài
chọn tích cực mức
+ Bit 1 ngắt ngoài EINT0 chế độtích cực cạnh
0
Bảng 2.8 Thanh ghi thiết lập cực tính cho ngắt ngoài
ngắt khi ở mức thấp hoặc tác động cạnh xuống (được định nghĩa bởi EXTMODE0)
+ EXTPOLAR0=1, EXNT0 xảy ra ngắt khi ở mức cao hoặc tác động cạnhlên (được định nghĩa bởi
EXTMODE0)
0
EXTMODE1
Trang 302 EXTPOLAR2 Tương tự với EXTPOLAR2 và
EXTMODE2
2.2.5.6 Kết hợp nhiều chân ngắt ngoài cho cùng nguồn ngắt
Phần mềm có thể chọn nhiều chân phục vụ cho 1 nguồn ngắt từ EINT0:2 trongkhối thanh ghi chọn chân (Pin Select block)
Ở chế độ tích cực mức thấp, trạng thái của tất cả các chân chọn trong EINT sẽ
Hình 2.7 Chọn chế độ cho các ngắt ngoài
2.2.6 Vòng khóa pha (Phase locked loop-PLL)
PLL hoạt động với tần số dao động từ 1-25MHz Ngõ vào tần số được nhânvào CCLK trong tầm từ 10MHz đến 60MHz sử dụng máy dao động điều khiển hiệntại (Current Controlled Oscillator-CCO) Giá trị nhân vào có thể trong phạm vi từ 1đến 32 (số nguyên) <thật ra, với LPC2103, hệ số này nhỏ hơn 6 vì bị giới hạn ngưỡng
Trang 31trên của tần số dao động> CCO hoạt động trong tầm tần số từ 156MHz đến 320MHz,bởi vậy, có thêm một bộ chia trong vòng (loop) để giữ giá trị CCO trong tầm giới hạntần số khi PLL tạo tần số dao động mong muốn Bộ chia ngoài có các số chia là 2, 4,
8, 16 để tạo tín hiệu xung nhịp ngõ ra
Nếu số chia là 2, nó đảm bảo rằng tín hiệu ngõ ra của PLL có độ gợn 50%.Hoạt động của PLL được điều khiển bởi thanh ghi PLLCFG Có 2 thanh ghiđược bảo vệ để chống lại sự cố xảy ra do thay đổi các thông số của PLL hoặc PLLkhông hoạt động.Vì tất cả các thành phần trên chip, kể cả đồng hồ Watchdog, đều phụthuộc vào PLL khi nó cung cấp xung nhịp cho chip, các sự cố xảy ra với PLL có thểgây ra các hoạt động không mong muốn trên vi điều khiển Chức năng bảo vệ củaPLL được thực hiện bằng cách cập nhật giá trị liên tục giống như đồng hồ Watchdog.PLL không hoạt động khi chip Reset hoặc vào chế độ Power Down PLL chỉ hoạtđộng khi người lập trình cho phép Chương trình lập trình phải định cấu hình choPLL, cho nó hoạt động, chờ PLL khóa pha, sau đó xem PLL như là nguồn xung nhịp
2.2.6.1 Miêu tả thanh ghi
PLL được điều khiển bằng các thanh ghi trong bảng dưới đây
Lưu ý rằng việc thiết đặt các giá trị PLL không phù hợp có thể làm thiết bị hoạtđộng sai
Bảng 2.9 Các thanh ghi điều khiển vòng khóa pha
này giữ giá trị để cập nhật các bit điềukhiển PLL Giá trị ghi vào thanh ghi này
sẽ có tác dụng khi xảy ra quá trình cậpnhật giá tri PLL mới hợp lệ
Đọc/ghi
này giữ giá trị để cập nhật các bit điềukhiển PLL Giá trị ghi vào thanh ghi này
sẽ có tác dụng khi xảy ra quá trình cậpnhật giá trị PLL mới hợp lệ
Đọc/ghi
Trang 320xE01FC088 PLLSTAT Thanh ghi trạng thái PLL Đọc ngược
giá trị của thanh ghi này để biết thông tinđiều khiển và cấu hình của PLL Nếuthanh ghi PLLCON hoặc PLLCFG đãđược ghi giá trị mới, nhưng quá trìnhcập nhật PLL liên tục(feed) không xảy
ra, nó sẽ không ảnh hưởng tới trạng tháiPLL hiện tại Đọc giá trị của thanh ghinày sẽ cho biết giá trị thật sự điều khiểnPLL hoặc trạng thái thật sự của PLLtrong thời điểm đó
Chỉ đọc
ăn-feed) giá trị thanh ghi PLL FeedRegister Thanh ghi này cho phép loadcác thông tin về điều khiển và cấu hìnhcủa thanh ghi PLLCON và PLLCFG vàothanh ghi phụ (shadow) có ảnh hưởngtrực tiếp lên hoạt động của PLL
Chỉ ghi
Trang 33Giản đồ khối của vòng khóa pha PLL:
Hình 2.8 Giản đồ khối PLL
2.2.6.2 Thanh ghi điều khiển PLL
Thanh ghi điều kiển PLL chứa các bit cho phép và kết nối PLL Cho phép PLL
để nó thử khóa các giá trị thiết lập hiện tại của bộ chia và nhân tần số Kết nối PLL để
vi xử lý hoạt động nhờ xung nhịp ngõ ra của PLL Sự thay đổi của thanh ghi PLLkhông ảnh hưởng hệ thống tới khi quá trình cập nhật giá trị tuần tự liên tục diễn rađúng
Trang 34Bảng 2.10 Thanh ghi điều khiển PLL
0 PLLE Cho phép PLL Enable Khi PLLE=’1’ vàsau khi quá trình cập nhật giá trị PLL
hợp lệ, bit này sẽ cho phép PLL để nókhóa giá trị tần số yêu cầu Xem thêm ởthanh ghi PLLSTAT
0
Kết nối PLL Khi [PLLC,PLLE]=‘11’,sau khi quá trình cập nhật giá trị PLLdiễn ra hợp lệ, ngõ ra xung nhịp của PLLđược chọn là xung nhịp của hệ thống
Ngược lại, xung nhịp của nguồn daođộng là xung nhịp của hệ thống
0
PLL phải được thiết đặt, cho phép, và thiết lập khóa (tạo được tần số dao động
ổn định) trước khi nó có thể thành nguồn xung nhịp hệ thống khi chuyển từ tần số daođộng ngoài thành xung nhịp PLL hoặc ngược lại, mạch dao động nội được vận hành
để đảm bảo rằng không tạo ra các glitches Phần cứng thì không đảm bảo rằng PLLđược khóa (dao động ổn định với tần số mong muốn) trước khi kết nối hay sẽ tự độngkhông kết nối khi tần số dao động không ổn định Nếu xảy ra lỗi trên xung nhịp PLLkhi đang hoạt động, kết quả giống như xung nhịp máy tạo dao động không ổn định vàviệc không kết nối PLL sẽ phải bắt buộc trong trường hợp này
2.2.6.3 Thanh ghi tạo cấu hình PLL (PLLCFG-0xE01FC084)
Thanh ghi PLLCFG chứa các giá trị của bộ nhân và chia của PLL Sự thay đổigiá trị của thanh ghi này chỉ có tác dụng khi mà việc cập nhật giá trị PLL mới đã diễn
ra hợp lệ
Bảng 2.11 Thanh ghi tạo cấu hình cho PLL
value Đưa ra giá trị "M" ở phép tính
Trang 356:5 PSEL1:0 Giá trị bộ chia của PLL Multiplier
value Đưa ra giá trị "P" ở phép tính tần
2.2.6.4 Thanh ghi trạng thái PLL (PLLSTAT-0xE01FC088)
Thanh ghi chỉ đọc này cho ta các giá trị thông số của PLL có tác động ngaythời điểm đọc
Bảng 2.12 Thanh ghi trạng thái PLL
Giá trị bit cho phép PLL hiện tại
+ PLLE=’1’: PLL đang sử dụng
+ PLLE=’0’: PLL không được sử dụng
Bit này sẽ tự động xóa khi vào chế độPower Down
0
Giá trị bit điều khiển PLL hiện tại
+ PLLC-PLLE=’11’: PLL đang sử dụng
và được kết nối vào nguồn xung nhịp
+ PLLC-PLLE≠’11’: PLL không được sửdụng, nguồn dao động lúc này lấy từ xungnhịp ngoài Bit này sẽ tự động xóa khi vàochế độ Power Down
0
10 PLOCK Bit cho biết trạng thái khóa của PLL.+ PLOCK=’1’: PLL đã hoạt động ổn định
tại tần số mong muốn
+ PLOCK=’0’: PLL chưa hoạt động ổnđịnh tại tần số mong muốn
Trang 362.2.6.6 Thanh ghi cập nhật giá trị PLL liên tục (PLLFEED-0xE01FC08C)
Giá trị cập nhật liên tục phải được ghi vào các thanh ghi PLLFEED nhằm mụcđích các thay đổi ở PLLCON và PLLCFG diễn ra, quá trình cập nhật giá trị ấy baogồm:
a PLLFEED=0xAA
b PLLFEED=0x55
Phải thực hiện đúng trình tự cập nhật giá trị như trên, và phải trong các chu kìxung nhịp liên tục Điều cần lưu ý nữa là các ngắt trong quá trình cập nhật liên tiếp giátrị cho PLL đều không được phép xảy ra Nếu 1 trong 2 giá trị cập nhật là không đúng,hoặc 1 trong những lưu ý không được tuân thủ nghiêm ngặt, những thay đổi trên thanhghi PLLCON hoặc PLLCFG sẽ không có tác dụng
Bảng 2.14 Thanh ghi cập nhật giá trị PLL
nhật liên tục PLLphải được ghi vàothanh ghi này để
sự thay đổi cấuhình và điềukhiển thanh ghiPLL có tác dụng
Không xác định
Trang 372.2.6.7 PLL và chế độ Power Down
Chế độ Power Down sẽ tự động tắt và không kết nối PLL Wakeup từ PowerDown không tự động cập nhật lại các giá trị thiết đặt của PLL Điều đó phải được làmbằng chương trình phần mềm.Bởi vây, cần có chương trình gọi ngay PLL khi các ngắtlàm cho hệ thống WakeUp từ Power Down, lưu ý là không được dùng các thông sốsẵn có trên PLL trước khi vào Power Down, vì nó đã mất đi hoặc tùy định
2.2.6.8 Tính toán tần số dao động của PLL
Các thông số đáng chú ý:
Fosc: Tần số dao động của tinh thể
Fcco: Tần số của máy dao động được điều khiển hiện tại
CCLK: Ngõ ra PLL (chu kì xung nhioj của hệ thống)
Trang 382.2.7 Điều khiển nguồn
LPC2103 có 2 chế độ tiết kiệm nguồn: Idle và Power Down:
- Trong chế độ Idle, tất cả các chỉ lệnh đều trì hoãn tới khi quá trình Resetxảy ra, ngoại vi vẫn hoạt động trong chế độ Idle và có thể sinh ra ngắt đểđưa hệ thống trở lại hoạt động bình thường
- Trong chế độ Power Down, xung nhịp hệ thống không còn hoạt động,các chân ngoại vi ở trạng thái tĩnh Năng lượng tiêu thụ gần như bằng 0
Có thể phục hồi hệ thống từ Power Down bằng cách Reset hoặc ngắtngoài
Chức năng điều khiển nguồn cho ngoại vi cho phép từng chân ngoại vi riêngbiệt hoạt động, hoặc không hoạt động, và hệ thống sẽ tiết kiệm năng lượng hơn nữa
2.2.7.1 Diễn tả thanh ghi
Bảng 2.16 Các thanh ghi điều khiển nguồn
0xE01FC0C0 PCON Thanh ghi điều khiển nguồn Thanh ghi nàychứa các bit điều khiển để vận hành 1 trong
0xE01FC0C4 PCONP Thanh ghi điều khiển nguồn cho ngoại vi.Thanh ghi này chứa các bit điều khiển để
cho phép/không cho phép từng chức năngriêng biệt của ngoại vi
Đọc/Ghi
Trang 392.2.7.2 Thanh ghi điều khiển nguồn (PCON-0xE01FC0C0)
Thanh ghi này chứa 2 bit: IDL và PD
Bảng 2.17 Thanh ghi điều khiển nguồn PCON
0 IDL Chế độ Idle Khi IDL=’1’, một số chân ngoại vivẫn còn hoạt động, nguồn ngắt ngoài hoặc
Reset ngoài được sử dụng để phục hồi lại trạngthái hoạt động
0
1 PD Chế độ Power Down Khi PD=’1’ sẽ làm chotất cả các dao động trong chip dừng hẳn, điều
khiển wakeup sẽ làm cho hệ thống khởi độnglại, xóa PD và phục hồi các lệnh
0
2.2.7.3 Thanh ghi điều khiển nguồn cho ngoại vi (PCONP-0xE01FC0C4)
Bảng 2.18 Thanh ghi điều khiển nguồn cho ngoại vi
Trang 4010 PCSPI1 Tương tự với giao tiếp SPI1 1
2.2.8 Reset
Có 2 nguồn tạo reset hệ thống: trên chân RESET <Reset ngoài> và từ đồng hồWatchdog <Reset trong> Tín hiệu Reset hợp lý sẽ khởi động đồng hồ Wakeup Timer.Với quá trình POR, chân Reset cần phải giữ mức trong vòng 10ms, với quá trìnhReset ngoài bình thường khi MCU đang hoạt động, chỉ cần 300ns
Sau quá trình Reset, vi xử lý bắt đầu thực thi lệnh tại vùng địa chỉ 0x0000
0000 Vector ngắt được định vùng địa chỉ ở khối Boot, giá trị của các thanh ghi đượckhởi tạo ở những giá trị định nghĩa trước
Quá trình Reset ngoài và reset trong <Watchdog Timer> có chút ít khác biệt,
đó là do thời điểm Reset ngoài ta hoàn toàn biết được, còn Reset trong ta không biếtkhi nào thì nó xảy ra Bởi vậy, với quá trình Reset ngoài, ta có thể chủ động đưa nóvào các chế độ hoạt động mong muốn bằng cách kết nối ngoại vi, và phần mềm
Hình 2.9 Giản đồ khối reset bao gồm cả đồng hồ Wakeup