Skocz do zawartości

Esp32-S3 jako USB MSC (Mass Storage Class)


99teki

Pomocna odpowiedź

- mam ładne pudełko zamykane a w nim esp32-s3 wraz z wyświetlaczem i kartą SD card.

- na tą kartę SD są zrzucane logi, odbiór logów odbywa się co kilka godzin.

- wyjęcie karty, odczyt, zamontowanie trochę uciążliwe.

- ale przecież esp32-s3 posiada pełne wsparcie dla OTG, czemu nie zainstalować USB MSC aby pobierać dane z PC.

- do tej pory nie udało się osiągnąć sukcesu, po wgraniu oprogramowania pojawia się nowy port USB ale ten port nie jest zauważany w systemie.

- nie pojawia się dysk USB.

- może na forum ktoś wie jak podejść do tego problemu.

- ten program sprawdzał się najlepiej. https://github.com/lbernstone/SD2USBMSC

Edytowano przez 99teki
Link do komentarza
Share on other sites

(edytowany)

https://github.com/espressif/esp-idf/blob/master/examples/peripherals/usb/host/msc/main/msc_example_main.c esp s3 używałem jako kontrolera pamięci masowej zgrywał dane na pendrive. Jeśli Cię to interesuje mogę podrzucić źródła (jak znajdę) z tym że ja używam idfa  

Edytowano przez _LM_
  • Lubię! 1
Link do komentarza
Share on other sites

- z bólem ale też działam z idf-em.

- jeśli to nie problem to poproszę o żródła, dzięki

Link do komentarza
Share on other sites

Do Arduino jest też jakiś exampel, muszę poszukac bo udało mi się to zrobić ale nie do końca działało jak chciałem i kod poszedł do kosza. Dokładniej po podłaczeniu do peceta bardzo ładnie zamykał swój filesystem na flashu, eksponował zawartość dla peceta, można było wgrać, czytać, robić co chciałeś... tyle że po zakończeniu wszystkich operacji okazało się, że fatfs na flashu jest uszkodzony i nie da się z niego już nic odczytać.

  • Lubię! 1
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

(edytowany)

- miałem starą wersję IDF, zainstalowałem Eclipse oraz plugin IDF w wersji 5.2.2.

- następnie skompilowałem wersje USB MSC dla flasha., działa poprawnie tylko rozmiar flasha to 1MB.

- kolejno skompilowałem wersje USB MSC dla SD Card i taka mnie interesuje.

COM3 connected
image header(4096k). Using the size in the binary image header.(27)[(27)[0;31mE 
(6466) sdmmc_common: sdmmc_init_ocr: send_op_cond (1) returned 0x108(27)[0m

E (6466) example_main: The detection pin of the slot is disconnected(Insert uSD card). Retrying...
E (9506) sdmmc_common: sdmmc_init_ocr: send_op_cond (1) returned 0x108

E (9506) example_main: The detection pin of the slot is disconnected(Insert uSD card). Retrying...
E (12546) sdmmc_common: sdmmc_init_ocr: send_op_cond (1) returned 0x108

- oryginalna wersja jest przeznaczona dla 4-line SD Mode, przestawiłem na wersje 1-line SD Mode.

- miałem problemy z konfiguracją pinów, ponieważ oryginalne nazwy to CMD, CLK, D0.

- u mnie są nazwy SD_MOSI, SD_MISO,  SD_CS oraz SD_CLK.

- kolejne zamiany MISO z MOSI dla pinów CDM, D0 nic nie dały, komunikat jak powyżej.

- pozostał jeszcze SD_CS.

- jedna rzecz mnie martwi, w opisie podano że w trybie 1-line SD-Mode, GPIO34 musi mieć pull_up, inaczej karta SD-Card przechodzi w tryb SPI-Mode, u mnie nie ma wyprowadzonego pinu GPIO34.

 

Edytowano przez 99teki
Link do komentarza
Share on other sites

42 minuty temu, 99teki napisał:

jedna rzecz mnie martwi, w opisie podano że w trybie 1-line SD-Mode, GPIO34 musi mieć pull_up, inaczej karta SD-Card przechodzi w tryb SPI-Mode, u mnie nie ma wyprowadzonego pinu GPIO34

Nie da się przemapować na inne GPIO albo włączyć pullup programowo?

Link do komentarza
Share on other sites

(edytowany)

- dotarłem do schematu , przypisanie pinów to

DATA0 - SD_MISO

CLK - SD_CLK

CMD - SD_MOSI

DATA3 - SD_CS

- no i ten SD_CS próbuje dołączyć do programu ale zgłasza błąd że nie zadeklarowany pin i na tym poległem, nie wiem gdzie to się dodaje.

    // On chips where the GPIOs used for SD card can be configured, set the user defined values
#ifdef CONFIG_SOC_SDMMC_USE_GPIO_MATRIX
    slot_config.clk = CONFIG_EXAMPLE_PIN_CLK;
    slot_config.cmd = CONFIG_EXAMPLE_PIN_CMD;
    slot_config.d0 = CONFIG_EXAMPLE_PIN_D0;
    slot_config.d3 = CONFIG_EXAMPLE_PIN_D3;
#ifdef CONFIG_EXAMPLE_SDMMC_BUS_WIDTH_4
    slot_config.d1 = CONFIG_EXAMPLE_PIN_D1;
    slot_config.d2 = CONFIG_EXAMPLE_PIN_D2;
    slot_config.d3 = CONFIG_EXAMPLE_PIN_D3;
#endif  // CONFIG_EXAMPLE_SDMMC_BUS_WIDTH_4

#endif  // CONFIG_SOC_SDMMC_USE_GPIO_MATRIX

- chciałem do pinu d0 dodać pin d3, tak jak to jest zrobione w następnej sekcji BUS_WIDTH_4 , a tu kicha.

SD-Card.thumb.jpg.9a91562273db7b8ad54338c202b97f2b.jpg

Edytowano przez 99teki
Link do komentarza
Share on other sites

- poproszę admina o dodanie do tematu hasła Rozwiązano, niby po kliknięciu na temat pisze "kliknij i przytrzymaj aby edytować temat" ale to dla mnie nie działa.

- zainstalowano esp32 menadżer płytek w wersji 3.07, wybrano SD_MMC a potem przykład SD2USBMSC, skompilowano i program działa.

- tworzy dwa dyski USB, jeden z firmware.bin drugi z zawartością karty SC Card.

- jedyna mała wada to prędkość transferu do USB-MSC około 600 kB/s, czyli wersja USB 1.2.

2004789887_dyskiUSB-MSC.thumb.png.0a7058946a9a2d6dbf0206617d1452fd.png1073540642_Ustawieniaesp32s3.thumb.png.b3dff75f8fde8604d37ef5266d9671b0.png

 

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.