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

IMMAX NEO Smart (BK7231N): Flashowanie OpenBK i rozwiązywanie problemów z bootowaniem

vkoutnik 20 Gru 2024 14:50 1593 1
Treść została przetłumaczona angielski » polski Zobacz oryginalną wersję tematu
  • Pomocny post
    #1 21356272
    vkoutnik
    Poziom 2  
    Posty: 2
    Pomógł: 1
    Ocena: 1
    Pozwolę sobie podsumować moją drogę do rozebrania IMMAX NEO Smart (bk7231n/cbu) i flashowania go za pomocą OpenBK. Może komuś się to przyda w przyszłości i wyciągnie wnioski z moich ślepych zaułków, przez które przeszedłem...

    Kupiłem sobie to urządzenie, ponieważ myślałem, że mogę podłączyć je do prostego obwodu DIY CC&CP, aby razem stworzyć prosty DIY EVSE z watomierzem. Jednak zdałem sobie sprawę, że potrzebuje chmury do połączenia, która okazała się chmurą Tuya. Postanowiłem więc rozebrać to urządzenie, aby dowiedzieć się, co jest w środku. Co za niespodzianka, w środku znajduje się BK7231N. W ten sposób dowiedziałem się, że jest coś takiego jak OpenBK, więc postanowiłem go sflashować.

    Najpierw próbowałem z hid_download_py na moim Macbooku. Ostatecznie nie zadziałało. Odczyt i kasowanie wydawały się jakoś działać, zapis zawsze zawodził. Nie udało mi się zmienić szybkości transmisji, nawet nie zmieniłem sposobu resetowania urządzenia, aby uzyskać magistralę. Próbowałem również podłączyć CSN do masy bez powodzenia. W sieci jest kilka wątków dotyczących tych samych problemów, wszystkie zakończyły się użyciem https://github.com/openshwprojects/BK7231GUIFlashTool pod Windows. BK7231GUIFlashTool w końcu zadziałał. Udało mi się go pomyślnie sflashować za pomocą tego narzędzia.

    Tak czy inaczej, podczas poprzednich prób CBU bardzo ucierpiało, więc nie jestem w stanie powiedzieć, co tak naprawdę powoduje, jak to się dzieje później...

    Po flashowaniu urządzenie nie uruchamiało się, nie pojawiało się wifi, nic nie przychodziło z TX2 do debugowania. Więc już prawie się poddałem, kiedy przyszło mi do głowy, że w jakiś sposób spieprzyłem bootloader przy moich poprzednich próbach, więc próbowałem kilku (być może naprawdę losowych) kroków, aby go odzyskać.

    tl/dr... sekwencja, która wydawała się działać dla mnie była następująca
    1) Użycie przycisku "Wymaż wszystko
    2) Zaznaczenie opcji "Overwrite bootloader".
    3) Zapisanie firmware'u - przy użyciu najnowszego firmware'u (który obecnie jest tym plikiem https://github.com/openshwprojects/OpenBK7231...wnload/1.17.802/OpenBK7231N_QIO_1.17.802.bin).

    Po tym i (pewnej liczbie restartów - zajmiemy się tym później) nagle okazuje się, że można go znaleźć jako punkt dostępu Wi-Fi. jak zaczarowany. Połączyłem się z AP i mogłem dokonać pewnych konfiguracji itp.

    Jednak... jest jedna rzecz, z którą nie jestem w stanie sobie poradzić w żaden deterministyczny sposób i być może to właśnie było źródłem moich kłopotów, a nie bootloader...

    Kiedy podłączam go do narzędzia flash, muszę zainicjować odczyt/zapis pamięci flash poprzez krótkie dotknięcie CEN do GND. Wydaje się, że nic nie trzeba robić z CSN. Ale po udanym flashowaniu nie jestem w stanie (w żaden niezawodny sposób) zmusić urządzenia do przejścia z trybu flashowania do normalnego trybu pracy.

    Ostatnio zadziałało coś w stylu odłączenia go od flashera, wyłączenia, pozostawienia na minutę, włączenia, pozostawienia na minutę i jest. Ale to działa TYLKO po pełnym wymazaniu i pełnym flashowaniu (patrz wyżej), po raz pierwszy. Jeśli podłączę go do konfiguracji odczytu/zapisu, nie jestem w stanie wyprowadzić go z trybu flashowania w żaden możliwy sposób. Więc skończyło się na wymazaniu, flashowaniu, tej dziwnej sekwencji restartu i ponownej konfiguracji z sieci. W ten sposób działa dla mnie i wszystko jest teraz w porządku. Ale wciąż zastanawiam się, dlaczego :)


    Kilka zdjęć z mojego doświadczenia...
    Zbliżenie na moduł elektroniczny BK7231N z zaznaczonymi elementami i napisami. Zbliżenie na moduł BK7231N z przylutowanymi przewodami do pinów na płytce drukowanej. Moduł PCB z widocznym procesorem i elementami oznaczonymi na płytce. Wnętrze urządzenia elektronicznego z chipem BK7231N i przekaźnikiem. Zbliżenie na płytkę drukowaną z widocznymi elementami elektronicznymi. Otwarte urządzenie elektroniczne na niebieskiej macie roboczej z narzędziami do demontażu. Ręka trzyma urządzenie Immax Neo Smart z widocznym przyciskiem zasilania i oznaczeniami metrycznymi.
    AI: Czy możesz podać dokładną wersję oprogramowania OpenBK, której użyłeś do flashowania urządzenia?
    OpenBK7231N_QIO_1.17.802.bin
    AI: Czy zauważyłeś jakieś komunikaty o błędach lub dzienniki podczas nieudanych prób rozruchu, które mogą zapewnić lepszy wgląd w problem?
    Nie byłem w stanie uzyskać BK7231N z trybu flash po flashowaniu ...

    Dodano po 8 [godzinach] 23 [minutach]:

    Jak na razie urządzenie wydaje się być identyczne z tym https://www.elektroda.com/rtvforum/topic3990985.html
    przynajmniej ta sama konfiguracja dla ledów, przycisku i przekaźnika działa u mnie
  • #2 21361964
    vkoutnik
    Poziom 2  
    Posty: 2
    Pomógł: 1
    Ocena: 1
    Pozwolę sobie kontynuować moją przygodę z bk7231n :) .

    Nie lubię marnować zasobów, więc kiedy zdałem sobie sprawę z mocy OpenBeken, postanowiłem spróbować całkowicie zaimplementować EVSE w urządzeniu immax

    AC EVSE to w zasadzie trzy rzeczy...
    1) przekaźnik AC
    2) pilot zbliżeniowy
    3) pilot sterujący

    ad 1) tym właśnie jest immax neo smart
    ad 2) oznacza to odczytywanie rezystancji między PP (pilot zbliżeniowy) a PE (masa) w celu osiągnięcia maksymalnego prądu, do którego zdolny jest kabel - zakładając kabel 5x4, nie czuję, żebym naprawdę potrzebował tego teraz
    ad 3) to jest kluczowa część. składa się z sygnału PWM 1kHz +-12V do CP (pilot sterujący). Jego cykl pracy mówi, ile prądu EV powinien pobrać z EVSE. EV manipuluje napięciem 12V (a EVSE odczytuje je z powrotem), aby kontrolować cykl ładowania (który w rzeczywistości włącza / wyłącza przekaźnik AC).

    Moim pomysłem jest więc wykorzystanie pinu ADC i pinu PWM urządzenia. Wtedy jedyną rzeczą, którą musiałbym zrobić na zewnątrz, jest zmiana 0 - 3.3V na +-12V, jak na przykład tutaj https://openev.freshdesk.com/support/solutions/articles/6000052070-theory-of-operation

    Moja obecna konfiguracja jest następująca

      "pins": {
        "8": "PWM;2",
        "9": "LED_n;1",
        "15": "WifiLED_n;0",
        "17": "dInput;46",
        "23": "ADC;3",
        "24": "Rel;1",
        "26": "Rel_n;1"
      },


    Następnie zdałem sobie sprawę, że nie jestem w stanie wyzwolić poziomów sygnału za pomocą prostego addChangeHandler, ponieważ sygnał jest w rzeczywistości falą, więc potrzebuję jego maksymalnej i minimalnej wartości

    Zmanipulowałem dla niego ADCSmoother w moim widelcu https://github.com/wwwenca/OpenBK7231T_App, więc daje on wartość min/max jako wyjście do poszczególnych kanałów.

    Może to być refaktoryzowane do czegoś o nazwie ADCSampler lub mogę stworzyć własny sterownik. Byłoby to jednak na tyle podobne, że gdyby był konsensus, spróbowałbym takiego uogólnienia...


    Wtedy z taką konfiguracją...

    StartDriver ADCSmoother
    ADCSmoother 23 100 37 4 5000 5 6 7
    


    Powinienem być w stanie zrobić swoje rzeczy z takim kodem (na razie tylko szkic)

    
    alias idle backlog echo “Idle (A)"; setChannel 1 0; setChannel 2 100
    alias ev_connected backlog echo "EV connected (B) - Setting current"; setChannel 1 0; setChannel 2 25
    alias ev_charge backlog echo "EV charge (C/D) - Turning power on"; setChannel 1 1; setChannel 2 25
    alias ev_error backlog echo "Error (E/F) - Turn power off"; setChannel 1 0; setChannel 2 0
    
    alias check_12v if $CH7>2410 then idle else check_9v 
    alias check_9v if $CH7>2104 then ev_connected else check_6v 
    alias check_6v if $CH7>1797 then ev_charge else check_3v 
    alias check_3v if $CH7>1491 then ev_charge else check_0v 
    alias check_0v if $CH7>265 then ev_error
    
    PWMfrequency 1000  
    idle
    AddChangeHandler Channel7 > 265 check_12v
    


    Wartości ADC są teraz tylko przypuszczeniami, przetestuję go, debuguję, dostroję i wtedy podam kolejną kontynuację
REKLAMA