Ngày nay để chọn được một dòng chip có thể đáp ứng được mọi yêu cầu của người dùng không còn quá khó khăn như trước, với sự cạnh tranh phát triển của các hãng sản xuất chip điện tử đã ch
Trang 1LỜI CẢM ƠN
Trong quá trình nghiên cứu và thực hiện đồ án em xin gửi lời cảm ơn tới hội đồng quản trị nhà trường, ban giám hiệu nhà trường cùng toàn thể các thầy cô giáo trong khoa Công Nghệ Kỹ Thuật Điện Tử Viễn Thông đã tạo điều kiện cũng như đóng góp ý kiến cho đồ án
Em xin chân thành cảm ơn thầy Th.S Đặng Văn Hiếu đã hướng dẫn tận tình
và giúp đỡ em thực hiện hoàn thành đồ án trong thời gian qua Đồng thời em xin gửi lời cám ơn tới công ty TULA và các anh chị trong công ty đã giúp đỡ cũng như cung cấp tài liệu trong thời gian hoàn thành đồ án
Qua đây em rất mong nhận được những ý kiến đóng góp của các thầy cô trong hội đồng bảo vệ đồ án tốt nghiệp để giúp em hoàn thiện hơn đồ án của mình
Em xin chân thành cảm ơn!
Hà Nội, Ngày … tháng … năm …
Sinh viên thực hiện
Trang 2DANH MỤC TỪ VIẾT TẮT
ARM Advanced RISC Machine Cấu trúc vi xử lí theo kiểu
RISC ADC Analog Digital Converter Bộ chuyển đổi tương tự
sang số AHB Advanced High-performance Bus Hiệu năng Bus cao
CISC Complex Instruction Set Computer Tập lệnh máy tính phức
tạp CMSIS Cortex Microcontroller Software
Interface Standard
Chuẩn giao diện phần mềm vi điều khiển Cortex
kết khu vực
DRAM Dynamic Random Access Memory Bộ nhớ truy cập ngẫu
nhiên động EEPROM Electrically Erasable Programmable
Read-Only Memory
Bộ nhớ chỉ đọc có thể xóa được bằng điện
EPROM Erasable Programmable Read-Only
Memory
Bộ nhớ chỉ đọc có khả năng lập trình lại được
GPIO General Purpose Input/Output Đầu vào/ra đa mục đích GPS Global Positioning System Hệ thống định vị toàn cầu
I2C Inter-Integrated Circuit Liên kết giữa các vi mạch I2S Integrated Interchip Sound Tích hợp liên chíp âm
thanh
LIN Local Interconnect Network Mạng kết nối khu vực
NVIC Nested Vectored Interrupt Controller Vector điều khiển ngắt
lồng nhau
Trang 3PC Personal Computer Máy tính cá nhân
PDMA Peripheral Direct Memory Access Bộ nhớ truy cập ngoại vi
trực tiếp
RISC Reduced Instructions Set Computer Tập lệnh máy tính đơn
giản hóa
nhiên
SPI Serial Peripheral Interface Giao tiếp ngoại vi nối tiếp
SRAM Static Random Access Memory Bộ nhớ truy cập ngẫu
nhiên tĩnh SSRAM Synchronous Static Random Access
Memory
Bộ nhớ truy cập ngẫu nhiên đồng bộ tĩnh
xác thực
UART Universal Asynchronous
Receiver/Transmitter
Bộ thu/phát không đồng
bộ đa năng VLSI Very Large Scale Integrated Tích hợp với quy mô lớn
Trang 4DANH MỤC HÌNH
Hình 1.1: Chíp vi điều khiển ARM 3
Hình 1.2: Cấu trúc vi điều khiển ARM 4
Hình 1.3: Cấu trúc lõi ARM Cortex M0 5
Hình 1.4: Các phiên bản ARM Cortex – A 6
Hình 1.5: Các phiên bản ARM Cortex – R 7
Hình 1.6: Các phiên bản ARM Cortex – M 7
Hình 1.7: Các hãng sản xuất bộ vi xử lý dựa trên thiết kế của ARM 8
Hình 2.1: Khối điều khiển chức năng của Cortex M0 10
Hình 2.2: Mức độ tiêu thụ điện năng của các dòng chíp MCU-32 Bit 12
Hình 2.3: Quá trình phát triển của NuMiCro 12
Hình 2.4: Biểu đồ phân loại dòng chip 32-bit lõi ARM Cortex-M0 13
Hình 2.5: Tính năng nổi bật có trong các dòng ARM Cortex-M0 13
Hình 2.6: Các khối chức năng của dòng NuMicro Mini51 14
Hình 2.7: Tính năng các dòng M051 Base 15
Hình 2.8: Phân chia cấu hình cho dòng NUC100 15
Hình 2.9: Các khối chức năng của dòng NuMicro Nano100 16
Hình 2.10: Các khối chức năng của dòng NuMiCro NUC130/140 17
Hình 2.11: Sự phát triển các dòng chip nhạc của Nuvoton 18
Hình 2.12: Mô-đun mô tả các chức năng trong chế độ tiết kiệm năng lượng 20
Hình 2.13: Nguồn dao động 21
Hình 2.14: Nguồn xung của timer 22
Hình 2.15: Sơ đồ khối của Timer 23
Hình 2.16: Nguồn xung của Watchdog Timer 23
Hình 2.17: Sơ đồ khối của Watchdog Timer 23
Hình 2.18: Nguồn xung vào PWM 24
Hình 2.19: Sơ đồ khối chức năng PWM 25
Hình 2.20: Nguồn xung vào khối UART 25
Hình 2.21: Sơ đồ khối chức năng của UART 26
Hình 2.22: Nguồn xung vào SPI 26
Hình 2.23: Sơ đồ khối chức năng SPI 27
Hình 2.25: Sơ đồ khối điều khiển USB2.0 29
Hình 2.26: Nguồn xung vào khối ADC 30
Hình 2.27: Sơ đồ khối chức năng ADC 30
Hình 2.28: Công cụ phát triển của hãng 31
Hình 2.29: Công cụ phát triển phần mềm 31
Trang 5Hình 2.30: Các board dùng cho học tập nghiên cứu 32
Hình 2.31: Các ứng dụng của dòng chíp MCU – 32 bit lõi Cotex M0 33
Hình 3.1: Sơ đồ khối của chíp NUC140 35
Hình 3.2: Sơ đồ chân của NUC140 35
Hình 3.3: Các khối chính của Kit sử dụng NUC140 44
Hình 3.4: Khối nguồn 45
Hình 3.5: Khối vi xử lý 46
Hình 3.6: Khối LED đơn 46
Hình 3.7: Khối LED RGB 47
Hình 3.8: Khối BUZZER 47
Hình 3.9: Khối INT và Keyboard 48
Hình 3.10: Khối Led 7 thanh 48
Hình 3.11: Khối RESET Circuit 49
Hình 3.12: Khối ADC 49
Hình 3.13: Khối UART 50
Hình 3.14: Khối I2C 51
Hình 3.15: Khối LCD 51
Hình 3.16: Khối SD Inteface 52
Hình 3.17: Khối CAN và RS485 53
Hình 3.18: Khối SPI 53
Hình 3.19: Chế độ Push-Pull output 54
Hình 3.20: Chế độ Open-Drain output 54
Hình 3.21: Chế độ Quasi bi-direction 54
Hình 3.22: Khối GPIO 55
Hình 3.23: Khối PS2 55
Hình 3.24: Khối WAU8822 56
Hình 3.25: Khối ICE 56
Hình 3.26: Khối USB Devices 57
Hình 3.27: Mặt trước Kit thực hành vi điều khiển ARM Cortex M0 sử dụng NUC140 57
Hình 3.28: Mặt sau Kit thực hành vi điều khiển ARM Cortex M0 sử dụng NUC140 58 Hình 3.28: Mô phỏng bài 1 59
Hình 3.29: Mô phỏng bài 2 61
Hình 3.30: Mô phỏng bài 3 63
Hình 3.31: Mô phỏng bài 4 64
Hình 3.32: Mô phỏng bài 5 65
Trang 6MỤC LỤC
LỜI MỞ ĐẦU 1
CHƯƠNG 1 TỔNG QUAN VỀ VI ĐIỀU KHIỂN ARM 2
1.1 Lịch sử hình thành và phát triển của ARM 2
1.2 Cấu trúc cơ bản của ARM 3
1.3 Các dòng và các phiên bản của ARM 6
1.3.1 Dòng A(Application) 6
1.3.2 Dòng R(Real Time) 6
1.3.3 Dòng M(Microcontroller) 7
1.4 Các hãng sản xuất dòng chip ARM 7
1.5 Kết luận chương 1 8
CHƯƠNG 2 VI ĐIỀU KHIỂN ARM LÕI CORTEX M0 CỦA NUVOTON 9
2.1 Giới thiệu về hãng Nuvoton 9
2.2 Vi điều khiển ARM Cortex – M0 của hãng Nuvoton 9
2.3 Đặc điểm của dòng chíp MCU – 32 bit lõi ARM Cotex M0 10
2.4 Quá trình phát triển các dòng chíp 32 bit lõi ARM Cotex M0 của Nuvoton 12
2.5 Các tính năng nổi bật có trong các dòng ARM Cortex-M0 13
2.5.1 Dòng chíp NuMicro Mini51 14
2.5.2 Dòng chíp M051 14
2.5.3 Dòng chíp NUC100 15
2.5.4 Dòng NuMicro Nano100 16
2.5.5 Dòng NuMiCro NUC130/140 17
2.5.6 Dòng chip MCU tích hợp sẵn Voice IC trong chip: ISD9160 18
2.6 Tính năng của ARM Cortex-M0 21
2.7 Công cụ hỗ trợ phát triển các ứng dụng trên chíp ARM Cortex M0 31
2.8 Các ứng dụng của dòng chíp MCU – 32 bit lõi Cotex M0 32
2.9 Kết luận chương 2 33
CHƯƠNG 3 THIẾT KẾ KIT THỰC HÀNH VI ĐIỀU KHIỂN ARM - CORTEX M0 SỬ DỤNG CHIP NUC140 CỦA NUVOTON 34
3.1 Tìm hiểu chíp vi điều khiển NUC140 34
3.1.1 Sơ đồ khối chức năng của chíp NUC140 34
3.1.2 Sơ đồ chân kết nối của chíp NUC140 35
3.2 Thiết kế Kit thực hành vi điều khiển ARM 44
3.2.1 Chức năng các khối 45
3.2.2 Hướng dẫn sử dụng kit 57
3.3 Một số bài tập cơ bản trên kit thực hành 58
Trang 73.4 Kết luận chương 3 65 KẾT LUẬN CHUNG 66 TÀI LIỆU THAM KHẢO 67 PHỤ LỤC
Trang 8LỜI MỞ ĐẦU
Ứng dụng cho các hệ thống nhúng hiện nay ngày càng trở nên phức tạp, các nhân điều khiển cần có cấu hình mạnh hơn, hệ thống cần sự linh động, tiêu tốn ít năng lượng, nhỏ gọn đáp ứng thời gian thực tốt hơn các nhân điều khiển 8 bit đang dùng Chúng ta đa phần vẫn sử dụng nhân điều khiển 8 bit cho các ứng dụng, và như thế, vô tình đã thu hẹp khả năng điều khiển các hệ thống nhúng Chính sự hạn chế về dung lượng bộ nhớ chương trình dữ liệu cũng đã ảnh hưởng không ít tới phạm vi ứng dụng của nó
Ngày nay để chọn được một dòng chip có thể đáp ứng được mọi yêu cầu của người dùng không còn quá khó khăn như trước, với sự cạnh tranh phát triển của các hãng sản xuất chip điện tử đã cho ra đời nhiều dòng chip với nhiều chức năng và ứng dụng đáp ứng được nhu cầu của người dùng, nổi bật nên đó là dòng chip ARM Cortex M0 của hãng Nuvoton sản xuất, dòng chíp này có hiệu suất cao, công suất thấp, tốc độ xử lý nhanh gấp nhiều lần so với các dòng chíp khác, không những thế
mà nó còn có kích thước nhỏ gọn và tiết kiệm chi phí Với những lý do trên em đã
lựa chọn đề tài nghiên cứu của mình là “Thiết Kế Kit Thực Hành Vi Điều Khiển ARM – Cortex M0” Nội dung đồ án tốt nghiệp của em được trình bày gồm 3
chương như sau:
Chương 1: Tổng quan về vi điều khiển ARM
ARM là một loại vi điều khiển 32 bit và 64 bit kiểu RISC có cấu hình mạnh
mẽ, tích hợp nhiều tài nguyên phong phú, được sử dụng rộng rãi trong các thiết kế nhúng, đáp ứng được nhiều yêu cầu khắt khe và đa dạng của các hệ thống nhúng
Chương 2: Tìm hiểu chíp Cortex M0 lõi ARM của Nuvoton
Nuvoton là hãng sản xuất dòng chíp vi điều khiển 32 bit Cortex M0 dựa trên thiết kế của ARM Vi điều khiển Cortex M0 lõi ARM được thiết kế nhúng tối ưu cho các ứng dụng vi xử lý MCU, dòng chíp này 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
Chương 3: Thiết kế kit thực hành vi điều khiển ARM – Cortex M0 sử dụng NUC140 của Nuvoton
Kit thực hành vi điều khiển ARM – Cortex M0 sử dụng chíp NUC140 của Nuvoton có đầy đủ các tính năng và giao tiếp ngoại vi phong phú, dễ dàng sử dụng
và phát triển các ứng dụng
Hà Nội, Ngày tháng năm 2015
Sinh viên thực hiện
Trang 9CHƯƠNG 1 TỔNG QUAN VỀ VI ĐIỀU KHIỂN ARM
ARM là một loại vi điều khiển 32 bit và 64 bit kiểu RISC, ARM lúc đầu được đặt tên theo công ty Acorn (ban đầu ARM có nghĩa là Acorn RISC Machine, trong
đó RISC là một cách thiết kế vi xử lý) sau này do có thêm nhiều công ty cùng phát triển và một số lý do khác, người ta thống nhất gọi ARM là Advance RISC Machine ARM được sử dụng rộng rãi trong các thiết kế nhúng
Ngày nay, hơn 75% CPU 32 bit là thuộc họ ARM, điều này khiến ARM trở thành cấu trúc 32 bít được sản xuất nhiều nhất thế giới Bộ xử lý CPU của ARM hiện diện trong 95% smartphone, 90% ổ đĩa cứng, 40% truyền hình kĩ thuật số và set top box, 15% trong vi điều khiển, 20% trong máy tính di động và có mặt trên rất nhiều lĩnh vực, từ TV cho đến các hệ thống tự động hóa và máy móc công nghiệp
1.1 Lịch sử hình thành và phát triển của ARM
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, đến hiện nay nó là kiến trúc được sử dụng 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 chíp được sản xuất Do có đặc điểm tiết kiệm năng lượng nên 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 xuất thấp là một mục tiêu thiết kế quan trọng hàng đầu
Việc thiết kế ARM được bắt đầu từ năm 1983 trong một dự án phát triển của công ty máy tính Acorn, 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
Nửa thập niên sau đó, ARM được phát triển rất nhanh chóng để làm nhân máy tính để bàn của Acorn, nền tảng cho các máy tính hỗ trợ giáo dục ở Anh Trong thập niên 1990, dưới sự phát triển của Acorn Limited, ARM đã thành một thương hiệu đứng đầu thế giới về các ứng dụng sản phẩm nhúng đòi hỏi tính năng cao, sử dụng năng lượng ít và giá thành thấp
Chính nhờ sự nổi trội về thị phần đã thúc đẩy ARM liên tục được phát triển và cho ra nhiều phiên bản mới 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
Trang 10 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ình 1.1: Chíp vi điều khiển ARM
Hầu hết các nguyên lý của hệ thống trên chip và cách thiết kế bộ xử lý hiện đại được sử dụng trong ARM, ARM còn đưa ra một số khái niệm mới, Việc sử dụng 3 trạng thái nhận lệnh giải mã thực thi trong mỗi chu kì máy mang tính quy phạm để thiết kế các hệ thống xử lý thực Do đó, nhân xử lý ARM được sử dụng rộng rãi trong các hệ thống phức tạp
1.2 Cấu trúc cơ bản của ARM
Cấu trúc ARM bao gồm các đặc tính của RISC nổi bật như: Cấu trúc nạp/lưu trữ, không cho phép truy xuất bộ nhớ không thẳng hàng, tập lệnh trực giao, file thanh ghi lớn gồm 16x32-bit, chiều dài mã máy cố định là 32 bit để dễ giải mã và thực hiện pipeline, để đạt được điều này phải chấp nhận giảm mật độ mã máy Cấu trúc ARM có một số tính chất như sau:
- Hầu hết tất cả các lệnh đều cho phép thực thi có điều kiện, điều này làm giảm việc phải viết các tiêu đề rẽ nhánh cũng như bù cho việc không có một bộ dự đoán
- Có các kiểu định địa chỉ theo chỉ số rất mạnh
- Có hệ thống con thực hiện ngắt hai mức ưu tiên đơn giản nhưng rất nhanh, kèm theo cho phép chuyển từng nhóm thanh ghi
Trang 11Hình 1.2: Cấu trúc vi điều khiển ARM
Điểm mạnh của bộ vi điều khiển ARM dùng tập lệnh RISC:
- Kích thước miếng bán dẫn nhỏ hơn, bộ xử lý đơn giản đòi hỏi ít transistor hơn, do đó kích thước cần dùng nhỏ lại dành vùng diện tích trống để tăng các chức năng như bộ nhớ cache, chức năng quản lý bộ nhớ vv…
- Thời gian phát triển một sản phẩm ngắn hơn (do kĩ thuật đơn giản)
- Cấu hình mạnh hơn: Khi ta đặt ra các chỉ lệnh phức tạp tuy nó gần gũi với ngôn ngữ cấp cao, nhưng như thế vô tình cũng làm các chỉ lệnh khác phức tạp lên
và để thực thi một chỉ lệnh như vậy cần tốn nhiều chu kì xung nhịp Trong khi đó nếu dùng RISC chỉ mất một chu kì xung nhịp cho mỗi lệnh, khi ta phân nhỏ vấn đề phức tạp thành các vấn đề đơn giản thì cách giải quyết sẽ tốt hơn
- Tốc độ tính toán cao nhờ vào việc giải mã lệnh đơn giản, nhờ có nhiều thanh ghi (ít thâm nhập bộ nhớ), và nhờ thực hiện kỹ thuật ống dẫn liên tục và có hiệu quả (các lệnh đều có thời gian thực hiện giống nhau và có cùng dạng)
- Thời gian cần thiết để thiết kế bộ điều khiển là ít Điều này góp phần làm giảm chi phí thiết kế
- Bộ điều khiển trở nên đơn giản và gọn làm cho ít rủi ro mắc phải sai sót mà
ta thường gặp trong bộ điều khiển
- Có một số ít lệnh (thông thường dưới 100 lệnh )
Trang 12- Có một số ít các kiểu định vị (thông thường hai kiểu: định vị tức thì và định
vị gián tiếp thông qua một thanh ghi)
- Có một số ít dạng lệnh (một hoặc hai)
- Các lệnh đều có cùng chiều dài
- Chỉ có các lệnh ghi hoặc đọc ô nhớ mới thâm nhập vào bộ nhớ
- Dùng bộ tạo tín hiệu điều khiển bằng mạch điện để tránh chu kỳ giải mã các
vi lệnh làm cho thời gian thực hiện lệnh kéo dài
- Ngoài ra các bộ xử lý RISC đầu tiên thực hiện tất cả các lệnh trong một chu
kỳ máy
Lõi vi điều khiển ARM gồm các thành phần sau:
- Lõi xử lý ARM là một khối chức năng được kết nối bởi các bus dữ liệu, các mũi tên thể hiện cho dòng chảy của dữ liệu, các đường thể hiện cho bus dữ liệu, các
ô biểu diễn trong hình là một khối hoạt động hoặc một vùng lưu trữ Cấu hình này cho thấy các dòng dữ liệu và các thành phần tạo nên một bộ xử lý ARM
- Tập lệnh ARM nằm trong hai nguồn thanh ghi Rn và Rm, kết quả được trả về thanh ghi đích Rd Nguồn toán hạng được đọc từ thanh ghi đang sử dụng trên bus nội bộ A và B tương ứng
- Khối số học và logic (ALU: Arithmetic Logic) hay bộ nhân (MAC: Multiply – Accumulate Unit) lấy các giá trị từ thanh ghi Rn và Rm từ bus A, B và tính toán
R15 PC
A
B Acc
Trang 131.3 Các dòng và các phiên bản của ARM
Để đáp ứng yêu cầu khắt khe và đa dạng của các hệ thống nhúng, bộ xử lý ARM Cortex được chia thành 3 dòng, được biểu hiện bằng các ký tự sau tên Cortex như dòng: A (Application), R (Real - time), M (Microcontroller)
ARM Cortex là một phiên bản khác với các phiên bản ARM thường hay được
ký hiệu bởi ARMXX ARM Cortex không có tốc độ hoạt động hay hệ thống ngoại
vi nhất định, tùy thuộc vào nhà sản xuất phần cứng sẽ thiết kế hệ thống ngoại vi khác nhau, tuy nhiên tất cả đều dùng chung nhân ARM Cortex và việc lập trình và truy cập phần cứng phải tuân theo chuẩn CMSIS Từ năm 1994 đến năm 2015 các
bộ lõi CortexA phát triển từ A0 đến A18, CortexR phát triển từ R0 đến R7, CortexM phát triển từ M0 đến M7
1.3.1 Dòng A(Application)
Bộ vi xử lý ARM Cortex A là bộ xử lý có hiệu suất cao cung cấp một loạt các giải pháp cho các thiết bị thực hiện nhiệm vụ tính toán phức tạp, chẳng hạn như lưu trữ một nền tảng phong phú hệ điều hành (OS), và hỗ trợ nhiều ứng dụng phần mềm Tất cả các bộ xử lý Cortex-A đặc biệt cung cấp hiệu suất 32 bit cho máy tính cao cấp, với bộ vi xử lý Cortex-A72 mới và cả Cortex-A57 và Cortex-A53 bộ xử lý kết hợp cung cấp hiệu suất 32-bit và 64-bit cho thế hệ điện thoại di động, mạng và máy chủ sản phẩm Các bộ vi xử lý có sẵn trong đơn lõi và đa lõi cung cấp lên đến bốn đơn vị xử lý với khả năng tích hợp các khối xử lý đa phương tiện NEON Hỗ trợ các tập lệnh ARM, Thumb và Thumb-2 Ứng dụng của dòng A bao gồm: điện thoại thông minh, netbook, eReaders, TV kỹ thuật số, home Gateway, máy chủ và mạng
Hình 1.4: Các phiên bản ARM Cortex – A 1.3.2 Dòng R(Real Time)
Bộ vi xử lý Cortex R có hiệu suất vượt trội cho các ứng dụng thời gian thực, thời gian xử lý nhúng đã được phát triển cho các ứng dụng nhúng thời gian thực,
Trang 14nhu cầu về điện năng thấp, ngắt được cân bằng với hiệu suất vượt trội và khả năng tương thích mạnh mẽ với nền tảng hiện tại Ứng dụng của dòng R bao gồm: hệ thống phanh ô tô, các giải pháp hệ thống truyền lực, bộ ưu trữ khối lượng, Networking và in ấn
Bộ xử lý Cortex R dành cho các hệ thống đòi hỏi khắc khe về tính thời gian thực Hỗ trợ các tập lệnh ARM, Thumb và Thumb-2 Các bộ vi xử lý Cortex R gồm
có Cortex-R4, Cortex-R5, Cortex-R7
Hình 1.5: Các phiên bản ARM Cortex – R 1.3.3 Dòng M(Microcontroller)
Bộ vi xử lý ARM Cortex M tiêu thụ điện năng thấp phù hợp với các ứng dụng
vi điều khiển xác định và có khả năng mở rộng, tương thích, hiệu quả, dễ sử dụng
Bộ vi xử lý ARM Cortex M được thiết kế để giúp các nhà phát triển đáp ứng nhu cầu về các ứng dụng nhúng thông minh và kết nối ARM Cortex M cung cấp nhiều tính năng với chi phí thấp hơn, tăng khả năng kết nối, sử dụng lại mã tốt hơn và cải thiện hiệu quả năng lượng Ứng dụng của dòng M bao gồm: vi điều khiển, thiết bị tín hiệu hỗn hợp, cảm biến thông minh, thiết bị điện tử ô tô
Bộ xử lý Cortex M Chỉ hỗ trợ tập lệnh Thumb-2 Các bộ vi xử lý Cortex M gồm có Cortex M0, Cortex M0+, Cortex M3, Cortex M4, Cortex M7
Hình 1.6: Các phiên bản ARM Cortex – M
1.4 Các hãng sản xuất dòng chip ARM
Không giống như các tập đoàn sản xuất vi xử lý khác như AMD, Intel, Motorola hay Hitachi, hãng ARM chỉ thiết kế và bán các bản thiết kế của họ và
Trang 15không sản xuất các vi mạch CPU hoàn chỉnh Do vậy, có khoảng vài chục hãng sản xuất các bộ xử lý dựa trên thiết kế của ARM Sau khi cấp phép cho hơn 175 đối tác ARM được hưởng lợi từ các công cụ của bên thứ ba Sử dụng một bộ xử lý tiêu chuẩn trong một thiết kế cho phép các đối tác ARM tạo ra các thiết bị với một cơ sở nhất quán cho phép họ tập trung vào việc tạo ra và phát tiển các thiết bị cao cấp hơn
Hình 1.7: Các hãng sản xuất bộ vi xử lý dựa trên thiết kế của ARM
Một số hãng sản xuất dòng chíp ARM dựa trên thiết kế của ARM sau khi được cấp phép như NUVOTON, SAMSUNG, Atmel, TOSHIBA, Actel…
1.5 Kết luận chương 1
ARM là dòng chíp 32 bit có nhiều tính năng hiện đại, chíp ARM đáp ứng được nhiều yêu cầu khắt khe và đa dạng của các hệ thống nhúng Trải qua nhiều năm nghiên cứu và phát triển và với những ưu thế sẵn có của mình ARM đang ngày càng khẳng định vị trí của mình cũng như dần thay thế các dòng chíp khác
Nhờ sự nổi trội về thị phần đã thúc đẩy ARM liên tục được phát triển và cho ra nhiều phiên bản mới Những thành công quan trọng trong việc phát triển ARM:
- Giới thiệu ý tưởng về định dạng các tập lệnh được nén lại (Thumb) cho phép tiết kiệm năng lượng và giảm giá thành ở những hệ thống nhỏ
- Giới thiệu về các họ điều khiển ARM
- Phát triển môi trường làm việc ảo của ARM trên máy tính
- Các ứng dụng cho hệ thống nhúng dựa trên lõi 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 và cách thiết kế bộ vi xử lý hiện đại được sử dụng trong ARM, ARM còn đưa ra một số khái niệm mới như giải nén động các dòng lệnh Vì vậy lõi xử lý ARM được sử dụng rộng rãi trong các hệ thống phức tạp
ARM được dùng khá phổ biến trong các ứng dụng nhúng và các ứng dụng cầm tay nhờ vào đặc tính ưu việt là ít tiêu thụ điện năng Hầu hết máy điện thoại di động và các thiết bị cầm tay hiện nay đều có bộ xử lý trung tâm là vi xử lý ARM
Trang 16CHƯƠNG 2
VI ĐIỀU KHIỂN ARM LÕI CORTEX M0 CỦA NUVOTON
Nuvoton là hãng sản xuất dòng chíp vi điều khiển 32 bit Cortex M0 dựa trên thiết kế của ARM Vi điều khiển Cortex M0 lõi ARM được thiết kế nhúng tối ưu cho các ứng dụng vi xử lý MCU, dòng chíp này 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
2.1 Giới thiệu về hãng Nuvoton
Tập đoàn công nghệ Nuvoton là một công ty bán dẫn của đài loan được thành lập năm 2008 tách ra từ Tập đoàn Điện tử Winbond một hãng điện tử bán dẫn đứng hàng đầu thế giới có trụ sở chính tại đài loan Nuvoton vừa là nhà sản xuất IC nhãn hiệu Nuvoton vừa là nhà cung cấp dịch vụ sản xuất IC bán dẫn Hãng này có 3 dòng chip vi điều khiển (MCU) 4-bit, 8-bit và 32-bit (ARM Cortex) Nuvoton đảm nhiệm việc mở rộng kinh doanh dòng sản phẩm mạch tích hợp logic máy tính của Winbond, lõi công nghệ, các đối tác và khách hàng… trước khi tách ra cũng như tiếp tục đẩy mạnh sáng tạo sản phẩm và để thấu hiểu nhu cầu thị trường ứng dụng thiết bị đầu cuối, và cung cấp dịch vụ tốt hơn cho khách hàng của hãng dựa trên nền tảng hiện có
Nuvoton nắm giữ một thị phần lớn về các bộ điều khiển I/O của bo mạch chủ khi mà Nuvoton thừa hưởng nhiều năm kinh nghiệm của Winbond về lĩnh vực liên quan đến các IC logic máy tính Hãng tiếp tục công bố thêm các sản phẩm, như là TPM (Trusted Platform Module – Modul Nền tảng đã được Xác thực) và các bộ điều khiển Sideshow v.v để đáp ứng các yêu cầu ứng dụng đa dạng của các hệ thống máy tính Các IC dân dụng của hãng tập trung vào thiết kế sản phẩm IC thanh nhạc (Speech ICs) và các IC đa phương tiện (Multimedia) Hãng Nuvoton đã giành được sự tin tưởng của khách hàng bằng cách thực hiện khả năng thiết kế sâu sắc Nhằm phù hợp với giá trị của Nuvoton về mối quan hệ lâu dài với các đối tác
và khách hàng, Nuvoton đã thành lập các công ty con tại Mỹ, Trung Quốc và Israel
để tăng cường hỗ trợ cho các khách hàng khu vực và quản lý toàn cầu Để cải thiện
tỷ lệ năng suất, quản lý chuỗi cung ứng, và sự hài lòng của khách hàng, Nuvoton đã thực hiện một tiêu chuẩn cứng rắn về kiểm soát chu trình sản xuất và hệ thống kiểm
soát chất lượng
Năm 2012, Novoton đã chỉ định công ty TULA làm nhà phân phối ủy quyền cung cấp các sản phẩm và giải pháp của hãng tại thị trường Việt Nam
2.2 Vi điều khiển ARM Cortex – M0 của hãng Nuvoton
Hiện nay, dòng chip ARM được phát triển tới lõi MCU 64 bit Cortex - M4 với nhiều tính năng nổi bật Hãng Nuvoton bỏ qua bước phát triển cho dòng CortexM3
Trang 17đi đến phát triển dòng CortexM4 để phù hợp với nhu cầu của các công nghệ tích hợp yêu cầu công nghệ cao bây giờ Hãng đã thiết kế thành công chip MCU lõi ARM 32-bit đầu tiên từ năm 2000 Đến năm 2009 hãng cho ra đời sản phẩm chip lõi ARM Cortex-M0 đầu tiên và nhanh chóng chiếm vị trí số 1 thế giới và châu á về doanh số bán chip MCU
Dòng 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 này 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 Nó đượ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
Dòng chíp MCU - 32 bit lõi ARM Cortex M0 là mẫu chip 32 bit có khả năng
tiêu thụ chỉ 9 μA/MHz, thấp hơn khoảng 30% so với các chip truyền thống 8/16 bit
sử dụng Mặc dù điện năng sử dụng thấp hơn nhưng hiệu năng làm việc của chip cao hơn so với các chip đối thủ Mục tiêu của ARM là thu hút những nhà cung cấp thiết bị cần nâng cấp sản phẩm sử dụng chip 8/16 bit di chuyển sang sử dụng chip
32 bit mới
ARM Cortex M0 được cho là phù hợp cho một loạt các thiết bị ứng dụng trong công nghiệp lẫn tiêu dùng, từ cảm biến ánh sáng phòng đến cảm biến điều khiển động cơ…
Hiện tại, Freescale và NXP Semiconductor đã kí kết với ARM trong việc sử dụng Cortex M0, trong đó NXP Semiconductor là hãng sản xuất đã lựa chọn chip ARM Cortex M0 cũng sử dụng điện năng thấp cùng hiệu suất làm việc cao so với các chip 8/16 bit
2.3 Đặc điểm của dòng chíp MCU – 32 bit lõi ARM Cotex M0
Dòng vi điều khiển ARM Cortex-M được thiết kế nhúng tối ưu hóa cho các ứng dụng vi xử lý MCU Dòng ARM Cortex-M0 là dòng vi điều khiển lõi ARM có kích thước rất nhỏ, tiêu thụ điện năng thấp và có kiến trúc được sắp xếp hợp lý tương thích với việc sử dụng tools nạp của các hãng khác để phát triển các ứng dụng
Hình 2.1: Khối điều khiển chức năng của Cortex M0
Trang 18Các bộ vi điều khiển ARM Cortex -M0 có cấu hình đa tầng, 32-bit xử lý RISC
Nó có một giao diện AHB-Lite bao gồm một thành phần NVIC và chức năng tùy chọn gỡ lỗi phần cứng Các bộ vi điều khiển có thể thực thi mã Thumb và tương thích với bộ xử lý ARM Cortex-M khác, hỗ trợ hai chế độ chế độ Thread và chế độ Handler Chế độ Handler được nhập như là kết quả của một ngoại vi Một ngoại vi trả lại có thể được dùng trong chế độ Handler Chế độ Thread được nhập vào Reset
và có thể được nhập như là một kết quả của một sự trả lại ngoại vi
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
Đặc điểm lõi vi điều khiển ARM Cortex M0:
- ARM Cortex -M0 lõi chạy lên đến 50 MHz
- Một hệ thống timer 24-bit
- Hỗ trợ chế độ ngủ công suất thấp
- Chu kỳ đơn 32-bit hệ số nhân phần cứng
- NVIC cho 32 ngắt đầu vào, với 4 mức ưu tiên
- Dây nối tiếp gỡ lỗi hỗ trợ với 2 watchpoints / 4 breakpoin Hãng Nuvoton sản xuất 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ú với kích thước rất nhỏ, tiêu thụ điện năng thấp nên dễ dàng phát triển các ứng dụng và tích hợp các đặc tính kỹ thuật hiện đại như:
- 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 nhiều 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ờ phần tử 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
- Cung cấp các ứng dụng mạnh mẽ và khả năng kết nối với nhiều giao diện ngoại vi
Trang 19Hình 2.2: Mức độ tiêu thụ điện năng của các dòng chíp MCU-32 Bit
Mặc dù cung cấp nhiều tính năng hiện đại, tích hợp nhiều khả năng giao tiếp ngoại vi, có khả năng tích hợp khối phát nhạc (Voice Unit) trên chip, tiêu thụ điện năng thấp nhưng dòng chip này vẫn có giá cả khá hợp lý cho người dùng lựa chọn
để phát triển thay thế các dòng chip khác
2.4 Quá trình phát triển các dòng chíp 32 bit lõi ARM Cotex M0 của Nuvoton
Hình 2.3: Quá trình phát triển của NuMiCro
- Năm 2009: bắt đầu thiết kế mẫu các dòng NUC100, NUC120, NUC130, NUC140 với các ứng dụng cơ bản như USB 2.0, CAN 2.0B, 12 bit chuyển đổi ADC
- Năm 2010: nâng cấp dòng chip MUC 8051 lên MUC 32-bit cho các ứng dụng truyền thông liên lạc và ứng dụng cho USB
- Năm 2011: ra đời dòng mới Mini51 là chip MCU có nguồn điện áp cực thấp với màn hình LCD
- Năm 2012: phát triển thêm dòng động cơ, chip MCU mật độ cao và MCU điều khiển Ethernet
- Năm 2013:phát triển thêm các dòng chip nhạc MCU ISD có tích hợp VoiceIC trên chip…
Trang 202.5 Các tính năng nổi bật có trong các dòng ARM Cortex-M0
Bên cạnh các dòng 32 bit như M051(64K), NUC100(128K), NUC140(128K), NUC470(128K) một dòng mới là NuMicro M051 gồm M052/54/58/516 để đáp ứng nhu cầu vi điều khiển 8bit/16bit của khách hàng toàn cầu với hiệu suất vi điều khiển 32 bit cao hơn
Hình 2.4: Biểu đồ phân loại dòng chip 32-bit lõi ARM Cortex-M0
Trong dòng chíp ARM Cortex M0 mỗi chíp sẽ có những tài nguyên và tính năng nổi bật khác nhau để đáp ứng từng ứng dụng và nhu cầu của người dùng Ngoài các chức năng cơ bản của vi điều khiển, ARM Cortex M0 còn tích hợp thêm một số chức năng kết nối ngoại vi như CAN, LIN, USB…
Hình 2.5: Tính năng nổi bật có trong các dòng ARM Cortex-M0
Trang 212.5.1 Dòng chíp NuMicro Mini51
Hình 2.6: Các khối chức năng của dòng NuMicro Mini51 Dòng NuMicro Mini51 cung cấp một số tính năng sau:
- 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
- Giao tiếp thiết bị ngoại vi UART tốc độ cao, RS485, SPI, I2C, thiết bị ngoại vi
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 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 tinh thể thạch anh bên ngoài 32,768K,
hỗ trợ khả năng nạp ISP và ICP
Dòng Mini51 được ứ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
2.5.2 Dòng chíp M051
Các tính năng cơ bản của dòng M051 tương đương với vi xử lý 8051 của hãng Atmel nhưng được sử dụng lõi ARM Cortex – M0 cho nên tốc độ xử lý nhanh hơn,
bộ nhớ nội lớn hơn
Trang 22Hình 2.7: Tính năng các dòng M051 Base Dòng M051 cung cấp một số tính năng sau:
- Tần số hoạt động lên tới 50MHz, hỗ trợ 32 ngắt với 4 mức ưu tiên
- Dải điện áp hoạt động rộng từ 2,5V~5,5V, chống nhiễu tiếng ồn tốt
- Xung điều khiển 10K đến 22M dao động nội và 12 M dao động thạch anh
- Nạp ICP/ISP (USB và UART)
- 64K bytes Flash EPROM, 4K bytes SRAM, 4KB ISP nạp flash
- Giao tiếp thiết bị ngoại vi: 12bit ADC, UART , SPI, I2C
- Kết nối thiết bị ngoại vi USB 2.0, CAN, LIN…
- Các khối chức năng: PWM, RTC, bộ ngắt nhận dạng Brown-out, 4 port GPIO, PDMA và 4 bộ Timer 32 bit
2.5.3 Dòng chíp NUC100
Hình 2.8: Phân chia cấu hình cho dòng NUC100
Trang 23Dòng NUC100 cung cấp một số tính năng sau:
- Lõi ARM Cortex-M0 chạy lên đến 50MHz, một bộ đếm thời gian hệ thống 24 bit, chế độ ngủ 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 nhúng SRAM
- Dao động thạch anh nội 22MHz
- 32,768 KHz thạch anh bên ngoài cho chức năng RTC và hệ thống hoạt động cô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
2.5.4 Dòng NuMicro Nano100
Hình 2.9: Các khối chức năng của dòng NuMicro Nano100
Dòng 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
Dòng Nano100 cung cấp một số tính năng sau:
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 24- 32K/64K/128KB bộ nhớ chương trình (APROM)
- 4KB bộ nhớ nạp (LDROM)
- 8K/16KB nhúng SRAM
- Dao động thạch anh nội 12 MHz
- 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
2.5.5 Dòng NuMiCro NUC130/140
Hình 2.10: Các khối chức năng của dòng NuMiCro NUC130/140 NuMiCro NUC130/140 cung cấp một số tính năng sau:
- NUC130/140 là vi điều khiển 32-bit lõi ARM Cortex-M0, trình đơn phần cứng
32 bit, chạy lên tới 50MHz
- Có 4 mức ưu tiên ngắt đầu vào, có 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
- Giao tiếp thiết bị ngoại vi: 8 kênh 12bit 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…
Trang 25- Thiết bị ngoại vi có tính năng phong phú: PWM, RTC, bộ ngắt nhận dạng Brown-out, 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 tiềm nă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
2.5.6 Dòng chip MCU tích hợp sẵn Voice IC trong chip: ISD9160
Ngoài các dòng chíp nêu trên hãng Nuvoton còn phát triển dòng chip MCU lõi ARM Cortex-M0 có tích hợp sẵn Voice IC trên chip Dòng chíp nhạc này tiêu thụ điện năng thấp và có giá tương đương với các dòng chip VoiceIC đơn của các hãng khác hiện nay Đặc biệt là dòng chip ISD9160 là dòng chip MCU lõi ARM Cortex-M0 có tích hợp VoiceIC trên chip và hoạt động tiêu thụ điện năng thấp với sáu chế
độ hoạt động tiết kiệm năng lượng khác nhau
Hình 2.11: Sự phát triển các dòng chip nhạc của Nuvoton
Đây là dòng chip cung cấp 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
Dòng ISD9160 là dòng chip nhạc lõi xử lý Cortex-M0 cung cấp một giải pháp hiệu quả mạnh mẽ và chi phí thấp cho các ứng dụng về âm thanh/giọng nói Kiến trúc tích hợp lõi vi xử lý 32-bit Cortex-M0, điện áp hoạt động rộng từ
Trang 262.5V~5.5V, giao diện âm thanh kỹ thuật số I2S, điều khiển ra loa công suất 1W, bộ nhớ dữ liệu flash, chức năng GPIO được thiết kế để cung cấp hiệu quả chi phí âm thanh chất lượng cao cho thị trường tiêu dùng và công nghiệp Các ISD9160 cung cấp các giải thuật nén cao hơn 50% so với ADPCM, dẫn đến giảm kích thước bộ nhớ trong khi cung cấp một chất lượng âm thanh cao Chúng có thể sử dụng bộ nhớ flash bên ngoài để mở rộng thời gian lưu trữ âm thanh
Dòng ISD9160 cung cấp một số tính năng sau:
- CPU lõi ARM Cortex-M0 32 bit, tốc độ 50MHz, tích hợp sẵn Voice IC trên
chip
- 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
Nuvoton ISD9160 là một loại chip phát nhạc dựa trên bộ vi xử lý Cortex-M0 ISD9160 tích hợp sẵn 6 chế độ hoạt động tiết kiệm năng lượng, chức năng cấu hình các mô-đun nội bộ làm cho ISD9160 là một nền tảng tuyệt vời cho việc thực hiện giải pháp HMI điện năng thấp ISD9160 mang lại tính tiết kiệm điện năng hơn hẳn
so với các thiết bị lõi Cortex-M0 bình thường Nó có thể chạy ở một trong 6 chế độ tiết kiệm năng lượng từ chế độ ngủ sâu nhất đến chế độ hoàn toàn chủ động Hình sau mô tả các mô-đun chức năng khác nhau trong 6 chế độ tiết kiệm năng lượng:
Trang 27Hình 2.12: Mô-đun mô tả các chức năng trong chế độ tiết kiệm năng lượng
- Trong chế độ DPD chỉ có dao động 16Khz và pin báo thức hoạt động Chỉ có một sự kiện sử dụng dao động thời gian 16 KHz hoặc một quá trình chuyển đổi từ cao xuống thấp trên thiết bị
- Trong chế độ năng lượng dự phòng (SPD) các vòng vào ra (I/O), đồng hồ thời gian thực (RTC), dao động 32 KHz, 256 bytes SB RAM và các bộ nhận dạng sóng Brown-out sẵn sàng hoạt động
- Trong chế độ (DDS) và chế độ (DS) tất cả các trạng thái logic trong Cortex M0 được bảo toàn Trong khi chạy với tốc độ cao 50MHz vẫn có thể chuyển sang chế độ này, các chức năng PWM vẫn có thể sử dụng bằng các nguồn đồng hồ thấp hơn Sự khác biệt duy nhất giữa chế độ DDS so với chế độ DS là từ 5V xuống 3.3V thì LDO tắt, làm cho 3,3V GPIOA không sẵn sàng
- Trong chế độ ngủ, tốc độ nguồn đồng hồ vẫn được duy trì ở mức cao 50MHz Bất kỳ chức năng nào cần nguồn xung đồng hồ cao có thể được kích hoạt, chẳng hạn như kỹ thuật điều chế độ rộng xung, bộ chuyển đổi tương tự số và truy cập bộ nhớ trực tiếp từ ngoại vi
Tất cả các chế độ ngủ tiết kiệm năng lượng có thể được nhập bằng cách thực hiện các hướng dẫn WFI/WFE Thoát khỏi các chế độ DDS và SPD sẽ thực hiện thiết lập lại vector Khi thoát ra khỏi tất cả các chế độ này thì CPU tiếp tục thực hiện các chỉ thị từ điểm bắt đầu dừng/ngủ
Trang 282.6 Tính năng của ARM Cortex-M0
- 512 trang byte xóa cho flash
- Địa chỉ cấu hình dữ liệu flash và kích thước cho hệ thống 128KB, cố định 4KB dữ liệu flash, 32KB và 64KB hệ thống
- Hỗ trợ 2 dây ICP cập nhật thông qua SWD giao diện ICE
- Hỗ trợ nhanh chóng chế độ lập trình song song bởi lập trình viên bên ngoài
Bộ nhớ SRAM
- 4K / 8K / 16K byte SRAM nhúng
- Hỗ trợ chế độ PDMA
PDMA (Peripheral DMA)
- Hỗ trợ 9 kênh PDMA để truyền dữ liệu tự động giữa SRAM và thiết bị ngoại
vi
Điều khiển đồng hồ
Trang 29- Lựa chọn linh hoạt cho các ứng dụng khác nhau
- Tích hợp 22,1184 MHz tốc độ cao OSC cho hệ thống hoạt động
- Được xây dựng trong 10 KHz tốc độ thấp OSC cho Watchdog Timer và hoạt động Wake-up
- Hỗ trợ một PLL, lên đến 50 MHz, cho hệ thống hoạt động hiệu suất cao
- Thạch anh ngoài 4~24 MHz đầu vào cho USB và vận hành thời gian chính xác
- Thạch anh ngoài tốc độ thấp 32,768 kHz đầu vào cho chức năng RTC và hệ thống điện năng thấp hoạt động
GPIO
- GPIO Có 4 chế độ vào/ra:
- Quasi bi-direction : chế độ 2 chiều
- Push-Pull output : đầu ra kéo-đẩy
- Open_Drain output : đầu ra cực máng hở
- Input only with high impendence : đầu vào trở kháng cao
- Lựa chọn đầu vào TLL hoặc Schmitt trigger
- Các chân I/O có thể cấu hình như một nguồn ngắt(trừ chân PB14/INT0 và PB15/INT1): Ngắt sườn, ngắt mức
Timer
- Hỗ trợ 4 bộ timer 32-bit TIMER0 ~ TIMER3
- Có 4 Nguồn xung dao động cho timer
- Mỗi Timer có 1 bộ chia tần 8 bit(8 bit prescale) 1 bộ đếm tăng 24 bit
- Hỗ trợ chức năng đếm sự kiện
- 1 thanh ghi so sánh 24 bit(TCMPR[23:0])
- 1 thanh ghi 24 bit đọc giá trị định thời của Timer(TDR[23:0])
- Có 4 chế độ: One shot, Periodic, Toggle, Continuous
Hình 2.14: Nguồn xung của timer
Trang 30Hình 2.15: Sơ đồ khối của Timer
Watchdog Timer
- Bộ đếm 18 bit
- Có 8 lựa chọn Timer –out
- Hỗ trợ các chức năng: WDT interrupt, WDT reset, WDT wake - up
Hình 2.16: Nguồn xung của Watchdog Timer
Hình 2.17: Sơ đồ khối của Watchdog Timer
Trang 31 RTC
- Phần mềm hỗ trợ bù lại bằng cách thiết lập tần số bù thanh ghi (FCR)
- Hỗ trợ đếm RTC (giây, phút, giờ) và lịch truy cập (ngày, tháng, năm)
- Hỗ trợ thanh ghi báo thức (giây, phút, giờ, ngày, tháng, năm)
- Lựa chọn chế độ 12 giờ hoặc 24 giờ
- Tự động nhận dạng năm nhuận
- Hỗ trợ định kỳ thời gian đánh dấu ngắt với 8 lựa chọn thời gian 1/128, 1/64, 1/32, 1/16, 1/8, 1/4, 1/2 và 1 giây
- Hỗ trợ chức năng báo thức
PWM / Capture bộ tạo nguồn PWM(PWM Generator), mỗi bộ hỗ trợ:
- 1 bộ chia 8 bit Prescaler
- 1 bộ chia Clock Divider
- bộ PWM-timer cho 3 đầu ra:
· A 16-bit PWM down-counter
· A 16-bit PWM reload value register (CNR)
· A 16-bit PWM compare register (CMR)
- 1 bộ tạo thời gian chết dead-zone đầu ra PWM
Hỗ trợ tới 8 kênh PWM hoặc 4 cặp PWM
Trang 32Hình 2.19: Sơ đồ khối chức năng PWM
UART
- Có ba bộ điều khiển UART
- Cổng UART điều khiển luồng (TXD, RXD, CTS và RTS)
- UART0 với 64-byte FIFO cho tốc độ cao
- UART1 / 2 (tùy chọn) với 16-byte FIFO cho thiết bị tiêu chuẩn
- Hỗ trợ IrDA (SIR) và chức năng LIN
- Hỗ trợ RS-485 chế độ 9-bit và điều khiển hướng
- Máy phát điện Programmable baud-rate lên đến 1/16 hệ thống đồng hồ
- Hỗ trợ chế độ PDMA
Hình 2.20: Nguồn xung vào khối UART
Trang 33Hình 2.21: Sơ đồ khối chức năng của UART
SPI
- Hỗ trợ lên tới4 bộ SPI
- Hỗ trợ cả2 chế độ Master và Slave
- Truyền nhận nối tiếp song công hoàn toàn(Full duplex synchronous serial)
- Truyền đồng thời1 bít hoặc2 bít
- Độ dài dữ liệu truyền từ 8-32 bít
- Có thể cấu hình chế độ truyền bít có trọng số cao nhất trước hoặc bít có trọng
số thấp nhất trước
- Hỗ trợ 4 chế độ hoạt động: mode 0~3
- Support byte reoder mode
- Support byte or word suspped mode
- Support three write, no slave select signal, bi-direction interface
- Hỗ trợ 2 kênh vào/ra dữ liệu
- Hỗ trợ 2 kênh DMA: một kênh truyền, 1 kênh nhận
- Auto Slave Select
Hình 2.22: Nguồn xung vào SPI
Trang 34Hình 2.23: Sơ đồ khối chức năng SPI
I2C
- Lên đến hai bộ Thiết bị I2C
- Chế độ Master / Slave
- Truyền dữ liệu hai chiều giữa Master và Slave
- Đồng bộ hóa đồng hồ nối tiếp, cho phép các thiết bị với tốc độ bit khác nhau
để giao tiếp thông qua một bus nối tiếp
- Đồng bộ hóa đồng hồ nối tiếp có thể được sử dụng như một cơ chế bắt tay để tạm dừng và tiếp tục chuyển tiếp
- Đồng hồ có thể lập trình cho phép kiểm soát tốc độ linh hoạt
- Hỗ trợ nhiều loại nhận dạng địa chỉ
Hình 2.24: Nguồn xung vào I2C
I2S
- Giao diện với CODEC âm thanh bên ngoài
- Hoạt động như chế độ Master hay Slave
Trang 35- Khả năng xử lý kích thước từ 8-, 16-, 24- và 32-bit đơn và âm thanh stereo dữ liệu được hỗ trợ
- I2S và MSB xử lý dữ liệu định dạng được hỗ trợ
- Bộ đệm FIFO dữ liệu được cung cấp, một cho truyền và một cho nhận
- Tạo ra các yêu cầu ngắt khi nồng độ đệm qua ranh giới lập trình
- Hỗ trợ hai yêu cầu DMA, một cho truyền và một cho nhận
CAN 2.0
- Hỗ trợ giao thức CAN phiên bản 2.0 phần A và B
- Tốc độ bit lên đến 1M bit/s
- 32 Tin nhắn Objects
- Mỗi tin nhắn Object có mặt nạ dạng won của mình
- Chế độ FIFO lập trình (nối của tin nhắn Object)
- Ngắt Maskable
- Vô hiệu hóa chế độ tự động truyền cho thời gian kích hoạt các ứng dụng CAN
- Hỗ trợ chức năng đánh thức
Thiết bị điều khiển PS/2
- Tổ chức đế giao tiếp và yêu cầu để gửi phát hiện
- Tiếp nhận phát hiện lỗi khung
- Lập trình 1-16 byte truyền đệm để giảm bớt sự can thiệp của CPU
- Đệm đôi cho tiếp nhận dữ liệu
- S/W ghi đè Bus
Device 2.0 Full-Speed USB
- Một tập hợp các thiết bị USB 2.0 FS 12Mbps
- Thu phát USB trên chíp
- Cung cấp 1 ngắt nguồn với 4 ngắt sự kiện
- Hỗ trợ kiểm soát, số lượng lớn In / Out, ngắt và điều khiển đồng bộ
- Tự tạm dừng chức năng báo hiệu khi không có bus tín hiệu với 3 ms
- Cung cấp 6 thiết bị đầu cuối lập trình
- Bao gồm 512 Bytes SRAM nội bộ đệm USB
- Cung cấp dịch vụ báo thức khả năng điều khiển từ xa
Trang 36Hình 2.25: Sơ đồ khối điều khiển USB2.0
EBI (giao diện bus ngoại) hỗ trợ (100-pin và 64-pin Package Only)
- Bể không gian: 64KB ở chế độ 8-bit hoặc 128KB ở chế độ 16-bit
- Hỗ trợ 8/16-bit chiều rộng dữ liệu
- Hỗ trợ byte ghi trong chế độ rộng dữ liệu 16-bit
ADC
- Điện áp đầu vào Analog: 0~Vref(Tối đa = 5V)
- Độ phân giải 12 bít
- Hỗ trợ tới 8 kênh analog đơn hoặc 4 kênh analog vi sai
- Tần số hoạt động tối đa = 16Mhz
- Tốc độ chuyển đổi tối đa: 600Khz ( ~1.67 us)
- Có 3 chế độ hoạt động:
· Single mode: chuyển đổi ADC 1 lần cho 1 kênh cụ thể(kênh thấp nhất)
· Single-cycle mode: chuyển đổi ADC 1 lần tất cả các kênh được bật, từ kênh thấp đến cao
· Continuous scan mode: chuyển đổi liên tục các kênh cho đến khi điều khiển dừng chuyển đổi ADC
- Quá trình chuyển đổi ACD có thể được kích hoạt từ:
· Phần mềm( Software trigger)
· Chân điều khiển (STADC pin)
- Kênh vào kênh 7 (AIN7) có thể chọ từ:
· Điện áp Analog từ ADC7
· Điện áp bandgap của MCU (VBG)
· Đầu ra cảm biến nhiệt bên trong của MCU (VTEMP)
- Hỗ trợ chức năng DMA
Trang 37Hình 2.26: Nguồn xung vào khối ADC
Hình 2.27: Sơ đồ khối chức năng ADC
Analog Comparator
- Lên đến hai bộ so sánh tương tự
- Đầu vào bên ngoài hoặc lựa chọn điện áp bandgap nội bộ tại nút âm
- Ngắt khi so sánh kết quả thay đổi
Trang 38- Cấp điện áp ngưỡng: 2.0 V
- Nhiệt độ hoạt động: -400~ 850
2.7 Công cụ hỗ trợ phát triển các ứng dụng trên chíp ARM Cortex M0
Công cụ hỗ trợ phát triển các ứng dụng trên chip ARM Cortex rất đa dạng:
- Công cụ nạp: hỗ trợ nạp cả ISP và ICP, Nu-Link, NuGang, U-Link, J-Link
- Mã nguồn mẫu (demo): cho dòng chip ARM Cortex-M0 của Nuvoton
- Các lưu ý ứng dụng: cho ứng dụng chip ARM Cortex–M0 của Nuvoton
- Tài liệu hướng dẫn: trên trang web của các nhà phân phối của hãng Nuvoton
Hình 2.28: Công cụ phát triển của hãng
Hỗ trợ phần mềm: KEIL RVMDK, IAR EWARM, Nu Tiny-SDK, thư viện, Driver, các ví dụ mã code, hướng dẫn kỹ thuật và các video hướng dẫn được đăng đầy đủ trên trang web của hãng
Hình 2.29: Công cụ phát triển phần mềm
Trang 39Các bo mạch phát triển này có kèm theo mã nguồn và file thiết kế phần cứng (schematic, layout)
Hình 2.30: Các board dùng cho học tập nghiên cứu
- Nu-LB-M051: Kit dung cho học tập bao gồm Nu-LB-M0516, board Nu-Link
ME, cáp USB, đĩa CD NuMicro Family; hỗ trợ thiết bị M052/54/58/0516
- LB-Mini51: Kit dung cho học tập bao gồm LB-Mini51, board Link-ME, cáp USB, đĩa CD NuMicro Family; hỗ trợ thiết bị Mini51/52/54
- Nu-LB-NUC140: Kit dùng cho học tập bao gồm Nu-LB-NUC140, board Nu-Link-ME, cáp USB, đĩa CD NuMicro Family, hỗ trợ chíp NUC100/120/130/140 Đây là các Kit được chế tạo bởi Nuvoton, có các ví dụ mã nguồn mẫu và được
Nu-hỗ trợ bởi các môi trường phát triển IAR EWARM, Keil RVMDK, CooCox CoIDE Kit Nu-LB-NUC140 này chính là bo mạch mà hãng Nuvoton đã cấp cho các trường đại học công nghệ của Việt Nam trong chương trình hợp tác đào tạo Academy của hãng trên toàn thế giới
2.8 Các ứng dụng của dòng chíp MCU – 32 bit lõi Cotex M0
Ngày nay, hơn 75% CPU nhúng 32-bit là thuộc họ ARM, điều này khiến ARM trở 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ìm thấ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ện thoạ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ổi tiếng của họ ARM là các vi xử lý Xscale của Intel
Trang 40Hình 2.31: Các ứng dụng của dòng chíp MCU – 32 bit lõi Cotex M0
2.9 Kết luận chương 2
Dòng chíp MCU 32-bit lõi ARM Cortex-M0 của hãng Nuvoton đã tạo ra sự đột phá trong nghành công nghiệp điện tử bởi sự đa dạng về chủng loại, cấu hình đa dạng, mạnh mẽ, đáp ứng công năng và chất lượng, giá thành hợp lý Dòng chíp ARM Cortex-M0 của hãng Nuvoton có các công cụ, tài nguyên phất triển rất đầy
đủ, hoàn thiện và dễ dùng, dễ dàng phát triển các ứng dụng