AVR, AT команды и GSM модем

Обсуждаем контроллеры компании Atmel.
dgrett
Вымогатель припоя
Сообщения: 615
Зарегистрирован: Вс дек 28, 2014 21:54:05

AVR, AT команды и GSM модем

Сообщение dgrett »

Нашёл свой старенький SiemensМ55, написал программку SMS контроллера. Пока не всё нравится, но в принципе работает. Нигде в сети не нашёл программки для конвертации текста в PDU на ассемблере. (Неумею (надеюсь, пока) писать на Си). Да и контроллеры для меня пока вещь диковинная. Посему выношу на критику спецов своё творение. Мож чё можно сделать эффективнее и универсальнее? Сам контроллер подсмотрел у Serasidis Vassilis.

Код: Выделить всё

;dgrett@gmail.com

.equ   Hex2PDU_Data=96
.def   temp=r16
.def   temp1=r17
.def   temp2=r18
.def   temp3=r19
.def   temp4=r20
.def   ZLramadr=R30
.def   ZHramadr=R31

;==========
;INPUT: temp1 - number of bytes to convert 
;Use temp1=8, 16, 24... This might be counted before.
;Bytes in HEX format are stored in SRAM address Hex2PDU_Data.
;
;OUTPUT:
;   If temp1=<8 then start of PDU lies on Hex2PDU_Data+1 address
;   If 8<temp1=<16 then Hex2PDU_Data+2 etc..
;===========
MakePDU:
   mov      temp,   temp1      ;   
   clr      temp2         ;   
   clr      temp3         ;   
M1:
   inc   temp2
   clc
   rcall   convert0
   dec      temp
   brne   M1
   rjmp   Go_Out
;===========
convert0:
   push   temp4
   ldi      ZLramadr,Hex2PDU_Data         
   clr   temp4
M2:
   ld      temp3,Z
   rol      temp3
   st      Z+,temp3
   inc      temp4
   cpse   temp2,temp4            
   rjmp   M2
   pop      temp4
   ret
;===========
Go_Out: ;  here conversion PDU to HEX goes, then send out everything + ESC sequence ($1A,$0D)
Я всё-всё узнAю и стану профессором.
dgrett
Вымогатель припоя
Сообщения: 615
Зарегистрирован: Вс дек 28, 2014 21:54:05

Re: AVR, AT команды и GSM модем

Сообщение dgrett »

Всем привет. Наконец закончил проект. 8 входов, 4 выхода. Состояние выходов пишу в еепром. После включения питания выставляю это состояние. Sms-команда типа 10RrS (вкл, выкл, R-не меняем, S-прислать смс). В присланной системой смс - состояние входов,выходов,температура (DS18S20). При звонке на номер системы она поднимает трубу, слушаем что делается. Фильтрует смс и звонки, чужие смс просто стирает, звонок отбрасывает.
Tiny2313, осталось ок. 350 байт свободных.
Может кто подскажет, какой еще функционал реализовать можно. Места можно расчистить и больше, ок. 400-440, думаю. А то как то идеи кончились. В принципе ставившаяся задача решена полностью, но все таки, прошу подсказать...
Я всё-всё узнAю и стану профессором.
Pnjom-Penb
Мучитель микросхем
Сообщения: 469
Зарегистрирован: Вс авг 30, 2015 03:52:59

Re: AVR, AT команды и GSM модем

Сообщение Pnjom-Penb »

dgrett писал(а):чужие смс просто стирает...
На "подарках" от оператора не прогорите? Придет смс, типа - "дарим услугу, сегодня - бесплатно, с завтрашнего дня - абонентская плата тышша в день. Спасибо, што выбрали нас."
dgrett
Вымогатель припоя
Сообщения: 615
Зарегистрирован: Вс дек 28, 2014 21:54:05

Re: AVR, AT команды и GSM модем

Сообщение dgrett »

Pnjom-Penb писал(а):На "подарках" от оператора не прогорите? Придет смс, типа - "дарим услугу, сегодня - бесплатно, с завтрашнего дня - абонентская плата тышша в день. Спасибо, што выбрали нас."
Пока всё отлаживал выслал ок. 2000 смс. Система мне выслала ок. 700 смс.
У меня квота 5000 смс/мес. Согласитесь, немало. Если превысить лимит, то 0,07 брюссельского рубля за смс. Но кто сможет слать смс каждые 30 секунд? И потом. Какой оператор решится дарить "подарки"? Это гарантированное самоубийство оператора. Очень жесткая конкуренция за клиента.
Я всё-всё узнAю и стану профессором.
Аватара пользователя
Art_el
Открыл глаза
Сообщения: 40
Зарегистрирован: Пн фев 23, 2015 12:52:10
Откуда: Тайга

Re: AVR, AT команды и GSM модем

Сообщение Art_el »

dgrett писал(а):И потом. Какой оператор решится дарить "подарки"? Это гарантированное самоубийство оператора.


Цвет оператора назвать? :)
Любимое у него дело, например сразу после покупки симки, по умолчанию включена тыщщща доп. опций и услуг и все на начальном периоде бесплатны (10 дней например), потом надо обязательно самому выключать - не выключил, опции и услуги переходят автоматом в платный режим.
dgrett писал(а):Очень жесткая конкуренция за клиента.

Чхали они на клиентов - уйдет один, придет сотня других...
dgrett
Вымогатель припоя
Сообщения: 615
Зарегистрирован: Вс дек 28, 2014 21:54:05

Re: AVR, AT команды и GSM модем

Сообщение dgrett »

Лет 5 назад один оператор чихнул, до сих пор еле дышит..
Я всё-всё узнAю и стану профессором.
Pnjom-Penb
Мучитель микросхем
Сообщения: 469
Зарегистрирован: Вс авг 30, 2015 03:52:59

Re: AVR, AT команды и GSM модем

Сообщение Pnjom-Penb »

Воистину, "счастье в неведении." © :)
dgrett
Вымогатель припоя
Сообщения: 615
Зарегистрирован: Вс дек 28, 2014 21:54:05

Re: AVR, AT команды и GSM модем

Сообщение dgrett »

Ну да, откуда ж Вам знать, оператор ведь не российский. Да бог с вами, больше не надо об этом, ведь тема о другом.. Просто поверьте, как бы дико это ни звучало Вам. Так что по теме?
Я всё-всё узнAю и стану профессором.
Pnjom-Penb
Мучитель микросхем
Сообщения: 469
Зарегистрирован: Вс авг 30, 2015 03:52:59

Re: AVR, AT команды и GSM модем

Сообщение Pnjom-Penb »

dgrett писал(а):оператор ведь не российский
Так и надо было ответить сразу, чтобы не вводить несколько человек в заблуждение. :)
dgrett
Вымогатель припоя
Сообщения: 615
Зарегистрирован: Вс дек 28, 2014 21:54:05

Re: AVR, AT команды и GSM модем

Сообщение dgrett »

Pnjom-Penb писал(а):Так и надо было ответить сразу, чтобы не вводить несколько человек в заблуждение. :)

Виноват, пардон меня :)
Я всё-всё узнAю и стану профессором.
Аватара пользователя
siimao
Встал на лапы
Сообщения: 107
Зарегистрирован: Ср авг 05, 2015 19:34:20

Re: AVR, AT команды и GSM модем

Сообщение siimao »

Здравствуйте, уважаемый dgrett.

Консультации или вопросы могу задавать по вашему детищу?
dgrett
Вымогатель припоя
Сообщения: 615
Зарегистрирован: Вс дек 28, 2014 21:54:05

Re: AVR, AT команды и GSM модем

Сообщение dgrett »

siimao писал(а):Здравствуйте, уважаемый dgrett.

Консультации или вопросы могу задавать по вашему детищу?

Да, на то и форум
Я всё-всё узнAю и стану профессором.
Аватара пользователя
siimao
Встал на лапы
Сообщения: 107
Зарегистрирован: Ср авг 05, 2015 19:34:20

Re: AVR, AT команды и GSM модем

Сообщение siimao »

Спасибо за отклик.
У Василиса на сайте выложено 5 версий: 1.0, 1.01, 2.0, 2.1, 2.2. Какую из них взяли за основу для своей разработки?
На каком МК сделали?
dgrett
Вымогатель припоя
Сообщения: 615
Зарегистрирован: Вс дек 28, 2014 21:54:05

Re: AVR, AT команды и GSM модем

Сообщение dgrett »

Сейчас врать не буду, не помню, делал ту, где нет текстового формата, без модуля SIM300. Только приспособил для Семёна, добавил термометр, добавил посылку СМС, и ответ на звонок. В общем, мало что осталось от оригинала.
Упс, не СЕЙЧАС врать не буду, а просто не буду :)
Я всё-всё узнAю и стану профессором.
Аватара пользователя
siimao
Встал на лапы
Сообщения: 107
Зарегистрирован: Ср авг 05, 2015 19:34:20

Re: AVR, AT команды и GSM модем

Сообщение siimao »

Ответов наводящих не получить... А исходник, тогда, подсмотреть можно?
dgrett
Вымогатель припоя
Сообщения: 615
Зарегистрирован: Вс дек 28, 2014 21:54:05

Re: AVR, AT команды и GSM модем

Сообщение dgrett »

А что Вы спросили? Ведь я не в курсе, чтO интересует. МК AtTiny 2313, исходник еще надо доработать.
Хочу контролировать заряд аккума и сделать индикацию отсылки СМС (выслана/невыслана).
Да и причесать надо бы, для культуры, а то ногу черт сломит. И комменты на неизвестном Вам языке. Вы спросИте, я скажу ( и покажу) как сделал я. Я уверен, что можно сделать лучше.

ЗЫ посмотрел, за основу брал v2.2
Я всё-всё узнAю и стану профессором.
Аватара пользователя
siimao
Встал на лапы
Сообщения: 107
Зарегистрирован: Ср авг 05, 2015 19:34:20

Re: AVR, AT команды и GSM модем

Сообщение siimao »

Тогда мы движемся в одном направлении и у нас на двоих уже 2000 отосланным и 1400 принятых смс :). Я тоже сделал на Attiny2313. Сейчас допиливаю процесс опроса состояния порта и отправки ответной смс с информацией о состоянии порта (не всегда проходит корректно декодирование и установка) в формате PDU. Но у меня постоянно через 3 минуты вылезает ошибка invalid opcode 0xffff по адресу, который находится за пределами моей программы.
Я взял за основу 2.0. Почему-то 2.2 у меня никак не хотела работать.
Я родной АКБ убрал и запитую напрямую от сети, планирую запитывать от большого внешнего АКБ и наработки уже есть. Как вы планируете контролировать заряд? У Вас зарядка всегда подключена к телефону? Есть особенности начала зарядки АКБ телефона...

<Хочу контролировать заряд аккума и сделать индикацию отсылки СМС (выслана/невыслана).> Сам Василис писал, что факт доставки подтверждает SC.
<И комменты на неизвестном Вам языке.> Я говорю и пишу на английском; если Вы о нем.

Вопрос: в обработке прерывания .org OVF0addr ;Timer/Counter0 Overflow
есть
rst2:
pop temp

Не пойму как это работает без push и когда срабатывает.
dgrett
Вымогатель припоя
Сообщения: 615
Зарегистрирован: Вс дек 28, 2014 21:54:05

Re: AVR, AT команды и GSM модем

Сообщение dgrett »

Через 3 минуты ошибка.. А со стеком всё в порядке? У меня был такой баг, переполнялся стек, вылечил дополнительно вынимая из стека адрес возврата. ЗУ всегда подключено сейчас. Текущий уровень заряда аккума можно спросить у телефона посредством отсылки соответствующей АТ команды и решить, включить или выключить ЗУ.
Факт доставки СМС ещё не значит, что команда выполнена, например, несовпал номер отправителя с номером, хранящемся в ЕЕПРОМ. В этом случае СМС будет принята, но команда выполнена не будет.
Я говорю и пишу на английском; если Вы о нем.
- Нет, я не о нём... Балтика...
rst2:
.. Когда возникает прерывание в стек загружается адрес возврата. Вот сюда я и добавил ещё 2 pop temp. Понял это, когда стал выводить содержимое памяти в ЮАРТ.
(не всегда проходит корректно декодирование и установка) в формате PDU
- А как делали конверсию в ПДУ и обратно
Я всё-всё узнAю и стану профессором.
Аватара пользователя
siimao
Встал на лапы
Сообщения: 107
Зарегистрирован: Ср авг 05, 2015 19:34:20

Re: AVR, AT команды и GSM модем

Сообщение siimao »

dgrett писал(а):Через 3 минуты ошибка.. А со стеком всё в порядке? У меня был такой баг, переполнялся стек, вылечил дополнительно вынимая из стека адрес возврата.

Инициализация сделана. Пробовал одну и две строки "pop temp" вставлять, все одно - ошибка через 3 минуты. Хотите сказать, что необходимо три раза делать? Сейчас повторюсь с одной-двумя и попробую с тремя-четырьмя.
dgrett писал(а):ЗУ всегда подключено сейчас.
Насколько знаю с этого сайта, теория была такая, что зарядка измерялась методом определения напряжения на клеммах. А при включенной ЗУ - Вы будете видеть всегда одно значение. Я не проверял.
dgrett писал(а):Текущий уровень заряда аккума можно спросить у телефона посредством отсылки соответствующей АТ команды и решить, включить или выключить ЗУ.
См. выше. Решение по вкл/выкл ЗУ правильное, т.к. зарядка не начинается автоматически при включенном ЗУ, даже если АКБ разрядится. Но замерЯть не сможете. Про команду знаю.
dgrett писал(а):Факт доставки СМС ещё не значит, что команда выполнена, например, несовпал номер отправителя с номером, хранящемся в ЕЕПРОМ. В этом случае СМС будет принята, но команда выполнена не будет.
Этот случай, наверное, и мониторить не стоит. Удалить и все. А вот свои команды продублировать ответом о состоянии порта - надо.
Нет, я не о нём... Балтика...
Я никогда не слышал о таком языке.
Когда возникает прерывание в стек загружается адрес возврата. Вот сюда я и добавил ещё 2 pop temp. Понял это, когда стал выводить содержимое памяти в ЮАРТ.
. Спасибо. Попробую.
А как делали конверсию в ПДУ и обратно
Два варианта конверсии обратно представлены у Василиса. Спасибо ему огромное, но на письма не отвечает :(. Ваш вариант конверсии посмотрел, но не разбирался. Работает? У меня получается громоздкий код, думаю, что скоро будет готов. Иду идеей Василиса.
А как реализовывали процесс работы с температурными датчиками?
dgrett
Вымогатель припоя
Сообщения: 615
Зарегистрирован: Вс дек 28, 2014 21:54:05

Re: AVR, AT команды и GSM модем

Сообщение dgrett »

Я и говорю, язык вам незнскомый.:)
Я думаю, что телефон измерит уровень заряда, тк он постоянно увеличивается при зарядке. При разрядке ЗУ будет отключено.
Мой код (см первый пост) работает, только отказался от расчёта длины, тк она постоянна. По датчику DS1820 куча инфы в сетке.
По факту доставки СМС, я пользую симку с предоплатой, и после 2мес. работы тупо перестала система слать смс, чуть не разобрал всё:)
Я всё-всё узнAю и стану профессором.
Ответить

Вернуться в «AVR»