HƯỚNG DẪN MÔ TẢ MÔN HỌC Vi điều khiển nâng cao là một trong những môn học tiên quyết nhằm cung cấp kiến thức cho những người học muốn nghiên cứu chuyên sâu về lập trình và áp dụng những
Trang 1VI ĐIỀU KHIỂN
www.hutech.edu.vn Tài Liệu Lưu Hành Tại HUTECH
Trang 2VI ĐIỀU KHIỂN NÂNG CAO
Ấn bản 2014
Trang 4MỤC LỤC I
MỤC LỤC
MỤC LỤC 1
HƯỚNG DẪN 4
BÀI 1: TỔNG QUAN VỀ ARM 1
1.1 GIỚI THIỆU 1
1.1.1 Tổng quan về ARM 1
1.1.2 Cấu trúc cơ bản của bộ xử lý 3
1.2 ARM COTEX M0 NUVOTON 4
1.2.1 Đặc tính kỹ thuật MCU 32-bit lõi ARM Cortex-M0 5
1.2.2 Phân loại 7
1.2.3 Cấu trúc cơ bản 7
1.2.4 Tính năng kỹ thuật 7
TÓM TẮT 14
CÂU HỎI ÔN TẬP 15
BÀI 2: HỌ NUMICRO™ NUC140 16
2.1 ĐẶC TÍNH HỌ N U M ICRO NUC140 16
2.1.1 Mã lựa chọn MCU 16
2.1.2 Sơ đồ chân 17
2.1.3 Sơ đồ khối NuMicro NUC140 26
2.2 HỆ THỐNG QUẢN LÝ NUC140 27
2.2.1 Tổng quan 27
2.2.2 Reset hệ thống 27
2.2.3 Nguồn 28
2.2.4 Bộ nhớ hệ thống 29
2.2.5 Các thanh ghi điều khiển hệ thống 31
TÓM TẮT 44
CÂU HỎI ÔN TẬP 45
BÀI 3: INPUT – OUTPUT 46
3.1 TỔNG QUAN 46
3.1.1 Một số tính năng chính 46
3.1.2 Địa chỉ và chức năng các thanh ghi I-O 48
3.1.3 Chức năng các thanh ghi I-O 55
3.2 T ẠO PROJECT TRONG K EIL C 4.0 61
Trang 53.2.2 Thư viện các hàm I-O (DrvGPIO.h) 76
3.3 B ÀI TẬP MẪU 77
TÓM TẮT 85
CÂU HỎI ÔN TẬP 86
BÀI 4: TIMER – WDT - RTC 87
4.1 TIMER 87
4.1.1 Một số tính năng của Timer 87
4.1.2 Các thanh ghi cấu hình Timer 89
4.1.3 Chức năng các thanh ghi cấu hình Timer 90
4.2 WATCHDOG TIMER 100
4.2.1 Một số tính năng của Watchdog Timer 100
4.2.2 Giản đồ thời gian ngắt và Reset 101
4.2.3 Sơ đồ khối 101
4.2.4 Các thanh ghi chức năng 102
4.3 RTC (R EAL T IME C LOCK ) 106
4.3.1 Một số tính năng của RTC Counter 106
4.3.2 Sơ đồ khối RTC 107
4.3.3 Các thanh ghi chức năng 107
4.3.4 Mô tả chức năng các thanh ghi 108
4.4 B ÀI TẬP MẪU 121
TÓM TẮT 124
BÀI TẬP 125
BÀI 5: ADC 126
5.1 TỔNG QUAN 126
5.1.1 ĐẶC TÍNH BỘ CHUYỂN ĐỔI ADC 126
5.1.2 CHỨC NĂNG 127
5.1.3 Lưu đồ giải thuật chuyên đổi ADC 130
5.2 B ÀI TẬP MẪU 130
TÓM TẮT 133
BÀI TẬP 134
BÀI 6: PULSE WIDTH MODULE - CAPTURE 135
6.1 TỔNG QUAN 135
6.1.1 CÁC TÍNH NĂNG PWM 135
6.1.2 CÁC TÍNH NĂNG CAPTURE TIMER 136
Trang 6MỤC LỤC III
6.1.3 SƠ ĐỒ KHỐI 136
6.1.4 HOẠT ĐỘNG PWM - TIMER 139
6.1.5 CAPTURE TIMER 141
6.1.6 THIẾT LẬP PWM – CAPTURE 142
6.1.7 Bảng thanh ghi PWM-Capture 144
6.1.8 Mô tả chức năng các thanh ghi 146
6.2 B ÀI TẬP MẪU 151
TÓM TẮT 156
BÀI TẬP 157
BÀI 7: GIAO TIẾP UART – I2C - SPI 160
7.1 UART 160
7.1.1 Chức năng UART của Numicro MCU 161
7.1.2 Chọn xung clock 162
7.1.3 Sơ đồ khối 162
7.1.4 Thiết lập UART 163
7.1.5 Các thanh ghi chức năng 164
7.2 B ÀI TẬP MẪU 171
7.3 G IAO TIẾP I2C 173
7.3.1 Đặc điểm giao tiếp I2C 173
7.3.2 Truyền nhận dữ liệu Master – Slave 174
7.3.3 Các thanh ghi chức năng I2C NuMicro NUC140 178
7.3.4 Thư viện Driver I2C.c 183
7.4 B ÀI TẬP MẪU 187
7.5 G IAO TIẾP SPI 192
7.5.1 Một số tính năng SPI của Numicro MCU 193
7.5.2 Sơ đồ khối 194
7.5.3 Chu kỳ ghi SPI 194
7.5.4 Chu kỳ đọc SPI 195
7.5.5 Các thanh ghi chức năng 195
7.5.6 SPI NuMicro NUC140 203
7.6 B ÀI TẬP MẪU 204
TÓM TẮT 207
CÂU HỎI ÔN TẬP 208
TÀI LIỆU THAM KHẢO 210
Trang 7HƯỚNG DẪN
MÔ TẢ MÔN HỌC
Vi điều khiển nâng cao là một trong những môn học tiên quyết nhằm cung cấp kiến thức cho những người học muốn nghiên cứu chuyên sâu về lập trình và áp dụng những thuật toán điều khiển hiện đại cũng như cổ điển Môn học trang bị những kiến thức từ cơ bản đến nâng cao của dòng vi điều khiển mạnh nhất hiện nay đó là ARM
NỘI DUNG MÔN HỌC
Bài 1 Tổng quan về ARM: Bài này cung cấp cho học viên một số khái niệm về ARM Ngoài ra, học viên còn có thể phân biệt kiến trúc RISC và CISC, so sánh giữa các dòng vi điều khiển ARM Cortex M0 của Nuvoton Nắm được các tính năng chính của dòng NUC130/140
điều khiển họ NUC140 và có thể phân biệt bộ nhớ chương trình và bộ nhớ dữ liệu Ngoài ra, còn hiểu rõ địa chỉ, chức năng các bit trong các thanh ghi đặc biệt
Bài 3: Input - Output: Bài này trình bày về cấu trúc các thanh ghi điều khiển I-O Hướng dẫn cách tạo 1 project sử dụng phần mềm Keil C Học xong bài này học viên có thể viết 1 số chương trình ứng dụng
đồ khối và các thanh ghi liên quan đến các bộ Timer Hướng dẫn cách khởi tạo và cấu hình Timer, tính toán giá trị cho Timer và Counter Học viên có thể viết 1 số chương trình ứng dụng Timer
Bài 5: ADC: Bài này giúp học viên phân biệt tín hiệu digital và analog, trình bày sơ
đồ khối và các thanh ghi liên quan đến ADC Hướng dẫn cách khởi tạo và cấu hình ADC Học viên có thể viết 1 số chương trình ứng dụng ADC
Ngoài ra, còn trình bày cấu trúc và các thanh ghi liên quan đến PWM Hướng dẫn
Trang 8HƯỚNG DẪN V
cách khai báo và viết chương trình dùng Keil C Viết 1 số chương trìnhứng dụng trong thực tế
niệm về truyền thông UART, I2C, SPI Cách khởi tạo và cấu hình các giao thức truyền thông Giao tiếp giữa PC và MCU, MCU-MCU và viết 1 số chương trình ứng dụng
KIẾN THỨC TIỀN ĐỀ
Các môn học tiên quyết (những môn phải học trước môn này): Môn học được bố trí vào giai đoạn lựa chọn chuyên ngành, sau khi kết thúc các môn cơ bản của ngành Các môn học kế tiếp (những môn học ngay sau môn này): Kỹ thuật lập trình nâng cao, hệ thống nhúng
YÊU CẦU MÔN HỌC
Người học phải dự học đầy đủ các buổi lên lớp và làm bài tập đầy đủ ở nhà
CÁCH TIẾP NHẬN NỘI DUNG MÔN HỌC
Để học tốt môn này, người học cần ôn tập các bài đã học, trả lời các câu hỏi và làm đầy đủ bài tập; đọc trước bài mới và tìm thêm các thông tin liên quan đến bài học
Đối với mỗi bài học, người học đọc trước mục tiêu và tóm tắt bài học, sau đó đọc nội dung bài học Kết thúc mỗi ý của bài học, người đọc trả lời câu hỏi ôn tập và kết thúc toàn bộ bài học, người đọc làm các bài tập
PHƯƠNG PHÁP ĐÁNH GIÁ MÔN HỌC
1 Kiểm tra – đánh giá quá trình: Có trọng số chung là 30%, bao gồm các điểm
đánh giá như sau:
Trang 9 Điểm thi giữa kỳ: 10%
Điểm thi cuối kỳ: 70%
dung, nhiệm vụ mà giảng viên giao cho cá nhân/ tuần; bài tập nhóm/ tháng; bài tập cá nhân/ học kì,…)
2 Kiểm tra - đánh giá cuối kỳ: Điểm thi kết thúc học phần có trọng số 70%
Hình thức thi: tự luận
Thời lượng thi: 90 phút
Sinh viên được tham khảo tài liệu hay không khi thi: được tham khảo tài liệu
Trang 10BÀI 1: TỔNG QUAN VỀ ARM 1
BÀI 1: TỔNG QUAN VỀ ARM
Sau khi học xong bài này, học viên có thể:
Nắm được lịch sử phát triển, khái niệm về vi điều khiển ARM
Phân biệt kiến trúc RISC và CISC
1.1 GIỚI THIỆU
1.1.1 Tổng quan về ARM
Ngày 26/4/1985, mẫu sản phẩm ARM đầu tiên sản xuất tại công ty kĩ thuật VLSI, SanJose, bang Califonia được chuyển tới trung tâm máy tính Acorn ở Cambridge, Anh Quốc Một vài giờ sau, chương trình thử nghiệm đầu tiên đã thành công
Tên đây đủ của hãng là ARM Holdings và đóng trụ sở chính tại Anh Quốc Ban đầu, chữ ARM viết tắt cho cụm từ Acorn RISC Machine, nhưng sau đó chữ Acorn đã được thay bằng chữ Advanced
Kiến trúc ARM được phát triển lần đầu tiên vào thập niên 1980 để dùng cho máy tính để bàn Tính đến thời điểm hiện tại (2013), ARM là kiến trúc 32 bit được phổ biến nhất thế giới, vượt qua cả kiến trúc x86 của Intel (tính theo số lượng chip được sản xuất) Theo ARM Holdings, chỉ tính riêng năm 2010, kiến trúc của họ đã có mặt trên 95% số smartphone, 35% số TV và set-top box, 10% số máy tính di động được bán
ra
Các chip dùng kiến trúc ARM được tạo ra dựa trên thiết kế RISC (Reduced instruction set computing) Thiết kế này giúp giảm đáng kể số lượng bóng bán dẫn cần thiết để vận hành một chiếc máy tính so với kiểu CISC (complex instruction set
Trang 11AMD dành cho máy tính Lợi ích của việc sử dụng RISC đó là các chip được sản xuất với chi phí thấp hơn, lượng nhiệt tỏa ra khi hoạt động thấp hơn, mức độ tiêu thụ điện thấp hơn Chính vì thế, những bộ xử lí ARM thường được dùng trong các thiết bị di động đòi hỏi thời lượng pin lâu và kiểu dáng nhỏ, nhẹ, điển hình là smartphone và tablet ngày nay
Hình 1.1 CISC - Kiến trúc Von Neuman
Hình 1.2 RISC - Kiến trúc Harvard
Trang 12BÀI 1: TỔNG QUAN VỀ ARM 3
Những thành công quan trọng trong việc phát triển ARM ở thập niên sau này:
Giới thiệu ý tưởng về định dạng các chỉ lệnh được nén lại (thumb) cho phép tiết kiệm năng lượng và giá thành ở những hệ thống nhỏ
Giới thiệu họ điều khiển ARM9, ARM10 và ‘Strong ARM’
Phát triển môi trường làm việc ảo của ARM trên PC
Các ứng dụng cho hệ thống nhúng dựa trên nhân xử lý ARM ngày càng trở nên rộng rãi
Hầu hết các nguyên lý của hệ thống trên chip (Systems on chip - SoC) và cách thiết kế bộ xử lý hiện đại được sử dụng trong ARM Ngoài ra, ARM còn đưa ra một số khái niệm mới như:
máy mang tính quy phạm để thiết kế các hệ thống xử lý thực
Cấu trúc máy tính số sử dụng chương trình lưu trữ ( Stored-program ):
Hình 1.3 Sơ đồ khối cấu trúc máy tính số
1.1.2 Cấu trúc cơ bản của bộ xử lý
Gồm các thành phần sau:
Program Counter (PC): Thanh ghi giữ địa chỉ của chỉ lệnh hiện tại
Thanh ghi tích lũy (ACC): Giữ giá trị dữ liệu khi đang làm việc
Đơn vị xử lý số học (ALU): Thực thi các lệnh nhị phân như cộng, trừ, …
Thanh ghi chỉ lệnh (IR): Giữ chỉ lệnh hiện tại đang thực thi
Register
Processor
Address Instructions and Data
Instruction Data Memory
er
FF FF 16
00 00 16
Trang 13Quốc là nhân xử lý có chỉ lệnh dài 16bit, với 12bit địa chỉ <8kBytes> và 4 bit opcode; cấu trúc chuẩn cho chỉ lệnh có dạng:
Ví dụ: Đường truyền dữ liệu datapath của nhân xử lý MU0:
Hình 1.4 Datapath của MU0
PC chỉ đến chỉ lệnh cần thực thi, load vào IR, giá trị chứa trong IR chỉ đến vùng địa chỉ ô nhớ, nhận giá trị, kết hợp với giá trị đang chứa trong ACC qua đơn vị xử lý ALU
để tạo giá trị mới, chứa vào ACC Mỗi chỉ lệnh như vậy, tùy vào số lần truy cập ô nhớ
mà tốn số chu kì xung nhịp tương đương Sau mỗi chỉ lệnh thực thi, PC sẽ được tăng thêm
1.2 ARM COTEX M0 NUVOTON
Nuvoton là công ty con được tách ra từ tập đoàn điện tử Winbond (Hãng điện tử bán dẫn hàng đầu của Đài Loan) Hãng này có 3 dòng chip vi điều khiển 4 bit, 8 bit,
32 bit (ARM Cortex)
Đặc trưng của dòng chip MCU 32-bit lõi ARM Cortex-M0:
Khá đa dạng về chủng loại, cấu hình và đáp ứng nhu cầu thị trường về dòng chip 32-bit
opcode
S
Trang 14BÀI 1: TỔNG QUAN VỀ ARM 5
Vi điều khiển lõi ARM Cortex-M0 có nhiều giao diện ngoại vi đáp ứng tính năng mạnh mẽ và khả năng kết nối
Được phát triển để cung cấp một nền tảng chi phí thấp, đáp ứng nhu cầu thực thi của MCU với việc giảm số lượng bóng bán dẫn trong lõi ARM Cortex dẫn tới tiêu thụ điện năng thấp và giảm giá thành vi xử lý, đồng thời cung cấp hiệu năng tính toán cao
Bên cạch các dòng 32-bit như NUC100, NUC120, NUC130, NUC140, một dòng mới
là NuMicro M051 gồm M052/54/58/516 với hiệu suất vi điều khiển 32-bit cao hơn
1.2.1 Đặc tính kỹ thuật MCU 32-bit lõi ARM Cortex-M0
CPU Cortex-M0 cung cấp khả năng điều khiển ngắt ngoại lệ gọi là vector điều khiển ngắt lồng nhau (NVIC), được liên kết chặt chẽ với nhân vi xử lý để cung cấp các tính năng: hỗ trợ vector ngắt gián đoạn lồng nhau, tiết kiệm bộ vi xử lý và có khả năng phục hồi, giảm và xác định độ trễ ngắt, thay đổi mức ưu tiên năng động
Dung lượng bộ nhớ Flash ROM lớn (tối đa 128KB Flash)
Dải điện áp rộng từ 2.5V~5.5V
Tích hợp sẵn ngoại vi như: UART, USB, ISP, I2C, I2S, PWM, LCD…
Tích hợp thạch anh nội lên đến 22MHz, có thể điều chỉnh độ chính xác nhờ thạch anh bên ngoài 32,768Khz
Khả năng hỗ trợ nạp đa năng (ISP, ICP và song song), nạp bằng tools nạp của chính hãng như: NuGang, Nu-Link hoặc các tools nạp phổ biến của hãng khác như J-Link, U-Link và các máy nạp rom đa năng của Elnec, Xeltek, Hilo,
Có khả năng chống nhiễu tốt, thích hợp cho các ứng dụng dân dụng cũng như trong công nghiệp
Dải nhiệt độ hoạt động từ -40ºC ~ +85ºC
Dòng chip MCU 32-bit lõi ARM Cortex-M0 cung cấp nhiều tính năng hiện đại cũng như khả năng giao tiếp ngoại vi phong phú nhưng tiêu thụ điện năng khá thấp nên dễ dàng phát triển các ứng dụng
Trang 15Hình 1.4 Mức tiêu thụ điện năng các dòng chip
ARM Cortex-M0 là sự phát triển giữa dòng chip MCU 8051 và dòng ARM7/9 với khả năng kết nối và các tính năng vi điều khiển mạnh nhưng vẫn có mức giá phù hợp
Hình 1.5 Quá trình phát triển ARM Cortex-M0
Trang 16BÀI 1: TỔNG QUAN VỀ ARM 7
ARM thiết kế để sao cho tối giản số chu kì xung nhịp cho một chỉ lệnh, do
đó tăng được sự phức tạp cho các chỉ lệnh đơn lẻ
1.2.4 Tính năng kỹ thuật
1.2.4.1 Dòng NuMicro NUC100
Lõi ARM Cortex-M0 chạy lên đến 50MHz, một bộ đếm thời gian hệ thống
24 bit, chế độ sleep tiết kiệm năng lượng, trình đơn phần cứng 32-bit
32K/64K/128KB bộ nhớ cho dữ liệu chương trình (APROM)
4KB bộ nhớ nạp LDROM
4K/8K/16KB bộ nhớ nhúng SRAM
Dao động thạch anh nội 22MHz
Trang 17công suất thấp
4 bộ định thời 32-bit, có nguồn đồng hồ độc lập cho mỗi Timer 4 kênh ra điều chế độ rộng xung PWM 16-bit
12 bit SAR ADC quét đơn, quét từng chu kỳ và quét liên tục
Các cổng giao tiếp ngoại vi: 3 cổng UART nối tiếp, 4 cổng SPI, IrDA, I2C, I2S, EBI bus…
Bộ ngắt nhận dạng Brown-out với 4 mức: 4.5V, 3.8V, 2.7V, 2.2V
Dòng chip NUC100 được ứng dụng rộng rãi trong các lĩnh vực như điều khiển công nghiệp, hệ thống an ninh, điều khiển động cơ, hệ thống truyền thông…
1.2.4.2 Dòng NUC130/140
Hình 1.7 Sơ đồ khối NUC130/140
NUC130/140 là vi điều khiển 32 bit lõi ARM Cortex-M0, chạy lên tới 50MHz
Có 4 mức ưu tiên ngắt đầu vào, 128 KB flash ROM cho bộ nhớ chương trình
16KB SRAM, 4KB bộ nhớ flash cho nạp chương trình trong hệ thống
Trang 18BÀI 1: TỔNG QUAN VỀ ARM 9
Giao tiếp thiết bị ngoại vi: 8 kênh 12 bit ADC, UART nối tiếp tốc độ cao, SPI lên đến 32MHz, I2C lên đến 1MHz, kết nối thiết bị ngoại vi USB 2.0, CAN, LIN…
Thiết bị ngoại vi có tính năng phong phú: PWM, RTC, bộ ngắt nhận dạng Brownout, GPIO, PDMA và 4 bộ Timer 32 bit
Dải điện áp hoạt động rộng từ 2,5V~5,5V, chống nhiễu tiếng ồn tốt, tích hợp dữ liệu flash, dao động thạch anh nội chính xác ±1% với nhiệt độ phòng, có khả năng bảo mật trên chip, điện áp reset lại mạch thấp
Ứng dụng: điều khiển mạng lưới, chẩn đoán điện tử, ứng dụng mạng nhúng, hệ thống điều khiển mạng, điều khiển công nghiệp và tự động điều khiển
1.2.4.3 Dòng NuMicro Mini51
Hình 1.8 Sơ đồ khối NuMicro Mini51
NuMicro Mini51 là vi điều khiển 32 bit Lõi ARM Cortex M0, tốc độ 24Mhz
Vector điều khiển ngắt lồng nhau NVIC cung cấp 4 mức ưu tiên ngắt Tất
cả các yêu cầu ngắt được xử lý trong chế độ Handle
16KB flash EPROM cho bộ nhớ mã chương trình
2KB SRAM, 1K/2K/4KB cấu hình dữ liệu flash, 2KB flash cho nạp chương trình trong hệ thống, 8 kênh 10 bit cho SAR ADC
Trang 19vi có tính năng phong phú: 2 bộ Timer 32 bit, 6 kênh PWM, hai bộ so sánh tương tự với 16 cấp chương trình, 40 chân GPIO
Dải điện áp rộng từ 2.5V~5.5V trong dải nhiệt độ từ -40ºC đến +85ºC, chống nhiễu tiếng ồn tốt, tích hợp dữ liệu flash, dao động thạch anh nội lên đến 22MHz với độ chính xác ±1% được tự động điều chỉnh bởi thạch anh bên ngoài 32,768K, hỗ trợ khả năng nạp ISP và ICP
Ứng dụng rộng dãi trong điều khiển công nghiệp, truyền thông dữ liệu, hệ thống điều khiển tự động, hệ thống vi điều khiển
1.2.4.4 Dòng NuMicro Nano100
Hình 1.9 Sơ đồ khối NuMicro Nano100
CPU lõi Arm Cortex-M0 chạy lên đến 42 MHz, một bộ đếm thời gian hệ thống 24 bit, trình đơn phần cứng 32-bit, có 32 đầu vào ngắt với 4 cấp lựa chọn ưu tiên
Dải điện áp hoạt động từ 1.8V~3.6V
Trang 20BÀI 1: TỔNG QUAN VỀ ARM 11
Một bộ PLL lên đến 120 MHz cho hệ thống hoạt động hiệu suất cao
4 bộ định thời 32 bit, 8 kênh DMA,8 kênh ra điều chế độ rộng xung (PWM) 16 bit, 12 kênh SAR ADC 12 bit lên tới 2Msps, 2 kênh DAC 12 bit
Các cổng giao tiếp phong phú: 5 cổng UART nối tiếp, 3 cổng SPI với đồng hồ lên tới 32Mhz, 2 cổng I2C, RS485, LIN…
Giao diện I2S với định dạng âm thanh bên ngoài, có khả năng xử lý 8/16/24/32 bit âm thanh mono và stereo
Bộ ngắt nhận dạng Brown-out với 3 mức 1.7V /2.0V /2.5V
86 chân GPIO cho mục đích chung I/O
Dải nhiệt độ từ -40ºC ~ +85ºC , 3 kiểu chân LQFP48, LQFP64, LQFP128 chân
NuMicro Nano100 được ứng dụng trong âm thanh không dây, đồ chơi game, điều khiển từ xa RF4CE, xử lý các thiết bị GPS, thiết bị thẻ đọc thông minh POS, hệ thống báo động an ninh, đo tiện ích…
1.2.4.5 Dòng chip MCU Voice IC trong chip: ISD9160
ISD9160 là dòng chip tích hợp sẵn về âm thanh/giọng nói, cung cấp nhiều giải pháp ứng dụng lý tưởng bằng âm thanh/giọng nói trong thị trường công nghiệp và người tiêu dùng
Hình 1.10 Sơ đồ khối ISD9160
Trang 21 Dải điện áp hoạt động từ 2.5V~5.5V
145KB bộ nhớ flash cho dữ liệu chương trình và mã dữ liệu âm thanh, cung cấp thời gian lưu trữ 60s với tốc độ nén 16Kbps
Nạp ISP (lập trình trong hệ thống): cấu hình 4KB bộ nhớ khởi động để cập nhật bộ nhớ flash lên chip
3V LDO cho bộ nhớ flash bên ngoài
Các thuật toán nén: nén cao từ 4kbps đến 32kbps, nén ADPCM từ 2 đến 5 bit cho mỗi mẫu lên đến 32khz, nén PCM 8 đến 16 bit cho mỗi mẫu
Giao diện I2S với bộ giải mã âm thanh bên ngoài có khả năng xử lý từ 8, 16,
24, 32 bit
Bộ chuyển đổi ADC với 80dB tín hiệu/nhiễu, giao hiện microphone kỹ thuật
số
Âm thanh điều khiển độ rộng xung PWM đạt 1W tại 5.5V
Hai bộ hẹn giờ 8 bit chủ/tớ, 16 bit bộ đếm thời gian
24 chân GPIO cho mục đích chung vào ra (I/O)
Một cổng UART nối tiếp, 2 kênh SPI, giao diện I2C, bộ nhận dạng tách sóng Brown-out…
Đóng gói 48 chân LQFP, dải nhiệt độ từ -40ºC ~ 85ºC
1.2.4.6 Công cụ phát triển ARM Cortex M0
Phần mềm: KEIL RVMDK, IAR EWARM, Nu Tiny-SDK, thư viện Driver, CMCIS, công cụ phát triển của bên thứ ba: CoCox CoIDE
Công cụ nạp: hỗ trợ nạp cả ISP và ICP, Nu-Link, NuGang, U-Link, J-Link
Hình 1.11 Công cụ hỗ trợ cho ARM Nuvoton
Trang 22BÀI 1: TỔNG QUAN VỀ ARM 13
Trang 23TÓM TẮT
Trong bài này, học viên tìm hiểu:
Lịch sử phát triển ARM, nắm vững được kiến trúc ARM
ARM là một họ vi điều khiển RISC được sản xuất bởi công ty ARM
Holdings
Kiến trúc ARM được phát triển lần đầu tiên vào thập niên 1980 để dùng
cho máy tính để bàn Tính đến thời điểm hiện tại ARM là kiến trúc 32 bit được phổ biến nhất thế giới
Đặc tính kỹ thuật MCU 32-bit lõi ARM Cortex-M0:
- CPU Cortex-M0 cung cấp khả năng điều khiển ngắt ngoại lệ gọi là
vector điều khiển ngắt lồng nhau (NVIC), được liên kết chặt chẽ với nhân vi xử lý để cung cấp các tính năng: hỗ trợ vector ngắt gián đoạn lồng nhau, tiết kiệm bộ vi xử lý và có khả năng phục hồi, giảm và xác định độ trễ ngắt, thay đổi mức ưu tiên năng động
- Dung lượng bộ nhớ Flash ROM lớn (tối đa 128KB Flash)
- Dải điện áp rộng từ 2.5V~5.5V
- Tích hợp sẵn ngoại vi như: UART, USB, ISP, I2C, I2S, PWM, LCD…
- Tích hợp thạch anh nội lên đến 22MHz, có thể điều chỉnh độ chính xác
nhờ thạch anh bên ngoài 32,768Khz
- Khả năng hỗ trợ nạp đa năng (ISP, ICP và song song), nạp bằng tools
nạp của chính hãng như: NuGang, Nu-Link …
- Có khả năng chống nhiễu tốt, thích hợp cho các ứng dụng dân dụng
cũng như trong công nghiệp
- Dải nhiệt độ hoạt động từ -40ºC ~ +85ºC
Trang 24BÀI 1: TỔNG QUAN VỀ ARM 15
CÂU HỎI ÔN TẬP
có tên gọi là 2 kiến trúc gì ?
Trang 25BÀI 2: HỌ NuMicro™ NUC140
Sau khi học xong bài này, học viên có thể:
Phân biệt bộ nhớ chương trình và bộ nhớ dữ liệu
Hiểu rõ địa chỉ, chức năng các bit trong các thanh ghi đặc biệt
2.1 ĐẶC TÍNH HỌ NuMicro NUC140
2.1.1 Mã lựa chọn MCU
Hình 2.1 Mã lựa chọn họ NuMicro™ NUC100
Trang 26BÀI 2: HỌ NuMicro™ NUC140 17
Hình 2.2 Bảng cấu hình và đặc tính họ NUC140
2.1.2 Sơ đồ chân
Hình 2.3 Sơ đồ chân MCU NUC140LxxCN 48 chân
Trang 27Hình 2.4 Sơ đồ chân MCU NUC140RxxCN 64 chân
Hình 2.5 Sơ đồ chân MCU NUC140VxxCN
Trang 28BÀI 2: HỌ NuMicro™ NUC140 19
Mô tả chức năng các chân MCU NUC140VxxCN
Trang 30BÀI 2: HỌ NuMicro™ NUC140 21
Trang 32BÀI 2: HỌ NuMicro™ NUC140 23
Trang 34BÀI 2: HỌ NuMicro™ NUC140 25
Trang 352.1.3 Sơ đồ khối NuMicro NUC140
Trang 36BÀI 2: HỌ NuMicro™ NUC140 27
Bộ điều khiển ngắt vector lồng nhau (NVIC)
Thanh ghi điều khiển hệ thống
Trang 372.2.3 Nguồn
Nguồn nuôi các thành phần Analog được cung cấp bởi chân AVdd và AVss
Nguồn nuôi các thành phần Digital được cung cấp từ bộ biến đổi điện áp 5V xuống 2.5V Nguồn 5V được cung cấp từ ngõ vào Vdd và Vss
Nguồn nuôi USB được cung cấp từ bộ biến đổi điện áp 5V xuống 3.3V Nguồn 5V được cung cấp từ VBUS
Trang 38BÀI 2: HỌ NuMicro™ NUC140 29
2.2.4 Bộ nhớ hệ thống
Trang 39Hình 2.6 Bảng địa chỉ bộ nhớ NUC140
Trang 40BÀI 2: HỌ NuMicro™ NUC140 31
2.2.5 Các thanh ghi điều khiển hệ thống
Hình 2.6 Bảng liệt kê các thanh ghi điều khiển hệ thống
2.2.5.1 Thanh ghi PDID (Part device ID Code)