Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Ulepszanie ESP8266 do 4MB pamięci

Chumanista 05 Sie 2016 19:42 3528 15
  • #1 05 Sie 2016 19:42
    Chumanista
    Poziom 13  

    Cześć!
    Nagrałem filmik jak wymienić pamięć w ESP8266 na największą obsługiwaną - 4MB.
    Mam nadzieję że komuś pomoże:

    Link

    0 15
  • #2 05 Sie 2016 20:34
    excray
    Poziom 39  

    Dziwne. Ostatnio czytałem wypowiedź kolegi z tego forum, który przypadki częstych "padów" kości pamięci tłumaczył tym, że ESP tworzy na flashu swoją własną strukturę danych i naruszenie tej struktury powoduje błąd sygnalizowany jako uszkodzenie kości flash. Tymczasem Ty wlutowujesz czysty nie sformatowany w żaden sposób flash i układ wstaje i działa bezproblemowo. Ciekawa sprawa.

    0
  • #3 05 Sie 2016 20:45
    Chumanista
    Poziom 13  

    Stawiam na to że ja używam jej z Ardiuno IDE w ten sposób że wymuszam uruchomienie układu z UART i wgrywam kod, a kolega używał jakiegoś NodeMCU czy innego takiego wytworu.
    W mojej wersji we flashu jest przechowywany wyłącznie skompilowany kod, nic nie zostaje pomiędzy zaprogramowaniami.

    0
  • #4 05 Sie 2016 20:47
    excray
    Poziom 39  

    Chumanista napisał:
    a kolega używał jakiegoś NodeMCU

    To się zgadza - kolega ten używa NodeMCU.

    0
  • #5 05 Sie 2016 20:56
    Chumanista
    Poziom 13  

    No to ono we flashu trzyma cały interpreter LUA i system plików we flashu. A ja tylko program.

    0
  • #7 05 Sie 2016 21:56
    excray
    Poziom 39  

    Kolego a może znasz stronkę gdzie od podstaw jest napisane jak skonfigurować arduino pod pracę z ESP? Właśnie sobie pobrałem arduino ale w narzędzia->płytka nie mam esp i tak trochę się motam. Pobrałem bibliotekę Arduino-master z githuba, ale próba wrzucenia przez "pokaż zip" nic nie daje, a ręczne jej wklejenie do folderu libraries powoduje, że po ponownym uruchomieniu mam informację o tym, że biblioteka jest niepoprawna.

    0
  • #9 05 Sie 2016 23:55
    excray
    Poziom 39  

    Hej, dzięki za link. Konfiguruję według opisu i również według tego filmiku:
    https://www.youtube.com/watch?v=tMRpYmDgkL0
    i w momencie jak już chcę wgrać program na ESP dostaję błąd: "warning: espcomm_send_command: didn't receive command response
    warning: espcomm_send_command(FLASH_DOWNLOAD_BEGIN) failed
    error: espcomm_upload_mem failed"
    Port i parametry transmisji są dobre - widzę odpowiedzi w monitorze RSa. Czy muszę mieć wgrany jakiś specjalny firmware na te moje D1 mini?

    Dodano po 26 [minuty]:

    Poprawka. Były dobre. Już nie są. Wziąłem inny moduł i program się wgrał. A ten poprzedni już nie działa na 115200 tylko na 74880bps i po resecie zwraca coś takiego " ets Jan 8 2013,rst cause:2, boot mode:(3,7)" Czy mogę go jakoś zresetować/wrócić do życia?

    0
  • #10 06 Sie 2016 11:53
    piotr411
    Poziom 22  

    To typowy błąd utraty spójności danych na flashu, podczas zapisu danych zostało odłączone zasilanie i jest zong. Nie ma znaczenie co jest wgrane do flasha, czy Arduino, Basic, Lua. Niektóre pamięci udaje się uratować formatowaniem pamięci. Program znajdziesz na stronie ESPBASIC.COM. Formatuje się w pierwszej kolejności do 1MB, jeśli to się powiedzie, ponownie wygrywamy firmware jaki nas interesuje. Co do programowania ESP w Arduino, to trzeba mieć na uwadze, że to najgorszy z języków programowania dla ESP, ze względu na gigantyczne pożeranie pamięci przez rezerwację pamięci dla zmiennych. Dlatego jest RTOS, Lua, czy Basic bardzo wygodny w przypadku aktualizacji oprogramowania, bo edytor jest obsługiwany ze strony internetowej. Wracając do systemu plików, ESP ma własny i nie ma znaczenia język programowania, kiedy kość jest czysta, formatuje sobie. Jeśli wystąpił błąd we flashu, ESP wpada w pętle bez końca i nie bootuje się, Wywala wtedy błąd na COM przy prędkości 74880. Może się też flashować pokazując, że jest ok załadowany firmware, ale nie chce po resecie wysterować. Nie ma na to złotego środka jak na razie, a bynajmniej mi nie jest znany poza próbą formatowania flasha programem od ESP BASIC.

    0
  • #11 06 Sie 2016 12:19
    excray
    Poziom 39  

    Czyli jak rozumiem, skoro nie działa ESPBASIC pozostaje mi fizyczna wymiana kości FLASH?

    0
  • #12 06 Sie 2016 16:33
    piotr411
    Poziom 22  

    Kość sama w sobie pewnie jest sprawa, należy ją sformatować. Jest kilka programów do tego, między innymi ten ze strony ESP BASIC, jeśli znajdziesz inne próbuj, na pewno jest jakiś sposób na poprawne formatowanie pamięci. Formatowanie powinno być "", bo to chodzi o jakieś nadpisywane pliki, które dodaje sobie ESP. Łatwo to sprawdzić, właśnie programem do formatowania od Basic'a. Nawet jak masz podpięte 16MB, a formatujesz do 512, to ESP widzi tylko 512kb, a nie 16MB. Niektóre pamięci udaje się tak ożywić, inne nie. Dlaczego, nie wiem. Na wielu forach temat jest poruszany i żadnych konkretów nie znalazłem. Myślę, że można się zapytać, autora ESP BASIC, na czym polega formatowanie i szukać rozwiązania problemu po tej linii.

    0
  • #13 29 Paź 2016 00:09
    putonr
    Poziom 2  

    Ktoś napisał że 4M to max widziałem opcje z 32M. Czy to te 32M stanowi problem? Czy bedzie je można wykorzystać?

    0
  • #15 29 Paź 2016 11:10
    piotr411
    Poziom 22  

    Po części TMF dał Tobie odpowiedź. Wspomniane 32Mbity to 4Mbajty. Natomiast maksymalna wartość jaką firmware pozwala adresować to 128Mbitów czyli 16Mbajtów. W pamięć taką wyposażony jest moduł ESP-13. Oczywiście można wyposażyć ESP w więcej pamięci, ale to nie dotyczy pytania;)

    0
  • #16 31 Paź 2016 20:09
    krzbor
    Poziom 16  

    Zaprogramowałem już kilka ESP (zarówno 01 jak i 12). Działają bardzo dobrze. Chciałem jednak poznać bliżej sposób działania - jak wygląda współpraca FLASH z wewnętrzną pamięcią RAM? Jak działa pamięć w RTC? Jak "poukładane" są dane we FLASH?
    Tu moje pytanie - czy ktoś widział jakiś dobry opis (polski lub angielski) tych technicznie bardziej zaawansowanych szczegółów?

    0