logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

komunikacja avr <-> sim300, problem z gprs

tbj 16 Maj 2010 12:37 1935 2
  • #1 8081659
    tbj
    Poziom 11  
    Mam następujący problem:

    Moduł sim300C podłączony z ATmega48, zasilanie modułu to +5V na VCHG oraz bateria Lit-Ion 3.7V 1400 mAh na VBAT + dodatkowo kondensator 100uF zgodnie z notą katalogowa.

    komunikacja z kontroler <-> moduł odbywa sie przy użyciu następujacej funkcji:

    komunikacja avr <-> sim300, problem z gprs

    gdzie gsmCommand(char* Bufor) to funkcja wysyłająca na port UART komunikacji z modułem zawartość spod wskaźnika bufor, dodając na końcu "\r", oraz czekająca na odpowiedź modułu, natomiast sendCommand(char * Bufor) również wysyła komende ale nie czeka na odpowiedz modułu.
    gsmWait() tio funkcja oczekująca na wyslanie przez moduł dodatkowej odpowiedzi.
    GSM_Init() - inicjuje modem: APN, AT+CFUN=1 itd...

    W czym problem...

    Układ działa poprawnie, i co okolo 5 minut wysyła na serwer dane, które sa dalej przetwarzane i prezentowane na stronie WWW, problem w tym, że po dłuższym czasie, około tygodnia, zaczynają występować coraz to dłuższe przerwy w nadawaniu.

    Początkowo są to krótkie przerwy co np. pół godziny, po których moduł powraca do normalnej pracy.
    Z czasem przerwy stają sie coraz dłuższe i występują coraz częściej...

    Co może być tego przyczyną... ?

    Dodatkowo w jednym z urządzeń zauważyłem przekłamywanie wysyłanych znaków, tzn. zamiast np ciągu "123456789" wysyłane jest "123Γ≡6789", tak jednak dzieje się tylko w jednym przypadku...

    Czy problem leży w programie.... ?
    Czy też może należy zastosować większy kondensator na VBAT... ?

    Wdzięczny będe za wszelkie sugestie...
  • #2 8082600
    revolt
    Poziom 34  
    Jaka jest prędkość wymiany danych? Masz zewnętrzne kwarc podpięty pod generator czy korzystasz z wbudowanego?
  • #3 8082714
    tbj
    Poziom 11  
    procek pracuje z zewnętrznym kwarcem 4MHz, modul podpiety jest do procesora przez programowy USART, cala komunikacja miedzy modulem a procesorem wydaje sie byc poprawna poniewaz podglad mam na sprzetowym usarcie i widac ja w oknie terminala.
    Predkosc transmisji to 4800 i jest ustawiana w procedurze GSM_Init():

    void GSM_Init()
    {
    LED1_OFF; LED2_OFF;

    GSM_COMMAND = false;

    while(!GSM_COMMAND)
    {
    sendCommand("AT");

    GPRS_ON; _delay_ms(250);
    GPRS_OFF; _delay_ms(50);
    }

    gsmCommand("ATE0"); gsmCommand("AT+IPR=4800"); gsmCommand("AT+CFUN=1"); sendCommand("AT+CGATT=1");
    }
REKLAMA