Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Europejski lider sprzedaży techniki i elektroniki.
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

STM32F769 DISCO - Karta SD nie mogę zapisać nic na kartę.

masterix07 03 Paź 2016 09:59 1086 17
  • #1 03 Paź 2016 09:59
    masterix07
    Poziom 3  

    Witam wszystkich,

    mam stm32f7 disco. Chciałbym ogarnąć temat Karty uSD. I męczę się z tym któryś już dzień i mi nie wychodzi... Używam cuba doi generowania kodu. Karta jest po SDMMC. Używam FATFs. I ciągle nie mogę nic na kartę zapisać.. W plikach wygenerowanych z Cuba nic nie zmieniam, dopisuje tylko w main.c wydaje mi się poprawną obsługe. Jakieś pomysły?

    Tu wklejam kod:

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0 17
  • #2 03 Paź 2016 10:48
    atom1477
    Poziom 43  

    Czy gdzieś w kodzie wywołujesz funkcję disk_timerproc?

    0
  • #3 03 Paź 2016 12:53
    masterix07
    Poziom 3  

    Nie nic takiego nie mam chyba. Zauważyłem że jak odpalam debbuger to to nie wykonuje sie nic z main.. a jak przerywam to wbija mi w hardfault_handlera.. wiesz może dlaczego ?

    0
  • #4 03 Paź 2016 13:12
    atom1477
    Poziom 43  

    Bez wywoływania tej funkcji fatfs nie wykona żadnej operacji.
    Co do debuggera to nie wiem.

    0
  • #6 03 Paź 2016 14:14
    atom1477
    Poziom 43  

    A mi nie wyskakuje. Wspomóż się tym.

    0
  • #7 03 Paź 2016 15:09
    masterix07
    Poziom 3  

    tym tzn? ja nic nie widzie u ciebie w poście.
    Wydaje mi się że STM karty nie widzi bo jak użyłem poniższej funkcji wyskoczył mi FR_DISK_ERR


    Kod: c
    Zaloguj się, aby zobaczyć kod


    A wyskakuje ci warning
    Kod: csharp
    Zaloguj się, aby zobaczyć kod

    0
  • #8 03 Paź 2016 15:30
    atom1477
    Poziom 43  

    masterix07 napisał:
    tym tzn? ja nic nie widzie u ciebie w poście.

    Tym że u mnie działa.
    To jest taka sama ilość informacji jak w Twoich postach do tej pory.

    Napisałeś:
    masterix07 napisał:
    teraz wyskakuje mi błąd FR_NOT_READY

    A to nic nie mówi. Bo co to znaczy teraz?
    Po resecie układu?
    Po włożeniu innej karty?
    Po zmienieniu czegoś w kodzie?
    Po dodaniu wywołania funkcji disk_timerproc? Bo pisałem że bez niej nie zadziała.
    Więc jakoś się ustosunkuj do tego. Albo to dodaj. Albo olej, ale chociaż napisz że olewasz. Żeby się tutaj nikt nie musiał domyślać co robisz.
    Bo jak mamy Ci pomóc skoro nie udzielasz prawie żadnych informacji.

    0
  • #9 07 Paź 2016 12:04
    masterix07
    Poziom 3  

    Możesz mi powiedzieć co to za funkcja ta disk_timerproc? Ją generuje cube? Bo ja jej nie mam..


    Próbuje to zrobić na rejestrach. Ktoś ma jakieś materiały które pozwolą mi zrozumieć jak to działa na rejestrach itd? Oprócz RM Bo nad nim aktualnie siedzę.

    Dużo rejestrów jest tylko do odczytu i tak się zastanawiam które z nich muszą się znaleźć w konfiguracji początkowej.
    moja konfiguracja na razie wygląda tak.

    Kod: c
    Zaloguj się, aby zobaczyć kod


    No i pytanie takie. czy moge coś wysłać na karte bez FATFs? Chodzi mi o to że do tej pory widziałem tylko jak ktoś coś zapisywał na karcie w .txt dzięki FatFs własnie. A jak to zrobić bez tego ?

    0
  • #10 07 Paź 2016 12:21
    atom1477
    Poziom 43  

    U mnie funkcja disk_timerproc jest w pliku diskio.c wygląda tak:

    Kod: c
    Zaloguj się, aby zobaczyć kod

    Plik diskio nie jest bezpośrednią częścią FatFs ale jest z nim dostarczany w przykładach dla różnych procków. I może się inaczej nazywać.
    Np. w starym przykładzie dla AVR ten plik nazywał się mmc.c (ale zawartość funkcji disk_timerproc była prawie identyczna).

    Można coś wysłać na kartę i bez FatFs. Ale FatFs obsługuje system plików. Bez tego albo zapiszesz krzaki na karcie (przy okazji uszkadzając poprzednie pliki), albo będziesz musiał samemu napisać obsługę systemu plików (Odradzam, kiedyś pisałem. Setki godzin pracy a nie uzyskałem nawet funkcjonalności podobnej do tej z FatFs, o wygodzie użytkowania nie wspominając).

    0
  • #11 07 Paź 2016 12:55
    masterix07
    Poziom 3  

    A jaka masz wersje? Bo ja mam 1.3.0 i nie mam w disko tego.. ani podobnego..

    poniżej masz listing tego pliku

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0
  • #12 07 Paź 2016 12:57
    atom1477
    Poziom 43  

    To nie zależny od wersji bo ten plik nie jest częścią FatFs.
    Ale skoro pytasz to mam wersję R0.12b (z 2016 roku) oraz jakąś inną z 2008 roku i w przykładach na uC do obu z tych wersji jest ta funkcja.

    0
  • #13 07 Paź 2016 13:51
    masterix07
    Poziom 3  

    A mogłbyś podesłać swoje pliki od FatFs? Bo może na tych zadziała.

    0
  • #15 09 Paź 2016 18:59
    masterix07
    Poziom 3  

    a no widzisz... a ja po SDMMC i kurde nie moge ogarnąć.,.

    0
  • #16 10 Paź 2016 03:03
    rb401
    Poziom 30  

    masterix07 napisał:
    a ja po SDMMC i kurde nie moge ogarnąć.,.


    Na Twoje DISCO jest jakiś przykład (JPEG) w repozytorium CubeMX. Użycie SD + FatFS.
    Co prawda użyty tylko odczyt ale może tam upewnisz się czy dobrze konfigurujesz Fatfs.

    0
  • #17 10 Paź 2016 07:57
    masterix07
    Poziom 3  

    Możesz coś więcej powiedzieć bo jestem początkujący w CubeMX? Bo nie wiem w sumie o jakich przykładach mówisz :)

    0
  • #18 10 Paź 2016 16:52
    rb401
    Poziom 30  

    masterix07 napisał:
    Możesz coś więcej powiedzieć bo jestem początkujący w CubeMX? Bo nie wiem w sumie o jakich przykładach mówisz


    Wejdź na chwilę do CubeMX, do Help->Updater Settings i podglądnij gdzie u Ciebie jest Repository Folder. Odszukaj ten folder i prawdopodobnie (jeśli robiłeś projekt na Twój DISCO) jest tam folder(y) z nazwą z F7. Tam znajdziesz aktualną wersję HAL i CMIS oraz Middleware (w tym np. Fatfs). Oraz dużo przykładowych programów przejrzyście pogrupowanych i gotowych do kompilacji pod różne IDE.

    Tam np. pod nazwą Twojego DISCO są Examples i w nich przykład "JPEG" gdzie masz FatFs plus karta SD w trybie SDMMC.

    Jeśli nie masz tego folderu to uruchom w CubeMX Updater zrób Check i każ mu ściągnąć najnowszą wersję pod F7.
    Te zasoby, alternatywnie można sobie ściągnąć zupełnie osobno od STM ale z CubeMX jest dużo wygodniej (logowanie na STM, odzipowanie itd.) a poza tym CubeMX i tak potrzebuje mieć te zasoby w momencie generacji źródeł. Tzn. driverów i middleware.

    0
TME logo Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME
TME Logo