Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

STM32F4 BET - FATFS+ SDIO + DMA

tadzik85 23 Feb 2014 18:30 1911 2
  • #1
    tadzik85
    Level 38  
    Do działającej konfiguracji FATFS z SDIO zapragnąłem dodać obsługę DMA będąc twardym gdyż 1 raz go używam.
    Jednak nie działa to jak powinno. Przeanalizowałem już wszelkie pomysły i do nowych niestety nie doszedłem.

    Kod funkcji read:
    Code: c
    Log in, to see the code

    Definicje:
    Code: c
    Log in, to see the code


    W trybie polling wszystko gra. W trybie DMA niestety nie...

    Funkcja f_mount zwraca brak systemu plików.
    Jakieś pomysły?

    Ostatni test... Niezależnie od systemu plików porównałem odczyty sektora obiema metodami, są identyczne , więc odczyt działa poprawnie...
  • #2
    Freddie Chopin
    MCUs specialist
    Jedyne co mogę doradzić, to aby przed każdą re-konfiguracją DMA wyjątkowo dokładnie dany kanał wyłączyć. Gdy używałem DMA w STM32F1, to często coś nie chciało działać jeśli przed re-konfiguracją nie wyzerowałem całkowicie rejestru CCR (jest w nim bit "enable") - może sprawdź u siebie coś takiego? U Ciebie może to nic nie dać, bo widzę że ten akurat bit zeruje się sam...

    Może pewną opcją byłoby odwrócenie kolejności - najpierw włącznie DMA w SDIO, potem włącznie DMA, potem rozpoczęcie transmisji?

    No i zawsze można popatrzeć co tam ciekawego w SPLu robią gdy używają DMA...

    4\/3!!
  • #3
    tadzik85
    Level 38  
    Na wyłączenie DMA czekam w funkcji. Reszta rejestrów zapisywana na wprost za każdym razem. EN wyłącza się sam.
    Kolejności próbowałem różne.
    SPL podglądnięty.

    DMA widać zadziałało bo EN się zeruje a licznik zmniejsza się o 128 czyli ok.

    Martwi mnie jedynie ewentualność niewyrównania adresu docelowego do 4...

    Dodano po 1 [godziny] 1 [minuty]:

    Ruszyło, Zdaje się ze to jakieś zewnętrzne problemy...:/
    Czytnik SD albo kabelek do niego (chińszczyzna za 5 zł)

    Zamykam, można odkleić a nawet usunąć.