Thiết bị tôi đang phát triển là một tiện ích lưu trữ thẻ SD cho máy tính retro, thẻ SD SanDisk Ultra II 1.0 GB trong ổ cắm thẻ SD (Tôi không biết thương hiệu này có quan trọng không, nó chỉ là thứ tôi có) .
Thẻ SD là thiết bị duy nhất trên xe buýt SPI; bộ dịch mức đảm bảo thẻ được cấp tín hiệu ở mức 3,3 V; MISO cung cấp thông qua chuyển đổi xe buýt sang một GPU 3,3 V. FPGA thực hiện cơ chế thanh ghi dịch chuyển có xung nhịp, đồng hồ tám lần, chuyển dữ liệu đầu ra sang MOSI và thu thập dữ liệu đầu vào từ MISO.
Nhiều thiết bị gắn vào nhiều máy tính hoạt động tốt.
Tôi sử dụng chế độ SPI. Tôi kích hoạt thẻ, tăng tốc lên 4 MHz và gửi lệnh đọc khối đơn.
Tôi quan sát thấy rằng byte dữ liệu đầu tiên được trả về thỉnh thoảng có lỗi một bit. Thông thường bit 0 được đặt khi không nên, nhưng tôi cũng đã thấy bit 1 được đặt khi không nên. Tất cả các byte khác là hoàn toàn chính xác, luôn luôn.
Nhiều thiết bị đã được thử nghiệm gắn vào nhiều máy tính chủ. Vấn đề chỉ được nhìn thấy với một thiết bị gắn vào một máy tính. Thiết bị hoặc máy tính hoạt động tốt với các máy tính hoặc thiết bị khác.
Tôi nghi ngờ lỗi thời gian trong mã trình điều khiển của mình, nhưng tôi chắc chắn rằng tôi đã thực hiện tám chu kỳ đồng hồ (gửi 0xFF
, đọc byte dữ liệu đầu tiên) trước khi tôi đọc nó.
Tôi đang tự hỏi, điều này có thể liên quan đến mức điện áp hoặc mức hiện tại, có thể khác nhau một cách tinh tế tùy thuộc vào thiết bị hoặc máy tính?
Tôi đang tự hỏi, một thẻ SD đột nhiên cần rút thêm dòng điện, giống như khi nó bắt đầu xuất dữ liệu?