Arduino Polska Forum
ethernet enc28j60 + microsd [2xSPI] - Wersja do druku

+- Arduino Polska Forum (https://forum.arduinopolska.pl)
+-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino)
+--- Dział: Instalacja i rozwiązywanie problemów (https://forum.arduinopolska.pl/dzial-instalacja-i-rozwi%C4%85zywanie-problem%C3%B3w)
+--- Wątek: ethernet enc28j60 + microsd [2xSPI] (/watek-ethernet-enc28j60-microsd-2xspi)



ethernet enc28j60 + microsd [2xSPI] - Michael0 - 08-04-2018

Witam.
Próbuję podłączyć te dwa moduły [2xSPI] wg schematu: https://i.stack.imgur.com/2Szxp.png.
W momencie podłączenia obu modułów na raz, żaden z nich nie pracuje prawidłowo.


RE: ethernet enc28j60 + microsd [2xSPI] - kaczakat - 08-04-2018

Podłączanie wygląda prawidłowo. A jak wygląda kod programu? To Ty decydujesz, z którym Slavem rozmawiasz na SPI, jeden ma mieć na ten czas włączony SS w stan niski, a reszta ma mieć wysoki. Zawsze gdy Master coś nadaje, aktywny Slave robi to również, jak nie banglujesz pinami SS to gadają wszystkie lub żaden - w obu przypadkach nic nie zrozumiesz/nie działa.


RE: ethernet enc28j60 + microsd [2xSPI] - Michael0 - 08-04-2018

kod programu : https://justpaste.it/1jcoi


RE: ethernet enc28j60 + microsd [2xSPI] - kaczakat - 08-04-2018

Kod się wkleja w post, np. przez podgląd i potem wybierasz opcję <kod> z menu.
Przykład w arduino jest inny, masz 3x SD.begin(4), a uruchomienie karty robi się raz. Jak korzystasz z biblioteki to tylko podajesz którym pinem ma sterować do "gadania" z urządzeniem na SPI (właśnie tą komendą SD.begin(4)) i potem to biblioteka sama sobie radzi, nie banglujesz sam tym pinem, nie ustawiasz jako wyjścia, po prostu dla Ciebie już nie istnieje.


RE: ethernet enc28j60 + microsd [2xSPI] - Robson Kerman - 09-04-2018

(08-04-2018, 20:20)kaczakat napisał(a): Przykład w arduino jest inny, masz 3x SD.begin(4), a uruchomienie karty robi się raz.

Metoda begin zwraca wartość typu bool, jeśli inicjalizacja zakończyła się sukcesem, więc użyto ją właściwie.
Plik SD.cpp linia 240: "Return true if initialization succeeds, false otherwise."


Problem polega na tym, że użycie jednocześnie tych bibliotek powoduje utratę pakietów i wygląda jak by nie działała karta ethernet, albo karta SD i nie jesteśmy w stanie stwierdzić co nie działa.
Jean-Claude Wippler, twórca biblioteki ethercard, wie o problemie, ale nie wie jak go rozwiązać i raczej nie zanosi się aby to razem zagrało.

Użyj tinyfat, sprawdzone, działa.
https://github.com/lucianbrandabur/Arduino-Reef/tree/master/libraries/tinyFAT