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

[BK7231N] Major Tech MTS21 – niestandardowe oprogramowanie układowe ze sterownikiem UART1 dla RN8209

robertreyerse8 19 Sie 2026 15:46 111 2
REKLAMA
Treść została przetłumaczona angielski » polski Zobacz oryginalną wersję tematu
  • #1 21957397
    robertreyerse8
    Poziom 1  
    Posty: 1
    „Posiadam licznik energii Major Tech MTS21 wyposażony w moduł CBU podłączony bezpośrednio do układu pomiarowego RN8209C za pośrednictwem interfejsu UART1 (P10/P11). Czy ktoś mógłby udostępnić niestandardową kompilację najnowszego oprogramowania układowego BK7231N z włączoną opcją #define ENABLE_DRIVER_RN8209 1?”
    AI: O jaki projekt/repozytorium oprogramowania układowego i platformę docelową chodzi, np. OpenBeken dla BK7231N/CBU, oraz czy potrzebujesz pliku
    .bin
    do flashowania przez UART czy do aktualizacji OTA?

    Skompilowano 2 sierpnia 2026 r. o godz. 19:38:07, wersja 1.18.300, proszę o aktualizację OTA
    AI: Czy zrzuciłeś już oryginalne dane oprogramowania układowego/konfiguracji/kalibracji z MTS21 i czy możesz udostępnić aktualny szablon pinów/konfiguracji, którego używasz dla P10/P11 UART1 i RN8209C?
    aktualny zrzut z oryginalnego oprogramowania układowego
    Przepraszam, nie znaleziono żadnych znaczących danych dotyczących pinów. To urządzenie może być TuyaMCU lub niestandardowym urządzeniem bez danych konfiguracyjnych Tuya.
    Nie znaleziono informacji o module.
    Sekcja Tuya zaczyna się, jak zwykle, od 2023424
  • REKLAMA
  • #2 21957424
    divadiow
    Poziom 38  
    Posty: 5246
    Pomógł: 451
    Ocena: 921
    Właściwie nie zdawałem sobie sprawy, że OBK ma taki sterownik. Włączę go i prześlę plik kompilacji.

    ChatGPT przyznał mu w recenzji ocenę 3/10. Ciekawe, czy będzie działać poprawnie

    Dodano po 1 [godzinie]:

    w załączniku.
    Załączniki:
    • OpenBK7231T_App_divadiow-patch-1_e87f86417842_OpenBK7231N_powerMetering.zip (3.22 MB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #3 21957470
    divadiow
    Poziom 38  
    Posty: 5246
    Pomógł: 451
    Ocena: 921
    próba poprawki

    Cytat:
    Główne ulepszenia to:

    - Poprawiono ustawienie UART na 4800 8E1. Obecny HAL Beken definiuje 1 jako nieparzysty, a 2 jako parzysty, więc stare wywołanie funkcji UART_InitUART(4800, 1, false) w sterowniku było błędne.

    - Wykorzystuje znane długości rejestrów protokołu RN8209 zamiast odczytywać dowolną liczbę bajtów znajdujących się w buforze UART.

    - Opróżnia nieaktualne dane RX przed rozpoczęciem transakcji.

    - Wykorzystuje ograniczony limit czasu odpowiedzi i weryfikuje odwróconą sumę kontrolną addytywną.

    - Potrafi tolerować początkowy zbłąkany lub odbity bajt poprzez skanowanie niewielkiego okna odbiorczego w poszukiwaniu odpowiedzi z prawidłową sumą kontrolną.

    - Usuwa starą logikę odbioru danych[32] bez ograniczeń.

    - Usuwa spam w dzienniku WARN generowany dla każdego bajtu i zastępuje go komunikatami o błędach komunikacyjnych z ograniczoną częstotliwością oraz komunikatami o przywróceniu działania.

    - Odczytuje wyłącznie wartości faktycznie wykorzystywane przez OpenBeken: napięcie, prąd fazy A oraz moc czynną fazy A. Stary sterownik marnował dwa ze swoich pięciu slotów pomiarowych na odczyt prądu fazy B i mocy fazy B, ale nigdy ich nie publikował.

    - Publikuje dane do funkcji BL_ProcessUpdate() dopiero po zakończeniu pełnego, prawidłowego cyklu V/I/P, zamiast wielokrotnego publikowania mieszanki aktualnych i nieaktualnych rejestrów.

    - Zachowuje istniejące domyślne ustawienia PwrCal, dzięki czemu normalna kalibracja za pomocą funkcji VoltageSet, CurrentSet i PowerSet pozostaje mechanizmem kalibracji OpenBeken.

    - Pozostawia częstotliwość jako NAN, co pozwala wspólnemu backendowi poprawnie traktować ją jako nieobsługiwaną, pozostawiając jednocześnie akumulację energii normalnej, skalibrowanej integracji mocy OpenBeken.

    - Sprawdza identyfikator urządzenia RN8209 (0x820900) podczas uruchamiania w celach diagnostycznych, nie odmawiając działania w przypadku niepowodzenia lub rozbieżności wyniku sprawdzania.

    - Monitoruje licznik inicjalizacji UART w OpenBeken oraz wybrany port UART, więc jeśli inny komponent ponownie zainicjuje UART — lub flaga 26 zmieni wybrany port UART — sterownik RN8209 przywraca wymagane ustawienia.

    - Cały stan wewnętrzny jest teraz statyczny; stare globalne symbole, takie jak g_voltage, g_currentA itp., zostały usunięte.


    nieprzetestowane
    Załączniki:
    • OpenBK7231T_App_rn8209-driver-rework_1dddf2f8451f_OpenBK7231N_powerMetering.zip (3.22 MB) Musisz być zalogowany, aby pobrać ten załącznik.
REKLAMA