Fórum témák
» Több friss téma |
Sziasztok! A következő a problémám. Terveztem és építettem már néhány áramkört ESP32-vel. Az a tapasztalatom, hogy az első néhány programozás sikerül, utána meg nem. Van olyan modulom, amit sikerült flash-elni 20-30 alkalommal. De van olyan is, amit csak kb. 10-szer. Utána gyakorlatilag kuka az egész panel (a PCB-re forrasztott ESP32 modult nem tudom leszedni, nincsen ónszívóm.)
Ezzel a problémával sokszor szembesültem. Nem csak beforrasztott modulokkal, hanem ESP development board-okkal is. Igazából ESP8266 is csinált ilyet, de nem annyira gyakran, mint az ESP32. Többféle modult és board-ot szereztem már be több helyről, mert azt gondoltam, hogy talán a flash chip a rossz (selejtet adtak el?) Legutóbb már egy egészen drága TTGO -t vettem, de sajnos az is megadta magát kb. 20 flash-elés után. A saját terezésű PCB -n nem az usb-serial converter-ről veszi a tápot, hanem labortápra dugom. Ennek ellenére mindig ugyan azt tapasztalom. Érdekes módon arduino-val ilyen problémát nem tapasztaltam. Legtöbbet arduino mini-ből használtam, és azok több 100 flash-elés után is normálisan működnek. Viszont van egy csomó projekt, amire az nekem nem jó. Szükségem van a wifi-re, a nagyobb teljesítményre. Ez az egész nagyon kiábrándító. Eltöltök több órát az összes alkatrész beforrasztásával, felprogramozom, és utána kezdődne a szoftver fejlesztés. A szoftver fejlesztés során több 100 program verziót kellene kipróbálom, és az összes ilyen board a kukában végzi. Az utóbb néhány hónapban már alig volt kedvem elővenni a pákát. Lehet hallani olyasmit, hogy kínából olyan modulokat adnak el, amik nem mentek át a minőségellenőrzésen. Lehetséges lenne hogy ilyenbe futottam bele? Ez számomra azért nehezen hihető verzió, mert már sok helyről sokfajtát rendeltem. ESP32 dev board-ból legalább 3 féle, TTGO, ESP32-WROOM, ESP32-WROVER és ezekből is legalább 3 különböző helyről vettem már. Ennyire csak nem lehetek szerencsétlen, hogy mindegyiknél selejtet küldtek?
Nem tudom nálad probléma lehet e, nekem gondjaim voltak a tápegységekkel. Az usb kábel test szálán néha néha akkora kiegyenlítő áramok folynak a védőföld felé a tápegységből, hogy az csoda, azonnal nem halálozódik el az összes panel. Kíváncsiságból megmérhetnéd, a tápod negatív sarka, és a programozó USB csatlakozó negatív csatlakozója között mekkora áram folyik/ feszültség van ( AC) összedugás előtt. A Laptop is tud ilyen tréfát űzni, ha töltőn van....
Jó lenne még pár dolgot tudni. Pl. mi a hibajelenség, iilletve hibaüzenet? Ok, hogy nem lehet új programot feltölteni, de ami rajta van, az működik? Log üzenetek jönnek? Nem gondolnám, hogy selejt minden modulod, inkább táp, csatlakozás, GPIO, kommunikációs stb. probléma lesz ez. Volt hasonló problémám, NodeMCU modul nem lépett be flash módba, soros portról az RTS, DTR vezetékkel vezérelve. Ha megnyomtam a mikrokapcsolót (egyik reset, másik a flash feltöltés indítása), akkor működött.
A hozzászólás módosítva: Dec 6, 2022
Sziasztok!
nem tudom, hogy a kérdezőnek ez-e a problémája, de az autómatikus flash mpdba lépésre van egy gyógyszer. Az alábbi linken olvashattok róla. Bővebben: Link
Elnézést hogy ilyen későn reagálok, közbejött valami. Hamarosan megírom a konkrét hibaüzenetet. Megpróbálok szkópot is kötni a GPIO0 -ra, de azt csak később tudom (kb. jövő héten).
Egyébként tényleg, a gyári devboard-okon is van tranzisztoros "késleltető" áramkör, és ennek ellenére azok is ugyanúgy nem mennek.
Alapból micropython-t használok, és a micropython firmware-t nem sikerült írnom, de most telepítek arduio ide-t és azon keresztül fogok feltölteni bootloader-t meg blink -es példa programot. Egymás után teszem be őket, ideírom a hibákat amiket kapok.
Első próba egy TTGO. A Connecting... után nagyon nagyon sokat vár. Kb. másfél percet.
esptool.py v3.3 Serial port COM3 Connecting............ Chip is ESP32-D0WDQ6 (revision 1) Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None Crystal is 40MHz MAC: 3c:71:bf:ef:26:50 Uploading stub... Running stub... Stub running... WARNING: Failed to communicate with the flash chip, read/write operations will fail. Try checking the chip connections or removing any other hardware connected to IOs. Erasing flash (this may take a while)... A fatal error occurred: Packet content transfer stopped (received 8 bytes) Hiba a bootloader égetésekor. Ez ugye beépített saját usb to serial chip-pel rendelkezik, tehát a "rosszul van bekötve a pin" hibát kizárhatjuk. A hozzászólás módosítva: Dec 12, 2022
A következő egy ESP32 DEV v1 board. A bootloader égetése alapból ezt adja:
esptool.py v3.3 Serial port COM4 Connecting.....................................Hiba a bootloader égetésekor. . A fatal error occurred: Failed to connect to ESP32: Wrong boot mode detected (0x13)! The chip needs to be in download mode. For troubleshooting steps visit: https://docs.espressif.com/projects/esptool/en/latest/troubleshooting.html Ha a bootloader égetése menü előtt megnyomom rajta a flash gombot, akkor ez is azt csinálja, hogy először "Connecting...." másfél perc, és ez a vége: esptool.py v3.3 Serial port COM4 Connecting.... Chip is ESP32-D0WDQ6 (revision 1) Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None Crystal is 40MHz MAC: 24:0a:c4:30:d3:4c Uploading stub... Running stub... Stub running... Changing baud rate to 921600 Changed. Erasing flash (this may take a while)... A fatal error occurred: Packet content transfer stopped (received 3906 bytes) Hiba a bootloader égetésekor.
A többi is ilyet dob. Van közöttük CH340 -es usb-to-serial chip és silicon labs CP210x is.
Amikor saját PCB-vel próbálom, és külön programozóval, akkor is ezt csinálja. (Ezt most nem tudom kipróbálni, de úgy emlékszem.) Ugyanezzel a számítógéppel ugyanezen az USB porton arduino mini és nano programozás MINDIG sikerül.
A TTGO-ról konkrétan tudom, hogy összesen max. 10 égetést csináltam rajta mielőtt "tönkrement". Nemsokára próbálkozom linuxról és egy teljesen másik gépről, arról is küldök logot.
Érdekes. Ami nekem itthon van ESP32 D1 meg ESP12E példányok azokat már jóval többször megírtam de semmi baj velük.
Az autómatiukus flash mód az nem mindig szeret elindulni az tény, de mit feljeb linkeltem egy kondenzátoral orvosolható. Ezek voltak használva Arduinó környezet alól, VS kódból, És Rust nyelven fejlesztett kódal is. Ha nem indul a flash magától, akkor együtt nyomom a resetet a GPIO 0 gombal aztán a resetet felengedem és a GPIO 0 át picit késöbb.
Másik gép, linux.
dmesg szerint: [27528.528720] usb 1-1: new full-speed USB device number 3 using xhci_hcd [27528.701991] usb 1-1: New USB device found, idVendor=10c4, idProduct=ea60, bcdDevice= 1.00 [27528.701996] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [27528.701999] usb 1-1: Product: CP2104 USB to UART Bridge Controller [27528.702001] usb 1-1: Manufacturer: Silicon Labs [27528.702003] usb 1-1: SerialNumber: 01C061E3 [27528.716585] usbcore: registered new interface driver usbserial_generic [27528.716595] usbserial: USB Serial support registered for generic [27528.717775] usbcore: registered new interface driver cp210x [27528.717787] usbserial: USB Serial support registered for cp210x [27528.717807] cp210x 1-1:1.0: cp210x converter detected [27528.723101] usb 1-1: cp210x converter now attached to ttyUSB0 Flash törlése esptool-lal: python3 ./reflash_esp32.py RUN: esptool.py --port /dev/ttyUSB0 --chip esp32 erase_flash esptool.py v4.4 Serial port /dev/ttyUSB0 Connecting....... Chip is ESP32-D0WDQ6 (revision v1.0) Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None Crystal is 40MHz MAC: 3c:71:bf:ef:26:50 Uploading stub... Running stub... Stub running... WARNING: Failed to communicate with the flash chip, read/write operations will fail. Try checking the chip connections or removing any other hardware connected to IOs. Erasing flash (this may take a while)... A fatal error occurred: Packet content transfer stopped (received 8 bytes) Traceback (most recent call last): File "/home/gandalf/micropython-dev/tools/./reflash_esp32.py", line 18, in <module> esptool("--chip esp32 erase_flash") File "/home/gandalf/micropython-dev/mp_tools.py", line 53, in esptool run(ESP_TOOL_CMD + " " + args_str) File "/home/gandalf/micropython-dev/mp_tools.py", line 45, in run subprocess.run(cmd, shell=True, check=True) File "/usr/lib/python3.10/subprocess.py", line 524, in run raise CalledProcessError(retcode, process.args, subprocess.CalledProcessError: Command 'esptool.py --port /dev/ttyUSB0 --chip esp32 erase_flash' returned non-zero exit status 2. Linux alatt, erről a számítógépről a "Connecting..." után nincsen másfél perc várakozás, ennyiből jobb. Viszont az "Erasing flash (it may take a while)" az tényleg jó sokáig tart, konkrétan másfél percig. A board-on levő LED halványan világít illetve néha felvillan, tehát valamit csinál. De a végén hibát dob. A flash törlés után a következő lépés a micropython firmware feltöltése lenne, de addig nem jutok el. * DEV board-nál földáram szóba se jöhet * korábban próbáltam úgy hogy kötöttem rá saját tápot (illetve a saját PCB-k esetén eleve így volt), de ez nem változtat a hibajelenségen * ugyan ezekről a számítógépekről az arduino-kat simán tudom flash-elni, látszólag akárhányszor (nem tudom hányszor, de > 100 ) * próbáltam cserélni USB kábelt, rövidebbre, az se segített * érdekes módon, ha vásárolok egy új modult, akkor azt néhányszor sikerül flash-elni, utána elromlik Ennél több logot most nem küldök be, szerintem ez bőven elég lesz. Mit nézzek még meg?
Na igen, van olyan board amin egy gomb van, és olyan is van amin kettő. Amit én terveztem, azon csak egy van, a GPIO0 az a serial converter-re van kötve. Azokon a board-okon amiken nem tud magától belekezdeni, nekem is nyomni kell a FLASH gombot a board-on. Ha azt benyomom, akkor jól felismeri (kiírja a Chip nevét és a MAC címét), viszont a flash-elést nem tudja befejezni.
A Particiós émád az jó? Nem akarna véletlen túlírni? Mintha össze futotam volna valahol már ilyen témával. VS kód alol rossz volt a partícionálás.
Hali! Nem lehet táp probléma? Próbáld külső tápról járatni, így égetni, nem az usb tápról
Itt egy kollekció azokról, amikkel semmit nem tudok kezdeni
https://imgur.com/a/WSmxDt1 Vannak új design-ok amikbe már ESP32-WROVER megy, 4MB memóriával. Azoknak a programozását el se akarom kezdeni, amíg ez a probléma meg nem oldódik, mert az drága mulatság lenne.
Az esptool erase_flash parancsa (szerintem) nem használ semmiféle sémát, csak teleírja nullákkal, és már az se sikerül. Ha korábban nem sikerült volna ugyan ezzel a paranccsal ugyan ezeket az eszközöket flash-elni, akkor az még hihető lenne, hogy rosszul ismeri föl a flash méretét.
Nem is tudom, lehet hogy még kipróbálom másik --chip kapcsolóval ( esp32s2 esp32s3 esp32c3 stb.) de nem hinném, hogy ennek túl sok hatása lenne.
Szóval a --chip az jó volt:
╰─$ esptool.py --port /dev/ttyUSB0 --chip esp32s2 erase_flash esptool.py v4.4 Serial port /dev/ttyUSB0 Connecting.... A fatal error occurred: This chip is ESP32 not ESP32-S2. Wrong --chip argument? ╰─$ esptool.py --port /dev/ttyUSB0 --chip esp32s3 erase_flash 2 ↵ esptool.py v4.4 Serial port /dev/ttyUSB0 Connecting.... A fatal error occurred: This chip is ESP32 not ESP32-S3. Wrong --chip argument?
Most rádugtam egy labortápra, zavarszűrővel, és az egyiket sikerült égetni. Próbálom a következőt is.
Az USB kábel is lehet gyenge táp szempontból, vagy ha PC akkor az előlapi usbcsatihoz belül a házban igencsak gagyi kábel megy, már ott elveszik a villany fele. Engem a pickit 4 tréfált így meg,
az éppen sok éve használatos kábelre dugtam és összevissza működött, elég sokára jutottam odáig hogy a hozzáadott kábelre dugjam, és minden megjavult A telefonom olyan usb töttőről töltöm ami az áramot is kijelzi, a jó kábellel 1.2A-rel tud tölteni, különböző gagyi kábelekkel meg csak 500mA alatt
Hmmm kettőt sikerült reset-elni így. Akkor még próbálkozom, és később jelentkezem.
QC4 vagy PD töltők 120W-on töltenek. Persze nem 5V-on, de a 6A-t simán viszik.
A kábel valóban lehet kritikus. Rossz csatlakozás, vékony vezetékek, rossz krimpelés és már nem is kap annyi energiát az eszköz amennyi kéne neki.
Lecseréltem az USB kábelt, a tápkábelt és az egész tápegységet. Most jól megy mindegyik. Nem tudom hogy pontosan hol rontottam el, de ez nagyon tanulságos volt. Köszönöm a segítséget!
|
Bejelentkezés
Hirdetés |