eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronika › Niezainicjowana karta SD miesza na magistrali SPI
Ilość wypowiedzi w tym wątku: 7

  • 1. Data: 2022-11-03 12:36:28
    Temat: Niezainicjowana karta SD miesza na magistrali SPI
    Od: Atlantis <m...@w...pl>

    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.


  • 2. Data: 2022-11-03 12:40:32
    Temat: Re: Niezainicjowana karta SD miesza na magistrali SPI
    Od: Dawid Rutkowski <d...@w...pl>

    A jak się "inicjuje" kartę SD?
    ZTCP to SD ma minimum dwa (a chyba nawet 3, ale może te 2 to dwa "podtryby") tryby
    pracy - emulacja
    MMC, czyli "zwykłe" SPI, oraz SD.
    Ale nie wiem, który z tych trybów jest aktywny po włączeniu zasilania.
    "Logicznie" byłoby, gdyby SPI - bo po coś jest ta emulacja MMC - ale może jednak SD?


  • 3. Data: 2022-11-03 18:38:22
    Temat: Re: Niezainicjowana karta SD miesza na magistrali SPI
    Od: Atlantis <m...@w...pl>

    On 3.11.2022 12:40, Dawid Rutkowski wrote:

    > Ale nie wiem, który z tych trybów jest aktywny po włączeniu zasilania.
    > "Logicznie" byłoby, gdyby SPI - bo po coś jest ta emulacja MMC - ale może jednak
    SD?

    Właśnie też o tym pomyślałem w pierwszym momencie, ale:
    1. Kart SD na SPI używam w swoich projektach od lat, a dopiero teraz
    udało mi się zaobserwować takie zachowanie.
    2. Coś mi trudno uwierzyć, że w wiodącym standardzie nośników pamięci
    takie nieprzewidywalne zachowanie mogłoby przejść w specyfikacji. Nie
    mówię, że karta musi startować w trynie SPI, jednak niech przynajmniej
    zostanie ten podstawowy punkt wspólny - trzymanie magistrali w stanie
    wysokiej impedancji tak długo, jak linia CS jest w stanie wysokim.


  • 4. Data: 2022-11-03 18:41:06
    Temat: Re: Niezainicjowana karta SD miesza na magistrali SPI
    Od: heby <h...@p...onet.pl>

    On 03/11/2022 18:38, Atlantis wrote:
    > 1. Kart SD na SPI używam w swoich projektach od lat, a dopiero teraz
    > udało mi się zaobserwować takie zachowanie.

    Czy sprawdzałeś aby kartę w nowym standardzie, jak XD czy HC? Mimo
    róznych zapewnień, te karty zachowuja się bardzo niestabilnie w starych
    urządzeniach. I to raczej nie z powodu pojemności.


  • 5. Data: 2022-11-03 21:17:45
    Temat: Re: Niezainicjowana karta SD miesza na magistrali SPI
    Od: Marek <f...@f...com>

    On Thu, 3 Nov 2022 18:38:22 +0100, Atlantis <m...@w...pl>
    wrote:
    > 2. Coś mi trudno uwierzyć, że w wiodącym standardzie nośników
    > pamięci
    > takie nieprzewidywalne zachowanie mogłoby przejść w specyfikacji.
    > Nie
    > mówię, że karta musi startować w trynie SPI, jednak niech
    > przynajmniej
    > zostanie ten podstawowy punkt wspólny - trzymanie magistrali w
    > stanie
    > wysokiej impedancji tak długo, jak linia CS jest w stanie wysokim.

    Jeśli dobrze pamiętam to zgodnie ze specyfikacją linia CS jest
    aktywna dopiero po zainicjowaniu trybu SPI. A inicjalizacja trybu SPI
    (który nie jest domyślny) wymaga CS=1 i pewnej sekwencji SCK.
    Zatem jeśli kartę nie zainicjujesz a host z innym urządzeniem na tym
    samym SPI zacznie generować SCK to karta może się wtrącić na linii
    MISO z CS=1

    --
    Marek


  • 6. Data: 2022-11-04 09:11:24
    Temat: Re: Niezainicjowana karta SD miesza na magistrali SPI
    Od: Dawid Rutkowski <d...@w...pl>

    czwartek, 3 listopada 2022 o 18:38:38 UTC+1 Atlantis napisał(a):
    > On 3.11.2022 12:40, Dawid Rutkowski wrote:
    >
    > > Ale nie wiem, który z tych trybów jest aktywny po włączeniu zasilania.
    > > "Logicznie" byłoby, gdyby SPI - bo po coś jest ta emulacja MMC - ale może jednak
    SD?
    > Właśnie też o tym pomyślałem w pierwszym momencie, ale:
    > 1. Kart SD na SPI używam w swoich projektach od lat, a dopiero teraz
    > udało mi się zaobserwować takie zachowanie.
    > 2. Coś mi trudno uwierzyć, że w wiodącym standardzie nośników pamięci
    > takie nieprzewidywalne zachowanie mogłoby przejść w specyfikacji. Nie
    > mówię, że karta musi startować w trynie SPI, jednak niech przynajmniej
    > zostanie ten podstawowy punkt wspólny - trzymanie magistrali w stanie
    > wysokiej impedancji tak długo, jak linia CS jest w stanie wysokim.

    Hehe, wiodącym, przecież wiadomo, czemu jest "wiodący" - bo najtańszy - a to ma swoją
    cenę ;>
    Może do tej pory używałeś kart MMC?
    Tak czy siak - własnie po to pytałem, "jak się inicjalizuje" - może być na poziomie
    kodu.
    Kto wie, co tam jest za pomysł - a może być pokrętny, tak jak napisal Marek.
    Bo SD to nie jest SPI.
    Że ew. może emulować, to oznacza tylko tyle, ze będzie SPI, ale dopiero po wlączeniu
    tego trybu.


  • 7. Data: 2022-11-04 10:22:44
    Temat: Re: Niezainicjowana karta SD miesza na magistrali SPI
    Od: MKi <...@...com>

    W dniu 2022-11-03 o 12:36, Atlantis pisze:
    > ...
    > karta SD podłączone do magistrali SPI. Na tej samej magistrali pracuje
    > także pamięć RAM, używana w roli bufora.

    Jeśli karta SD ma być wyjmowana to jest według mnie kiepski pomysł.
    Wypadałby założyć, że do gniazda karty włożysz cokolwiek,
    w szczególności zepsutą kartę (np. ze zwartymi wyprowadzeniami).

    To natychmiast kładzie komunikację z pamięcią RAM i całe urządzenie
    nie działa.

    Pozdrowienia,
    MKi



strony : [ 1 ]


Szukaj w grupach

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: