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 03:22


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 21 ] 
    Autor Wiadomość
    PostNapisane: 18 cze 2017, o 19:43 
    Offline
    Użytkownik

    Dołączył(a): 25 mar 2014
    Posty: 84
    Pomógł: 0

    Witam

    Mam taki problem - resetuje mi się Atmega32 jak podłączę się do niego za pomocą bluetootha tzn. wykonuje się program i jak podłączę się za pomocą terminala to następuje reset i wywala mi cały program. Używam HC-06 + Atmega32 z zegarem 1105200 z wgranym bootloaderem p. Mirka. W programie wykorzystuję biblioteke z GREEN booka. Czy miał ktoś podobny problem ?

    Bootloader korzysta z resetu programowego, ale nie jest to wywoływane w momencie podłączenia się pomiędzy terminalem a prockiem.
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Reset sprzętowy mam podpięty przez 10k do VCC.

    Nie mam pojęcia dlaczego mi się wywala program.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 cze 2017, o 22:16 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 17 mar 2014
    Posty: 334
    Lokalizacja: Rybnik
    Pomógł: 55

    Jakiej wielkości zadeklarowałeś bufor odbiorczy (UART_RX_BUF_SIZE) i jakiej bufor na odebrane dane przekazywany do zdarzenia? Bo jeśli ten drugi bufor będzie mniejszy od pierwszego, to gdy nadleci dłuższy string, zostaną nadpisane kolejne komórki w pamięci i może to spowodować problemy.

    _________________
    Amatorska stacje meteorologiczna



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 cze 2017, o 06:18 
    Offline
    Użytkownik

    Dołączył(a): 25 mar 2014
    Posty: 84
    Pomógł: 0

    Chyba to nie to ;(

    UART_RX_BUF_SIZE 32
    char bufor[50]; // bufor na potrzeby odebranych danych z UART

    Poza tym zaraz po podłączeniu nie wysyłam nic ( chyba, że masz na myśli jakieś śmieci, które mogły być w buforze ).



    Ostatnio edytowano 19 cze 2017, o 17:37 przez acid255, łącznie edytowano 1 raz

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 cze 2017, o 07:07 
    Offline
    Użytkownik

    Dołączył(a): 23 kwi 2016
    Posty: 58
    Pomógł: 9

    Konfigurowałeś tego HC-06, czy może działa na swoich domyślnych ustawieniach?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 cze 2017, o 07:25 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 14 lut 2014
    Posty: 293
    Lokalizacja: Jaskółowo k. Warszawy
    Pomógł: 9

    Cześć.
    Mi to wygląda na problem z zasilaniem.
    Czy cały układ testujesz na ATB czy własna płytka?
    Poprosimy o schemat.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 cze 2017, o 09:25 
    Offline
    Użytkownik

    Dołączył(a): 25 mar 2014
    Posty: 84
    Pomógł: 0

    Cam74 napisał(a):
    Konfigurowałeś tego HC-06, czy może działa na swoich domyślnych ustawieniach?


    tak, ale zmieniałem tylko jego nazwę i Baudrate na 115200 i później wróciłem na 9600.

    PITERK napisał(a):
    Mi to wygląda na problem z zasilaniem.


    Raczej odpada bo układ zasilam zasilaczem laboratoryjnym o wydajności do 5A ( układ pobiera 33mA).

    Proszę bardzo schemat:

    Obrazek



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 cze 2017, o 09:52 
    Offline
    Użytkownik

    Dołączył(a): 23 kwi 2016
    Posty: 58
    Pomógł: 9

    Nie wiem jak twój HC-06 ale w modułach BTM222 to miał domyślnie włączone echo i jeszcze jakiś tryb pseudo diagnostyczny, i też miałem z nim podobne problemy. Podłącz go do komputera uruchom terminal i zobacz czy masz echo włączone.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 cze 2017, o 10:04 
    Offline
    Użytkownik

    Dołączył(a): 25 mar 2014
    Posty: 84
    Pomógł: 0

    Echo jest wyłączone



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 cze 2017, o 11:43 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 14 lut 2014
    Posty: 293
    Lokalizacja: Jaskółowo k. Warszawy
    Pomógł: 9

    Ok. To przepraszam za to co teraz napiszę.
    Czy rezystor ściągający do GND przy bluetoot na pewno masz 2K?

    115200 i chcesz żeby to działało na rezystorowym dzielniku.
    oglądałeś:
    http://mirekk36.blogspot.com/2017/01/ko ... lacja.html

    Masz kondensatorki przy bluetoto?

    Proponuje zrobić diagnostykę:
    Wgraj kod z miganiem diody co jakiś czas z podłączoną twoją biblioteką od rs. bez bootloadera.
    Połącz się z modułem i sprawdź czy czy będziesz mieć restarty.

    _________________
    POZDROWIONKA



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 cze 2017, o 13:07 
    Offline
    Użytkownik

    Dołączył(a): 25 mar 2014
    Posty: 84
    Pomógł: 0

    PITERK napisał(a):
    Ok. To przepraszam za to co teraz napiszę.


    Spoko pisz bo dzięki temu być może uda się mi rozwiązać ten problem ;)

    PITERK napisał(a):
    Czy rezystor ściągający do GND przy bluetoot na pewno masz 2K?

    Na pewno tak mam.

    PITERK napisał(a):
    115200 i chcesz żeby to działało na rezystorowym dzielniku.
    oglądałeś:
    http://mirekk36.blogspot.com/2017/01/ko ... lacja.html


    Teraz jadę na 9600 - pisałem to wyżej w poście.
    Co do poradników to śledzę wszystkie na bieżąco.

    PITERK napisał(a):
    Masz kondensatorki przy bluetoto?


    Nie mam. Ale wydajność prądowa zasilania jest dość duża. Oczywiście mogę dodać kondki ( rozumiem, że chodzi o to - podczas podłączenie blutacza napięcie spada tak mocno, że resetuje procka ? )

    Diagnostykę przeprowadzę i opiszę rezultaty.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 cze 2017, o 14:18 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 14 lut 2014
    Posty: 293
    Lokalizacja: Jaskółowo k. Warszawy
    Pomógł: 9

    Ok to wykonaj test z diodą. Określimy czy problem w kodzie czy płytce.

    Pokaż jeszcze jak poprowadzileś ścieżki.
    Jesteś pewien rozwiązania z rezystorami jako konwerter napięć? Testowaleś już kiedyś z sukcesem takiego twora. Dopytuje bo ja nie miałem nigdy potrzeby zawsze stosowalem tranzystorki i nie miałem problemów.


    Autor postu otrzymał pochwałę

    _________________
    POZDROWIONKA



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 cze 2017, o 16:53 
    Offline
    Użytkownik

    Dołączył(a): 25 mar 2014
    Posty: 84
    Pomógł: 0

    Test z dioda wypadł pozytywnie tzn. układ się nie resetuje - czyli mam gdzieś problem w kodzie. Po dodaniu bootloadera układ też działa poprawnie.

    Układ zaczyna się resetować po zarejestrowaniu kolbaka

    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Układ resetuje się tylko z modułem HC-06, bo jak podłączę układ przez przejściówkę USB lub moduł HC-05 to reset nie występuje.

    Dodam tylko, że dolutowałem kondka, lecz układ zachowuje się bez zmian.

    Układ dzielnika raczej jest ok, bo program testuję zarówno w docelowym układzie ( tam gdzie jest dzielnik ) oraz na płytce testowej ( bez dzielnika ) i efekt jest taki sam.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 cze 2017, o 00:18 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 14 lut 2014
    Posty: 293
    Lokalizacja: Jaskółowo k. Warszawy
    Pomógł: 9

    W takim razie jakieś dziwne stwory wkradły Ci się do hc-06 :)


    wg mnie takie resety mogą być od
    1. źle przypisanych przerwań.
    2. watchdog
    3. błednie wykonana płytka/schemat
    Ale piszesz że na hc05 jest ok więc 1 i 2 raczej odpada.

    Ja miałem 2 sytuację kiedy rozkładałem ręce i w obu był problem nie z kodem a raz ze schematem, dwa z rozmieszczeniem elementów.
    Jeżeli to nie problem to załącz cały kod bez bibliotek mirka oraz pokaż płytkę i ścieżki.

    Hmm jeszcze pytanko: Czy dawałeś test diodowy w procedurze resetu?
    O tu
    Kod:
    if ( !strncasecmp( "AT+RST?", pBuf, 7 ) )    {
            cli();              // disable interrupts
            wdt_enable( 0 );      // set  watchdog
            while ( 1 );        // wait for RESET
        }

    _________________
    POZDROWIONKA



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 cze 2017, o 15:10 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 30 cze 2016
    Posty: 247
    Lokalizacja: Rybnik
    Pomógł: 13

    odłącz rx i tx a potem spróbuj połączyć

    _________________
    Situs != Situs



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 cze 2017, o 21:19 
    Offline
    Użytkownik

    Dołączył(a): 25 mar 2014
    Posty: 84
    Pomógł: 0

    dzisiejsza walka z bluetoothem mnie już całkowicie dobiła.
    Wczoraj po wymianie układu na HC05 wszystko ładnie śmigało, dziś bootloaderem wgrałem trochę zmieniony kod i zonk - układ nie resetuje się po podłączeniu ale po wpisaniu czegokolwiek na UART. Ręce mi opadły. Oczywiście zaraz wróciłem do kodu z wczoraj i też lipa.

    Cytuj:
    błednie wykonana płytka/schemat
    .

    Reakcja jest identyczna na płytce testowej i na sterowniku docelowym, to by musiał być nieprawdopodobny zbieg okoliczności żeby przyczyną była płytka jedna i druga. Ja mam wrażenie, że to bootloader wraz z kolbekami coś psuje. Poza tym jest taka dziwna reakcja, że jak zaczyna się resetować układ to przestaje działać reset programowy ( muszę nacisnąć reset sprzętowy aby wgrać program ).

    Cytuj:
    Czy dawałeś test diodowy w procedurze resetu?


    Właśnie w programie testującym jest dziwna reakcja bo po wydaniu polecenia AT+RST?\cr\lf nie ma resetu tzn. brak reakcji diody podłączonej do PD4

    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Chyba wrócę do Bascoma ;(



    Ostatnio edytowano 23 cze 2017, o 07:00 przez acid255, łącznie edytowano 1 raz

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 cze 2017, o 17:29 
    Offline
    Użytkownik

    Dołączył(a): 29 lip 2014
    Posty: 195
    Pomógł: 44

    Witam,

    Kolego acid255, weź jakąkolwiek sprawną przejściówkę RS232/USB i podłącz do jej wejścia Rx sygnał z wyjścia Tx tego Twojego modułu BT ( podłączenie wejścia Rx procka do tego Tx modułu BT możesz zostawić). Uruchom 2 sesje terminala i zobacz, czy to co wpisujesz z klawiatury pojawia się na drugim terminalu - czyli na wyjściu Tx modułu BT. Jeśli to sprawdzisz, napisz o wynikach i będziemy myśleć dalej, bo widzę, że "zgadywankami" nie da się rozwiązać Twojego problemu.

    Pozdrawiam, QuadMan.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 cze 2017, o 20:47 
    Offline
    Użytkownik

    Dołączył(a): 25 mar 2014
    Posty: 84
    Pomógł: 0

    Podłączyłem tak jak radzi kolega QuadMan i układ wydaje się działać poprawnie tzn. jak wpisuję coś na terminalu tego od BT to pojawia się tekst na terminalu od przejściówki. Po ENTERze następuje powrót tekstu do początku linii. Ale kolega mi podsunął prosty a jaki świetny pomysł. Zamiast BT podłączyłem samą przejściówkę i okazuje się, że też po Enterze się resetuje ( wywaliłem też bootloader - na razie ). Czyli to ewidentnie problem programowy ( chyba te kolbeki ).



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 cze 2017, o 22:14 
    Offline
    Użytkownik

    Dołączył(a): 29 lip 2014
    Posty: 195
    Pomógł: 44

    Witam ponownie.

    No widzisz, pomału dochodzimy do jakichś wniosków ;-). To teraz zrób tak: Twoje zdarzenie odbiorcze powinno interpretować dane w buforze. Na chwilę zastąp je funkcją która nie będzie robiła niczego innego jak wysyłała odebrane dane.Po prostu napisz w niej jedną linię:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
    i do wyjścia Tx mikrokontrolera podłącz przejściówke, tak aby na 2 terminalu obserwować odebrane przez uc dane.
    Aha, i jeszcze jddno, baaardzo ważne: NIGDY nie definiuj jakichkolwiek zmiennych w plikach *.h !!! Jeśli definiujesz jakąś zmienną globalną, robisz to zawsze w pliku *.c, np. w pliku main.c, np.
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
    I teraz, w "w komplecie" do Twojego pliku main.c tworzysz plik main.h, w którym umieszczasz deklarację zmiennej:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
    Ta deklaracja jest potrzebna do tego, że jeśli w jakiejś innej jednostce translacji ( w innym pliku *.c) potrzebujesz dostępu do tejże zmiennej - musisz jakoś poinformować kompilator o fakcie jej istnienia, to do pliku tego dołączasz (#include) plik main.h.
    Nieprzestrzeganie tej zasady będzie Cię kosztować wiele nerwów i straconego czasu.

    Napisz o wynikach eksperymentu z uartem.

    Pozdrawiam, QuadMan.


    Autor postu otrzymał pochwałę


    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 cze 2017, o 05:32 
    Offline
    Użytkownik

    Dołączył(a): 25 mar 2014
    Posty: 84
    Pomógł: 0

    Na terminalu nic się nie wyświetla, a układ się restartuje. Zmienne przeniosłem zgodnie z zaleceniem.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 cze 2017, o 08:26 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 09 gru 2014
    Posty: 1540
    Pomógł: 269

    Śledzę ten wątek już od jakiegoś czasu i nasuwa mi się takie pytanie:
    czy wyłączyłeś RS485 w pliku mkuart.h:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 cze 2017, o 08:55 
    Offline
    Użytkownik

    Dołączył(a): 25 mar 2014
    Posty: 84
    Pomógł: 0

    Oczywiście że nie zaremowałem. Stary jesteś Wielki. Zaraz jak będę w domu to zrobię i dam znać jaki efekt.

    ------

    Zaremowałem te linijki i niestety nadal się resetuje.
    Dziwi mnie, że w funkcji
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    to nic nie wyskakuje na terminal.


    -------
    Już wiem co jest przyczyną.
    W kodzie mirka jest taka linijka:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    i tam kompilator wywalał mi warninga, że brakuje mu "break" więc go wstawiłem - i to powodował reset.

    Swoja drogą może mi ktoś wyjaśnić dlaczego tam wyskakuje warning.

    Bardzo dziękuję wszystkim za pomoc i cenne wskazówki.

    Pozdrawiam, acid255



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

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 20 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