Software Serial нет приема даже по шлейфу

Валерий К
Offline
Зарегистрирован: 17.09.2021

Коллеги программисты. Чувствую себя полным лохом, а не хочется.

Ситуация стандартная Arduino pro micro пытаюсь сростить с SIM800L. Управление SIM800 происходит, SMS отправляются и принимаются телефоном нормально, не получается прочитать ответ модуля. Осцилограммы показывают, что ответ есть. 

Отключил модуль, поставил шлейф между выводами 8 и 9, загрузил стандартный скетч:

#include <SoftwareSerial.h>
 
SoftwareSerial mySerial(8, 9); // RX, TX
 
void setup() {
Serial.begin(9600);
  while (!Serial) {
    ;
  }
 
Serial.println("Goodnight moon!");
 
  mySerial.begin(9600);
  mySerial.println("AT");
}
 
void loop() {
 
if (mySerial.available()) {
    Serial.write(mySerial.read());
  }
  if (Serial.available()) {
    mySerial.write(Serial.read());
  }
}
 
Но приема в мониторе порта нет. В общем тупик.
rkit
Offline
Зарегистрирован: 23.11.2016

Монитор порта настроил?

Валерий К
Offline
Зарегистрирован: 17.09.2021

В скетче предполагается отправка проверочной фразы. Она есть. Потом должно приниматься то, что проходит по шлейфу. Этого нет.

Я правильно понял Ваш вопрос или Вы имели в виду что-то другое?

Коллеги. Тупик реальный. Пожалуйста посоветуйте. Такое впечатление, что mySerial вообще не воспринимает входящий сигнал. 

sadman41
Offline
Зарегистрирован: 19.10.2016

SoftwareSerial или отсылает или принимает. Фокусы с закорачиванием RX-TX не прокатывают.

Green
Offline
Зарегистрирован: 01.10.2015

+1. Вместо SIM800 подключитесь к другому эмулятору терминала. 

Валерий К
Offline
Зарегистрирован: 17.09.2021

По поводу не корректного включения шлейфа спасибо, думаю Вы правы.

По поводу другого внешнего устройства. Осцилkограммы ответного сигнала нормальные. Единственная причина в этом случае, это только низкий уровень ответного сигнала. По осциkлогрофу 2,8 В. 

rkit
Offline
Зарегистрирован: 23.11.2016

На адуине закороти ресет на землю, и подключай sim по схеме rx-rx tx-tx, будет можно прямо из монитора работать.

Валерий К
Offline
Зарегистрирован: 17.09.2021

Под rx и tx arduino понимаются пины, прописанные а скетче или только 0 и 1. Reset на землю вроде бы должен остановить программу?

В качестве имитатора шлейфа использую еще один frduino. Чем кончится напишу.

nik182
Offline
Зарегистрирован: 04.05.2015

Ркит, как часто бывает, не многословен. Углублю. При нажатии на ресет МК отключается от схемы. В том смысле, что переходит в режим все ноги на вход. Тогда встроенный в плату USB-TTL конвертор можно использовать. Вот только на про микро нет конвертора.

rkit
Offline
Зарегистрирован: 23.11.2016

Так на про микро есть свободный физический сериал, и этой чушью заниматься не надо совсем.

Green
Offline
Зарегистрирован: 01.10.2015

Зато на Про Микро есть Serial1.) Я то и не заметил что у ТС Про Микро.(
Только голову тут морочит!

Валерий К
Offline
Зарегистрирован: 17.09.2021

Коллеги всем привет, всем спасибо.

Как обычно с проблемой надо переспать ночь и утром все станет ясно.

Р Е Ш Е Н И Е:

Рro micro нормально работает с SIM800L. Для решения проблемы я использовал в качестве шлейфа второй Pro micro. Запрограммировал возврат по порту с задержкой. Потом перешел на SIM800L. Для реализации порта на выход информации можно использовать любой пин, для входа 8, 9, 10,14. Глубоко не разбирался, но думая это связано с тем, что порт начинает работать на прием информации по переходу потенциала в низкий уровень. У процессора срабатывает внешнее прерывание. В качестве входа можно использовать только те пины, на которых можно реализовать внешнее прерывание.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Валерий К пишет:

Коллеги всем привет, всем спасибо.

Как обычно с проблемой надо переспать ночь и утром все станет ясно.

Р Е Ш Е Н И Е:

Рro micro нормально работает с SIM800L. Для решения проблемы я использовал в качестве шлейфа второй Pro micro. Запрограммировал возврат по порту с задержкой. Потом перешел на SIM800L. Для реализации порта на выход информации можно использовать любой пин, для входа 8, 9, 10,14. Глубоко не разбирался, но думая это связано с тем, что порт начинает работать на прием информации по переходу потенциала в низкий уровень. У процессора срабатывает внешнее прерывание. В качестве входа можно использовать только те пины, на которых можно реализовать внешнее прерывание.

во первых Sofware Serial захватывает все PCINT прерывания, во вторых нет установки параметров порта (8N1... к примеру), проблема решаема, к примеру тут

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Валерий К пишет:

Коллеги всем привет, всем спасибо.

Как обычно с проблемой надо переспать ночь и утром все станет ясно.

Р Е Ш Е Н И Е:

Рro micro нормально работает с SIM800L. Для решения проблемы я использовал в качестве шлейфа второй Pro micro. Запрограммировал возврат по порту с задержкой. Потом перешел на SIM800L. Для реализации порта на выход информации можно использовать любой пин, для входа 8, 9, 10,14. Глубоко не разбирался, но думая это связано с тем, что порт начинает работать на прием информации по переходу потенциала в низкий уровень. У процессора срабатывает внешнее прерывание. В качестве входа можно использовать только те пины, на которых можно реализовать внешнее прерывание.

Молодой, ты идиот, прости мой французский. У ПроМикро есть второй ХАРД сериал. Нахера ты кривляешься с софт сериалом? "пАтамушта так в примерах написано"? Не ответ для психически здорового. Примеры для Уно/Нано, в которых один хард сериал. Доходит или еще откровения дебила про "решения" опубликуешь?