Site icon TAPIT

Các chế độ hoạt động của QSPI Flash và thư viện quadspi

Bộ nhớ QSPI Flash mở rộng có thể được giao tiếp một cách gián tiếp thông qua các HAL API hoặc vi xử lý có thể xem QSPI Flash là một phần của bộ nhớ và truy cập sử dụng trực tiếp được bộ nhớ này tương tự bộ nhớ Flash tích hợp. Bài viết này sẽ cung cấp thông tin về các chế độ hoạt động của QSPI Flash và hướng dẫn hiệu chỉnh thư viện quadspi để có được những hàm khởi tạo chế độ hoạt động phù hợp và các hàm đọc ghi giúp làm việc với vùng nhớ mới này.

Nội dung cần đọc qua trước:
Các bài viết liên quan nên đọc trước:
IC nhớ FLASH,SDRAM và mô hình bộ nhớ của vi điều khiển khi sử dụng bộ nhớ ngoài
Sử dụng Linker Script trong khai báo, cấu hình sử dụng bộ nhớ ngoài -VĐK STM32 
Mở rộng bộ nhớ STM32 với QSPI Flash MT25QL128: Ghép nối phần cứng, cấu hình ngoại vi

1. Các chế độ hoạt động của QSPI Flash

Trước khi bộ nhớ QSPI Flash được sử dụng với các tao tác đọc ghi, người sử dụng cần hiểu về hai cách sử dụng chủ yếu của QSPI Flash. 

1.1. Giao tiếp với QSPI Flash thông qua các HAL API (INDIRECT MODE – CHẾ ĐỘ GIÁN TIẾP)

Hình 1: Đọc QSPI Flash bằng các HAL API

1.2. Chế độ Memory mapped

Hình 2: Quy tắc làm việc của chế độ Memory mapped

1.3. Nâng cao: Execute In Place (XIP)

2. Hiệu chỉnh thư viện “quadspi” cho bộ nhớ QSPI Flash

Dù ở bất kì mode nào, thì ta đều phải thêm các hàm vào 2 file “quadspi.h” và “quadspi.c”. Mặc định khi mới sinh code, các file này chỉ chứa các hàm khởi tạo cơ bản như:

Các hàm trên chỉ có tác dụng khởi tạo ngoại vi qspi trong vi điều khiển. Giờ ta phải thêm vào các hàm để khởi tạo các chế độ phù hợp cho chip QSPI Flash cũng như các hàm để đọc/ghi đối với QSPI Flash. Một số các hàm thêm vào như sau:

Việc trình bày chi tiết định nghĩa hàm trong bài viết này sẽ quá dài. Chính vì thế, tác giả xin gửi đến người đọc 2 nguồn tham khảo để tải các file được viết sẵn:

Lưu ý: Nếu bạn đọc cũng đang dùng kit STM32F746 DISCO với chip nhớ MT25QL128 thì cần phải sửa một số vị trí để đọc được dữ liệu chính xác:

Phần tiếp theo của bài viết này sẽ cung cấp các thông tin về File external loader cho QSPI Flash và các thực nghiệm đọc dữ liệu từ bộ nhớ QSPI Flash. Chúc các bạn thành công!

Tài liệu tham khảo:
[1]https://www.youtube.com/watch?v=gAyuF20ok8c

[2]https://github.com/controllerstech/STM32 
[3]https://www.elprotronic.com/products/flashpro-m-x2s

Nhóm tác giả
Ng.Q.Phương
Ng.H.Phúc
Ng.H.N.Thương