Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 25 lut 2026, o 07:44


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
Autor Wiadomość
PostNapisane: 4 wrz 2014, o 20:50 
Offline
Nowy

Dołączył(a): 04 lut 2014
Posty: 7
Pomógł: 0

Witam,
Mam taki układ AVR Atmega (np. 32A) i podłączony do niej układ do transmisji szeregowej RS485 - MAX485. Wszystko jest podłączone jak należy bo układ wysyła i odbiera dane poprawnie.
Teraz potrzebuje taki bootloader, żeby móc wysyłać hexy z aktualizacjami oprogramowania po RS485. Czy ktoś taki posiada?

Wiem, że jest chip45boot2 ale chcą pieniążki za kody źródłowe by móc poprawnie zdefiniować dodatkowy pin do wysyłania i odbierania.
Proszę o pomoc.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 wrz 2014, o 21:14 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2011
Posty: 401
Lokalizacja: Siedlce
Pomógł: 7

Bootloader Mirka + trochę własnej inwencji twórczej?

_________________
Czekamy na RedBook'a!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 wrz 2014, o 21:28 
Offline
Nowy

Dołączył(a): 04 lut 2014
Posty: 7
Pomógł: 0

szopler napisał(a):
Bootloader Mirka + trochę własnej inwencji twórczej?


Bootloader Mirka o ile mi wiadomo nie obsługuje RS485.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 wrz 2014, o 15:34 
Offline
Nowy

Dołączył(a): 04 lut 2014
Posty: 7
Pomógł: 0

squeez napisał(a):
Po drobnych zmianach jak najbardziej, sam używam i nawet tu na forum był o tym temat.


Proszę o linka bo nie potrafię go znaleźć albo o jakieś słowa kluczowe ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 wrz 2014, o 18:49 
Offline
Użytkownik

Dołączył(a): 10 paź 2012
Posty: 123
Pomógł: 10

Witam.
Proszę:
topic2168.html
Pozdrawiam
Jarek


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 wrz 2014, o 20:19 
Offline
Nowy

Dołączył(a): 04 lut 2014
Posty: 7
Pomógł: 0

Dzięki udało mi się odpalić to po RS485 ale mam jeszcze jeden poważny problem... nie działa mi reset i muszę fizycznie resetować (wciskając przycisk na płytce) żeby zaprogramować.
Zna ktoś rozwiązanie tego problemu?

Dodam, że polecenie AT+RST? nie działa.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 wrz 2014, o 20:59 
Offline
Użytkownik

Dołączył(a): 10 paź 2012
Posty: 123
Pomógł: 10

hns napisał(a):
Dodam, że polecenie AT+RST? nie działa.

Witam.
Ale co to dokładnie znaczy, że Ci nie działa?
W tym sensie, że wysyłasz z mkbootloadera i nie resetuje procka? Bo jeśli o to Ci chodzi to polecenie resetu musisz mieć obsłużone w swoim programie w mikrokontrolerze. Tzn. musisz ten ciąg AT+RST? lub dowolny inny jaki sobie wymyślisz do resetowania po przeparsowaniu u siebie podpiąć go do funkcji resetującej wyglądającej np. tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Dodatkowo musisz pamiętać, że jeśli do magistrali będziesz miał podpięte więcej slave'ów to nie możesz użyć takiej samej funkcji reset dla wszystkich układów bo będzie to powodować resetowanie wszystkich urządzeń jednocześnie i wtedy każdy uruchomi bootloader, każdy zacznie jednocześnie nadawać i z transmisji nici. W takim wypadku dla każdego urządzenia musisz mieć inny ciąg resetujący. Tak jak pisałem w przytoczonym wątku u mnie np. resetowanie to ciąg znaków $1S gdzie $ oznacza, że to komenda wysyłana przez mastera, 1 to adres urządzenia a S to właśnie komenda reset obsługiwana przez główny program w procku (nie przez bootloader w procku!!!). U mnie to tak prosto jest (bez parsowania komend AT) bo układ prosty, komend mało więc na case'ach to zrobiłem. Jak chcę 3 slave'y zaktualizować to najpierw wpisuję w mkbootloader jako ciąg resetujący $1S, po aktualizacji zmieniam go na $2S itd dla każdego sterownika.
Pozdrawiam
Jarek


Autor postu otrzymał pochwałę


Ostatnio edytowano 6 wrz 2014, o 20:05 przez jark, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 wrz 2014, o 10:23 
Offline
Nowy

Dołączył(a): 04 lut 2014
Posty: 7
Pomógł: 0

jark, dzięki za odpowiedź.
Już wcześniej udało mi się do tego dojść, że trzeba zresetować układ przed wysłaniem programu do flasha.
Teraz jestem na etapie opracowywania ramki do resetu. Chce to zrobić szesnastkowo (bez ascii), czyli np.ramką ABA+CR (D-hex) = ABAD z programu Mirka.
Kiedy układ dostanie taką ramkę wtedy następuje restart.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 wrz 2014, o 19:55 
Offline
Użytkownik

Dołączył(a): 10 paź 2012
Posty: 123
Pomógł: 10

Witam.
hns napisał(a):
Chce to zrobić szesnastkowo (bez ascii), czyli np.ramką ABA+CR (D-hex) = ABAD z programu Mirka.

Nie wiem czy Cię dobrze zrozumiałem co chcesz zrobić ale wpisanie w mkbootloadera jako ciągu resetującego "ABA" nie wyśle Ci czterech bajtów szesnastkowo 0x0a, ox0b,0x0a i 0x0d (CR). Użycie ciągu "ABA" spowoduje wysłanie kodów ASCII tych liter czyli: 0x41, 0x42, 0x41 i na końcu dodawany przez mkbootloader 0x0d.
Pozdrawiam
JArek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 paź 2014, o 10:58 
Offline
Nowy

Dołączył(a): 08 paź 2014
Posty: 1
Pomógł: 0

A próbowałeś:
https://code.google.com/p/avr-ub/

Swojego czasu u mnie działał.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO