From 4afb22ccfecf10fc466457b503d57116f72993f4 Mon Sep 17 00:00:00 2001 From: Mateusz Lubecki Date: Sun, 19 May 2019 10:59:10 +0200 Subject: [PATCH] critical bugfix in tx20.c --- README-pl | 31 +++++++++++++++++++++++++++++++ system/src/drivers/tx20.c | 4 +++- 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/README-pl b/README-pl index f5a8982..c68bef8 100644 --- a/README-pl +++ b/README-pl @@ -9,6 +9,7 @@ uniwersalnego radiomodemu/sterownika sieci APRS, wyposażonego w szereg funkcjon -> Dwustronna komunikacja z komputerem przy użyciu protokołu KISS po łączu szeregowym (TTL-UART). -> Stacja pogodowa z obsługą wiatromierza TX20, termometru Dallas DS12B20 oraz czujnika ciśnienia MS5611. -> Telemetria umożliwiająca monitorowanie ilości odbieranych, nadawanych i powtarzanych pakietów. +-> Obsługa protokołu tekstowego VE.Direct używanego przez systemu fotowoltaiki Victron Energy Niewątpliwą zaletą ParaTNC są bardzo niskie koszta. Wynoszące jedynie 60~70pln bruttno na zakup STM32VLDISCOVERY. Ponieważ dekodowanie i generowanie transmisji APRS odbywa się w pełni programowo nie ma konieczności użycia tandetnych @@ -20,6 +21,31 @@ do wykonania odpowienich kabli połączeniowch. stosowna instrukcja z pinoutami 2. LICENCJA Warunki licencjonowania są zawarte w pliku LICENSE. +3. WSPIERANE FUNKCJONALNOŚCI PROTOKOŁU VE.DIRECT +Protokół (w wersji tekstowej, nie binarnej) VE.Direct został stworzony przez firme Victron Energy i jest wykorzystywany +w produkowanych przez nią inwerterów, kontrolerów ładowania i innego sprzętu do instalacji fotowoltaicznych. Służy on do +przesyłania telemetrii z kontrolera do komputera PC, lub w tym przypadku sterownika ParaTNC. Jest on domyślnie włączony +w większości urządzeń i w trybie bezczynności, tj. bez komunikacji protokołem binarnym z aplikacją konfiguracyjną +urządzenie będzie wysyłało co kilka sekund paczkę danych telemetrycznych. + +Komunikacja z urządzeniami Victron Energy odbywa się przez złącze VE.Direct, które jest tak naprawdę zwykłym złączem szeregowym. +W przypadku regulatorów z serii MPPT (w moim przypadku model MPPT75/15) używane są sygnały na poziome TTL-3.3V, dlatego można +je podłączyć do sterownika ParaTNC/STM32VLDISCOVERY bezpośrednio, tj. bez użycia konwerterów typu MAX232. + +Złącze VE.Direct w regulatorach z serii MPPT znajduje się poniżej bezpiecznika. Patrząc na złącze mając otwory montażowe w obudowie +zwrócone ku dołowi rozpiska jest taka (od prawej do lewej) + -> Masa + -> TX, dane z regulatora do hosta (kontrolera) + -> RX, dane z hosta do regulatora. Nie wykorzystywany przez protokół tekstowy + +VE.Direct wysyła bardzo wiele różnych parametrów i informacji statusowych. Oczywiście ze względu na ograniczenia standardu APRS +nie ma możliwości wysyłania wszystkiego, dlatego ostatecznie dokonano następującego wyboru + + a) Prąd akumulatora (ładowanie/rozładowywanie), jako trzeci kanał telemetrii + b) Napięcie akulatora, jako czwarty kanał telemetrii + c) Napięcie fotoogniwa, jako piąty kanał telemetrii + d) Status urządzenia (aktualny tryby ładowania, brak ładowania, akumulator bliski rozładowania), jako część statusu + e) Kody błędów (zwarcie, zbyt wysokie napięcie aku/panela, przegrzanie, przeciążenie itp), jako część statusu 3. KONFIGURACJA @@ -31,11 +57,16 @@ użytkownik może włączać i wyłączać poszczególne tryby pracy urządzenia -> KISS -> KISS + DIGI -> KISS + DIGI + METEO +-> VICTRON + DIGI + METEO +-> VICTRON + DIGI Włączenie funkcjonalności stacji pogodowej (przez odkomentowanie _METEO) automatycznie włącza digipeater nawet jeżeli zakomentowane jest #define _DIGI w pliku konfiguracyjnym. Komunikacja z komputerem odbywa się na prędkości 9600bps, a sam protokół KISS działa od samego początku pracy urządzenia i nie musi być w żaden sposób inicjalizowany ze strony PC. +Włączenie wsparcia dla protokołu VE.Direct odbywa się przez odkomentowanie //#define _VICTRON. +UWAGA!! Włączenie VE.Direct wyłącza i uniemożliwia wykorzystanie ParaTNC w trybie modemu KISS. + Sterownik wysyła co 10 minut ramkę telemetryczną zawierającą informację o ilości odebranych, nadanych i powtórzonych pakietów APRS przez okres minionych 10 minut. Ilość nadanych ramek jest sumą powtórzonych ramek i ramek własnych wliczając w to ramki telemetrii. Co ok 75 minut nadawane są pełne opisy kanałów. diff --git a/system/src/drivers/tx20.c b/system/src/drivers/tx20.c index 9553564..6d784e6 100644 --- a/system/src/drivers/tx20.c +++ b/system/src/drivers/tx20.c @@ -7,6 +7,8 @@ #include "rte_wx.h" +#include "station_config.h" + //#include ///* only for debug */ @@ -190,7 +192,7 @@ void TX20DataParse(void) { TX20DataAverage(); else; - trace_printf("TX20:Windspeed=%2.2f;Direction=%d\r\n", VNAME.Data.WindSpeed, VNAME.Data.WindDirX); +// trace_printf("TX20:Windspeed=%2.2f;Direction=%d\r\n", VNAME.Data.WindSpeed, VNAME.Data.WindDirX); /* only for debug */ // sprintf(logging_buff, "S: %f D: %d RC: %d CC: %d \n\r\0", VNAME.Data.WindSpeed, VNAME.Data.WindDir, VNAME.Data.Checksum, VNAME.Data.CalcChecksum);