MỤC LỤC Lời Mở Đầu Chương TỔNG QUAN VỀ CORTEX 1.1 Các phiên kiến trúc ARM 1.2 Bộ xử lí Cortex đơn vị xử lí trung tâm Cortex 1.3 Đơn vị xử lí trung tâm Cortex (Cortex CPU) 1.3.1 Kiến trúc đường ống (Pipline) 1.3.2 Mơ hình lập trình (Programmer’s model) 1.3.2.1 Thanh ghi XPSR 1.3.3 Các chế độ hoạt động CPU 1.3.4 Tập lệnh Thumb-2 1.3.5 Bản đồ nhớ (Memory Map) 1.3.6 Truy cập nhớ không xếp hàng (Unaligned Memory Accesses) 11 1.3.7 Dải Bit (Bit Banding) 12 1.4 Bộ xử lí Cortex 13 1.4.1 Bus 14 1.4.2 Ma trận Bus 14 1.4.3 Timer hệ thống (System timer) 14 1.4.4 Xử lí ngắt (Interrupt Handling) 15 1.4.5 Bộ điều khiển vector ngắt lồng (Nested Vector Interrupt Controller) 15 1.4.5.1 Nhập thoát khỏi ngoại lệ NVIC (NVIC Operation Exception Entry And Exit) 16 1.4.5.2 Các chế độ xử lí ngắt cao cấp (Advanced Interrupt Handling Modes) 17 1.4.5.2.1 Quyền ưu tiên ngắt (Interrupt Pre-emption) 17 1.4.5.2.2 Kỹ thuật Tail Chaining NVIC 17 1.4.5.3 Cấu hình sử dụng NVIC 19 1.4.5.3.1 Bảng vector ngắt (Exception Vector Table) 19 1.5 Các chế độ lượng 24 1.5.1 Cách vào chế độ lượng thấp CPU Cortex .24 1.5.2 Khối hỗ trợ gỡ lỗi CoreSight 26 Chương KIẾN TRÚC HỆ THỐNG CỦA ARM CORTEX 28 2.1 Cấu trúc nhớ .28 2.2 Tối đa hiệu 29 2.2.1 Vịng Khóa Pha (Phase Lock Loop) .30 2.2.2 Cấu hình cho bus 32 2.2.3 Flash Buffer 33 2.2.4 Direct Memory Access 34 Chương NGOẠI VI 39 3.1 Ngoại vi đa dụng .39 3.1.1 Các cổng I/O đa dụng 39 3.1.1.1 Chức thay (Alternate Function) 41 3.1.1.2 Event Out 42 3.1.2 Ngắt ngoại (EXTI) 42 3.1.3 ADC 43 3.1.3.1 Thời gian chuyển đổi nhóm chuyển đổi .44 3.1.3.2 Analogue WatchDog 46 3.1.3.3 Cấu hình ADC 47 3.1.3.4 Dual mode 48 3.1.4.1 Cả hai khối ADC hoạt động chế độ Regular Injected 49 3.1.4.2 Cả hai khối hoạt động chế độ Regular Injected xen kẽ .49 3.1.4.3 Hoạt động xen kẽ nhanh chậm Regular 50 3.1.4.4 Chế độ kích hoạt thay 50 3.2.1 Khối Capture/Compare .52 3.2.2 Khối Capture 53 3.2.3 Chế độ PWM Input 54 3.2.4 Chế độ PWM 55 3.2.5 Chế độ One Pulse 56 3.3 Đồng hoá định thời 56 3.4 RTC ghi Backup 58 3.5 Kết nối với giao tiếp khác 59 3.5.1 SPI 59 3.5.2 I2C 60 3.5.3 USART 61 3.5.4 CAN 63 3.5.5 USB 65 Chương LẬP TRÌNH ĐIỀU KHIỂN ĐỘNG CƠ BƯỚC SỬ DỤNG ARM-STM32F103 67 4.1 Giới thiệu Kit STM32 STM32F103 67 4.1.1 Mạch CPU 68 4.1.2 Mạch giao tiếp RS232 qua USART1 69 4.1.3 Mạch cấp nguồn USB 69 4.1.4 Mạch giao tiếp với LCD, nạp gỡ nỗi chương trình qua JTAG, mạch giao tiếp CAN/ PS2 70 4.1.5 Mạch thẻ nhớ SD/MMC qua giao tiếp SPI 70 4.2 Điều khiển động bước với Kit STM32 STM32F103 70 4.2.1.Thiết kế mạch Motor Driver: 70 4.2.2 Chương trình điều khiển Step Motor: 71 Kết Luận 74 Tài liệu tham khảo: .75 Lời Mở Đầu Ngày với phát triển ngành điện tử ứng dụng điện tử giúp sáng tạo người trở thành thực Các lĩnh vực sống áp dụng thiết bị điện tử dường nhìn đâu gia đình có thiết bị điện tử Ngành điện tử ứng dụng điện tử tạo chỗ đứng khẳng định tầm quan trọng nhu cầu người Với ứng dụng cho hệ thống nhúng ngày trở nên phổ biến: từ ứng dụng đơn giản điều khiển chốt đèn giao thông định thời, đếm sản phẩm dây chuyền sản xuất, điều khiển tốc độ động điện chiều, thiết kế biển quảng cáo dùng Led ma trận, đồng hồ thời gian thực Đến ứng dụng phức tạp hệ thống điều khiển robot, kiểm soát nhà máy hệ thống kiểm soát máy lượng hạt nhân Các hệ thống tự động trước sử dụng nhiều công nghệ khác hệ thống tự động hoạt động nguyên lý khí nén, thủy lực, rơle điện, mạch điện tử số, thiết bị máy móc tự động cam chốt khí Các thiết bị, hệ thống có chức xử lý mức độ tự động thấp so với hệ thống tự động đại xây dựng tảng hệ thống nhúng Trong nhiều năm trước, dòng vi điều khiển 8051 sinh viên dùng nhiều với tính đơn giản, dễ sử dụng; AVR sử dụng nhiều thi Robocon nhờ tốc độ sử lý cao, ổn định; PIC với ưu tốc độ cao, chi phí thấp nghiên cứu, sử dụng nhiều, đặc biệt thi lập trình tay nghề khu vực giới Nhưng vài năm trở lại đây, có dịng vi điều khiển mới, ngày nắm vị trí quan trọng lĩnh vực địi hỏi tốc độ xử lý cao điện tử viễn thơng, sản xuất dịng diện thoại di động smartphone, giám sát, an ninh… Đó họ vi điều khiển ARM Với nhiều hệ đời, với nhiều tính , cơng dụng khác Với nhiều tính vượt trội ARM xu lựa chọn dòng vi điều khiển Việt Nam nên đề tài nghiên cứu khoa học này, giúp đỡ Thầy Nguyễn Huy Dũng, em thực đề tài nghiên cứu Ứng dụng lập trình điều khiển động bước sử dụng chip ARM Cortex M3 STM32F103RC Chương TỔNG QUAN VỀ CORTEX Bộ xử lý Cortex hệ lõi nhúng từ ARM Cortex thừa kế ưu điểm từ xử lí ARM trước đó, lõi xử lý hồn chỉnh, bao gồm xử lí trung tâm Cortex hệ thống thiết bị ngoại vi xung quanh, Cortex cung cấp phần xử lí trung tâm hệ thống nhúng Để đáp ứng yêu cầu khắt khe đa dạng hệ thống nhúng, xử lý Cortex gồm có nhánh, biểu ký tự sau tên Cortex sau: Cortex-A : vi xử lý dành cho hệ điều hành ứng dụng người dùng phức tạp Hỗ trợ tập lệnh ARM, Thumb Thumb-2 Cortex-R : xử lí dành cho hệ thống địi hỏi khắc khe tính thời gian thực Hỗ trợ tập lệnh ARM, Thumb, Thumb-2 Cortex-M : xử lí dành cho dịng vi điều khiển, tối ưu hóa cho ứng dụng nhạy cảm chi phí Chỉ hỗ trợ tập lệnh Thumb-2 Con số nằm cuối tên Cortex cho biết mức độ hiệu suất tương đối, với thấp cao Hiện dịng Cortex-M có mức hiệu suất cao mức STM32 dựa xử lý Cortex-M3 1.1 Các phiên kiến trúc ARM Hinh 1.1.Các phiên kiến trúc lõi ARM Tính đến thời điểm phiên kiến trúc lõi ARM ARMv7 (Trước có ARMv4, ARMv5, ARMv6) Bộ xử lý Cortex-M3 dựa kiến trúc ARMv7 M có khả thực tập lệnh Thumb-2 1.2 Bộ xử lí Cortex đơn vị xử lí trung tâm Cortex Hình 1.2 Kiến trúc vi xử lí ARM Cortex-M3 Thuật ngữ xử lí Cortex (Cortex processor) đơn vị xử lí trung tâm Cortex (Cortex CPU) sử dụng để phân biệt nhúng lõi Cortex hồn chỉnh xử lí trung tâm RISC nội (internal RISC CPU) 1.3 Đơn vị xử lí trung tâm Cortex (Cortex CPU) Trung tâm xử lý Cortex CPU RISC 32-bit CPU có phiên đơn giản hóa từ mơ hình lập trình (programmer’s model) ARM7/9 , có tập lệnh phong phú với hỗ trợ tốt cho phép toán số nguyên, khả thao tác với bit tốt khả đáp ứng thời gian thực tốt 1.3.1 Kiến trúc đường ống (Pipline) CPU Cortex thực thi hầu hết lệnh chu kì đơn Giống CPU ARM7 ARM9, việc thực thi đạt với đường ống ba tầng Tuy nhiên Cortex-M3 khả dự đoán việc rẽ nhánh để giảm thiểu số lần làm rỗng (flush) đường ống Hinh 1.3 Kiến trúc đường ống ARM Cortex-M3 1.3.2 Mơ hình lập trình (Programmer’s model) CPU Cortex xử lý dựa kiến trúc RISC, hỗ trợ kiến trúc nạp lưu trữ (load and store architecture) Để thực lệnh xử lý liệu, toán hạng phải nạp vào tập ghi trung tâm, phép tính liệu phải thực ghi kết sau lưu lại nhớ Hinh 1.4 Kiến trúc load store ARM Cortex-M3 Tập ghi bao gồm mười sáu ghi 32-bit Các ghi R0-R12 ghi đơn giản, dùng để chứa biến chương trình Thanh ghi R13 dùng trỏ ngăn xếp (stack pointer) Trong CPU Cortex có hai ngăn xếp gọi main stack process stack Thanh ghi R14 gọi ghi liên kết (link register) Thanh ghi sử dụng để lưu trữ địa trở gọi thủ tục (call a procedure) thực Điều cho phép CPU Cortex thực nhanh việc nhập thoát khỏi thủ tục (fast entry and exit to a procedure) Thanh ghi R15là bộđếm chương trình (Program Counter) Hinh 1.5 Mơ hình lập trình ARM Cortex-M3 1.3.2.1 Thanh ghi XPSR Ngoài tập ghi trung tâm cịn có ghi riêng biệt gọi ghi trạng thái chương trình (Program Status Register) XPSR chứa số vùng chức quan trọng ảnh hưởng đến việc thực thi CPU Cortex Hinh 1.6 Thanh ghi trạng thái chương trình CPU Cortex Năm bit đầu cờ mã điều kiện gán biệt hiệu (aliased) ghi trạng thái chương trình ứng dụng Bốn cờ N, Z, C, V (Negative, Zero, Carry Overflow) thiết lập xóa tùy thuộc vào kết lệnh xử lýdữ liệu Bit Q sử dụng lệnh toán học DPS để biến đạt giá trị tối đa giá trị tối thiểu Giống tập lệnh ARM32-bit, lệnh Thumb-2 thực mã điều kiện lệnh phù hợp với trạng thái cờ ghi trạng thái chương trình ứngdụng (Application Program Status Register) Nếu mã điều kiện lệnh khơng phù hợp, lệnh ngang qua đường ống lệnh NOP (lệnh khơng làm cả) Điều đảm bảo lệnh qua đường ống cách trơn tru giảm thiểu làm rỗng đường ống 1.3.3 Các chế độ hoạt động CPU Bộ xử lý Cortex có hai chế độ hoạt động: chế độ Thread chế độ Handler CPU chạy chế độ Thread thực thi chế độ khơng có ngắt xảy chuyển sang chế độ Handler thực thi ngắt đặc biệt (exceptions) Ngoài ra, CPU Cortex thực thi mã chế độ đặc quyền không đặc quyền (privileged or non-privileged mode) Trong chế độ đặc quyền, CPU có quyền truy cập tất lệnh Trong chế độ không co đặc quyền, số lệnh bị cấm truy cập (như lệnh MRS MSR cho phép truy cập vào xPSR trường nó) Ngồi ra, việc cập ghi điều khiển hệ thống vi xử lý Cortex bị cấm Cách sử dụng ngăn xếp (stack) cấu hình Ngăn xếp (main stack-R13) sử dụng hai chế độ Thread Handler Chế độ Handler cấu hình để sử dụng ngăn xếp trình (process stackR13 banked register) chế độ slave, master hay đóng vai trò phân xử đường hệ thống multimaster Giao diện I2C hỗ trợ tốc độ truyền chuẩn 100kHz hay tốc độ cao 400kHz Ngồi cịn hỗ trợ 10 bit địa Được thiết kế nhằm đơn giản hóa q trình trao đổi với kênh DMA cho truyền nhận liệu Hai ngắt cho nhân Cortex, cho định địa truyền nhận Hình 3.15 Khối I2C Thêm để đảm bảo tính xác liệu truyền, khối kiểm tra lỗi liệu( PAC - packet error checking) tích hợp thêm vào giao diện I2C cho phép kiểm tra mã CRC-8 bit Thao tác thực hoàn toàn tự động phần cứng 3.5.3 USART Mặc dù giao diện trao đổi liệu dạng nối tiếp khơng cịn hỗ trợ máy tính, chúng sử dụng nhiều lĩnh vực nhúng tiện ích tính đơn giản STM32 có đến khối USART, khối có khả hoạt động đến tốc độ 4.5Mbps Một khối USART nằm APB1 với xung nhịp hoạt động 72MHz, khối lại nằm APB2 hoạt động xung nhịp 36MHz 61 Hình 3.16 Giao diện USART có khả hỗ trợ giao tiếp không đồng UARTS, modem giao tiếp hồng ngoại Smartcard Với mạch tích hợp cho phép chia nhỏ tốc độ BAUD chuẩn thành nhiều tốc độ khác thích hợp với nhiều kiểu trao đổi liệu khác Mỗi khối USART có hai kênh DMA dành cho truyền nhận liệu Khi hỗ trợ giao tiếp dạng UART, USART cung cấp nhiều chế độ giao tiếp Có thể trao đổi liệu theo kiểu chế độ hafl-duplex đường truyền Tx Khi hỗ trợ giao tiếp modem giao tiếp có sử dụng điều khiển luồng (hardware flow control) USART cung cấp thêm tín hiệu điều khiển CTS RTS Hình 3.17 Hỗ trợ giao tiếp chế độ hafl-duplex dựa đường truyền Ngồi USART cịn dùng để tạo giao tiếp nội (local interconnect bus) Đây mơ hình cho phép nhiều vi xử lý trao đổi liệu lẫn USART cịn có khối encoder/decoder dùng cho giao tiếp hồng ngoại với tốc độ hỗ trợ đạt đến 1115200bps, hoạt động chế độ hafl-duplex NRZ xung nhịp hoạt động khoảng từ 1.4MHz 2.12Mhz Để thực giao tiếp với smartcard, USART hỗ trợ chuẩn ISO 76183 62 Hình 3.18 Giao tiếp smartcard hồng ngoại Người dùng cấu hình khối USART cho giao tiếp đồng tốc độ cao dựa đường tín hiệu riêng biệt SPI Khi hoạt động chế độ này, khối USART đóng vai trị SPI master có khả cấu hình Clock Polarity/Phase nên hồn tồn giao tiếp với SPI slave khác Hình 3.19 Hỗ trợ giao tiếp đồng SPI 3.5.4 CAN Khối điều khiển CAN cung cấp điểm giao tiếp CAN đầy đủ hỗ trợ chuẩn CAB 2.0A 2.0B Active Passive với tốc độ truyền liệu Mbit/s Ngồi khối CAN cịn có khối mở rộng hỗ trợ giao tiếp truyền liệu dạng deterministic dựa thẻ thời gian Time-trigger CAN(TTCAN) 63 Hình 3.20 Khối điều khiển CAN Tên đầy đủ CAN bxCAN, bx viết tắt Base eXtended Một giao diện CAN tối thiểu phải hỗ trợ đệm đơn truyền nhận liệu, giao diện mở rộng cung cấp nhiều đệm bxCan kết hợp hai kiến trúc bxCan có đệm liệu cho truyền đệm nhận, đệm thường gọi mailbox(hộp thư) Mỗi mailbox tổ chức FIFO hàng đợi Một điểm quan trọng CAN lọc gói tin nhận(receive message filter) Vì giao thức CAN truyền liệu dựa địa đích nhận, gói tin phát tồn mạng, có điểm có địa giống địa nhận gói tin dùng gói tin Lọc gói tin giúp điểm mạng CAN tránh xử lý gói tin khơng phải STM32 cung cấp 14 lọc(14 filters bank) đánh số từ 0-13 cho phép lọc tồn gói tin khơng cần thiết Mỗi lọc gồm ghi 32-bit CAN_FxR0 CAN_FxR1 Hình 3.21 Khối CAN có mailbox cho truyền liệu với đánh nhãn thời gian tự động cho chuẩn TTCAN 64 Mỗi lọc cấu hình hoạt động chế độ lọc đưa vào nhóm lọc theo ID theo nhóm ID Chế độ thứ lọc dựa ID gói tin, gói tin khơng có ID giống khơng giống ID cấu hình lọc, bị bỏ qua Chế độ thứ hai cho phép nhận gói tin nhóm Thanh ghi thứ chứa ID gói tin, ghi thứ hai chứa “mặt nạ”,quy định thành phần vùng ID ghi thứ mà lọc dựa để so sánh lọc hay khơng lọc gói tin CAN hoạt động hai chế độ: bình thường để truyền nhận liệu chế độ khởi tạo để cấu hình thơng số mạng Thêm vào khối CAN sử dụng chế độ tiết kiệm lượng Sleep Mode Khi chế độ Sleep Mode, đồng hồ xung nhịp cấp cho CAN ngưng hoạt động, nhiên ghi mailbox hoạt động Điều cho phép CAN kích hoạt dựa hoạt động mạng Có hai chế độ phụ CAN hoạt động chế độ truyền nhận liệu thông thường Chế độ Silent, khối CAN nhận liệu truyền liệu, người ta hay sử dụng chế độ để theo dõi mạng gói tin truyền mạng Chế độ Loopback cho phép toàn gói tin chuyển đưa vào đệm nhận khối CAN Chế độ dùng để tự kiểm tra hoạt động phần cứng CAN phần mềm điều khiển 3.5.5 USB Hỗ trợ giao tiếp Device USB với tốc độ Full Speed (12Mbps) có khả kết nối với giao diện host usb Khối giao diện bao gồm Layer1 Layer2 đảm nhận chức truyền vật lý(phisical layer) truyền liệu logic (data layer) Ngồi cịn hỗ trợ đầy đủ chế độ Suspend Resume nhằm tiết kiệm lượng 65 Với endpoint, hoạt động chế độ : Control, Interrupt, Bulk Isochronous Vùng đệm liệu 512 byte SRAM endpoint chia sẻ với giao diện CAN Khi cấu hình, ứng dụng chia vùng đệm thành phần tương ứng với endpoint Các vùng đệm đảm bảo liệu truyền nhận liên tục endpoint 66 Chương LẬP TRÌNH ĐIỀU KHIỂN ĐỘNG CƠ BƯỚC SỬ DỤNG ARM-STM32F103 4.1 Giới thiệu Kit STM32 STM32F103 Đặc tính Kit: MCU: STM32F103 ARM 32 bit CORTEX M3™ with 384K Program Flash, 64K Bytes RAM, USB, CAN, x2 I2C, x16 ADC, x2 DAC x5 UART, x2 SPI, x12 TIMERS, up to 72Mhz operation JTAG connector tiêu chuan với ARM 2x10 pin dành cho viec lap trình ghỡ rối USB connector SD-MMC card, Audio, Microphone user buttions x3 user leds x3 RS-232 connector 10 RESET button 11 status LED 12 Mhz crystal oscillator 13 32768 Hz crystal and RTC backup battery 14 extension headers for all uC ports Đặc tính STM32F103RDT6: - CPU clock up to 72Mhz - FLASH 384KB - RAM 64KB - DMA x12 channels - RTC - WDT - Timers x11+1 - SPI x2 - I2C x2 67 - USART x5 - USB x1 - CAN x1 (multiplexed with USB so both can't be used in same time) - GPIO up to 51 (multiplexed with peripherials) - 16 kênh ADC 12-bit, DAC x2 - operating voltage 2.0-3.6V - temperature -40C +85C 4.1.1 Mạch CPU Hình 4.1Mạch CPU - Thạch anh MHz chân 8-9 tạo xung đồng hồ cho hoạt động hệ thống - Thạch anh 32.768 KHz chân 3-4 tạo xung dùng cho đồng hồ thới gian thực watchdog 68 4.1.2 Mạch giao tiếp RS232 qua USART1 Hình 4.2 Giao tiếp RS232 4.1.3 Mạch cấp nguồn USB Hình 4.3 Mạch cấp nguôn USB 69 4.1.4 Mạch giao tiếp với LCD, nạp gỡ nỗi chương trình qua JTAG, mạch giao tiếp CAN/ PS2 Hình 4.4 Giao tiếp LCD, JTAG, PS2, CAN 4.1.5 Mạch thẻ nhớ SD/MMC qua giao tiếp SPI Hình 4.5 Giao tiếp với thẻ nhớ SD/MMC 4.2 Điều khiển động bước với Kit STM32 STM32F103 4.2.1.Thiết kế mạch Motor Driver: - Sử dụng Step Motor đơn cực- dây có góc bước 1,80/ nguồn cấp 12V - Với loại motor đệm dòng IC- ULN 2003 70 - Mạch Motor Driver ghép nối với Kit qua cổng PB (chân PB.12, PB.13, PB.14, PB.15) Sơ đồ Motor Driver hình 4.6: Hình 4.6 Mạch Motor Driver 4.2.2 Chương trình điều khiển Step Motor: Chương trình viết Keil v4.2, sử dụng thư viện chuẩn CMSIS dòng ARM Cortex-M3 #include "main.h" GPIO_InitTypeDef GPIO_InitStructure; /** * @brief Configures the different system clocks * @param None * @retval None */ void RCC_Configuration(void) { RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); } /** * @brief Inserts a delay time with resolution is 10 milisecond 71 * @param nCount: specifies the delay time length * @retval None */ void delay_ms( IO uint32_t num) { IO uint32_t index = 0; /* xung dong ho he thong mac dinh la 72MHz */ for(index = (720000 * num); index != 0; index ) { } } /** * @brief Main program * @param None * @retval None */ int main(void) { /* cau hinh dong ho he thong */ RCC_Configuration(); /* cau hinh cac chan xuat */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15 | GPIO_Pin_14 | GPIO_Pin_13 | GPIO_Pin_12; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOB, &GPIO_InitStructure); while (1) { GPIO_Write(GPIOB,0xC000); 72 delay_ms(3); GPIO_Write(GPIOB,0x6000); delay_ms(3); GPIO_Write(GPIOB,0x3000); delay_ms(3); GPIO_Write(GPIOB,0x9000); delay_ms(3); } } #ifdef USE_FULL_ASSERT /** * @brief Reports the name of the source file and the source line number * where the assert_param error has occurred * @param file: pointer to the source file name * @param line: assert_param error line source number * @retval None */ void assert_failed(uint8_t* file, uint32_t line) { /* User can add his own implementation to report the file name and line number, ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ /* vong lap vo han */ while (1) { } } #endif 73 Kết Luận Nghiên cứu ban đầu cho thấy kết khả quan, tạo tiền đề cho phát triển ứng dụng với ARM Cortex M3 Để phát triển đề tài này, xin đưa số ưu nhược điểm sau: Ưu, nhược điểm: Ưu điểm: Giá thành chip rẻ so với dòng chip khác với số tài nguyên ARM Tốc độ xử lý cao, ổn định Tiết kiệm lượng Số lượng tài nguyên lớn, phù hợp với nhiều ứng dụng khác Nhược điểm Nhiều ghi, câu lệnh dài, gây khó nhớ cho người dùng, dễ nhầm lẫn Thị trường ARM Việt Nam chưa rộng, gây khó việc tìm kiếm tài liệu khó khăn việc đặt mua chip, việc nghiên cứu chưa sâu Hướng phát triển: Đặt mua KIT tạo điều kiện nghiên cứu thực tế module Tạo module thực tế để tạo điều kiện thuận lợi cho sinh viên nghiên cứu thực hành với ứng dụng thực tế, dễ hình dung 74 Tài liệu tham khảo: 1/ ARM7TDMI (Rev 3)Technical Reference Manual Copyright © 19942001 All rights reserved ARM DDI 0029G 2/ The Defi nitive Guide to the ARM Cortex-M3 http://www.arm.com/ 75 ... Ứng dụng lập trình điều khiển động bước sử dụng chip ARM Cortex M3 STM32F103RC Chương TỔNG QUAN VỀ CORTEX Bộ xử lý Cortex hệ lõi nhúng từ ARM Cortex thừa kế ưu điểm từ xử lí ARM trước đó, lõi... , cơng dụng khác Với nhiều tính vượt trội ARM xu lựa chọn dòng vi điều khiển Việt Nam nên đề tài nghiên cứu khoa học này, giúp đỡ Thầy Nguyễn Huy Dũng, em thực đề tài nghiên cứu Ứng dụng lập trình. .. 63 3.5.5 USB 65 Chương LẬP TRÌNH ĐIỀU KHIỂN ĐỘNG CƠ BƯỚC SỬ DỤNG ARM- STM32F103 67 4.1 Giới thiệu Kit STM32 STM32F103 67 4.1.1 Mạch CPU 68