SIM800L проблемы с подключением

Тема в разделе "Arduino & Shields", создана пользователем Илья125rus, 5 фев 2017.

  1. Всем доброго времени суток. Столкнулся с следующей проблемой.
    Пришел GSM модуль SIM800L v2. Подключил его к Arduino UNO. Вызов на сим карту, которая в модуле идет, и даже что-то записывает в буфер, но что именно не понятно. Попробовал проверить AT команды следующим кодом.
    Код (C++):
    #include <SoftwareSerial.h>

    SoftwareSerial mySerial(10, 11); // RX, TX

    void setup() {
      Serial.begin(9600);
      Serial.println("Hello!");
      mySerial.begin(9600);
      mySerial.println("AT");
    }

    void loop() {
      if (mySerial.available())
        Serial.write(mySerial.read());
      if (Serial.available())
        mySerial.write(Serial.read());
     
    }
    Ответы на команды приходят постоянно не понятные
    [​IMG]
    Пробовал на разных скоростях портов подключаться, перепробовал всё от 300 до 115200, символы меняются, но все равно получаю не то что надо.
    Фото самого модуля:
    [​IMG]
    [​IMG]
    В чём может быть проблема? Может кто-нибудь уже сталкивался с подобной?
     
  2. ostrov

    ostrov Гуру

    Если скорости разные, то модем и вашей АТ не увидит. Странно, что он отвечает. Анализатора логического нет случайно в доступности?
     
  3. К сожалению нет
     
  4. ostrov

    ostrov Гуру

    Хотя бы вот такой надо под рукой иметь всегда. Распиновку проверили? Точно к правильным ногам прицепились?
     
  5. Пробовал по разному, те rx на tx менять и наоборот. Если писать
    Код (C++):
    SoftwareSerial mySerial(10, 11); // RX, TX
    10 пин выводить на RX модуля, то на любых скоростях вообще никаких признаков жизни, если наоборот 10 пин ставить на TX а 11 на RX, то приходит именно то, что видно на скриншете.
     
  6. ostrov

    ostrov Гуру

    Распиновку самого модуля покажите. Ноги подписаны там?
     
  7. ostrov

    ostrov Гуру

    Ну все верно подключено. Значит или скорость нестандартная или чип дохлый.
     
  8. Сейчас сделал следующим образом
    Код (C++):
    #include <SoftwareSerial.h>

    SoftwareSerial mySerial(0, 1); // RX, TX

    void setup() {
      Serial.begin(19200);
      Serial.println("Hello!");
      mySerial.begin(19200);
      mySerial.println("AT");
    }

    void loop() {
      if (mySerial.available()){
        Serial.write(mySerial.read());
      }
      if (Serial.available())
        mySerial.write(Serial.read());
     
    }
    Изменил порты в на 0 и 1.
    [​IMG]
    Начал выводить саму AT команду, но с дополнительными символами
    [​IMG]
     
  9. ostrov

    ostrov Гуру

    0 и 1 это порты аппаратного Serial (тот что выводит инфо на экран компа), то есть вы в него выводите из него же читаете.
     
  10. Нуб, что сказать.
    Код (C++):
    SoftwareSerial mySerial(11, 10); // RX, TX
    11 пин подключил к TX, 10 пин подключил к RX, выводит разные символы, если сделать наоборот, как и должно быть, то не выводит ничего.
     
  11. ostrov

    ostrov Гуру

    Нет, должно быть так: RX-TX и TX-RX. То есть первый вариант правильный.
     
  12. ostrov

    ostrov Гуру

    Если перепробовали все стандартные скорости, значит у него нестандартная установлена. Хотя я такого ни разу не видел. Анализатор бы или осциллограф простенький.
     
  13. Тогда на команду AT выводит, т.е. по одному символу на каждую команду, вторая строчка, это три раза ввел AT
    [​IMG]
     
  14. ostrov

    ostrov Гуру

    Когда тогда? А на что нибудь другое что выводит? Если написать FF например?
     
  15. Тот скриншет при скорости 9600, при скорости 19200 выводит следующее
    [​IMG]
     
  16. На любые команды выводит разные символы, при скорости 19200 на команду FF вывел )c
     
  17. ostrov

    ostrov Гуру

    На одной скорости попробуйте AT и FF, ответ будет разный или одинаковый?
     
  18. Разный
     
  19. На скорости 57600 FF выводит FF