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



Teraz jest 19 kwi 2024, o 23:38


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
Autor Wiadomość
PostNapisane: 3 gru 2017, o 23:21 
Offline
Użytkownik

Dołączył(a): 04 wrz 2015
Posty: 88
Lokalizacja: Kraków
Pomógł: 1

Witajcie,
mam taki nietypowy problem. Zrobiłem myk i podłączyłem swoją stację pogodową (atmega1284p) poprzez USB (USART) z domowym serwerem (Debian). Na tymże serwerze za pomocą programu ser2net wypuściłem /dev/ttyUSB0 na TCP, a na komputerze przy użyciu programu USR-VCOM zrobiłem wirtualnego COMa - PuTTy śmiga pięknie :D
Pojawił się jednak problem, gdy próbuję programować procesor za pomocą mkBootloadera - dostaję "Brak odpowiedzi procesora - Time OUT !!!". Okazuje się, że mój program nie reaguje na "software RESET", ponieważ komenda, jaką dostaje, wygląda tak (dane z Monitora):

HEX:
75 69 55 AA 55 01 C2 03 C6 41 54 2B 52 53 54 3F
ASCII:
uiUŞUÂĆAT+RST?

Natomiast gdy wysyłam string "AT+RST?" z dowolnego terminala, to dociera taki:

HEX:
41 54 2B 52 53 54 3F
ASCII:
AT+RST?

To, co podaję, to jest oczywiście wycinek odpowiedzi "Odebrano komende AT: [........] - ".

Skąd się biorą te dodatkowe znaki?

Dodam jeszcze, że jeśli za pomocą PuTTy zmuszę procesor do resetu, pojawią się upragnione "????????????????????????????????????" i szybko wcisnę "Upload HEX" w mkBootloaderze, to procesor łyknie HEXa poprawnie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 gru 2017, o 21:18 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

new_old_man napisał(a):
ponieważ komenda, jaką dostaje, wygląda tak (dane z Monitora)
Z którego miejsca to jest? Monitor na porcie USB, czy gdzieś dalej?

--
Pozdrawiam,
Robert

------------------------ [ Dodano po: 1 minucie ]

Jak to jest na USB (przejściówce RS-USB) to przetestuj z inną.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 gru 2017, o 13:02 
Offline
Użytkownik

Dołączył(a): 18 lut 2015
Posty: 164
Lokalizacja: Koszalin
Pomógł: 16

new_old_man potrzebuje Twojej pomocy, bo widzisz: nie mam schematu Twojego projektu i nie wiem co jak gdzie jest podłączone itd.

1) Nie wiem w jakim celu podpięte to zostało do Debiana przez UART?

Co wiem: masz atmege1284P - pytam:
2 Jaki masz kwarc?
3) UART - z którego korzystasz bo są chyba 2.

Wiem że masz Debiana i jakiś UART puściłeś przejściówką i zamontowałeś sobie /dev/ttyUSB0
4) z jaką szybkością transmitujesz?
Wiem, że opalasz mkBootloadera.
5) Pytam gdzie - w Debianie, VirtualBox w Windows na innym kompie?
6) Czy kiedy masz już tego mkBootloadera działającego to czy linia UART jest tylko dla niego tzn. inne programiki ( w tym putty) nie korzystają w tym momencie z TX,RX?
7) Czy masz napisany tak program, że obsługuje on programowy RESET tzn parsuj, bufor, nadsłuch RX itd.. tak jak Pan Mirek tłumaczył?

Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 gru 2017, o 22:27 
Offline
Użytkownik

Dołączył(a): 04 wrz 2015
Posty: 88
Lokalizacja: Kraków
Pomógł: 1

Dzięki za odzew!

Cały układ wygląda tak:

mega1284 (UART1) --> USB (FT232) --> Orange Pi PC+ (Debian, ser2net, 115200 8N1) --> Router (WLAN) --> HP ProBook (W10) --> USR-VCOM + Monitor (115200 8N1) --> PuTTy (Serial) / mkBootloader

Cała ta kombinacja wynika z lenistwa - chciałbym mieć zdalny dostęp do Atmegi. A chcę zrobić to w ten sposób, bo akurat w pobliżu mam serwer na Linuksie, ponadto zasilanie mojego układu nie pozwala na dodatkowe obciążenie modułem wifi lub Ethernet (chwilę miałem XPort Lantronixa, ale stabilizator napięcia nie wydalał).

------------------------ [ Dodano po: 17 minutach ]

Przepraszam, że tak zdawkowo odpowiedziałem, ale w między czasie zacząłem coś jeszcze sprawdzać i teraz nie chcę namieszać.

------------------------ [ Dodano po: 39 minutach ]

Zrobiłem jeszcze raz testy - wysyłałem string "AT+RST?" za pomocą:

terminala "by Br@y"
Obrazek

PuTTy
Obrazek

mkBootloadera
Obrazek

Zwróćcie uwagę, że wszystkie trzy programy niby wysyłają to samo, ale tylko i wyłącznie w przypadku mkBootloadera program w ATmedze odpowiada, że odebrał coś więcej. Przedziwne...

Tak się zastanawiam - może USR-VCOM zaimplementowaną ma jakąś dodatkową funkcję przy współpracy z mkBootloaderem?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 gru 2017, o 23:21 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Można zamiast strncasecmp_P użyć strcasestr_P. Pierwsza funkcja zwraca 0 gdy łańcuchy znaków są dokładnie równe, a druga zwraca wartość różną od NULL gdy łańcuch 2 został zawiera się w 1.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 gru 2017, o 23:30 
Offline
Użytkownik

Dołączył(a): 04 wrz 2015
Posty: 88
Lokalizacja: Kraków
Pomógł: 1

rskup napisał(a):
new_old_man napisał(a):
ponieważ komenda, jaką dostaje, wygląda tak (dane z Monitora)

Z którego miejsca to jest? Monitor na porcie USB, czy gdzieś dalej?
Jak to jest na USB (przejściówce RS-USB) to przetestuj z inną.

Monitor jest na COM w laptopie, czyli tam, gdzie mkBootloader - to jest wbudowana funkcja USR-VCOM. Nie podejrzewam przejściówki, bo wszystko inne działa prawidłowo. Zresztą mkBootloader też działa, jeśli nie jest podłączony przez VCOMa, a bezpośrednio po USB.

raczyk napisał(a):
1) Nie wiem w jakim celu podpięte to zostało do Debiana przez UART?

Co wiem: masz atmege1284P - pytam:
2 Jaki masz kwarc?
3) UART - z którego korzystasz bo są chyba 2.

Wiem że masz Debiana i jakiś UART puściłeś przejściówką i zamontowałeś sobie /dev/ttyUSB0
4) z jaką szybkością transmitujesz?
Wiem, że opalasz mkBootloadera.
5) Pytam gdzie - w Debianie, VirtualBox w Windows na innym kompie?
6) Czy kiedy masz już tego mkBootloadera działającego to czy linia UART jest tylko dla niego tzn. inne programiki ( w tym putty) nie korzystają w tym momencie z TX,RX?
7) Czy masz napisany tak program, że obsługuje on programowy RESET tzn parsuj, bufor, nadsłuch RX itd.. tak jak Pan Mirek tłumaczył?


Ad 1. Już wyjaśniłem.
Ad 2. UART friendly;)
Ad 3. USART1.
Ad 4. 115200 8N1 (bootloader też).
Ad 5. Orange Pi PC+.
Ad 6. Tylko mkBootloader, zresztą chyba nie da się kilkoma programami otworzyć jednego portu COM (poza monitorami).
Ad 7. Tak jak PAN Mirek przykazał (netykieta chyba zabrania "panowania" ;) )

------------------------ [ Dodano po: 1 minucie ]

Krauser napisał(a):
Można zamiast strncasecmp_P użyć strcasestr_P. Pierwsza funkcja zwraca 0 gdy łańcuchy znaków są dokładnie równe, a druga zwraca wartość różną od NULL gdy łańcuch 2 został zawiera się w 1.


Dzięki za sugestię - pewnie ostatecznie wykorzystam Twoją propozycję. Ale nie lubię łatania dziur - wolałbym wiedzieć, co jest grane.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 gru 2017, o 00:31 
Offline
Użytkownik

Dołączył(a): 04 wrz 2015
Posty: 88
Lokalizacja: Kraków
Pomógł: 1

HA! MAM!

W programie USR-VCOM jest taka opcja "Synchronize baudrate(RFC2217 similar)", która jest domyślnie włączona. Tłumaczona jest tak:
Cytuj:
Synchronize baudrate(RFC2217 similar) function byte,virtual serial port parameters and hardware synchronization changes.Only applies to USR-TCP232 Series TCP232 Series firmware version requires 4.12 or higher, E45 series firmware version before 2011 or higher.If not support,Please click on "Options -> RFC2217" uncheck the box.


Prawdopodobnie rozpoznaje mkBootloadera jako któryś ze swoich modułów, np. USR-WIFI232-T (bo to chyba brat ATNEL-WIFI232-T).

Po wyłączeniu wszystko śmiga!:D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 gru 2017, o 07:20 
Offline
Użytkownik

Dołączył(a): 18 lut 2015
Posty: 164
Lokalizacja: Koszalin
Pomógł: 16

O to fajnie, że już Ci działa bo bałem się że może masz kwarc 16 MHz i że on krzaczy, ale Twój jest przyjazny USART :-)

Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 gru 2017, o 07:38 
Offline
Użytkownik

Dołączył(a): 04 wrz 2015
Posty: 88
Lokalizacja: Kraków
Pomógł: 1

raczyk napisał(a):
O to fajnie, że już Ci działa bo bałem się że może masz kwarc 16 MHz i że on krzaczy, ale Twój jest przyjazny USART :-)


http://forum.atnel.pl/topic3634.html?hilit=usart%20friendly#p43256 ;)



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: 9 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO