Elektroda.pl
Elektroda.pl
X
OptexOptex
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[Atmega8] [BASCOM] Moduł GSM ze sterowaniem SMS

xury 09 Maj 2010 20:46 54266 94
  • #61
    bikerps
    Poziom 2  
    wlasnie robilem specjalnie na zew. kwarcu, jak odlacze kwarc to przestaje migac wiec jest ok

    Dodano po 1 [minuty]:

    teraz udalo mi sie skompilowac wersje druga, wczesniej mialem za stara wersje bascom avr, teraz kompiluje ok ale dalej uklad nie dziala, dioda poprawnej inicializacji nie zapala sie
  • OptexOptex
  • OptexOptex
  • #63
    lnitz
    Poziom 10  
    Witam wszystkich
    Mam taki program, który powinien działać.
    Czy mógłby mi ktoś powiedzieć co jest z nim nie tak, bo na telefonie se T300 nie działa.
    Mikrokontroler normalnie współpracuje z telefonem.
    Prosiłbym bardzo o pomoc bo skończyły mi się pomysły a próbuję po prostu wysłać SMS.
    Będę również wdzięczny za jakiś prostszy sposób wysłania wiadomości.


    Kod: vb
    Zaloguj się, aby zobaczyć kod
  • #64
    Jaca
    Poziom 28  
    Spróbuj wysyłać SMS'a w trybie tekstowym. Tryb tekstowy włączasz przez (jeśli Twój modem/telefon go obsługuje):

    Kod: vb
    Zaloguj się, aby zobaczyć kod


    ps. Nr telefonu w formacie: +48...
  • #65
    lnitz
    Poziom 10  
    próbowałem w ten sposób

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    natomiast nie wiem jak w programie użyć komendy w trybie tekstowym bez zapamiętywania wiadomości
    czyli czyli
    Kod: vb
    Zaloguj się, aby zobaczyć kod
  • #66
    xury
    Specjalista automatyka domowa
    Próbujesz wysłać przez SE T300 w trybie tekstowym ?
    Ten telefon nie obsługuje tego trybu.
    Co do programu to jest tak pogmatwany, że nie wiem zupełnie o co kaman.
    Zobacz jak ja to robię. Przekopiuj program i tyle, lub zrób tak ja w pierwszej wersji czyli przygotuj całą ramkę PDU
  • #67
    lnitz
    Poziom 10  
    Przerobiłem obie wersje programu pod siebie czyli zmieniłem porty i numery telefonów, wyzwalanie układu mam z przycisków, niestety nadal nic.
    Zapala sie jedynie dioda.

    Może jakaś mała podpowiedź jak po prostu przesłać ramkę PDU i czy konieczne jest wyłączanie echa oraz oczekiwanie na znak "zachęty" telefonu?

    Z góry dziękuję za podpowiedzi.
  • #69
    lnitz
    Poziom 10  
    Zgadza się wszystko jest ale ja jestem chyba na to za kiepski.

    Wybrałem z niego to co jak mi się wydaje potrzebuje.
    Jednak nadal nie za bardzo to funkcjonuje.

    Generalnie dioda na pind.3 mruga a po wyzwoleniu pinb.2 zapala się na stałe i zablokowuje się cały układ. Po wyzwoleniu dzwoni ale nie wysyła nic.

    Kod: vb
    Zaloguj się, aby zobaczyć kod


    Dziękuję za wszelką pomoc
  • #70
    xury
    Specjalista automatyka domowa
    Po paru miesiącach postanowiłem zrobić kolejny moduł i tu niespodzianka.
    Config Input nie działa w wersji 1.11.9.8 ani 1.12.0.0 tzn. kompiluje się ale nie filtruje znaków LF. Poza tym 1.11.9.8 ma jeszcze kilka innych błędów.
    Straciłem 18 godzin na badanie przyczyny. Po powrocie do 1.11.9.5 wszystko dzała dobrze.
  • #71
    adambehnke
    Poziom 24  
    Zobacz sobie na stronie MCS w dziale Download ,historię zmian w kolejnych wersjach.

    Sporo się zmieniło w ostatnich kilku wersjach , np:


    - CONFIG INPUT defaulted to the default settings. this was caused by modification for the xmega. Also notice that CONFIG INPUT0 need to be specified as INPUT or INPUT1.


    Z wersją 1.12.0.0 mam także same problemy ,nie dość że nie mogę stworzyć kodu powyżej 128k to na dodatek mam problemu z Uartami.
  • #72
    xury
    Specjalista automatyka domowa
    Nom właśnie. Jeśli chodzi o inne kwiatki to co zauważyłem na 1,11,9,8 coś źle działa ELSEIF. Zapisują mi się też jakieś dane do eeprom chociaż nigdzie w programie nie ma o tym słowa ( oprócz tych co mam zdefiniowane). Z UARTem też mam problemy. Odbieram zmienną, ale nie wiem czemu prównanie do niej nie działa ,a zmienna ma dokładnie taką wartość jak się spodziewam. Normalnie cuda się dzieją na tych najnowszych wersjach jakieś.
  • #73
    krychast
    Poziom 20  
    Odświeże trochę temat.czy ktoś mógłby zarzucić finalną wersje oprogramowania z wszelkimi poprawkami?
  • #74
    paciek74
    Poziom 12  
    krychast napisał:
    Odświeże trochę temat.czy ktoś mógłby zarzucić finalną wersje oprogramowania z wszelkimi poprawkami?

    Również przyłączam się do powyższej prośby, bo się już z tym wszystkim pogubiłem. Myślę, że podanie ostatecznego kodu ze schematem pomoże wielu osobom.
  • #75
    kasztan_85
    Poziom 10  
    Widać temat umarł ale być może znajdzie się ktoś kto pomoże. Próbuje przerobić projekt Xurego v2 na Atmege16 kwarc 16M ale za cholerę nie chce ruszyć. Zmiany w kodzie są jak na razie znikome mianowicie:

    Code:
    $regfile = "m8def.dat"
    
    $crystal = 8000000

    na
    Code:
    $regfile = "m16def.dat"
    
    $crystal = 16000000


    oraz zmieniłem numery w tym miejscu
    Code:
    Smsc:
    
    Data "48790998250"                                          'nr centrum SMSC Play (karty w telefonie podłączonym do UART)
    Telefon1:
    Data "48660606060"                                          'nr telefonu sterujacego (z kierunkowym Polski)
    Telefon2:
    Data "48661616161"                                          'inny numer telefonu na który będzie wysyłane powiadomiene o alarmie.


    telefon SE T300 (niemiecki) podłączony RDX do TDX tel. oraz TDX do RDX z diodą zenera itp. ( 3,27V)
    masa telefonu podłączona do masy uC.

    Diody nie reagują, na telefonie brak jakiejkolwiek reakcji.
    Proszę o pomoc w dostosowaniu kodu ewentualnie połączeń pod Atmegę16.

    Program kompilowany w bascom 1.11.9.0
    Pozdrawiam.
  • #76
    xury
    Specjalista automatyka domowa
    Upewnij się, że masz wszystkie piny podłączone dokładnie te same co ja, Program powinien działać , bo ja go bez problemów portowałem na Atmega 162. Na początek upewnij się czy diody led masz poprawnie podłączone czyli Pind.4 i pind.5 Pierwsza powinna się zapalić kiedy mikroprocesor poprawnie się dogada z telefonem. Druga zapala się podczas odbierania SMS.
    Jeśli nadal Ci nie działa to podepnij się komputerem do uarta (zamiast telefonu) i sprawdź czy w ogóle program działa. Na terminalu powinieneś otrzymać po resecie:
    AT
    AT
    ATE0
    ATE0
    AT+CNMI=3,3,0,0,0
    Jeśli tego nie masz to szukaj błędu w fusebitach, zasilaniu, połączeniach i układzie resetu.
    P.S
    Jak znajdę wolną chwilę to wstawię schemat pod tę wersję.
  • #77
    kasztan_85
    Poziom 10  
    terminal pokazuje :

    AT
    AT
    ATE0
    ATE0
    AT+CNMI=3,3,0,0,0

    i to jest koniec.

    Sprawdziłem połączenie tel do Uc i jest przejście od Uc do miejsca w którym złącze wchodzi w płytę główną telefonu.

    U siebie pominąłem zupełnie port C (nic nie podłączone) bo jak na razie chcę uzyskać jakąkolwiek komunikacje z telefonem.

    telefon podłączony 2 kabelkami do Uc i masa tel do masy układu.
    Diody dalej martwe.
    A może coś muszę włączyć w telefonie?
  • #78
    xury
    Specjalista automatyka domowa
    No to program działa. Dalej nic nie pokaże bo czeka na odpowiedź z telefonu.
    Teraz by wypadało z kolei podpiąć telefon pod terminal i sprawdzić czy odpowiada na komendy AT. Możesz użyć właśnie tych samych. Po AT powinien pokazać się napis OK.

    Nic nie trzeba włączać w telefonie oprócz oczywiście samego telefonu :)
  • #79
    kasztan_85
    Poziom 10  
    Z tym będzie problem bo korzystam z laptopa i nie mam COMa zresztą jedyny kabel jaki miałem rozwaliłem właśnie na potrzeby tego projektu. Zastanawiam się czy by nie wykorzystać programatora wbudowanego w EVB tylko do czego podpiąć RX i TX telefonu mam 4 do wyboru :

    TS- MISO
    SR-SCK
    CD-MOSI
    RI-Reset - ten chyba odpada :)


    no i jeszcze pozostaje kwestia jak z programu Terminal v1.9b by Br@y wysłać coś na komórkę.
  • #80
    xury
    Specjalista automatyka domowa
    Możesz chwilowo naprawić kabelek. Wysyłanie jest proste. Proponuję zamiast Terminala użyć Putty. Po ustawieniu portu COM po prosu piszesz w czarnym oknie. By coś przesłać do telefonu musisz znać komendy Hayesa (AT) Np. takie jakie już dzisiaj pisałem.
  • #81
    jousto
    Poziom 16  
    kasztan_85 napisał:
    Z tym będzie problem bo korzystam z laptopa i nie mam COMa zresztą jedyny kabel jaki miałem rozwaliłem właśnie na potrzeby tego projektu. Zastanawiam się czy by nie wykorzystać programatora wbudowanego w EVB tylko do czego podpiąć RX i TX telefonu mam 4 do wyboru :

    TS- MISO
    SR-SCK
    CD-MOSI
    RI-Reset - ten chyba odpada :)


    Żaden z powyższych
    Piny których zamierzasz użyć:
    TS - czyli CTS - Clear To Send (linia ustawiana w stan niski w przypadku gotowości wysyłania danych
    SR - czyli DSR - Data Set Ready (ustawiane gdy urządzenie DCE jest gotowe do pracy)
    CD - czyli DCD - Data Carrier Detected (linia ustawiana przy wykryciu sygnału nośnej)
    RI - czyli RI - Ring Indicator
    to linie pomocnicze w standardzie RS232 i nie będą działały.

    kasztan_85 napisał:
    no i jeszcze pozostaje kwestia jak z programu Terminal v1.9b by Br@y wysłać coś na komórkę.

    Terminal by Br@y to bardzo przyjemny program terminala.
    Jeśli masz zestaw EVB możesz wykorzystać układ FT232 do komunikacji telefonu z kompem. Rx i Tx telefonu musisz podpiąć odpowiednio do końcówek PD.0 oraz PD.1 zestawu (Rxtel do PD.1 i Txtel do PD.0, pamiętaj o połączeniu masy tel i zestawu). Musisz wyjąć na ten czas Atmegę z podstawki bo będzie niepotrzebnie obciążała transmisję (u mnie były problemy ale ja używałem SIM300)
  • #82
    kasztan_85
    Poziom 10  
    jousto dzięki za radę udało się go podpiąć

    wyciągnięte z putty:
    at
    OK
    at
    OK
    ate0
    OK

    ERROR

    i tu się putty zawiesiło.

    Xury mógłbyś powiedzieć który pin komórki masz do którego portu podpięty?

    Wszelkie dokumentacje mówią że:
    4 data in Data to mobile (Rx). (Tx for K300i)
    5 data out Data from mobile (Tx). (Rx for K300i)
    Tak więc 4 do PD.1 a 5 do PD.0

    a u mnie udało się skomunikować z PC dopiero po zamianie RX i TX.


    Więc teraz mam:
    PIN4(tel) do PD.0
    PIN5(tel) do PD.1

    przy takim podłączeniu mam komunikacje PC <-> TEL i już toalnie nic z tego nie rozumiem.
  • #84
    kasztan_85
    Poziom 10  
    Fakt źle się wyraziłem bo za bardzo nawiązałem do płytki startowej którą posiadam. Chodzi o to że do FT232 podpinam odwrotnie TX i RX niż powinny być.

    W każdym razie nawet przy zamianie RX i TX ciągle jest kaszanka i diody nie reagują.

    No i zastanawia mnie czemu po ATE0 pojawił się error i putty się zawiesiło takie zachowanie jest normalne? Czy po prostu mam skopany telefon.
  • #85
    jousto
    Poziom 16  
    Z tego co piszesz rozumiem że podłączyłeś Rx telefonu z Rx FT232 oraz Tx telefonu z Tx Ft232 a więc faktycznie nie ma prawa zadziałać. Pomimo to otrzymujesz jakieś odpowiedzi, ja sądzę że to może być sprawa samego terminala a telefon faktycznie milczy. Zamień połączenie tak aby było jak powinno być, odpal Terminal by Br@y i próbuj z kolejnymi prędkościami połączeń zaczynając od 600kbit/sek w końcu dostaniesz odpowiedź z telefonu. Puszczaj po kilka razy AT i czekaj za każdym razem chwilę aż telefon da znak życia daj mu trochę czasu może to sprawa synchronizacji. U mnie problemem była kolejność włączania urządzeń, najpierw włączałem wszystko do napięcia a dopiero na końcu łączyłem modem z mikrokontrolerem (chociaż przy połączeniu modem-komputer nie było to ważne).
  • #86
    kasztan_85
    Poziom 10  
    Udało mi się uzyskać połączenie z telefonem jak na razie tylko dzwoni i rozłącza się po 10 sekundach ale to i tak sukces.

    kod:
    Code:
    $regfile = "m16def.dat"
    
    $crystal = 16000000
    $baud = 9600
    $hwstack = 64
    $swstack = 32
    $framesize = 100

    Wait 20
    Print "AT" ; Chr(13) ;
    Waitms 100
    Print "AT" ; Chr(13) ;
    Waitms 100
    Print "ATD665******;" ; Chr(13)
    Wait 10
    Print "ATH" ; Chr(13) ;


    Niestety programu Xurego dalej nie udało mi się uruchomić. Może to wina fuse bitów? W tym momencie mam ustawione na D0 EF ( Atmega16, kwarc 16M) jeżeli ktoś się zna może coś podpowie? Bo mam problemy z
    http://www.engbedded.com/fusecalc/
    Nie wiem co powinno być włączone a co nie.


    Tak czy siak piękne dzięki dla Xurego i jousto.
  • #87
    xury
    Specjalista automatyka domowa
    Wyłącz JTAGa oraz debugowanie. Wydaje mi się, że masz problem z odbieraniem odpowiedzi z telefonu przez USART.
    Ustaw low FF i high EF
    Aha i musisz jeszcze dostosować odliczanie sekundy na timerze1 zmieniając wartość początkową ładowaną do timera
  • #88
    kasztan_85
    Poziom 10  
    Nie mogę ustawić high na EF averdude zwraca błąd i ustawia na CF a gdy mam na CF to nie działa nawet transmisja do telefonu. Sprawdziłem to co napisałeś i faktycznie wszystko zatrzymuje się w miejscu
    Code:
    Input Todczyt Noecho
    więc wisi przy odbieraniu z Telefonu.

    Próbowałem ustawić te fusebity na Atmedze32 i też mam ten sam błąd.

    Cytat:
    avrdude.exe: BitBang OK
    avrdude.exe: pin assign miso 3 sck 5 mosi 6 reset 7
    avrdude.exe: drain OK

    ft245r: bitclk 9600 -> ft baud 4800
    avrdude.exe: AVR device initialized and ready to accept instructions

    Reading | ################################################## | 100% 0.00s

    avrdude.exe: Device signature = 0x1e9502
    avrdude.exe: reading input file "0xEF"
    avrdude.exe: writing hfuse (1 bytes):

    Writing | ***failed;
    ################################################## | 100% 0.16s

    avrdude.exe: 1 bytes of hfuse written
    avrdude.exe: verifying hfuse memory against 0xEF:
    avrdude.exe: load data hfuse data from input file 0xEF:
    avrdude.exe: input file 0xEF contains 1 bytes
    avrdude.exe: reading on-chip hfuse data:

    Reading | ################################################## | 100% 0.02s

    avrdude.exe: verifying ...
    avrdude.exe: verification error, first mismatch at byte 0x0000
    0xef != 0xcf
    avrdude.exe: verification error; content mismatch

    avrdude.exe done. Thank you.



    Brakuje mi pomysłów co można jeszcze zrobić, żeby uC odbierał dane z telefonu.
  • #90
    kasztan_85
    Poziom 10  
    Kurcze hFuse na E9 też nie mogę ustawić, ustawia na C9 i wywala błąd pokazany post wyżej. :(

    Jakiekolwiek ustawienia wyłączające SPIEN mi nie wchodzą - Tak się zastanawiam czy jak to się wyłączy to nie zablokuje procka bo programuje przez FT232 -> ISP do procka