Thứ Bảy, 1 tháng 12, 2018

Bài 9. Trình tải khởi động phụ USB LPC1768 Cortex-M3

USB Bootloader thứ cấp LPC1768 Cortex-M3 là một thủ thuật tuyệt vời mà người ta có thể sử dụng để lập trình Vi điều khiển qua USB mà không cần sử dụng bất kỳ bộ chuyển đổi phần cứng / bộ điều hợp JTAG nào. NXP đã cung cấp bộ nạp khởi động phụ USB làm chương trình mẫu cùng với ghi chú ứng dụng của nó về cách sử dụng lớp thiết bị lưu trữ khối. Chúng tôi sẽ tập trung vào ứng dụng của nó. Bạn sẽ cần Keil µVision4 để biên dịch mã. Bạn có thể tải xuống toàn bộ dự án từ đây Trình tải  khởi động phụ USB LPC1768 Cortex-M3 .

Bootloader là gì?

Trình tải khởi động là một ứng dụng có mục đích chính là cho phép cập nhật phần mềm hệ thống mà không cần sử dụng bất kỳ phần cứng chuyên dụng nào như Lập trình viên JTAG. Trong một số trường hợp, nó cũng có thể là điểm sớm nhất mà tại đó tính toàn vẹn của một hệ thống nhúng có thể được kiểm tra. Trình tải khởi động quản lý hình ảnh hệ thống. Họ có thể giao tiếp qua nhiều giao thức như USART, USB, CAN, SPI, I2C và danh sách tiếp tục cho nhiều giao thức tồn tại. Các hệ thống có bộ nạp khởi động có ít nhất hai ảnh chương trình cùng tồn tại trên cùng một vi điều khiển. Nó phải bao gồm mã chi nhánh thực hiện kiểm tra để xem có đang cố gắng cập nhật phần mềm hay không.

Tại sao bạn sử dụng bộ nạp khởi động USB?

Bootloader không phải là một ý tưởng mới; trong thực tế bootloading & bootstrapping là các kỹ thuật rất phổ biến được sử dụng trong các hệ thống nhúng từ những năm 1950. Là nhà phát triển phần mềm nhúng, bạn thường sử dụng kỹ thuật này để cập nhật chương trình cơ sở khi thiết bị của bạn nằm trong sản phẩm cuối cùng. Như JTAG Debugger đã làm việc khá tốt nhưng nó cần một cổng song song mà hầu hết các máy tính xách tay bao gồm cả thiếu sót của riêng tôi. Cũng tải mã vào LPC1768 ARM Cortex-M3 qua cổng nối tiếp là quá trình chậm chạp. Thay vào đó LPC17xx thuận tiện hỗ trợ giao diện thiết bị USB có thể được sử dụng để khởi động.

Làm thế nào để bạn sử dụng USB Bootloader phụ?

Trước hết, chúng ta cần lập trình tệp hex từ dự án Trình tải khởi động phụ của USB. Chúng ta có thể làm điều này bằng cách sử dụng JTAG Programmer hoặc cổng nối tiếp (UART0 ISP Mode). Mã bộ nạp khởi động sẽ khi RESET kiểm tra trạng thái của một số pin nhất định và quyết định xem có nhập vào chế độ bộ nạp khởi động hay thực thi mã người dùng hay không. Nếu bạn có bảng phát triển thì bạn phải nhấn nút RESET, sau đó chuyển sang ISP (kết nối với pin P2.10). Và bạn sẽ nhanh chóng nhận thấy rằng bảng của bạn sẽ phát hiện như một thiết bị lưu trữ USB. Ý tưởng là để nắm bắt tình trạng của pin P2.10 (không ngay lập tức sau RESET nhưng sau một khoảng cách của một hoặc hai giây). Bây giờ chỉ cần sao chép hình ảnh nhị phân của phần mềm vi điều khiển mới nhất (tệp .bin) vào ổ đĩa mới được phát hiện. Sau đó, bạn chỉ cần nhấn nút RESET và bạn đã hoàn tất. Bạn sẽ thấy rằng vi điều khiển của bạn thực thi phần sụn mới nhất trên thiết bị.

Vui lòng xem phần trình diễn video này. Chúng tôi đã chỉ ra từng bước một, làm thế nào để cập nhật firmware của vi điều khiển bằng cách sử dụng USB Bootloader thứ cấp LPC1768 Cortex-M3.


Bây giờ bạn đã biết mọi thứ về bộ nạp khởi động USB thứ cấp trong LPC1768 Bộ vi điều khiển Cortex-M3. Hãy thử nghiệm với mã và vui chơi.

Không có nhận xét nào:

Đăng nhận xét

Bài đăng mới nhất

14. I2C trong LPC2148 vi điều khiển ARM7

Trong bài này, chúng ta sẽ tìm hiểu về cách lập trình I2C trong LPC2148 ARM7 Microcontroller.  Ngoài ra, chúng tôi sẽ giao diện nối tiếp EE...