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



Teraz jest 24 lut 2025, o 23:16


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 12 ] 
Autor Wiadomość
PostNapisane: 13 wrz 2015, o 13:25 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 lip 2014
Posty: 58
Pomógł: 0

Hej.
Testuję sobie właśnie komunikację uart wraz z modułami rfm12b. Mam jakiś babola w komunikacji uart :oops:
Może ktoś akurat znajdzie jakiś błąd który popełniam i którego nie jestem w stanie znaleźć.
Komunikuję atmege 32 z atmega 16. Są to atmegi w wersji "uniwersalnej" 2.7-5.5V.
Zasilam je z około 4,5V. Łączę RXD-TXD.
Dane odbieram atmega 32 z rfm12, jesli zostało odebrane "aaa" to zapalam sobie diodę i wysylam string na uart.
I tu nie ma problemu - dioda się zapala, dane (chyba) również zostają wysłane.
Druga atmega (16) odbiera te dane (a przynajmniej powinna :lol: ) i jeśli cokolwiek zostanie odebrane to też sobie zapala diodę.
Poniżej kod dla nadajnika i odbiornika:
Nadajnik (atmega32):
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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


Inicjalizacja dla obu atmeg wygląda tak samo. Piny txd oraz rxd występują w tych samych miejscach (PD1 i PD0). Obie atmegi taktowane z 8MHz - chociaż to też nie powinno miec wpływu, bo jakiekolwiek dane powinny być odbierane - nawet krzaki zapaliłyby diodę...
Przykro mi, bo nie mam w tej chwili dostępu do oscyloskopu :( Tak zawsze mógłbym więcej powiedzieć na temat tego, co się dzieje na liniach..



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 wrz 2015, o 16:24 
Offline
Użytkownik

Dołączył(a): 11 wrz 2013
Posty: 709
Zbananowany użytkownik

Pomógł: 23

grochal7 napisał(a):
Piny txd oraz rxd występują w tych samych miejscach (PD1 i PD0).


Kodu nie sprawdzałem.
Ale schematu nie pokazałeś jak masz te RX TX podłączone - mają byc "na krzyż".

--
Grzegorz...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 wrz 2015, o 19:25 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 lip 2014
Posty: 58
Pomógł: 0

Wyżej wspomniałem o tym, podłączam na krzyż ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 wrz 2015, o 20:23 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 27 maja 2013
Posty: 562
Lokalizacja: Bydgoszcz
Pomógł: 23

Uhm zawsze myślałem że RFM12B chodzą po SPI a nie po UART? No i do tego jeszcze na max 3V a nie na 4-5V :shock: ale mogę się mylić :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 wrz 2015, o 20:25 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 lip 2014
Posty: 58
Pomógł: 0

Dobrze myślisz ;)
RFM12 po SPI ;) To działa mi wyśmienicie ;)
Mam problem z komunikacja atmegi 16 i 32 po uarcie ;p

------------------------ [ Dodano po: 2 minutach ]

I też masz rację, działają na 3,3V ;)

------------------------ [ Dodano po: 4 minutach ]

Nie wiem, wydaje mi się że dla obu atmeg biblioteki mkuart.c i mkuart.h Pana Mirka nie różną się..
Czyżby jakieś bity muszę ustawić w inny sposób?
Jutro jeszcze dokładniej to sprawdzę, ale wydaje mi się że inicjalizuje uart w prawidłowy sposób. Jeśli coś się zmieni to dam znać ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 wrz 2015, o 20:34 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 27 maja 2013
Posty: 562
Lokalizacja: Bydgoszcz
Pomógł: 23

ale czkekaj bo coś nie rozumiem masz RMF12 to poco Ci uART?

Bo jak na razie żeś pokazał dwa kody jeden wysłający po RFM12 a drugi odbierający po UART to nie dudu działać nie będzie.

Czy ty masz 3 Atmegi i podłączone jakoś razem że jedna z nich odbiera RMF12 i przesyła do 3ciej po UART? Tylko po co :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 wrz 2015, o 20:43 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 lip 2014
Posty: 58
Pomógł: 0

Już tłumacze ;)
Z kompa wysyłam dane po uarcie do atmegi 8. Ta wysyła te same dane przez SPI do RFM12B.
Druga radiówka odbiera dane, wysyla do atmegi 32 i zapala diodę (jedną z dwóch, zależnie czy dane zostały odebrane prawidłowo, czy nie) oraz od razu wysyla te same dane (poniżej ten fragment kodu) po uarcie do atmegi 16, która (powinna a nie robi tego) odbiera dane i jesli cokolwiek odebrala zapala diodę. dioda ta niestety się nie zapala.
wspomniany fragment kodu:
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: 13 wrz 2015, o 20:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 27 maja 2013
Posty: 562
Lokalizacja: Bydgoszcz
Pomógł: 23

No ok rozumiem ale poco tam 2 atmegi ta 16 i 32 nie stykła by jedna z RMF12?

Ja do testów jakbym chciał połączyć 2 Atmegi po Uart bym sobie zrobił samą tylko taką komunikacje miedzy nimi bez RFM12 tylko tak testowo. I jak miał to sprawdzone to bym dokładał dopiero RFM12.


Autor postu otrzymał pochwałę


Ostatnio edytowano 13 wrz 2015, o 20:49 przez Intre, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 wrz 2015, o 20:47 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 lip 2014
Posty: 58
Pomógł: 0

A po co to?
Jestem w trakcie projektu, w którym atmega 16 będzie oddzielnym modułem odpowiedzialnym za sterowanie silnikami (sterowanie bezpośrednie). A atmega 32 będzie warstwą nadrzędną (sterowanie nadrzędne) i będzie swego rodzaju mózgiem całości (odpowiadać będzie również za inne rzeczy, nie tylko za sterowanie silnikami).

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

W rzeczywistości niemożliwe byłoby użycie jednego mikrokontrolera ze względu na brak wystarczającej liczby wyprowadzeń oraz obciążenia mikrokontrolera. A druga sprawa to właśnie ta warstwowe uporządkowanie projektu.



Ostatnio edytowano 13 wrz 2015, o 20:52 przez grochal7, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 wrz 2015, o 20:52 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 27 maja 2013
Posty: 562
Lokalizacja: Bydgoszcz
Pomógł: 23

Wez te 2 atmegi najlepiej takie same wgraj Mirka biblioteki i patrzaj co sie dzieje. No musi działać nie ma opcji. Podmień dopiero 1 z Atmeg jak Ci będzie działało i patrzaj jak nie to szukaj co jest źle w kodzie porównując nazwy z notą danego procka. I jak zacznie Ci śmigać to UART, dołóż wtedy do jednej RFM12 i po temacie.


Autor postu otrzymał pochwałę


Ostatnio edytowano 13 wrz 2015, o 20:56 przez Intre, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 wrz 2015, o 20:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 lip 2014
Posty: 58
Pomógł: 0

Jutro to sprawdzę bo nie mam dostępu do moich stykówek ;)
W tej chwili wydaje mi się, że problem polega na tym, że modyfikowałem biblioteki Pana Mirka pod atmegę8.
Jak dobrze pamiętam, Pan Mirek domyślnie pisał biblioteki pod atmegę16. Jeśli jakieś bity pod atmegę16 i pod atmege8 różnią się tzn że wgrywam na moją 32 i 16 to co było zmodyfikowane pod atmege8 (i tam dzialalo).
Chyba, że w przypadku 8 16 i 32 wszystko wygląda tak samo to będę szukać problemu gdzieś indziej..



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 wrz 2015, o 20:57 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 27 maja 2013
Posty: 562
Lokalizacja: Bydgoszcz
Pomógł: 23

grochal7 napisał(a):
Jutro to sprawdzę bo nie mam dostępu do moich stykówek ;)



o stykówka no to ja bym zaczął szukać od tego :)



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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