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



Teraz jest 23 kwi 2024, o 09:28


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: 330
Lokalizacja: Rybnik
Pomógł: 54

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: 296
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: 296
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: 296
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: 296
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 ]
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 4 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