Skocz do zawartości

ESP32 bład przy pierwszym połączeniu (USB)


Pomocna odpowiedź

Napisano

Witam forumowiczów.

Płytka:

Wemos R32 d1 Uno 

Pierwsza próba wrzucenia programu (tradycyjnie znany i lubiany Blik):

Arduino:1.8.13 (Windows 10), Płytka:"ESP32 Dev Module, Disabled, Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS), 240MHz (WiFi/BT), QIO, 80MHz, 4MB (32Mb), 921600, None"

Szkic używa 207705 bajtów (15%) pamięci programu. Maksimum to 1310720 bajtów.

Zmienne globalne używają 15228 bajtów (4%) pamięci dynamicznej, pozostawiając 312452 bajtów dla zmiennych lokalnych. Maksimum to 327680 bajtów.

esptool.py v2.6

Serial port COM6

Connecting........_____....._____....._____....._____.....___

Chip is ESP32D0WDQ6 (revision 1)

Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None

MAC: 8c:aa:b5:85:f2:a4

Uploading stub...

Running stub...

Stub running...

Changing baud rate to 921600

Changed.

Configuring flash size...

Auto-detected Flash size: 4MB

Compressed 8192 bytes to 47...

Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.0 seconds (effective 9362.3 kbit/s)...

Hash of data verified.

Compressed 17392 bytes to 11186...

Wrote 17392 bytes (11186 compressed) at 0x00001000 in 0.1 seconds (effective 1030.6 kbit/s)...

Hash of data verified.

Compressed 207824 bytes to 105394...

Wrote 207824 bytes (105394 compressed) at 0x00010000 in 1.7 seconds (effective 1002.2 kbit/s)...

Hash of data verified.

Compressed 3072 bytes to 128...

Wrote 3072 bytes (128 compressed) at 0x00008000 in 0.0 seconds (effective 4096.0 kbit/s)...

Hash of data verified.



Leaving...

Hard resetting via RTS pin...


Na płytce jest CH340, ale tą samą kość mam w kilku innych płytkach i działają bez problemu (sterowniki odpadają). Próbowałem zmiany prędkości transmisji, oraz zapewniłem odrębne zasilanie. Usunąłem dodatni przewód zasilania z kabla usb.

Ma ktoś jeszcze pomysł jak załadować program?

  • 2 lat(a) później...
Dnia 7.10.2020 o 15:21, ethanak napisał:

Ale czego ty chcesz? Przecież program się załadował... nawet reset się zrobił.

Z czym masz problem?

witam !
Ethanak - niestety sprawa nie jest taka prosta- jak tutaj przedstawiasz. Moze tylko w przypadku
prostych sketchow typu "harcerskiego jak migajaca dioda". Jak mam takie doświadczenia :
Napisalem skrypt do obslugi WiFi na NODEMCU . Obsluga WiFi jest o wiele bardzie skomplikowana
niz np . Ethernet. Na WiFi po zapytaniu o  jakieś dane i po ich otrzymaniu następuje rozłączenie połączenia
gdyz inaczej Twoj sąsiad  mogłby wejsć na Twoje urzadzenie . Dla Wifi sketch musi zawierac SocketCient
jak i SocketSerwer.
Dla wersji Arduino.exe v 1.8.5 kompilacja przebiegla normalnie , ale potem przy dluższym uzytkowaniu
na terminalu Monitor Portu Szeregowego pojawiały sie jakies pakiety swiadczace o przepelnieniu stosu ;
Moja zajetosć pamieci wynosila

Szkic używa 322861 bajtów (30%) pamięci programu. Maksimum to 1044464 bajtów.
Zmienne globalne używają 45116 bajtów (55%) pamięci dynamicznej, pozostawiając
36804 bajtów dla zmiennych lokalnych. Maksimum to 81920 bajtów.

Wyglądalo to tak , jakby zmienne zachodzily na siebie , lub nie byly zerowane zmienne lokalne po
wyjściu z procedury
.
No cóż pomyślałem - może następna wersja opanuje te zjawiska . Zainstalowalem
więc wersję Arduino.exe IDE V 2.0.3 I wykonalem kompilację az do uzyskania nieszczesnego
komunikatu  hard resetting via rts pin  ., obserwuajac jednoczesnie Monitor Portu Szeregowego
na ktorym znowu pojawiały się komunikaty o przepelnieniu stosu i robil to wielokrotnie nie
przerywajac  w ogole . Wylączylem więc zasilanie plytki i odlączylem wszelkie kable i po dosć dlugim czasie
wlączylem ja ponownie . Znowu zaczela mrugac dioda resetu i tak w kolko . Dodam iz w trakcie resetu w kólko
uwaliło mi port USB w komputerze .Próba wczytania nowego sketchu byla negatywana .
Dopiero jak uruchomilem sketch   EEPROM Clear  to wyczyscilo pamiec plytki

de  krotkofalowiec  sp9auv

13 minut temu, sp9auv napisał:

sprawa nie jest taka prosta- jak tutaj przedstawiasz.

Możesz wyjaśnić o co chodzi?

13 minut temu, sp9auv napisał:

Na WiFi po zapytaniu o  jakieś dane i po ich otrzymaniu następuje rozłączenie połączenia
gdyz inaczej Twoj sąsiad  mogłby wejsć na Twoje urzadzenie .

Oświeć mnie w jaki sposób.

14 minut temu, sp9auv napisał:

pojawiały sie jakies pakiety swiadczace o przepelnieniu stosu ;
Moja zajetosć pamieci wynosila

A co ma wspólnego przepełnienie stosu z zajętością pamięci statycznej? 

 

21 minut temu, sp9auv napisał:

może następna wersja opanuje te zjawiska . Zainstalowalem
więc wersję Arduino.exe IDE V 2.0.3

I okazało się, że błędnie napisanego programu nie poprawi nowa wersja IDE?

 

15 minut temu, sp9auv napisał:

Wyglądalo to tak , jakby zmienne zachodzily na siebie , lub nie byly zerowane zmienne lokalne po
wyjściu z procedury
.

Bardzo trafne spostrzeżenie. Jeśli procedury są wywoływane niezależnie to ich zmienne lokalne mogą znajdować się w tym samym obszarze stosu, a pamięć zmiennych lokalnych nie jest zerowana po wyjściu z procedury bo i po co.

17 minut temu, sp9auv napisał:

wykonalem kompilację az do uzyskania nieszczesnego
komunikatu  hard resetting via rts pin  ., obserwuajac jednoczesnie Monitor Portu Szeregowego
na ktorym znowu pojawiały się komunikaty o przepelnieniu stosu

No bo program się załadował, ruszył, doszło do przepełnienia stosu w czasie jego działania, zrobił reset, ruszył, doszło do przepełnienia stosu, zrobił reset, ruszył i tak dalej. Co miał biedny program zrobić jak dostał w tył głowy krytycznym wyjątkiem?

Poza tym niespecjalnie rozumiem co ma wspólnego Twój problem z problemem opisanym w wątku...

73

 

 

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