Tiết kiệm bộ nhớ RAM khi ghi vào kích thước trang 2K flash NAND


10

Tôi đang viết một trình điều khiển cho Samsung K9WAG08U1D NAND flashchip. Thông số kỹ thuật của chip bộ nhớ đề cập đến nó có kích thước trang là 2048 byte (2kB). Tôi đang sử dụng một TI MSP430F2619cái có 4096 Byte (4kB) RAM. Điều này có nghĩa là tôi cần phân bổ bộ nhớ 2k chỉ để ghi vào flash. Ứng dụng của tôi là một trình chuyển đổi giao thức và do đó cần có bộ đệm bổ sung để xử lý truyền qua lại. Vui lòng gợi ý cho tôi cách tiếp cận tốt hơn để giảm yêu cầu RAM do kích thước trang flash.

Câu trả lời:


7

Bạn không cần phải điền vào trang đăng ký tất cả trong một lần.

Bạn bắt đầu viết trang (tức là thao tác "Chương trình trang") bằng cách viết lệnh Nhập dữ liệu nối tiếp ( 0x80), địa chỉ cột và địa chỉ hàng. Sau đó, bạn chuyển dữ liệu vào thanh ghi trang (tối đa 2112 byte). Việc chuyển tiền này có thể được chia thành các phần, với bất kỳ độ trễ nào giữa các phần bạn cần.

Khi bạn đã điền vào thanh ghi trang, bạn bắt đầu chuyển từ thanh ghi trang sang mảng bằng lệnh Xác nhận chương trình trang ( 0x10).


xin lưu ý rằng đèn flash NAND thường được giới hạn ở 4 lần ghi một phần trên mỗi trang

1
@Jacen Tôi không đề cập đến việc viết một phần trên mỗi trang. Điều đó được thực hiện bởi một chuỗi lệnh / địa chỉ / dữ liệu / lệnh riêng biệt cho mỗi phần. Tôi đang đề cập đến việc chia nhỏ việc chuyển sang thanh ghi trang, có thể là một "chunk" trên mỗi byte nếu cần thiết.
Patrick

Về cơ bản logic trình điều khiển hiện tại của tôi đang chờ cho toàn bộ bộ đệm 2K trong RAM được lấp đầy và sau đó ghi vào flash. Nhưng bây giờ tôi cũng có thể có bộ đệm RAM tối thiểu 1 byte.

Ồ vâng, bạn đúng Patrick, tôi quên tùy chọn này.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.