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

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 20 lip 2025, o 09:57


    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 1 gość


    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