RTV forum PL | NewsGroups PL

Jak skutecznie rozwiązać problem komunikacji Atmegi z modułem GSM przez RS232?

Brak komunikacji między Atmegą a modułem G SM po rs232

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Jak skutecznie rozwiązać problem komunikacji Atmegi z modułem GSM przez RS232?

Goto page Previous  1, 2, 3, 4, 5, 6  Next

Atlantis
Guest

Tue Dec 11, 2012 8:23 pm   



Ok, wykonałem próbę. Jak już wspomniałem uC podłączyłem do bateryjki 9V
poprzez stabilizator 5V. Moduł przez osobny stabilizator do zasilacza CB
13,8V (może dawać ponoć do 5A, a moduł w peeku pobiera 1,5A).

Płytki miały więc osobne zasilania, połączone były jedynie przewodami
masy, TX, RX, TS (ustawienie na stan wysoki włącza moduł) i DSC_EN (stan
wysoki oznajmia włączenie modułu).

Pojawił się złowrogi objaw. Mianowicie po włączeniu zasilania Atmegi
dioda na zasilaczu CB przygasła, dało się też słyszeć zauważalne
brzęczenie. Jakby nagle zwiększył się pobór prądu...
Oczywiście natychmiast wszystko wyłączyłem i zrezygnowałem z dalszych
eksperymentów.

Każda płytka z osobna dalej działa prawidłowo.

Czy to rozjaśnia w jakiś sposób sytuację? Gzie powinienem szukać błędu?

Mario
Guest

Tue Dec 11, 2012 9:17 pm   



W dniu 2012-12-11 19:51, Atlantis pisze:
Quote:
W dniu 2012-12-11 00:32, Michoo pisze:

Jakie parametry transmisji ustawiłeś i jaka częstotliwość w atmedze?

9600 bps, 8 bitów danych, brak parzystości, jeden bit stopu.
Taktowanie Atmegi jest ustawione na 8MHz,

Ale może mieć trochę mniej lub więcej. Jeśli częstotliwość będzie miała
odchyłkę ponad 3 procent to mogą być błędy transmisji.

--
pozdrawiam
MD

Mirek
Guest

Tue Dec 11, 2012 9:36 pm   



On 11.12.2012 20:23, Atlantis wrote:

Quote:
Pojawił się złowrogi objaw. Mianowicie po włączeniu zasilania Atmegi
dioda na zasilaczu CB przygasła, dało się też słyszeć zauważalne
brzęczenie. Jakby nagle zwiększył się pobór prądu...

Stabilizator się wzbudza albo obciąża go któraś z tych linii sterujących
do płytki atmegi albo zasilacz CB zepsuty. Więcej pomysłów nie mam.
Skoro moduł "szarpie" 1.5A to o jego zasilanie powinieneś najpierw
zadbać i koło niego stabilizator i krótka masa, a atmega niech sobie
wisi na kabelkach.

Mirek.

Atlantis
Guest

Tue Dec 11, 2012 10:11 pm   



W dniu 2012-12-11 21:36, Mirek pisze:

Quote:
Stabilizator się wzbudza

Co może być powodem? Dziwne jest to, że każda płytka z osobna na tych
samych stabilizatorach działa zupełnie prawidłowo. Problem pojawia się
dopiero po połączeniu ich razem.


Quote:
albo obciąża go któraś z tych linii sterujących do płytki atmegi

To była pierwsza rzecz jaka mi przyszła do głowy. Teraz jednak wychodzi
na to, że problem nie był związany z "krzakami" odbieranymi przez
Atmegę. Okazuje się, że po odłączeniu linii TS i DSC_EN od Atmegi
zasilacz już nie wariuje. Jeszcze raz sprawdzę w dokumentacji czy czegoś
nie przeoczyłem. Może faktycznie któraś z nich potrzebuje bufora?

Zasilanie modułu GSM włączam po prostu chwilę wcześniej (zwarłem
odpowiednie piny, a więc starty następuje automatycznie) a po paru
sekundach podaję zasilanie Atmedze.

Niestety - komunikacja wciąż nie odbywa się prawidło, pomimo
rozdzielonego zasilania przychodzą nieprawidłowe znaki. Co ważne -
zawsze zawartość terminala wygląda tak samo. Nie są to jakieś losowe
znaczki...


Quote:
albo zasilacz CB zepsuty.

Odpada. Zasilacz świetnie sobie radzi z konstrukcjami krótkofalarskimi
QRP, które podczas nadawania pobierają więcej prądu niż ten moduł. ;)


Quote:
Skoro moduł "szarpie" 1.5A to o jego zasilanie powinieneś najpierw
zadbać i koło niego stabilizator i krótka masa, a atmega niech sobie
wisi na kabelkach.

Jak mówiłem - w tej chwili są dwa osobne stabilizatory. Jeden dla
Atmegi, drugi dla modułu D15.

Atlantis
Guest

Tue Dec 11, 2012 10:12 pm   



W dniu 2012-12-11 21:17, Mario pisze:

Quote:
Ale może mieć trochę mniej lub więcej. Jeśli częstotliwość będzie miała
odchyłkę ponad 3 procent to mogą być błędy transmisji.

Tylko zastanawia mnie dlaczego w przypadku komunikacji z komputerem
wszystko jest ok...

Mirek
Guest

Tue Dec 11, 2012 11:15 pm   



On 11.12.2012 22:11, Atlantis wrote:

Quote:
zawsze zawartość terminala wygląda tak samo. Nie są to jakieś losowe
znaczki...

Przyznaję się że dopiero teraz przyjrzałem się dokładnie temu
zapisowi... wygląda na to, że obok dwóch typowych (windowsowych) znaków
końca lini (0D 0A 0D 0A), modem w pewnym momencie wysyła 0D FE 0D 0A a w
pewnym 0D 0A 00 00.
Uwzględnij to w programie i tyle. Przyjmij za koniec linii 0D albo 0A a
resztę znaków ignoruj.

Mirek.

Atlantis
Guest

Tue Dec 11, 2012 11:20 pm   



W dniu 2012-12-11 23:15, Mirek pisze:

Quote:
Przyznaję się że dopiero teraz przyjrzałem się dokładnie temu
zapisowi... wygląda na to, że obok dwóch typowych (windowsowych) znaków
końca lini (0D 0A 0D 0A), modem w pewnym momencie wysyła 0D FE 0D 0A a w
pewnym 0D 0A 00 00.

Tak, tylko dlaczego nie robi tego, gdy jest podłączony do komputera
przez max3232???

Atlantis
Guest

Tue Dec 11, 2012 11:21 pm   



Poza tym z tego co widzę w pewnym momencie wysłał też dwa znaki NULL.

Mirek
Guest

Wed Dec 12, 2012 12:05 am   



On 11.12.2012 23:20, Atlantis wrote:

Quote:
Tak, tylko dlaczego nie robi tego, gdy jest podłączony do komputera
przez max3232???

To gadaj z nim przez komputer. Podłącz do jednego com modem a do

drugiego atmegę i ... hmm pewnie nie masz linuksa bo
cat /dev/ttyUSB0 > /dev/ttyUSB1 i odwrotnie załatwiłby sprawę. I przy
okazji podsłuchać można.
5% szans że to jednak załócenia od zasilania i objawiają się właśnie po
określonych komendach jak modem "bierze" prąd. FE to długi ciąg jedynek
potem 0. Natomiast 00 00 (znak null dwa razy) no to dłuuugi ciąg zer...
przy czym mało prawdopodobne żeby został odebrany przypadkowo.

Mirek.

J.F.
Guest

Wed Dec 12, 2012 12:31 am   



Dnia Wed, 12 Dec 2012 00:05:34 +0100, Mirek napisał(a):
Quote:
5% szans że to jednak załócenia od zasilania i objawiają się właśnie po
określonych komendach jak modem "bierze" prąd. FE to długi ciąg jedynek
potem 0.

Odwrotnie. Dwa bity zero (start i LSB), a potem jedynki.

Moze byc skutek jakiegos chwilowego zaklocenia ... ale zabraklo koledze 0A
po 0D.
I tak dziwnie po CPIN ... modemik dostaje pin i probuje sie z siecia
skomunikowac ?


J.

Grzegorz Niemirowski
Guest

Wed Dec 12, 2012 1:03 am   



Atlantis <marekw1986NOSPAM@wp.pl> napisał(a):
Quote:
W dniu 2012-12-11 21:17, Mario pisze:
Ale może mieć trochę mniej lub więcej. Jeśli częstotliwość będzie miała
odchyłkę ponad 3 procent to mogą być błędy transmisji.
Tylko zastanawia mnie dlaczego w przypadku komunikacji z komputerem
wszystko jest ok...

Zmierz może w końcu oscyloskopem szerokość bitów, jak Ci już dwie osoby
doradziły.

--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
Uptime: 0 days, 7 hours, 3 minutes and 5 seconds

Grzegorz Niemirowski
Guest

Wed Dec 12, 2012 1:05 am   



Atlantis <marekw1986NOSPAM@wp.pl> napisał(a):
Quote:
A właśnie. Jak wygląda kwestia ustawienia bitów odpowiadających liniom na
których znajduje się TX i RX w rejestrach DDRC, PORTC i PINC?
W tutorialach, które czytałem ta kwestia raczej nie była poruszana -
pisano po prostu o rejestrach funkcyjnych i konfiguracyjnych modułu rs232.

Bo nie mają znaczenia.

--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
Uptime: 0 days, 7 hours, 4 minutes and 44 seconds

MM
Guest

Wed Dec 12, 2012 8:12 am   



A czytasz i ustawiasz bajt kalibracyjny generatora RC dla 8 MHz?

--
Pozdrawiam
MM

Użytkownik "Atlantis" <marekw1986NOSPAM@wp.pl> napisał w wiadomości
news:ka7vc3$1qf$1@portraits.wsisiz.edu.pl...
Quote:
W dniu 2012-12-11 00:32, Michoo pisze:

Jakie parametry transmisji ustawiłeś i jaka częstotliwość w atmedze?

9600 bps, 8 bitów danych, brak parzystości, jeden bit stopu.
Taktowanie Atmegi jest ustawione na 8MHz, z wewnętrznego rezonatora RC.

Tak w razie, gdybym się pomylił i tego nie zauważył, to procedura
inicjująca pracę modułu rs232 wygląda następująco:

void usart_init (void)
{
UBRRH = 0;
UBRRL = 51;

UCSRB = (1<<RXEN) | (1<<TXEN) | (1<<RXCIE);
UCSRC = (1<<URSEL) | (1<<UCSZ0) | (1<<UCSZ1);
}


Adam Wysocki
Guest

Wed Dec 12, 2012 9:44 am   



Atlantis <marekw1986NOSPAM@wp.pl> wrote:

Quote:
A właśnie. Jak wygląda kwestia ustawienia bitów odpowiadających liniom
na których znajduje się TX i RX w rejestrach DDRC, PORTC i PINC?

Bez znaczenia. Ja zwykle ustawiam TX na wyjście a RX na wejście, bo jakoś
trzeba je ustawić, ale włączony USART ma priorytet nad DDR i sam kontroluje
te linie.

Sprawdź jeszcze oscyloskopem zasilanie obu układów (ATmegi i modułu), może
okazać się, że masz duże tętnienia (szczególnie na module).

--
Gof
http://www.chmurka.net/

Adam Wysocki
Guest

Wed Dec 12, 2012 9:45 am   



Atlantis <marekw1986NOSPAM@wp.pl> wrote:

Quote:
Taktowanie Atmegi jest ustawione na 8MHz, z wewnętrznego rezonatora RC.

No to tu masz problem. Przerabiałem temat. Użyj zewnętrznego kwarcu i problem
(jeżeli to jedyny problem) zniknie.

--
Gof
http://www.chmurka.net/

Goto page Previous  1, 2, 3, 4, 5, 6  Next

elektroda NewsGroups Forum Index - Elektronika Polska - Jak skutecznie rozwiązać problem komunikacji Atmegi z modułem GSM przez RS232?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map