Anydy писал(а): ↑19.01.2018{, 21:23}
На обычном скетче проверял? На АТ команды нормально отвечает?
Привет). У меня два одинаковых устройства и один и тот же проект ФЛПрог. Одно уже пару месяцев на объекте отработало, сейчас делаю еще одно устройство. Разница в них только в рабочем девайсе SIM800l, а во втором тот же только версии 2 (с питанием 5В). В модуль посылал АТ команды (что бы проверить железную связь) с компа через контроллер (в МК записал маленький скетч, который принимал с одного ЮАРТа и отправлял в другой) и принимал ответы.
Anydy писал(а): ↑19.01.2018{, 21:23}
Как это понять?
На более высоких скоростях, имею ввиду скорость порта UART, к которому подключен GSM. Первый девайс работает на 9600 бодах. Второй нет. Во втором девайсе контроллер отвечает на "Call
Ready" на скоростях выше 9600 бод.
Anydy писал(а): ↑19.01.2018{, 21:23}
Ты в модуль скорость прописал и сохранил? Такую же в настройках блока...
Конечно! Все прописано и сохранено. Такие ошибки могут делать начинающие, я уже это прошел лет 7 назад). Со скоростями все четко. Мне не понятно почему первый девайс работает на 9600, а на втором (который v2, на 5 В, и транзисторами на RX/TX) Мега2560 откликается на более высоких скоростях после "Call Ready" (насчет "Call Ready" могу ошибиться. После какого именно сообщения от GSM, блок Слиммпера понимает о включении GSM модуля).
Anydy писал(а): ↑19.01.2018{, 21:23}
Если все так, то наверно с программой в Флпрог напутал
проект ФЛПрог один и тот же. Делаю полный дубляж устройства, только не на платах ардуино, а на одной печатной плате (заказывал на JLCPCB)
После получения от модуля строки о его готовности (запуске), блок Слиммпера посылает в модуль команды настройки модуля: ATE0, AT+CPAS и т. д. Если после каждой команды приходит ожидаемый ответ, то блок выдает на выходе GSM Start единицу. Вот на команде AT+CPAS, блок зацикливает программу потому что не видит ожидаемого ответа от модуля. А ответ ожидаемый, но судя по сообщениям блока "GSM отладка" основной блок получает "AT+CPAS0 CPAS0 " (вместо пробелов т.н. "перевод каретки" 0D; 0A;).
Вот хочу разобраться на каком этапе зацикливание возникает. Может где то в коде Слиммпера между отправкой команд инициализации модуля вставить небольшую задержку... Может контроллер не дожидается ответа и шлет повторно команду, может дожидается, но буфер принятых сообщений как то криво очищается... Знал бы хорошо Си и последовательность алгоритма общения блока и модуля, то разобрался бы.