Skocz do zawartości

esp32-serprog, termux, flashrom, błąd opróżniania bufora przy bezpośrednim połączeniu


Pomocna odpowiedź

Zmieniłem nieco ustawienia w menuconfig pod wifi, taktowanie cpu, rozmiary buforów, itp. Domyślne ssid/hasło sieci: "forbot" (wpisać swoje).

CONFIG_ESP32_SERPROG_WIFI_SSID="forbot"
CONFIG_ESP32_SERPROG_WIFI_PASSWORD="forbot"

 

Konfig trzeba umieścić bezpośrednio w katalogu "serprog" projektu.

sdkconfig.zip

 

Termux (+wakelock dla pewności), Lolin32 Lite (zasilany ogniwem 18650), pamięć "Winbond W25Q32FVSIG" (4MB); flashrom: "spispeed=26M" (26666000 Hz), w gruncie rzeczy ustawione tylko dla zgodności z postem powyżej. Odległość smartfona (hotspota) od ESP32: ~30 cm.

Odczyt (22sek):

odczyt.thumb.jpg.c787ab1d0cd28f871daec91ff6b7e3a4.jpg

 

Sam zapis (4MB), pomijając wstępny odczyt i późniejszą weryfikację trwa ~5m10sek:

zapis.thumb.jpg.e250e9492bc14955a3f8b1a75d59be67.jpg

 

Ciekawe, że po wifu idzie szybciej niż przez kabel. Jestem otwarty na sugestie jak można jeszcze zoptymalizować działanie przez sieć. Przy kodzie na razie dłubać nie będę, pewnie samo przyjdzie z czasem albo ktoś mądrzejszy pokaże co i jak. Generalnie stosunek prędkości zapisu do odczytu nie powala, chociaż dla małych pamięci jest, yyy... znośny?

  • 1 miesiąc później...

@H1M4W4R1, przypomniałem sobie co pisałeś na czacie o wysokich częstotliwościach. Sprawdziłem oscyloskopem prowizorkę programatora ulepionego na płytce stykowej i wynik nie zaskakuje. Parametr "spispeed" działa (4, 8, 16, 26.6 MHz), ale jak widać jest kaszanka. Trochę zbyt beztrosko tego używałem, he.

Odczyt (linia CLK, pin przy esp32):

odczyt-4MHz.thumb.png.1648d361a0d6773856a7099a2afff19d.pngodczyt-8MHz.thumb.png.edd142cf2b1f437a21e934d6329db424.png

odczyt-16MHz.thumb.png.1ceaf75270a8a0b98505f90a98168e66.pngodczyt-26_6MHz.thumb.png.f3dffbff45f6db3c8541f43098f21e8a.png

 

Zapis (linia CLK, pin przy pamięci):

zapis-16MHz.thumb.png.392901e6b5ae324315e8316eb4b2555d.png

 

No i teraz pytanie. Jak to "w miarę" poprawnie zrobić na płytce uniwersalnej? Skorzystam z prostego schematu od winbonda, tyle, że dla R1=22R, ponieważ piny spi w esp32 mają podobno impedancję ~30R. Pozostałe: R2=10kR, R3=100kR. Z tego co wyczytałem obok każdej z linii (CLK, MISO, MOSI) muszę dać równolegle GND, ale tutaj odległości będą małe, więc może same rezystory wystarczą?

schemat.thumb.png.1f80de823395c9a91f0c39f32031139e.pngopis.thumb.jpg.af7feb24119220ebcca6d760b6332b7d.jpg

32 minuty temu, orb777 napisał:

Jak to "w miarę" poprawnie zrobić na płytce uniwersalnej?

Na uniwersalnej... raczej się nie da jeżeli chcesz zrobić to na płytce.

Zostaje jedynie opcja przewodów, z tym, że odległość od pinu mikrokontrolera do pinu pamięci musi być mniejsza niż długość krytyczna. Dodatkowo trzeba wziąć trochę zapasu na to, że jeszcze jest drut wewnątrz scalaka.

https://resources.altium.com/p/why-there-transmission-line-critical-length

  • Lubię! 2

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...