Работа с GSM модулем SIM800L и ATmega16 на Си. Помогите
Что вы имеете ввиду??
- Реклама
- Сообщения: 812
- Зарегистрирован: Ср мар 18, 2009 21:14:33
[uquote="DJZEM",url="/forum/viewtopic.php?p=3303007#p3303007"]Что вы имеете ввиду??[/uquote]
Пардон!
Показалось, что вам сам модуль не отвечает.
[uquote="DJZEM",url="/forum/viewtopic.php?p=3302534#p3302534"]Прерывания, с вашей помощью запустил. А как же мне вытащить ОК из
Ничего не работпает. Как же узнать где в буфере, слово ОК ?????[/uquote]
стандартной сишной функцией поиска строки в строке.
Какие проблемы?
В даташите на SIM800 есть тайминги на каждую функцию, кроме сервисных , касающихся работы с сетевыми протоколами, но и они в апноутах прописаны.
На "внутренние" функции - задержку от 500мс до 1с.
Вы, возможно не можете найти ответ т.к. он ещё не пришёл...Дайте модулю ответить.
Пардон!
Показалось, что вам сам модуль не отвечает.
[uquote="DJZEM",url="/forum/viewtopic.php?p=3302534#p3302534"]Прерывания, с вашей помощью запустил. А как же мне вытащить ОК из
Ничего не работпает. Как же узнать где в буфере, слово ОК ?????[/uquote]
стандартной сишной функцией поиска строки в строке.
Какие проблемы?
В даташите на SIM800 есть тайминги на каждую функцию, кроме сервисных , касающихся работы с сетевыми протоколами, но и они в апноутах прописаны.
На "внутренние" функции - задержку от 500мс до 1с.
Вы, возможно не можете найти ответ т.к. он ещё не пришёл...Дайте модулю ответить.
В том то и дело, Модуль отвечает. И в принятом буфере, я нашел первые два символа, 0D 0A, А вот за ними должны идти 'O' 'K' их то как раз я и не могу найти...
- Сообщения: 812
- Зарегистрирован: Ср мар 18, 2009 21:14:33
[uquote="DJZEM",url="/forum/viewtopic.php?p=3303083#p3303083"]В том то и дело, Модуль отвечает. И в принятом буфере, я нашел первые два символа, 0D 0A, А вот за ними должны идти 'O' 'K' их то как раз я и не могу найти...[/uquote]
А между ответом и сканированием буфера сколько проходит?
На какую команду?
просто на внутренюю?
значит
>> AT
ждём 1с
<< OK
обработка
у вас же есть указатель на последний символ в буфере.
Берёте начало буфера , берёте конец - между ними поиск строки.
Советую обнулять указатель на конец буфера каждый раз перед каждой Ат командой.
А между ответом и сканированием буфера сколько проходит?
На какую команду?
просто на внутренюю?
значит
>> AT
ждём 1с
<< OK
обработка
у вас же есть указатель на последний символ в буфере.
Берёте начало буфера , берёте конец - между ними поиск строки.
Советую обнулять указатель на конец буфера каждый раз перед каждой Ат командой.
Подскажите почему не работает модуль. Верней работает 2-3 команды:
OK
ATi
LSI Softmodem Version 2.2.89.2
OK
AT+IPR=9600
OK
AT+ICF?
+ICF:0,3
OK
AT+ICF=3,3
ERROR
AT+ICF=3,3
ERROR
AT+GCAP
+GCAP:+FCLASS,+MS,+ES,+DS
OK
AT+GMM
H.324 video-ready rev. 1.0
OK
AT+GSN
Not Available
OK
AT+GSN
Not Available
OK
AT+GSN
Not Available
OK
AT+COPS?
ERROR
AT+COPS=?
ERROR
AT+CPAS
ERROR
AT+CREG?
ERROR
AT+CSQ
ERROR
AT+CCLK?
ERROR
AT+CADC?
ERROR
AT+CMGF=1
ERROR
ATZ0
OK
AT+IPR?
+IPR:0
OK
AT+GMR
2.2.89.2
OK
AT+GSN
Not Available
OK
AT+COPS=?
ERROR
Симка рабочая, задолженности нет. Модуль брал здесь>>. Мигает медленно - т.е. сигнал проходит. Питание 5 вольт - ниже пока не пробовал, может причина в этом, но подумал, раз мигает медленно и на простые команды реагирует, то возможно все ОК.
Спойлер
ATOK
ATi
LSI Softmodem Version 2.2.89.2
OK
AT+IPR=9600
OK
AT+ICF?
+ICF:0,3
OK
AT+ICF=3,3
ERROR
AT+ICF=3,3
ERROR
AT+GCAP
+GCAP:+FCLASS,+MS,+ES,+DS
OK
AT+GMM
H.324 video-ready rev. 1.0
OK
AT+GSN
Not Available
OK
AT+GSN
Not Available
OK
AT+GSN
Not Available
OK
AT+COPS?
ERROR
AT+COPS=?
ERROR
AT+CPAS
ERROR
AT+CREG?
ERROR
AT+CSQ
ERROR
AT+CCLK?
ERROR
AT+CADC?
ERROR
AT+CMGF=1
ERROR
ATZ0
OK
AT+IPR?
+IPR:0
OK
AT+GMR
2.2.89.2
OK
AT+GSN
Not Available
OK
AT+COPS=?
ERROR
За любую помощь (даже попытку) ставлю +.
- Реклама
в документации четко сказано, что 5 вольт - слишком высокое напряжение! модуль работать НЕ ДОЛЖЕН. его нормальное питание - 1 Li-"банка" аккумулятора, т.е. в среднем 3,7В плюс-минус немного.Anatoliy1000 писал(а):Питание 5 вольт
кроме того, вы даете модулю какие-то загадочные команды (ADC, например), которые могут и не работать по определению - не все "модули" одинаково устроены. например, может не быть блютуза и FM-приемника, а могут и быть. тестируйте на командах GSM-связи: AT+CMGL, AT+CUSD и т.п. позвоните на эту симку в конце концов, или наберите номер с нее.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сообщения: 721
- Зарегистрирован: Сб ноя 16, 2013 23:34:34
ну, модуль-то работает. У него верхний порог 4.4 В, кажется. Ежели с тех 5 В на проводах упало чуть - уже и не так страшно... Могло, конечно, что-то выгореть так экзотически, что половина команд возвращают ошибку, или ерунду. Но вероятность этого имхо довольно низкая.ARV писал(а):в документации четко сказано, что 5 вольт - слишком высокое напряжение! модуль работать НЕ ДОЛЖЕН. его нормальное питание - 1 Li-"банка" аккумулятора, т.е. в среднем 3,7В плюс-минус немного.
IMEI модем отдавать должен. Как и отображать список сетей, которые он видит. Все остальные команды из приведённого списка валидны для модуля SIMCOM. Тут мы переходим к части грустной - не факт, что модуль имеет какое-то отношение к этой фирме. И что из AT команд понимает этот плод китайского сумрачного гения - не скажет никто. Если это всё же симком - я бы попробовал отправить ему AT+CMEE=2, после этого он должен развёрнуто мотивировать ошибки. Мошт, что станет понятно.ARV писал(а):кроме того, вы даете модулю какие-то загадочные команды (ADC, например), которые могут и не работать по определению - не все "модули" одинаково устроены.
я брал точно такой же и сейчас им играюсь. и мои советы основаны на моем опыте. IMEI нафиг не нужен, по-моему. а остальное - от звонков до NTP работает. список операторов тоже возвращает, но не всегда (лично у меня пробелма с драйвером переходника USB-COM, он просто падает, если данных много зараз идет).
Добавлено after 2 minutes 9 seconds:
кстати, на счет питающего напряжения - не уверен, что модулю совсем все равно 4,4 или 5 вольт. при слишком большом превышении он вообще отключается сам автоматически. ни попробуйте at+cbc - должен показать напряжение питания в милливольтах.
Добавлено after 2 minutes 9 seconds:
кстати, на счет питающего напряжения - не уверен, что модулю совсем все равно 4,4 или 5 вольт. при слишком большом превышении он вообще отключается сам автоматически. ни попробуйте at+cbc - должен показать напряжение питания в милливольтах.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сообщения: 721
- Зарегистрирован: Сб ноя 16, 2013 23:34:34
[uquote="ARV",url="/forum/viewtopic.php?p=3571988#p3571988"]кстати, на счет питающего напряжения - не уверен, что модулю совсем все равно 4,4 или 5 вольт.[/uquote]ему вообще не всё равно. И лучше никогда не подавать на него 5 В вместо питания. Если оно и заработает, как у Anatoliy1000, то проработает наверняка меньше, чем могло бы.[uquote="ARV",url="/forum/viewtopic.php?p=3571988#p3571988"]я брал точно такой же и сейчас им играюсь. и мои советы основаны на моем опыте.[/uquote]советы? Видимо, Вы завуалировано посоветовали выбросить сгоревший от 5 В по питанию модуль в помойку?
Или Вы про список поддерживаемых AT-команд?[uquote="ARV",url="/forum/viewtopic.php?p=3571988#p3571988"]IMEI нафиг не нужен, по-моему.[/uquote]то, что Вам не нужен (пока не нужен) IMEI, не значит, что AT+GSN "загадочная команда"
[uquote="ARV",url="/forum/viewtopic.php?p=3571988#p3571988"]список операторов тоже возвращает, но не всегда[/uquote]это не делает AT+COPS "загадочной командой". Ну, и она вообще прям во всех модемах есть. Как и AT+CMGL и ATD, которые Вы рекомендовали.
Про падающий драйвер USB2COM - чот странно... а если его "самого на себя" натравить, замкнуть RX и TX перемычкой? Или МК на него какой-нибудь повесить, вместо модема? Это же не долго должно быть... тоже будет падать? А настройки ком-порта модема и переходника одинаковые?
Про падающий драйвер USB2COM - чот странно... а если его "самого на себя" натравить, замкнуть RX и TX перемычкой? Или МК на него какой-нибудь повесить, вместо модема? Это же не долго должно быть... тоже будет падать? А настройки ком-порта модема и переходника одинаковые?
- Сообщения: 238
- Зарегистрирован: Чт фев 28, 2013 14:16:10
Игрался с таким же модулем. Тупанул, и развел плату под аттини2313. А оперативки-то у нее с гулькин нос. Какие уж тут строки.
Вышел из положения так. Слушаю уарт от модуля в прерывании и обрабатывают его сообщения в конечном автомате. Т.е. никаких строк "ОК", "RING", "+CMTI" или подобных у меня нет. Есть переменная статуса, где каждый бит означает статус. Когда отправляю модулю команду на которую ожидаю получить ОК, сбрасываю бит ОК, и жду некоторое время ответ. Если бит ОК выставился, то ответ ОК пришел. Если нет, то вываливаюсь по таймауту. Ну и так далее.
Принимает СМСки, читает из них текущее время, в 6 и в 18 часов присылает мне температуру.
Не понял только, а че время в заголовке смски то местное, то московское оказывается?! Т.е. когда тестировал на компе было просто время совпадающее с местным. А когда дошло до дело, иногда время полученное и разобранное контроллером из смски отличается ровно на 4 часа (т.е. на разницу во времени между московским и местным)
Вышел из положения так. Слушаю уарт от модуля в прерывании и обрабатывают его сообщения в конечном автомате. Т.е. никаких строк "ОК", "RING", "+CMTI" или подобных у меня нет. Есть переменная статуса, где каждый бит означает статус. Когда отправляю модулю команду на которую ожидаю получить ОК, сбрасываю бит ОК, и жду некоторое время ответ. Если бит ОК выставился, то ответ ОК пришел. Если нет, то вываливаюсь по таймауту. Ну и так далее.
Принимает СМСки, читает из них текущее время, в 6 и в 18 часов присылает мне температуру.
Не понял только, а че время в заголовке смски то местное, то московское оказывается?! Т.е. когда тестировал на компе было просто время совпадающее с местным. А когда дошло до дело, иногда время полученное и разобранное контроллером из смски отличается ровно на 4 часа (т.е. на разницу во времени между московским и местным)
Було б цікаво подивитись на ваш код
Реально интересен вариант без строк.
я абсолютно незавуалированно рекомендую питать модуль напряжением согласно документации, не мучаясь вопросом насколько ему вредно/полезно другое питаниеAAX писал(а):Вы завуалировано посоветовали выбросить сгоревший от 5 В по питанию модуль в помойку?
кстати, о питании. везде и всюду пишут, что модулю нужно питание, способное обеспечить импульсный ток до 2А без просадки напряжения за допустимые пределы. так вот, в моих экспериментах питание по длинным проводам от лабораторного источника не позволяло модулю нормально работать. никакие low-ESR конденсаторы (вплоть до 220 мкФ) вблизи модуля не помогали. зато при подключении литиевого аккумулятоа короткими проводками (достаточно тонкими) к модулю решило проблему в корне. конденсатор, правда, оставил 100 мкФ. возможно, проблемы с "сетевыми" командами у топикстартера связаны с питанием...
да много чего есть в модемах. в SIM800L и встроенный "диск" есть, можно файлы писать/читать, да только в сети не встречалось ни одного проекта, который бы эту взможность использовал бы. да и сам не могу придумать применение этому... не вообще, а в реальном проекте.AAX писал(а):Ну, и она вообще прям во всех модемах есть.
есть многое на свете, друг Горацио...AAX писал(а):Про падающий драйвер USB2COM - чот странно...
драйвер падает сам по себе независимо от того, что к переходнику подключено. как правило, падает в моменты, когда что-то через переходник данные посылает, а в этот момент на компе кто-то пытается подключиться к этому виртуальному порту. если обеспечить, что данные поступают уже после того, как терминальная программа подключилась к порту, то работает более-менее стабильно...AAX писал(а):Это же не долго должно быть... тоже будет падать?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сообщения: 721
- Зарегистрирован: Сб ноя 16, 2013 23:34:34
а в ваших экспериментах модуль продолжал отвечать на команды, отправленные ему извне? Писал ERROR при обращении к "сетевым" командам? (список сетей формируется не в момент вызова AT+COPS, кстати) Или, может быть, отвечал "Not Available" на запрос IMEI?ARV писал(а):везде и всюду пишут, что модулю нужно питание, способное обеспечить импульсный ток до 2А без просадки напряжения за допустимые пределы. так вот, в моих экспериментах питание по длинным проводам от лабораторного источника не позволяло модулю нормально работать. никакие low-ESR конденсаторы (вплоть до 220 мкФ) вблизи модуля не помогали. зато при подключении литиевого аккумулятоа короткими проводками (достаточно тонкими) к модулю решило проблему в корне. конденсатор, правда, оставил 100 мкФ. возможно, проблемы с "сетевыми" командами у топикстартера связаны с питанием...
Насчёт Вашей боли с блоком питания и аккумулятором: не знаю, как в даташите на этот конкретный модуль, но к нормальным GSM модулям обычно прикладывают временную диаграмму потребления, где указано, как часто, и сколько именно миллисекунд модуль потребляет эти 2 А. И какое падение питающего напряжения он готов пережить при этом (Вы же понимаете, что "без просадки напряжения" - это утопия?
Если я ничего не перепутал, и в даташите на этот модуль стоит абсолютным максимумом 4.4 В - попробуйте повесить по входу танталовый конденсатор 330 мкФ и запитать модуль напряжением 4.3 В. Вобщем, под верхнюю границу нужно питающее напряжение поднять, по возможности. Ну, и сильно длинные провода/хреновый блок питания могут, просто, не дать конденсатору достаточно зарядиться между пиками потребления.
я ничего пробовать не собираюсь, то результат, что я достиг, мен полностью устраивает.
насколько я помню, модуль при плохом питании обмен обеспечивал, а к сети не подключался. т.к. меня мало волновали причины плохой работы, я не запоминал симптомы, поэтому подронее не расскажу.
насколько я помню, модуль при плохом питании обмен обеспечивал, а к сети не подключался. т.к. меня мало волновали причины плохой работы, я не запоминал симптомы, поэтому подронее не расскажу.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Всем привет!
Модуль SIM800L EVB,пытаюсь отправит смс. шлю команду + номером телеaона, он мне отвечает символом > в ответ шлю ему текст сообщения с символом 0x1A, он молчит....звонки,команды в норме. кодировка в текстовом режиме "GSM".Прошу помощи разобраться,а то уже который вечер потрачен безрезультативно
Модуль SIM800L EVB,пытаюсь отправит смс. шлю команду + номером телеaона, он мне отвечает символом > в ответ шлю ему текст сообщения с символом 0x1A, он молчит....звонки,команды в норме. кодировка в текстовом режиме "GSM".Прошу помощи разобраться,а то уже который вечер потрачен безрезультативно
- Сообщения: 128
- Зарегистрирован: Пн фев 08, 2016 10:57:14
После 0x1A модем не сразу отвечает, а когда отправил сообщение. Эта процедура может занять значительно время. Даже минуту; точно смотрим в справке. И если не дождаться ответа и что-то отправлять, то можем может ещё на дольше подвиснуть.
Но также причина может быть банальна - питание плохое.
Но также причина может быть банальна - питание плохое.
Друзья, после нескольких лет, создания устройств на таких модулях, Экспериментально выяснилось
1- Общаться с модулем через преобразователь уровней.
2- питать от мощного источника 2-3 Ампер.
1- Общаться с модулем через преобразователь уровней.
2- питать от мощного источника 2-3 Ампер.
[uquote="smalcom",url="/forum/viewtopic.php?p=3680136#p3680136"]После 0x1A модем не сразу отвечает[/uquote]
Сколько видосов не и смотрел и статей не читал, нигде не сказано про это... будем тестить, спасибо!
Сколько видосов не и смотрел и статей не читал, нигде не сказано про это... будем тестить, спасибо!
Тогда, советую прочесть о протоколе rs232 и особенно об уровнях напряжения.


