Задание
Нужна программа для контролера ATmega328p, который подключен к GSM-модулю SIM900.
Алгориртм работы такой:
1)При входящем звонке с номера, который записан на симке в позиции 1 или 2, или 3 — ответ (команда АТА в сериал порт). Если номер на симке не сохранен — сброс (команда АТН0).
2)При появлении сигнала на контакте ATmega (номер пина любой) длительностью больше 1 сек модуль набирает телефон на симке. Сначала набирается номер в позиции 1, если нет ответа — набирает еще раз. Если ответа нет после второй попытки набора, то набирается номер на симке в позиции 2 и т.д.
3)При исходящем звонке, когда на звонок ответили, модуль должен воспроизвести запись (файл amr). Запись amr-файла происходит заранее с микрофона и сохраняется на модуле SIM900. Воспроизведение включается АТ-командой (так же, как и ответ на звонок или сброс).
4)Изначально на аудиовыходе модуля SIM900 стоит микросхема-декодер сигнала DTMF, которая при разговоре улавливает сигнал нажатия клавиш телефона и на соответствующих выходах микросхемы появляются логическая «1». Это нужно для управления нагрузками. Сам модуль SIM900 тоже умеет декодировать эти сигналы и атмега будет получать команды при нажатии клавиш на телефоне (сигнал приходит в виде +DTMF:1 или +DTMF:2. Эти сигналы говорят о нажатии клавиш 1 или 2 соответственно). Было бы замечательно отказаться от дополнительной микросхемы на выходе SIM900, а ее функции переложить на атмегу, то есть: при нажатии на кнопку 1 на пине атмеги повляется сигнал лог.1, при нажатии на кнопку 2 — на другом пине лог.1 Всего будет 4 нагрузки для управления, то есть атмега должна обрабатывать клавиши 1,2,3,4.
Модель устройства в протеусе
Использовался виртуальный COM-порт для работы и программа COM Port Toolkit 3.7
