Strona 1 z 1

Bootloader

: 26 lut 2017, 23:14
autor: pimowo
Hej.
Tak sobie czytam na stronie głównej "Bootloader", "To łatwe!" I naszła mnie pewna myśl...
Czy uda się w taki sposób wgrać pliki *.hex ale żeby nie bylo tak łatwo to:
- sterownik na AVR podpięty do malinki za pomocą RS485
- wgranie plików z AVRdude (Linux)

Do czego zmierzam... mam w domu sterowniki na magistrali RS485 i gdyby udała się taka sztuczka, że mogę sobie aktualizować soft w prost z mastera (malinka) to byłoby już miszczostwo świata :)
Na elektroda.pl znalazłem bezprzewodowy programator AVR zbudowany na ESP, zacząłem już kompletować części, ale sposób z bootloaderem byłby dużo przyjemniejszy w użytkowaniu ;)

Pozdrawiam.
Piotrek

Re: Bootloader

: 27 lut 2017, 0:14
autor: niveasoft
Hehe :D To się bez problemu da zrealizować. Jest jednak jeden niuans.
Na stronie opisuję wgrywanie skompilowanych softów prosto z Bascoma.
Wtedy, kiedy masz źródła i kompilujesz u siebie to masz wbudowany program do obsługi tego Bascomowego bootloadera.
Niestety kiedy masz jakieś gotowe Hexy to już tego prosto z Bascoma nie zrobisz :P
Znam oficjalne stanowisko w tej sprawie. Sprzedają osobny programik, albo bibliotekę DLL do programów które tworzą inne firmy.

Jeden gościu, Evert Dekker, napisał sobie nawet programik osobny do tego. Zamieścił go nawet na forum ale go usunięto.
Programik jest na jego stronie, ale działa chyba tylko pod WinXP.
BARTek napisał więc swój - testowany na Win7 i Win10 :D
Potrafię go dodawać do swoich aplikacji.

Tego Linuxa to tak w wolnym czasie opanowuje. Nawet nazwy swojego nie pamietam.
Potrzebujesz około 2KB wolnego miejsca we flash bo ten bootloader obsługuje też zapis eeprom.
Można napisać swój, mniejszy i to własnie proponują. Żeby zapoznać się z tym żeby zrozumieć temat i potem śmigać ze swoimi.
Trzeba będzie dopisać obsługę przełączania nadawanie/odbiór.

Ogólnie, temat bardzo przyjemny :P

Re: Bootloader

: 27 lut 2017, 0:43
autor: pimowo
Nie dopisałem, ale pisząc *.hex miałem na myśli swoje programy, a nie czyjeś czy coś tam :)
Czyli krotko mówiąc, da się... super normalnie.

Jeżeli Linux jest problemem to zawsze mogę się podpiąć z systemem Windows do magistrali na czas aktualizacji sterowników, nie jest to jakiś większy problem. Z Linuksem to sobie myślałem tak, że piszę program w BASCOM-AVR w Windows, kompiluje, przerzucam *.hex na malinkę i stamtąd robię aktualizacje. Taki full automat :D

Muszę to wszystko jeszcze przemyśleć.
Z tym swoim sterowaniem już tyle czasu się męczę, że głowa mała, a końca nie widać...

<- ciach ->
W sumie na czas aktualizacji to i tak musiałbym wszystko zatrzymać aby "linia" była czysta, więc lepiej i szybciej będzie jak odłączę mastera (malinkę) od sieci na czas aktualizacji.
Odłączam malinkę, podłączam się z Windowsem, robię co trzeba i znów podłączam malinkę.
Jak by na to nie patrzeć to aktualizacja wszystkiego z jednego miejsca to przeogromne ułatwienie ;)

W sieci będą: ATtiny2313, ATmega8, ATmega328 i ATmega32

<- ciach, ciach ->
To działa! :D
Działam na kodzie który zamieściłeś i wszystko działa jak należy... Niby taka pierdoła, a cieszy jak nie wiem co :lol:

Teraz tylko (i aż) opanować to wszystko i aktualizacja moich sterowników (których de fakto jeszcze nie ma) to będzie czysta przyjemność-aktualizacja softu z jednego miejsca w domu, a nie bieganie co całej chacie.

Kolego @niveasoft, dziękuję Ci bardzo :)

Re: Bootloader

: 04 mar 2017, 8:31
autor: kaktus
Matko i córko Linux to nie zaraza .....
Jest wersja bootloadera obsługiwana nawet z konsoli ...

Re: Bootloader

: 04 mar 2017, 12:15
autor: pimowo
Kolego @kaktus, a coś złego jest w tym co zrobiłem? :)
Na początku myślałem aby wrzucać *.hex z maliny, a później wyszło, że lepiej będzie jak teraz zrobiłem. Przecież pisząc nowy kod, poprawki czy coś tam to mogę od razu wrzucić do uC z BASCOM-AVR. Gdybym zrobił jak na początku myślałem to musiałbym przerzucić wszystko do malinki i dopiero programować uC, a tak jest jeszcze prościej :)

Wymyśliłem jeszcze jedną rzecz do tego wszystkiego-konwerter WiFi->RS485, aby wrzucać nowe kody do uC po WiFi. Niestety nie potrafię zmusić ESP8266 do przełączania kierunku odbiór/nadawanie :( Konwerter WiFi->RS232(TTL) działa bezproblemowo. Jak nic nie wymyślę jak to opanować w LUA to zrobię przełączanie kierunku sprzętowo.

Wiem, że to wszystko trochę przekombinowane...
W tej chwili testowo działa to tak:
Laptop z Linux (nie używam Windows) -> wirtualna maszyna (Windows 7) -> BASCOM-AVR -> USR-VCOM -> ESP8266 (LUA) -> RS232(TTL) -> uC
Testowo sprawdzone i działa to też tak:
Laptop z Linux (nie używam Windows) -> wirtualna maszyna (Windows 7) -> BASCOM-AVR -> konwerter USB-RS485 -> uC
Docelowo wyobrażam sobie to tak:
Laptop z Linux (nie używam Windows) -> wirtualna maszyna (Windows 7) -> BASCOM-AVR -> USR-VCOM -> ESP8266 (LUA) -> MAX485 -> magistrala RS485 -> uC

Podsumowując...
To co wskazał @niveasoft bardzo mi pasuje i pracuje idealnie, teraz muszę to wszystko "spasować" ze swoimi zabawkami ;)