Zmiana oprogramowania po RS485 , czy możliwe ?

Pytania, kody i porady dotyczące nie tylko Bascom.
Awatar użytkownika
niveasoft
Posty: 1216
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: Zmiana oprogramowania po RS485 , czy możliwe ?

Post autor: niveasoft » 25 wrz 2019, 14:04

Musisz się pobawić ;) Takie sprawy się dopracowuje i potem działają zawsze

Może linia nie potrafi się tak szybko zwolnić, więc możesz, na początek, spróbować dodać czas zanim procesor odpowie komputerowi.
Jako że tych printów z odpowiedziami jest tam kilka to lepiej u góry w kodzie zadeklarować sobie stałą. Potem możesz zmieniać ten czas od 1 do np 5 jedna zmianą
Wstaw Waitms Czas wszędzie przed jakimś Print
  1. Const Czas = 1        '1ms-5ms
  2. Do
  3.  Waitms Czas
  4.  Print ..
  5. Loop
A pytanie główne - Czy już wgrywałeś coś wcześniej bootloaderem ale zwykłym RS232?
grafii1
Posty: 58
Rejestracja: 23 wrz 2018, 11:28

Re: Zmiana oprogramowania po RS485 , czy możliwe ?

Post autor: grafii1 » 25 wrz 2019, 17:06

Ok , wieczorem będę działał i dam znać co dalej , co do rs232 to nie , wszystko idzie po max485 a dlaczego pytasz , może coś z konwerterem ... ( jeden na 340 drugi 2303 , nie posiadam ft232 - może był by lepszy ? )
Awatar użytkownika
niveasoft
Posty: 1216
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: Zmiana oprogramowania po RS485 , czy możliwe ?

Post autor: niveasoft » 25 wrz 2019, 17:11

Nie, nie. Chodzi o to, że zawsze najpierw sie testuje Bootloader zwykłym RS232 a dopiero potem, jak masz pewność że działa normalnie zaczynasz testowac na RS485 lub Blutooth.
grafii1
Posty: 58
Rejestracja: 23 wrz 2018, 11:28

Re: Zmiana oprogramowania po RS485 , czy możliwe ?

Post autor: grafii1 » 25 wrz 2019, 19:35

Może rzeczywiście najpierw rs232 , zamiast " szukać dziury w całym ", po testuje i dam znać
grafii1
Posty: 58
Rejestracja: 23 wrz 2018, 11:28

Re: Zmiana oprogramowania po RS485 , czy możliwe ?

Post autor: grafii1 » 25 wrz 2019, 22:42

chyba wiem w czym tkwi problem , po rs232 i przez konwerter na rs485 jest wysyłany w osobnych ramkach i moduł z wgranym tylko bootloaderem przyjmuje pojedyncze ramki R...S...T (lub coś innego ??? ) ale tuż po wgraniu i zresetowaniu pro mini rusza z wgranym softem który nie widzi pojedynczych znaków tylko RST w całości . Sprawdziłem to na analizatorze , wysyłając terminalem RST pro mini restartuje się . Trzeba by było zmodyfikować " przykład " tak aby mógł zdefiniować znaki wysyłane w osobnych ramkach i złożył je w całość . Możliwe jest też że sam bascom wysyła coś nie tak
Awatar użytkownika
Pikczu
Posty: 390
Rejestracja: 17 sie 2015, 13:46
Lokalizacja: Dublin, Ireland
Kontakt:

Re: Zmiana oprogramowania po RS485 , czy możliwe ?

Post autor: Pikczu » 25 wrz 2019, 23:19

Pokaz ten swój kod bo coś dziwnego prawisz.
RS485 jest tylko jako medium więc żadne osobne ramki nie powinny tam występować jedyne co może mieć wpływ, to zmiana z tx na rx i odwrotnie.
grafii1 pisze:
25 wrz 2019, 22:42
pojedyncze ramki R...S...T

Jeśli masz dodatkowe moduły rs485 zrób dla testu full duplex. Osobny zestaw na tx i osobny na rx.
Z racji iż bootloader nie używa przerwań bo są wyłączone nie ma buforowania dla uartu,dlatego tez użyty jest waitkey i $timeout, wychodzi z tego half duplex.

Jak dasz rade pokaż jeszcze jak masz fusy ustawione.
Dla pocieszenia dodam że u mnie bootloader śmiga po RS485 bez problemu(full duplex).
Awatar użytkownika
niveasoft
Posty: 1216
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: Zmiana oprogramowania po RS485 , czy możliwe ?

Post autor: niveasoft » 26 wrz 2019, 7:07

Nie było czasu sie zająć uaktualnieniem. Zamiast:
  1. If Command = "RST" Then
  2.      Disable Interrupts                 'wylaczenie przerwan
  3.      Start Watchdog                     'uruchomienie Watchdoga
  4.      Do                                 'petla nieskonczona
  5.      Loop                               'w niej czekamy na Reset
  6.     End If
...teraz raczej napisałbym:
  1. If 0 < Instr(Command , "RST") Then 'jeśli w ciągu znaków znajdziesz RST...
  2.      Print "Reset in progress..." ' :D
  3.      Disable Interrupts                 'wylaczenie przerwan
  4.      Start Watchdog                     'uruchomienie Watchdoga
  5.      Do                                 'petla nieskonczona
  6.      Loop                               'w niej czekamy na Reset
  7.     End If
Chodzi o to że różne inne znaki ładują się do stringa i on może wyglądać tak "[[[RST". Wtedy ten pierwszy przykład nie zadzaiała.
grafii1
Posty: 58
Rejestracja: 23 wrz 2018, 11:28

Re: Zmiana oprogramowania po RS485 , czy możliwe ?

Post autor: grafii1 » 26 wrz 2019, 14:06

Dzięki za odpowiedź , wieczorem potrenuje ale co jeszcze zauważyłem , odczytując zapisany program flash ( nie boot ) zauważyłem jakieś dziwne dopiski zaraz za oryginalną zawartością
Awatar użytkownika
Pikczu
Posty: 390
Rejestracja: 17 sie 2015, 13:46
Lokalizacja: Dublin, Ireland
Kontakt:

Re: Zmiana oprogramowania po RS485 , czy możliwe ?

Post autor: Pikczu » 26 wrz 2019, 20:00

Warto prze konfigurować watchdoga żebie nie czekać zbyt długo:
  1. Case bootloader:                                'load
  2.                disable interrupts
  3.                Config Watchdog = 16
  4.                Start Watchdog
  5.                do
  6.                loop
Grafii1 a jak sterujesz przepływem ? po rs485 możesz to wkleić?
ODPOWIEDZ