Vâng, tôi đã bị mắc kẹt trong thời gian này, có thể 2-3 tuần tại thời điểm này. Tôi chỉ không chắc chắn những gì tôi đang làm sai. Tôi đang cố gắng viết cho phần flash spi này , và bây giờ tôi chỉ đang chạy các thói quen để xóa, viết và đọc để cố gắng cô lập nó nhưng cho đến nay không gặp may. Tất nhiên tôi đã giải quyết được một loạt lỗi trên đường đi ...
Dù sao, tôi đã có dòng WP của mình được gắn cao trên bảng và tôi đã giảm tốc độ đồng hồ xuống 200khz, sau đó tôi chạy thói quen xóa của mình và nó trông như thế này:
Đầu tiên tôi kiểm tra ID chỉ để gỡ lỗi, đó là lệnh 9F, sau đó tôi đặt WREN với lệnh 06, C7 là toàn bộ xóa chip, và sau đó tôi kiểm tra bit trạng thái với 05 và nó rõ ràng. Thời gian xóa chip của điều này chỉ là 35ms.
Bây giờ tôi tải lại mã của mình và thử viết:
Đầu tiên tôi đặt WREN với 06, kiểm tra trạng thái để xem WREN được đặt với 05, sau đó gửi lệnh chương trình trang 02 đến địa chỉ 0x000000. Bạn có thể thấy tôi đang viết deadcafe như một vài bit đầu tiên. Cũng không được hình ở đây là sau khi ghi xong (một trang hoặc 256 byte), tôi gửi lệnh 0x04 để tắt WREN. Tôi đã quan sát điều đó và tôi đã đặt bốn byte cuối cùng của bộ đệm trang của mình là 0xAA, 0x55, 0xAA, 0x55 và tôi đã thấy chúng ngay trước khi CS lên cao.
Bây giờ hãy dừng tải lại mã và thử chạy chu trình đọc: Gửi 0x03 làm lệnh đọc và 0x000000 làm địa chỉ và ... tất cả 0xFF trở lại từ thiết bị.
Tôi có thể thấy thiết bị phản hồi ID đọc của mình và đặt các lệnh WREN để tôi biết thiết bị nghe thấy tôi và có thể phản hồi. Tôi không biết những gì tôi đang làm sai ở điểm này. Tôi đoán tôi sẽ quay lại đọc bảng dữ liệu và thử một số thứ nhưng nếu có ai hiểu rõ tôi sẽ đánh giá cao sự giúp đỡ. Nó định hình là một cuối tuần bực bội khác làm việc này.