Заимел я как-то мобильный USB модем. Но толи модем оказался
так себе, толи USB контроллер на материнской плате компьютера был невысокого
качества. Короче говоря, модем постоянно отваливался от системы, а работа
в сети превратилась в настоящую пытку. Так как в это время я работал с
модулями китайской фирмы AsiaTelco, то и приспособил одну платку к своему
копьютеру.
Модуль WM5509D располагается на оценочной плате, на которой
помимо него распаяны 2 коннектора DB-9, преобразователь уровней RS232 на
чипе SP3238 и усилитель для внешнего спикера. Неприятным сюрпризом оказалось
то, что на плате осутствуют стабилизаторы напряжения и одна из плат благополучно
скончалась при превышении напряжения питания. Оценочная плата может работать
как полноценный внешний стандартный модем на COM-порт, что и было решено
использовать. Как выяснилось, программа модуля содержит серьезную ошибку,
его невозможно вывести из спящего режима сигналом DTR. В результате длительных
переговоров со службой техподдержки я заполучил схему и рекомендации по
решению проблемы. Их можно скачать в конце страницы. Из сравнения схемы
с печатной платой следует, что сигнал DTR заведен на отладочный разъем,
а не на порт AT-команд. Это довольно просто лечится добавлением перемычки
между соответствующими контактами разъема. Кроме того, необходимо еще допаять
на разъемы несколько перемычек если они не установлены(как это сделать
описано в документах в конце страницы). Но на этом танцы с бубном не заканчиваются.
Вход модуля DTR(маркировка на плате DTR2) нужно припаять к земле и перерезать
дорожку идущую к коллектору транзистора Q1. Далее надо коллектор
транзистора подключить ко входу модуля HOOK_EINT_GPIO42(маркировка на плате
JP1). Это вход внешнего прерывания, которым можно разбудить модуль. Теперь
подключаю к терминалу, дергаю DTR, даю АТ-команды и модуль отвечает.
В системе вручную устанавливается как обычный внешний
33600bps модем, типичная строка инициализации: at+cgdcont=1,"IP","internet","",0,0.
Но работает на 115200 бод. Не так уж много по современным меркам, но зато
теперь коннект стабильнй:)
Рисунки слева-направо: 1,2 - доработанный модем в импровизированном
"корпусе", справа видно CDMA модем WM6681 той же фирмы; 3 - модем на WM5509
и USB модем, который не хотел работать.
/**** Далее заметки по использованию и АТ-команд в т.ч.
Они не нужны при использовании интернета, но полезны для встраиваемых систем,
где модулем управляет микроконтроллер.****/
Вход HOOK_EINT_GPIO42 по иному влияет на модуль в отличие
от классического DTR. Модуль выводится из сна по фронту импульса этого
сигнала. Затем запускается таймаут секунд 10-15. Если нет нового фронта,
то модуль валится в сон даже если идет передача АТ-команды. Поэтому либо
его надо часто дергать, либо по выходу из сна/вкл. питания запретить сон:
AT+ESLP=0.
Документация по АТ-командам очень скудная, особенно по
сравнению с описанием на французские модули WAVECOM. Про стандартные примеры
применения(Application Notes) и говорить не приходится, их просто нет!
Учитывая малую стоимость, эти модули могут найти применение
в проектах низшего ценового диапазона.
Скачать: