eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaNiezainicjowana karta SD miesza na magistrali SPINiezainicjowana karta SD miesza na magistrali SPI
  • Data: 2022-11-03 12:36:28
    Temat: Niezainicjowana karta SD miesza na magistrali SPI
    Od: Atlantis <m...@w...pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    Taka ciekawostka, zauważona podczas wczorajszego uruchamiania
    (opisywanej nieco wcześniej) konstrukcji odtwarzacza/radia internetowego
    na STM32F107. Po uruchomieniu FreeRTOS-a oraz lwIP zabrałem się za
    testowanie pozostałych peryferiów. Sprawdziłem m.in. czy nadal działa
    karta SD podłączone do magistrali SPI. Na tej samej magistrali pracuje
    także pamięć RAM, używana w roli bufora.

    Karta zgodnie z oczekiwaniami działa zupełnie prawidłowo - inicjuje się,
    jest widziana przez FatFS, mogę czytać jej zawartość oraz płynnie
    odtwarzać przechowywane na niej pliki MP3.

    Wszystko działało całkowicie poprawnie do momentu, gdy w ramach
    kolejnego testu zamiast karty zamontowałem pendrive'a (a więc nie była
    już wywoływana jej inicjacja). Wszystko zaczęło się psuć - odtwarzanie
    przerywało, zupełnie jakby był jakoś problem w komunikacji pomiędzy USB,
    pamięcią SPI RAM oraz VS1003 (ten ostatni układ na osobnej magistrali
    SPI). Na początku pomyślałem, że gdzieś zmniejszana jest prędkość
    transmisji na SPI, ale okazało się, że wszystko jest skonfigurowane
    poprawnie.

    Aż w końcu znalazłem winowajcę - sama karta SD pozostawiona w gniazdku
    miesza w komunikacji na magistrali, o ile nie zostanie zainicjowana.
    Jeśli jej nie ma - wszystko jest w porządku. Jeśli jest i przejdzie
    inicjację - też. Za to jeśli pozostawię ją niezainicjowaną, urządzenie
    zaczyna szwankować.

    Nigdy jeszcze nie spotkałem się z taką sytuacją, a kart SD na SPI
    używałem w wielu swoich projektach, jeszcze z czasów AVR-ów. Linia MISO
    miała ustawionego wewnętrznego pull-upa. Poza zauważeniu problemu
    dodałem jeszcze zewnętrznego 10k, ale to nie pomogło. Linia CS rzecz
    jasna jest podciągnięta do linii zasilania 3,3V rezystorem 10k, podobnie
    jak linia SD_PRESENT.

    Niby nie stanowi to dla mnie wielkiego problemu, bo docelowo karta nie
    będzie hot-swapowalna i mogę ją po prostu inicjować przy każdym starcie
    urządzenia. Zastanawia mnie po prostu potencjalna przyczyna takiego
    zachowania.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: