Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Europejski lider sprzedaży techniki i elektroniki.
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Atmega328/88+esp8266 - Komunikacja atmeg z modułem esp nie działa

Michał93b 16 Wrz 2016 13:02 1131 4
  • #1 16 Wrz 2016 13:02
    Michał93b
    Poziom 12  

    Cześć, w końcu postanowiłem pobawić się modułem Wifi, który jest prosty w użyciu, jest doskonale udokumentowany i generalnie nie ma najmniejszych problemów z jego uruchomieniem. No cóż... nie.
    Po kilku godzinach kminienia, czemu nie działa komunikacja z użyciem komend AT dowiedziałem się, że trzeba go odpowiednio zflaszować. Hura, komendy działają, łączy się z siecią, można zmieniać różne rzeczy, cuda wianki na kiju, no słowem bajka. Ale teraz znów przechodzę horror. Co najmniej kilka dni siedzę nad tym kombinując, myśląc i w końcu piszę ten post, bo nic innego mi do głowy nie przychodzi.
    Używam prostego konwertera usb <-> uart opartym na CP2102. Moduł działa, zarówno komunikacja przez COM(9) atmegi z komputerem przebiega poprawnie, komunikacja komputera z modułem ESP8266 przebiega poprawnie, no i wiadomo, esp komunikuje się z komputerem, np. daje mi listę dostępnych sieci, albo chociażby odpowiada OK. Ale komunikacja atmegi z ESP po uartcie nie działa, nie mam pojęcia dlaczego. Wrzucę swój prosty i prymitywny kod, wrzucę schematy i może Wy coś zobaczycie, bo ja już jestem w stanie odrysować na pamięć połączenia zachowując ich oryginalne długości.. Za każdy pomysł będę po stokroć wdzięczny.

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Należy zauważyć, że nie każda komenda w uart_puts zakończona jest \r\n - próbowałem wszystkich kombinacji, bez kończenia linii, z powrotem karetki, z powrotem karetki i końcem linii, i z samym końcem linii.
    Schematy mam dwa, bo generalnie pracowałem nad dwoma równoległymi projektami i najpierw je zmontowałem, a potem zacząłem pluć sobie w brodę, że było trzeba dać transmisję radiową, a nie wifi...
    Jeden projekt to czytnik kodu RFID na własny użytek, drugi projekt to proste sterowanie bramą (sprawdzanie stanu zamknięcia/otwarcia i kontrola z poziomu przeglądarki wraz z wyświetleniem odpowiedniego stanu). 328p jest taktowana 16MHz kwarcem, 88 8MHz, oczywiście fuse-bity są poprawnie ustawione, naturalnie w Atmel Studio jest poprawnie rozpisany zarówno procek, jak i F_CPU, prędkości w bodach są dobrze liczone, bo komunikacja z komputerem jest poprawna zarówno na 9600, 74880 jak 115200. Kod zamieszczam tylko do schematu czytnika RFID, ale do drugiego projektu jest on identyczny, różnią się jedynie inicjalizacje portów.
    Atmega328/88+esp8266 - Komunikacja atmeg z modułem esp nie działa Atmega328/88+esp8266 - Komunikacja atmeg z modułem esp nie działa

    Proszę o pomoc :(

  • #2 16 Wrz 2016 16:44
    tmf
    Moderator Mikrokontrolery Projektowanie

    Generalnie polecenia kończą sie znakami CR+LF. Skąd wiesz, że coś nie działa? Pokazany program tylko coś wysyła do ESP, ale nic nie odbiera. Pokaż schemat podłączenia modułu, może tu masz problem. ATMega coś z modułu odbiera? Po resecie powinny to być przynajmniej śmieci, zakończone kawałkiem normalnego tekstu.

    Dodano po 46 [sekundy]:

    BTW, niektóre firmware przestawiają moduł na 9600 bps, a nie 115200, więc warto sprawdzic i tę możliwość.

  • #3 16 Wrz 2016 16:49
    Michał93b
    Poziom 12  

    tmf napisał:
    Generalnie polecenia kończą sie znakami CR+LF. Skąd wiesz, że coś nie działa? Pokazany program tylko coś wysyła do ESP, ale nic nie odbiera. Pokaż schemat podłączenia modułu, może tu masz problem. ATMega coś z modułu odbiera? Po resecie powinny to być przynajmniej śmieci, zakończone kawałkiem normalnego tekstu.

    Dodano po 46 [sekundy]:

    BTW, niektóre firmware przestawiają moduł na 9600 bps, a nie 115200, więc warto sprawdzic i tę możliwość.

    Napisałem w temacie, iż testowałem zarówno z \n i \r, z samym \r jak i samym \n. Moduł działa na 115200, gdyż z taką prędkością bez problemu komunikuję się z ESP poprzez konwerter usb->uart (dwu kierunkowo oczywiście).
    Schematy podłączenia masz zamieszczone na obrazkach.
    Ponadto prędkość przestawiałem na wszystkie możliwe, od 9600 aż do 115200.
    Co do tego, że atmega nie gada to jestem pewny, bo próbowałem zmieniać tryb ESP i nie ulega ona zmianie (AT+CWMODE=1,2,3). Ponadto nie łączy się chociażby z siecią o zadanych parametrach.

  • #4 16 Wrz 2016 16:57
    tmf
    Moderator Mikrokontrolery Projektowanie

    Problem w tym, że na schematach nie ma połączenia modułu ESP. A to dosyć kluczowe. Kolejna sprawa - nigdzie nie analizujesz odpowiedzi modułu. Zakładasz na sztywno, że po jakimś czasie polecenie zostało wykonane. O wiele prościej by było, gdybyś analizował odpowiedź modułu, wiedziałbyś przynajmniej co jest nie tak. Bo może polecenie jest wykonane lecz kończy się błędem.

  • #5 16 Wrz 2016 17:01
    Michał93b
    Poziom 12  

    tmf napisał:
    Problem w tym, że na schematach nie ma połączenia modułu ESP. A to dosyć kluczowe. Kolejna sprawa - nigdzie nie analizujesz odpowiedzi modułu. Zakładasz na sztywno, że po jakimś czasie polecenie zostało wykonane. O wiele prościej by było, gdybyś analizował odpowiedź modułu, wiedziałbyś przynajmniej co jest nie tak. Bo może polecenie jest wykonane lecz kończy się błędem.


    Pomarańczowy klocek to jest ESP8266, masz podpisany. Mówimy oczywiście o module, esp8266-01 z wyciągniętymi 8 goldpinami do podłączenia. Całość działa na dobrej płytce drukowanej, długości ścieżek są minimalne.

    Odbierałem komunikaty atmegą, tutaj jest to akurat niewykonywane w tym kodzie, ale odbierałem error.
    Z tym, że esp wywala error po wszystkim, co nie jest poprawną komendą AT. Ja jestem pewny, że oba klocki, tj. uC i ESP są działające, problemem jest komunikacja pomiędzy tymi dwoma urządzeniami.

 Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME