Dường như không thể viết cho spi flash


9

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:

nhập mô tả hình ảnh ở đâ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:

nhập mô tả hình ảnh ở đây Đầ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: nhập mô tả hình ảnh ở đây 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.


10
Và ... tôi đã hiểu ra rồi. Nếu tôi có một đô la cho mỗi lần tôi tìm ra thứ gì đó sau khi cuối cùng cũng đủ tuyệt vọng để gửi đi đâu đó để được giúp đỡ. Hóa ra có một lệnh 0x98 khác gọi là Mở khóa toàn cầu, không được đề cập trong các phần về kích hoạt ghi hoặc lập trình ... Dù sao, thêm vào đó trước lệnh WREN của tôi và nó đã hoạt động. xin lỗi vì đã làm phiền
bối rối

10
Thêm nhận xét của bạn như một câu trả lời và chấp nhận nó.
geometrikal

Đồng ý với @geometrikal rằng bạn nên trả lời câu hỏi của riêng bạn. Tôi không có gì ngoài rắc rối với giao diện PIC SPI; cho cùng một lý do chính xác: tài liệu.
Người dùng.1 22/2/2015

2
Chào! Bạn đã đăng một câu hỏi hay về một năm trước và sau đó đăng một câu trả lời hay trong các bình luận. Nhưng câu hỏi vẫn đang hiển thị ở đầu danh sách "Chưa trả lời"! Vui lòng sao chép ý kiến ​​của bạn vào câu trả lời và đánh dấu là "Đã chấp nhận". Bằng cách này, nó sẽ được quản lý một cách chính xác chúng tôi có thể nâng cao câu trả lời của bạn :)
bitsmack

1
@ bối rối xin vui lòng gửi câu trả lời của bạn và đánh dấu nó là đã trả lời để chúng tôi có thể đóng câu hỏi, Cảm ơn
Điện áp Spike

Câu trả lời:


3

Tôi chỉ ghét rằng điều này vẫn đứng đầu danh sách 'chưa được trả lời', vì vậy tôi sẽ trả lời.

Như đã nêu trong các nhận xét của 'nhầm lẫn', có một lệnh gọi là 'Mở khóa toàn cầu' phải được thực thi trước khi ghi vào phần flash.


1
Bạn nên chấp nhận câu trả lời của mình, nếu không câu hỏi này sẽ vẫn được đánh dấu là "chưa được trả lời".
Étienne
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.