logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

CB2S BK7231N nie udało się flashować Easy UART Flasher - nie powiodło się z serial.BytesToRead 0 (oc

MSP_Tech 21 Sie 2025 17:56 720 3
REKLAMA
Treść została przetłumaczona angielski » polski Zobacz oryginalną wersję tematu
  • #1 21640821
    MSP_Tech
    Poziom 2  
    Posty: 3
    Cześć, właśnie próbowałem sflashować firmware OpenBK na module CB2S z chipem BK7231N przez Easy Uart Flasher, ale niestety się nie udało.
    Użyłem Easy Uart Flasher v50 i firmware OpenBK7231N_QIO_1.18.156.
    Zdjęcie
    Spoiler:

    Moduł CB2S z chipem BK7231N podłączony do kabli UART i czujników.

    Udało mi się zrobić backup flasha i chyba został poprawnie odczytany, bo programowi udało się wyodrębnić OBK. Ale kiedy kliknąłem zapisz, program zaczął flashować firmware i zawiódł pod adresem 0xE3000:
    Easy Uart Flasher napisał:
    Writing sector 0xE0000... ok! failed with serial.BytesToRead 0 (expected 15)
    Początek bufora w UART zawiera dane.
    Zapis sektora 0xE1000... Zapis sektora 921600 nie powiódł się!
    Zapis danych pliku do układu nie powiódł się.

    Log
    Spoiler:
    Uzyskanie magistrali powiodło się!
    Zamierzam ustawić szybkość transmisji (921600)!
    Spróbuję odczytać MID flash urządzenia (dla unprotect N):
    Flash MID załadowany: 1560EB
    Teraz wyszukuje Flash Def w naszej bazie danych...
    Flash def znaleziony! Dla: 1560EB
    Informacje flash: mid: 1560EB, icName: TH25Q16HB, producent: TH, szMem: 1000000, szSR: 2, cwUnp: 0, cwEnp: 7, cwMsk: 407C, sb: 2, lb: 5, cwdRd: 05-35-FF-FF, cwdWr: 01-FF-FF-FF
    Wprowadzanie SetProtectState(True)...
    sr: 80
    sr: 680
    final sr: 680
    msk: 407c
    cw: 0, sb: 2, lb: 5
    bfd: 0
    SetProtectState(True) powiodło się!
    Przechodzimy do odczytu klucza szyfrowania...
    Odczyt klucza szyfrowania zakończony!
    Klucz szyfrowania: 510fb093 a3cbeadc 5993a17e c7adeb03
    Odczyt pliku firmware/OpenBK7231N_QIO_1.18.156.bin...
    Załadowano 1220464 bajtów z pliku firmwares/OpenBK7231N_QIO_1.18.156.bin...
    Używając hacka do napisania QIO - po prostu pomiń bootloader...
    ... więc bootloader nie zostanie nadpisany!
    Przygotowanie do zapisu pliku danych do układu - resetowanie magistrali i szybkości transmisji...
    Uzyskanie magistrali... (teraz należy wykonać restart przez CEN lub przez wyłączenie/włączenie zasilania)
    Uzyskanie magistrali powiodło się!
    Przechodzimy do ustawienia szybkości transmisji (921600)!
    Spróbuję odczytać MID flash urządzenia (dla unprotect N):
    Flash MID załadowany: 1560EB
    Teraz wyszukuje Flash Def w naszej bazie danych...
    Flash def znaleziony! Dla: 1560EB
    Informacje flash: mid: 1560EB, icName: TH25Q16HB, producent: TH, szMem: 1000000, szSR: 2, cwUnp: 0, cwEnp: 7, cwMsk: 407C, sb: 2, lb: 5, cwdRd: 05-35-FF-FF, cwdWr: 01-FF-FF-FF
    Wprowadzanie SetProtectState(True)...
    sr: 80
    sr: 680
    final sr: 680
    msk: 407c
    cw: 0, sb: 2, lb: 5
    bfd: 0
    SetProtectState(True) powiodło się!
    Rozpoczynam wymazywanie, start 69632, liczba sekund 281!
    Kasowanie sektora 69632... ok! Kasowanie sektora 73728... ok! Kasowanie sektora 77824... ok! Kasowanie sektora 81920... ok! Kasowanie sektora 86016... ok! Kasowanie sektora 90112... ok! Kasowanie ....
    Wszystkie wybrane sektory skasowane!
    Zapis sektora 0x11000... ok! Zapis sektora 0x12000... ok! Zapis sektora 0x13000... ok! Zapis sektora 0x14000... ok! Zapis sektora 0x15000... ok!
    ...
    Zapis sektora 0xDD000... ok! Zapis sektora 0xDE000... ok! Zapis sektora 0xDF000... ok! Zapis sektora 0xE0000... ok! nie powiodło się z serial.BytesToRead 0 (oczekiwano 15)
    Początek bufora w UART zawiera dane.
    Zapis sektora 0xE1000.... Zapis sektora 921600 nie powiódł się!
    Zapis danych pliku do układu nie powiódł się.
    .
    Po tym próbowałem wycofać, narzędzie python, zmienić prędkości lub pominąć sprawdzanie klucza, ale nic z tego. Po prostu nie udaje się zapisać pod jakimś, ale specyficznym dla wybranego pliku adresem.
    Czy jest jakiś sposób, aby to naprawić, czy jednostkę można uznać za martwy?
    AI: Czy możesz podać szczegóły dotyczące konfiguracji okablowania UART - w szczególności, jakiego adaptera USB do szeregowego używasz, jak podłączyłeś go do modułu CB2S (w tym poziomy napięcia) i czy potwierdziłeś, że połączenia są prawidłowe?
    UART: adapter FTDI FT232RL z poziomem napięcia 3,3V. Podłączony do TX,RX modułu.
    AI: Na jakim systemie operacyjnym i wersji uruchamiasz Easy UART Flasher i czy zainstalowałeś jakieś specjalne sterowniki lub dokonałeś zmian w środowisku systemowym dla procesu flashowania?
    System: Win11, żadne specjalne sterowniki nie były instalowane.
  • REKLAMA
  • #2 21642296
    divadiow
    Poziom 38  
    Posty: 4955
    Pomógł: 434
    Ocena: 884
    Prawdopodobnie kombinacja zbyt długich przewodów i zasilania z 3,3 V na USB-TTL. Spróbuj zasilać z zewnętrznego źródła zasilania 3,3 V. Wspólna masa
  • REKLAMA
  • #3 21642389
    MSP_Tech
    Poziom 2  
    Posty: 3
    Podłączyłem zasilacz laboratoryjny.
    Sprawdziłem też oscyloskopem linie RX, TX, są czyste i wyraźne.
    Czyli zakładam, że gdyby był problem z UARTem, to nie byłby w stanie komunikować się z chipem.
    Ale jak widać z logu, odczytuje niektóre zabezpieczenia, kasuje pamięć i zawodzi tylko w połowie zapisu pamięci.
    Co najdziwniejsze, zawsze pod tym samym adresem dla danego firmware'u (prawdopodobnie zależy to od długości pliku bin, bo w przypadku pliku back-up nie udaje się pod innym adresem).
  • #4 21643636
    MSP_Tech
    Poziom 2  
    Posty: 3
    Tak więc, mała aktualizacja tego problemu.
    Próbowałem zrobić przewody tak krótkie, jak to możliwe, ale bez powodzenia, nadal kończy się niepowodzeniem pod adresem 0x11000.
    Następnie spróbowałem zapisać tylko OBK i o dziwo system powiedział, że zapis się powiódł. Co więcej, zasilacz pokazał pobór 0.08A i jedna z diod zaczęła migać.
    Otworzyłem połączenie wifi w telefonie i znalazłem urządzenie openbeken.
    Następnie spróbowałem zmodyfikować plik OBK przez program (w zasadzie dodałem SSID mojej sieci domowej), ale po raz kolejny program zgłosił, że zapis nie powiódł się.
    Log
    Spoiler:

    Uruchamianie konfiguracji OBK tylko do zapisu!
    Tryb flashera: BK7231N
    Otwarcie portu: COM5.
    Port szeregowy otwarty!
    Uzyskanie magistrali... (teraz należy wykonać restart przez CEN lub wyłączenie/włączenie zasilania)
    Uzyskanie magistrali powiodło się!
    Przechodzę do ustawienia szybkości transmisji (115200)!
    Spróbuję odczytać MID flash urządzenia (dla unprotect N):
    Flash MID załadowany: 1560EB
    Teraz wyszuka Flash Def w naszej bazie danych...
    Flash def znaleziony! Dla: 1560EB
    Informacje flash: mid: 1560EB, icName: TH25Q16HB, producent: TH, szMem: 1000000, szSR: 2, cwUnp: 0, cwEnp: 7, cwMsk: 407C, sb: 2, lb: 5, cwdRd: 05-35-FF-FF, cwdWr: 01-FF-FF-FF
    Wprowadzanie SetProtectState(True)...
    sr: 80
    sr: 680
    final sr: 680
    msk: 407c
    cw: 0, sb: 2, lb: 5
    bfd: 0
    SetProtectState(True) powiodło się!
    Przechodzimy do odczytu klucza szyfrowania...
    Odczyt klucza szyfrowania zakończony!
    Klucz szyfrowania: 510fb093 a3cbeadc 5993a17e c7adeb03
    Przygotowanie do zapisu pliku danych do chipa - resetowanie magistrali i szybkości transmisji...
    Uzyskanie magistrali... (teraz należy wykonać restart przez CEN lub przez wyłączenie/włączenie zasilania)
    Uzyskanie magistrali powiodło się!
    Przechodzimy do ustawienia prędkości transmisji (115200)!
    Spróbuję odczytać MID flash urządzenia (dla unprotect N):
    Flash MID załadowany: 1560EB
    Teraz wyszuka Flash Def w naszej bazie danych...
    Flash def znaleziony! Dla: 1560EB
    Informacje flash: mid: 1560EB, icName: TH25Q16HB, producent: TH, szMem: 1000000, szSR: 2, cwUnp: 0, cwEnp: 7, cwMsk: 407C, sb: 2, lb: 5, cwdRd: 05-35-FF-FF, cwdWr: 01-FF-FF-FF
    Wprowadzanie SetProtectState(True)...
    sr: 80
    sr: 680
    final sr: 680
    msk: 407c
    cw: 0, sb: 2, lb: 5
    bfd: 0
    SetProtectState(True) powiodło się!
    Rozpoczynam wymazywanie, start 1904640, liczba sekund 1!
    Kasowanie sektora 1904640... ok!
    Wszystkie wybrane sektory wymazane!

    Teraz zostanie również zapisana konfiguracja OBK...
    Długa nazwa z CFG: OpenBekenX_D2
    Skrócona nazwa z CFG: obkD2
    Web Root z CFG: https://openbekeniot.github.io/webapp/
    Zapis sektora konfiguracji 0x1D1000...nie powiódł się z serial.BytesToRead 0 (oczekiwano 15)
    Początek bufora w UART zawiera dane.
    Zapis danych konfiguracyjnych OBK do układu nie powiódł się.
    Zapis danych pliku do układu nie powiódł się.


    Mimo to zrestartowałem urządzenie i ... połączyło się z moim domowym wifi.
    Udało mi się otworzyć serwer konfiguracji, ustawić parametry pinów, otworzyć serwer aplikacji i wszystko działa....
    Panel OpenBK z odczytem napięcia 243,9V i statystykami zużycia energii
    Nie mam pojęcia, co się tutaj dzieje.
    Zgaduję, że jest jakaś niezgodność między rozmiarem pamięci chipa i/lub rozmiarem pamięci programu, która powoduje, że program myśli, że zapis nie powiódł się, podczas gdy w rzeczywistości wszystko zostało zapisane.
    Będę monitorował zachowanie wtyczki w ciągu najbliższych kilku dni i poinformuję, jeśli coś pójdzie nie tak.
REKLAMA