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



Teraz jest 28 mar 2024, o 22:17


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 15 ] 
Autor Wiadomość
PostNapisane: 9 sie 2018, o 09:19 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 mar 2014
Posty: 150
Lokalizacja: Staszów
Pomógł: 12

Kłaniam się Kolegom,
Bawię się modemem m590, tak rozrywkowo, nic poważnego, bazując na interesująco napisanym artykule naszego Kolegi:
https://www.sunduino.pl/gsm-m590e-tanio-i-prosto/.
Gdy ten modem jest podpięty poprzez ATB-USB-RS232, komunikacja poprzez terminal (Putty) w obie strony jest bez zarzutu.

No to następnym krokiem było podpięcie pod mikrokontroler (Atmega128 z zestawu ATB Shield128), przy wykorzystaniu programowego UART,
bez zmian parametrów (ten sam baudrate, itd).

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


A mój problem polega na tym, że w odpowiedzi (na wyświetlaczu) nie dostaję tego co odpowiada modem, tylko to, co ja wysyłam komendami AT+.
Na pierwszy rzut oka to wygląda, że to Tx i Rx są na odwrót. Ale nie. Jest Tx z Rx i Rx z Tx.
I tego właśnie zachowanie nie rozumiem i proszę o wskazówki.
Czy te moje komendy idą do jakiegoś jednego bufora (poleceniem suart_puts()), który ja później odczytuję (poleceniem suart_gets())?
Czy to kompilator sobie to zachowuje w pamięci na stałe?
No nie wiem.

_________________
Ad augusta per angusta



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 sie 2018, o 09:54 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 cze 2014
Posty: 855
Lokalizacja: pod Warszawą
Pomógł: 58

cześć
Czy masz możliwość podpięcia się ATB-RS232 do płytki?
Ja zawsze wyprowadzam sobie piny od uart-a i podpinam się z przejściówką oczywiście tylko pin Rx i masę.
Jak podepniesz się do Tx procka to w terminalu zobaczysz to co on wysyła, jak podepniesz się do Rx procka to zobaczysz co odpowiada moduł....
pozdrawiam


Autor postu otrzymał pochwałę

_________________
Pomóżcie mi stanąć na nogi



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 sie 2018, o 10:37 
Offline
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 2561
Pomógł: 126

Dokładnie - to najszybszy sposób jeśli nie ma się pod ręką analizatora logicznego typu Saleae.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 sie 2018, o 13:44 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 mar 2014
Posty: 150
Lokalizacja: Staszów
Pomógł: 12

mczarny napisał(a):
Jak podepniesz się do Tx procka to w terminalu zobaczysz to co on wysyła, jak podepniesz się do Rx procka to zobaczysz co odpowiada moduł....

Takie proste, a takie skuteczne. Dziękuję obu Kolegom.

Eksperyment:
Pin Tx mikrokontrolera do pinu Rx modemu M590.
Pin Tx modemu do pinu Rx ATB-USB-RS232.

Wynik jak poniżej w terminalu:
Obrazek

Były dwa błędy.
Pierwszy to ten, że powinno być tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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

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


Drugi błąd to ten związany z poleceniem:
at+CSCS="GSM"
Tu pewnie trzeba znaki cudzysłowia "wewnętrznego" zastąpić jakimś znacznikiem.

Zobaczę, jak teraz pójdzie, bo tak od razu, na gorąco nie chce.

_________________
Ad augusta per angusta



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 sie 2018, o 14:11 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 cze 2014
Posty: 855
Lokalizacja: pod Warszawą
Pomógł: 58

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

_________________
Pomóżcie mi stanąć na nogi



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 sie 2018, o 15:26 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 mar 2014
Posty: 150
Lokalizacja: Staszów
Pomógł: 12

Oczywiście, jeśli ten GSM weźmie się między znacznik: \"GSM\" to wtedy ten drugi, wspomniany wyżej błąd, także znika.

Ale to nie rozwiązało problemu zasygnalizowanego na początku.
Bo nadal na wyświetlaczu LCD pokazuje mi moje wysyłane komendy. I tylko to.

_________________
Ad augusta per angusta



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 sie 2018, o 17:26 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 cze 2014
Posty: 855
Lokalizacja: pod Warszawą
Pomógł: 58

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

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

_________________
Pomóżcie mi stanąć na nogi



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 sie 2018, o 17:59 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 mar 2014
Posty: 150
Lokalizacja: Staszów
Pomógł: 12

Niestety, nie pomogło.

_________________
Ad augusta per angusta



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 sie 2018, o 18:12 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 cze 2014
Posty: 855
Lokalizacja: pod Warszawą
Pomógł: 58

Masz jakoś ten bufor z funkcji odbiorczej zdefiniowany?
Z tego co widzę w funkcji "suartgets" powinna zwracać to co w buforze.

_________________
Pomóżcie mi stanąć na nogi



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 sie 2018, o 19:30 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 mar 2014
Posty: 150
Lokalizacja: Staszów
Pomógł: 12

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


Reszta to biblioteka LCD oraz SoftUart kol. Mirka.

_________________
Ad augusta per angusta



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 sie 2018, o 08:05 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 cze 2014
Posty: 855
Lokalizacja: pod Warszawą
Pomógł: 58

cześć
próbowałeś odpalić odbiór w pętli głównej?
np:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

wiem, że to jest blokujące, ale nad tym można popracować - zrobić coś na wzór zdarzenia żeby nie blokować pętli

_________________
Pomóżcie mi stanąć na nogi



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 sie 2018, o 19:08 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 mar 2014
Posty: 150
Lokalizacja: Staszów
Pomógł: 12

Też nie zadziałało.
Widać problem jest o wiele bardziej złożony i wymaga głębszej wiedzy i dokładniejszej analizy noty katalogowej, a może i czegoś jeszcze.
Tym bardziej, że dodanie zwykłego _delay_ms() między wysłaniem komendy AT, a próbą odczytania odpowiedzi powoduje odmienne działanie programu.
Trzeba walkę na tym etapie zakończyć.

Kolega Mirek ładnie opisuje takie przypadki w YB (dla modemu Fibocom), ale to dla mnie jeszcze za wysokie progi.

Dziękuję za dotychczasową pomoc.

_________________
Ad augusta per angusta



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 sie 2018, o 08:53 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 cze 2014
Posty: 855
Lokalizacja: pod Warszawą
Pomógł: 58

cześć
Ja bym się nie poddawał :)
Ponieważ wiesz jak przesłać do procesora cokolwiek za pomocą Putty odpal w pętli głównej takie coś -
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

oczywiście wcześniej inicjalizacja Softuart i deklaracja bufora
i prześlij z terminala cokolwiek
Zobaczymy czy to co wyślesz wyświetli się na LCD.
Będziemy wiedzieli, że funkcja odbiorcza u Ciebie działa

_________________
Pomóżcie mi stanąć na nogi



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 sie 2018, o 11:07 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 mar 2014
Posty: 150
Lokalizacja: Staszów
Pomógł: 12

Ja się nie poddaję, tylko odkładam na chwilowy bok rzeczy, które na siłę wierzgają.
Komunikacja z uC działa w obie strony z terminala, jak wspomniałem na początku.
Wysyłam string z terminala do uC, z niego na LCD i z powrotem na terminal.
Myślę, że sprawa może mieć coś wspólnego z poziomem napięć.
Neoway m590(e) wymaga zasilania 3.9V ale USART jest na 3.3V.
Na chińskiej płytce, podpiętej pod napięcia TTL (zasilanie i USART) to "działa",
bo jest tam dioda IN4001 i obniża to napięcie.
Tu bym upatrywał przyczyn problemów.
Było, nie było, nawet w tej "ekstremalnej" wersji wysyła i odbiera SMS (polecenia z terminala i uC).
Bawię się dalej.
Spróbuję zastosować "Boże" napięcia. Jak coś odkryję dam znać, aby i przyszłe pokolenia mogły skorzystać.

_________________
Ad augusta per angusta



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 sie 2018, o 13:24 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 cze 2014
Posty: 855
Lokalizacja: pod Warszawą
Pomógł: 58

No tak jeżeli nie masz prawidłowej translacji napięć.....
Zobacz jak ja to zrobiłem
Obrazek
zauważ, że napięcie po stronie M590 na liniech Rx i Tx jest równe VCCIO czyli ok.2,85V tak jak zaleca dokumentacja.
Oczywiście przejściówka ATB-USB-RS232 załatwia sprawę, ale 3,3V to max. napięcie jakie toleruje M590 na liniach IO

pozdrawiam

_________________
Pomóżcie mi stanąć na nogi



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Google [Bot] i 9 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