Проблема последовательной связи с общей землей SIM800L

У меня возникла проблема, когда я использую модуль SIM800L с общим заземлением в сочетании с: FTDI232+ARDUINO PRO и аккумулятором Li-po. Я использую общий язык, чтобы Arduino мог видеть последовательный порт SIM800L.

Я использую батарею (lipo) для питания SIM800L, чтобы обеспечить пиковый ток 2A.

Последовательная работа, но иногда модуль перезагружается (я думаю), и я вижу странный характер. SIM800L работает некорректно.

Я сталкиваюсь с той же проблемой, когда использую VCC FTDI, каждый раз, когда я использую общий язык, у меня возникает эта проблема.

Посмотрите на гифку, вы можете увидеть проблему: gif проблема sim800L

Я использую эту проводку Wiring sim800L

Это странно, потому что, когда я подключаю SIM800L напрямую к FTDI232, у меня нет проблем, все работает нормально.

Я использую этот код для отладки последовательной связи:

#include <SoftwareSerial.h>
SoftwareSerial serialSIM800(RX,TX)
[..]
// При настройке
 Serial.begin(115200); 
  while(!Serial);

  //Последовательная связь с Arduino и SIM800
  serialSIM800.begin(115200);
  delay(1000);
  serialSIM800.print("AT\r"); 
  //[..]
void loop(){


 if (serialSIM800.available())
     Serial.write(serialSIM800.read());

 if (Serial.available()) {
    while(Serial.available()){
      Serial.print(">");
      char test=Serial.read();
      Serial.print(test);
      Serial.println();
      serialSIM800.write(test);
 }

Есть несколько вещей, которые ускользают от меня, поэтому мне нужны ваши огни, заранее спасибо. С уважением

, 👍1

Обсуждение

Два подозрения могут быть расследованы. Во-первых, это «Программный последовательный порт», который всегда вызывает подозрения. Я так понимаю, что вы отлаживаете с пк через FTDI. Возможно, вам лучше отлаживать с помощью Arduino Mega, поскольку у него есть несколько аппаратных серийных номеров, пока вы не будете удовлетворены своим проектом, а затем портируете код на Arduino Pro. И во-вторых, если версия Arduino Pro 3v (вы не упомянули) и вызывает проблемы с логическими уровнями., @Sener

Если бы я был на вашем месте, я бы начал тестирование с более низких частот, таких как 9600, и повышал бы их до тех пор, пока данные не начали бы искажаться, как вы видите., @Sener

Кстати, ваша проводка показывает SIM900L, а не SIM800, у которых немного другие рекомендации по проводке. Который твой?, @Sener

@Sener я ошибаюсь, это действительно sim800l, @kiki67100

Я использую скорость 1200 бод, и я использую https://github.com/nickstedman/SoftwareSerialWithHalfDuplex для последовательного программного обеспечения, это не работает, у меня такая же проблема, @kiki67100


1 ответ


Лучший ответ:

1

Наконец-то я решил свою проблему. Я отключил автоматическую скорость передачи SIM800L через FTDI232 с помощью этих команд at:

AT + IPR = 9600
AT & W

AT + IPR: зафиксируйте скорость передачи данных на уровне 9600 AT & W: сохранить в SIM800L

Тогда, когда я использую SoftwareSerial, у меня больше нет проблем. Когда я сбрасываю модуль с помощью короткого соединения RST с GND, я получаю хороший ответ от SIM800L:

RDY

+CFUN: 1

+CPIN: READY

Call Ready

SMS Ready

Спасибо за помощь.

Примечание. Убедитесь, что у вас хороший источник питания и хорошие провода.

,