Простой вопрос по sim900, но поиск не помогает

Тема в разделе "Arduino & Shields", создана пользователем mad, 3 янв 2021.

  1. mad

    mad Нерд

    Не буду тратить ваше время. Есть шилд sim900 https://aliexpress.ru/item/32649551828.html?spm=a2g0s.9042311.0.0.WHGEdE&sku_id=59650770966
    Есть плата Леонардо.
    Не могу добиться ответа AT командами через монитор порта. Пробовал и Serial1 Леонардо, и совтверный сериал. Есть подозрение, что возможно нужно выставить перемычки на модуле, но прислали модуль без них. Если Вас не затруднит, подскажите, как эти перемычки устроены и как их правильно замкнуть. Сам замыкал их dupont-шлейфами, но не помогло. Вопрос вроде простецкий, но где найти даташит конкретно на этот безымянный шилд я не знаю.
    И в конце маленький вопростик. Если в порт на команду AT ответ приходит, но не OK, а спецсимволы - это есть связь?
     
    Ariadna-on-Line нравится это.
  2. parovoZZ

    parovoZZ Гуру

    это значит, что необходимо выставить правильную скорость.
     
  3. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Это не спецсимволы, а "кракозябры" )))), Обычно - результат несовпадения скоростей портов передатчика и приемника или форматов данных в потоке (стопбиты, четность-нечетность и тд.)
    https://components101.com/wireless/sim900a-gsm-module
     
    Последнее редактирование: 3 янв 2021
  4. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Требуется терпеливая процедура - продолжать слать команды на одной скорости и при этом менять скорость порта монитора. Рано или поздно вы получите "читабельный" ответ. Скорее всего - сообщение об ошибке. Вот это и будет та скорость, на которой работает модуль. Останется настроить передатчик Ардуины или компа на эту скорость. А уже после этого, АТ-командами настроить модуль на нужную вам скорость.
    ПС.Мне приходили с Али модули - все настроены на скорость не "заводскую". Пришлось немного терпеливо поэкспериментировать.
     
    Последнее редактирование: 3 янв 2021
  5. parovoZZ

    parovoZZ Гуру

    Проще ЛА повесить на шину и посмотреть. Если ЛА нет, то достаточно измерить длительность стартового бита самим же МК.
     
  6. Airbus

    Airbus Радиохулиган Модератор

    Есть подобный шилд. О каких перемычках речь? Если о sw/hw то они переключают програмный USART на аппаратный или обратно. Без них работать не будет. Надо найти или тупо куском провода законтачить. Скорость обмена устанавливается в сетапе.
    Serial.begin(9600);// инициализировать UART
    Я люблю ( а ЖСМ модемы просто обожают 9600).Если скинете фото Вашей платы в месте перемычек то точно скажу ОНО или не ОНО.
    Да и на АТ должно приходить ОК и никакого мусора. Если мусор то скорее всего скорость работы модуля != скорости мониторинга порта.
     
    Последнее редактирование: 4 янв 2021
  7. Airbus

    Airbus Радиохулиган Модератор

    Как вариант настройка модуля
    Подробнее здесь
     
  8. mad

    mad Нерд

    Спасибо за ответы.
    https://fastpic.ru/view/114/2021/0104/_461db75f514405f0a9938447574a2158.jpg.html
    https://fastpic.ru/view/114/2021/0104/_836cbe652345dba1a13d9b63ccef521b.jpg.html
    На 1ом фото место под перемычки. Так как качество печати на плате просто супер, то смог разобрать
    пин D?(tx)-вероятно D0; D?(rx)-вероятно D1 - на двухпиновой грани. Соответствует обозначению на шилде (фото 2 - оборотная сторона пинов 0 и 1 ).
    D7(tx); D?(rx)-вероятно D8 - очевидно под условно стандартный софт-сериал 7(rx)arduino-7(tx)modem / 8(tx)arduino-8(rx)modem.
    Как я понял замыкать нужно нужную пару крайних контактов контактов на центральные. Но на деле софт-сериал я вообще не запустил. Аппаратный при полностью разомкнутых перемычках через Serial1 дает отклик, но не ОК на команду AT.
    Скорости я пробовал разные, но везде выставлял одинаковую - на обьектах Serial и на мониторе порта.
    То есть мониторить порт, на разных скоростях, отличных от скорости порта ардуины?
    Возможно что-то упустил. Но тут бы с перемычками разобраться точно, чтобы исключить влияние.
     
  9. Airbus

    Airbus Радиохулиган Модератор

    Фото не видно
     
  10. Ariadna-on-Line

    Ariadna-on-Line Гуру

    1.Перемычки на шильде должны стоять параллельно колодке разъёма. Если ближе к краю - данные в/из шильд(а) будут направляться через аппаратный сериал Леонарды. Вы должны это прописать в программу.
    2.Леонарда это не Уно. У нее два участка - процессор - аппаратный сериал и процессор - USB комп. Участки могут работать на независимых скоростях. Гонять монитор на разных скоростях нет смысла - процессор в сериал будет гнать на одной скорости, а в USB - на другой. Надо бы знать - не искажаются ли данные на этих участках, а уж потом грешить на шильд. Не втыкая шильд, соедините RX c TX на плате Леонарды и подайте монитором команды. Вы должны увидеть читабельное "эхо". Сделайте это и отпишитесь. Дальше будем думать.
    ПС. Повторяю в очередной раз - соединяйте пины ЧЕРЕЗ РЕЗИСТОР 47-470 ом. Или не грешите потом на меня.
    ППС. Чтобы иметь меньше геморроя - купите копеешный переходник USB-Serial с 6-ю ногами. Тестировать модули по сериалу - самое то.
     
    Последнее редактирование: 4 янв 2021
  11. mad

    mad Нерд

    По клику открываются. Странно. Может блочит их. Можно в Опере под ВПН глянуть.
    Шилд как на этом видео

    можно и тут посмотреть.
    Могу на другой хост залить, укажите какой.
     
  12. a1000

    a1000 Гуру

    Сложно как-то всё в видео. Как вам советовали
    Подключите прямо к компьютеру и пообщайтесь через монитор порта. Если будете получать муссор, побомбите его командой АТ. Если включена автонастройка скорости, модуль подстроится сам. Если не получится, перебирайте из тех, что модуль выдал в видео. Если вообще ничего не будет приходить - ишите ошибки в подключении. А подключать через Леонардо это много дополнительных факторов, которые трудно учесть.
    ЗЫ: USB-Serial с 6-ю ногами - это с выводом DTR?
     
  13. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Да. Есть еще дырки под пины. В резалте - комплект линий Ком-порта. Одно плохо - в режиме "ногодрыга" - он жуткий тормоз. Один дрыг - 10 мСек.
     
  14. a1000

    a1000 Гуру

    Для модуля ТС DTR не понадобится, но на перспективу может пригодиться. :)
     
  15. mad

    mad Нерд

    Сделал как Вы сказали. Скетч -
    void setup() {
    Serial.begin(115200); // Скорость обмена данными с компьютером
    Serial.println("Start!");
    Serial1.begin(115200); // Скорость обмена данными с модемом
    Serial1.println("AT");
    }

    void loop() {
    if (Serial1.available()){
    Serial.write(Serial1.read());
    }
    if (Serial.available()){
    Serial1.write(Serial.read());
    }
    }
    Когда rx-tx замкнуты проводом с резистором 300 ом, при отправке в монитор порта команда возвращается(я как понял это эхо?)
    Но когда rx-tx разомкнуты, то отправка команды частично возвращается, а частично нет. Но как такое возможно? Тут я не понял.

    Добился определенного прогресса. При скорости 9600 на обоих сериалах при подключении модема при замыкании перемычек как на фото ниже получил следующее. При перезагрузке модема получил следующее
    (кракозябры-квадраты)
    RDY
    +CPIN: NOT INSERTED
    +CFUN: 1
    Ответ есть при любой скорости монитора сом-порта, меняются только кракозябры. Но ни на одной скорости кракозябр не избежать. При этом отправка команд AT и подобных дает только повторение этих команд.
    Перемычками замкнул пины посередине с пинами в глубине платы.
     
    Последнее редактирование: 7 янв 2021
  16. Ariadna-on-Line

    Ariadna-on-Line Гуру

    1. Вам реально необходима такая высокая скорость (115200) ? На таких скоростях сериал чувствителен к качеству линий связи. Обычная скорость сериала - 9600, 19200. И для модемов в том числе. Задайте 9600 для Леонарда-модуль, 19200 - Леонарда-ПК.
    2. Команда сброса большинства модемов - ATZ . Команда АТ - нестандарт. Впрочем не уверен.
    3. Текстовая англоязычная часть ответа модуля читабельна. Значит связь нормальная. Вопрос вызывает строка кракозябров. Насколько я знаю, монитор порта НЕ на всякой ОС выводит например русскоязычный текст. На ХР у меня - не хотел выводить. Вместо текста были квадратики. На Вин7 - выводит русский нормально. Возможно эта строка не является англоязычным текстом, а является массивом служебных байтов.
     
    Последнее редактирование: 8 янв 2021
  17. mad

    mad Нерд

    9600 я задал, на нем и получил связь во время перезагрузки модема, что я ниже написал. 115200 просто как пример.
    У меня сейчас Serial и Serial1 9600. При этом при перезагрузке я получаю читабельный текст от модема на любой скорости монитора порта.Но команды в модуль возвращаются такимиже. На АТ приходит АТ а не ОК.
    Фото перемычек
    [​IMG]
     
    Последнее редактирование модератором: 8 янв 2021
  18. Airbus

    Airbus Радиохулиган Модератор

    Вставил изображение.Теперь ясно-в верхнем положении програмный Сериал (пины D7/D8) а в нижнем положении аппаратный (D0/D1). В принципе использовать можно любой я работаю только с аппаратным но незнаю как у Леонардо поэтому советую Вам попробовать програмный.Для этого замкните пины джамперами как на фото
    [​IMG]
     
  19. Ariadna-on-Line

    Ariadna-on-Line Гуру

    1. Блин, ну где здесь перемычки ??? Коннекторы вижу, перемычек не вижу !!! Перемычки должны стоять ПАРАЛЛЕЛЬНО красному.
    2. Как вы можете видеть при любой скорости монитора ? Для чего же тогда задается скорость Serial() ?
    3. Перемычка всего лишь тупо соединяет Пин микры с нужным краевым контактом. Например, если бы вы воткнули модуль в УНО - вы бы обязательно поставили перемычки ближе в центру, В противном случае возник бы конфликт передатчиков модуля и микросхемы УСБ-Сериал конвертора па плате УНО. Поэтому пришлось бы использовать только СофтСериал. На Леонарде же вы можете свободно выбирать софт или хард Сериал.
     
    Последнее редактирование: 8 янв 2021
  20. mad

    mad Нерд

    Спасибо. Так и думал.
    Вот так. Сериалы прописаны 9600. Перезагружаю шилд с кнопки, и получаю в монитор порта то что выкладывал выше. Пробую менять скорость монитора порта - все кроме кракозябр идентично. Почему так - не знаю. Кракозябры есть на всех скоростях монитора, просто разные.