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

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

Сообщение 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ю и стану профессором.
Реклама
Вымогатель припоя
Сообщения: 615
Зарегистрирован: Вс дек 28, 2014 21:54:05

Сообщение dgrett »

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

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

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

Сообщение dgrett »

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

Сообщение Art_el »

dgrett писал(а):И потом. Какой оператор решится дарить "подарки"? Это гарантированное самоубийство оператора.
Цвет оператора назвать? :)
Любимое у него дело, например сразу после покупки симки, по умолчанию включена тыщщща доп. опций и услуг и все на начальном периоде бесплатны (10 дней например), потом надо обязательно самому выключать - не выключил, опции и услуги переходят автоматом в платный режим.
dgrett писал(а):Очень жесткая конкуренция за клиента.
Чхали они на клиентов - уйдет один, придет сотня других...
Реклама
Вымогатель припоя
Сообщения: 615
Зарегистрирован: Вс дек 28, 2014 21:54:05

Сообщение dgrett »

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

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

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

Сообщение dgrett »

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

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

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

Сообщение dgrett »

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

Сообщение siimao »

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

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

Сообщение dgrett »

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

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

Сообщение siimao »

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

Сообщение dgrett »

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

Сообщение siimao »

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

Сообщение dgrett »

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

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

Сообщение siimao »

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

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

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

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

Сообщение dgrett »

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

Сообщение siimao »

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

Сообщение dgrett »

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

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