Ethernet.begin () chỉ hoạt động với Thẻ SD đã bị xóa - tại sao?


7

Khi tôi chạy mã này trên W5100 Ethernet Shield của mình :

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };  

void setup() {
  Ethernet.begin(mac);
}

nó chỉ hoạt động khi Thẻ SD được gỡ bỏ khỏi tấm chắn!


Tôi đã mất nhiều ngày để tìm ra lỗi này. Với Thẻ SD chỉ được cài đặt, toàn bộ thiết lập bắt đầu hoạt động:

Ethernet.begin(mac, ip, dns, gateway, subnet); 

Các tài liệu chính thứcEthernet.begin() không nói gì về vấn đề này. Tại sao nó chỉ hoạt động hoàn toàn với Thẻ SD được gỡ bỏ? Đây có phải là "lỗi tài liệu" không?


Phiên bản nào của khiên bạn có?
Kevin Mark

Nếu bạn tìm thấy câu trả lời, bạn nên đăng nó @powtac, không đặt nó trong câu hỏi của bạn. Thay vào đó hãy trả lời cho câu hỏi của riêng bạn.
Kortuk

1
@Kortuk Anh ấy đang tìm kiếm nơi nó được ghi lại / tại sao nó xảy ra, không phải là một cách giải quyết.
Polar

Bạn đang sử dụng hệ điều hành nào, @powtac?
taco

@taco Tôi đang sử dụng Win7 64 với Arduino IDE 1.0.4
powtac

Câu trả lời:


7

Theo trang Arduino Ethernet Shield :

Lưu ý rằng vì thẻ W5100 và thẻ SD chia sẻ bus SPI, mỗi lần chỉ có thể hoạt động một thẻ. Nếu bạn đang sử dụng cả hai thiết bị ngoại vi trong chương trình của mình, việc này sẽ được các thư viện tương ứng quan tâm. Tuy nhiên, nếu bạn không sử dụng một trong các thiết bị ngoại vi trong chương trình của mình, bạn sẽ cần bỏ chọn một cách rõ ràng. Để thực hiện việc này với thẻ SD, hãy đặt chân số 4 làm đầu ra và ghi mức cao cho nó. Đối với W5100, đặt chân số 10 làm đầu ra cao.

Và nếu bạn đang sử dụng phiên bản đầu tiên của bảng:

Bản sửa đổi ban đầu của tấm khiên có khe cắm thẻ SD kích thước đầy đủ; Điều này không được hỗ trợ.


Vì vậy, để sử dụng cả hai, bạn phải thay đổi trạng thái của chân 4 và 10 mỗi khi bạn chuyển đổi?
Chim cánh cụt vô danh

Nó xuất hiện như vậy. Mặc dù "việc này cần được các thư viện tương ứng quan tâm" khiến tôi tin rằng nó nên được thực hiện tự động với các lib tích hợp.
Kevin Mark


-1

Kevin Mark đã đưa ra câu trả lời rất hay tại sao lá chắn ethernet của bạn không hoạt động với SD. Dưới đây là câu trả lời phải làm gì để làm cho nó hoạt động.

Làm cách nào để tránh kết hợp Thẻ SD và W1500 SPI trên Ethernet Shield?


1
Điều này nhiều hơn dọc theo dòng bình luận và liên kết chỉ trả lời được nhăn mặt ở đây. Nếu bạn muốn đóng góp, đăng thêm thông tin và tất nhiên cung cấp ghi công.
giữ chỗ
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.