Небольшое описание по управлению модемами SIM800/SIM5320/SIM5360/SIM6320/SIM7100E
На некоторых материнских платах для работы с модулями EV-iMX280-NANO и EV-iMX287-NANO установлены GSM/3G модемы.
Плата EV-iMX280-SIM800-MB с модемом SIM800C
Сигнал Powerkey модема через транзистор подключен к выводу GPIO0_21 (сигнал MX28_PAD_GPMI_RDY1__GPMI_READY1). В dts файле чтобы назначить данный вывод в качестве GPIO его дефолтное значение закомментировано:
// 0x0150 /* MX28_PAD_GPMI_RDY1__GPMI_READY1 */
При старте файловой системы в сервисе /etc/init.d/S31modem данный вывод настраивается как выход.
echo 21 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio21/direction
echo 0 > /sys/class/gpio/gpio21/value
Скрипт modem_on включает модем
echo 1 > /sys/class/gpio/gpio21/value
usleep 900000
echo 0 > /sys/class/gpio/gpio21/value
Скрипт modem_off выключает модем
echo 1 > /sys/class/gpio/gpio21/value
sleep 2
echo 0 > /sys/class/gpio/gpio21/value
Файл /etc/ppp/options-mobile описывает подключение модема
/dev/ttyAPP2
115200
defaultroute
usepeerdns
crtscts
lock
noauth
local
persist
modem
nopcomp
novjccomp
nobsdcomp
nodeflate
noaccomp
ipcp-accept-local
ipcp-accept-remote
noipdefault
Файлы чата описывают параметры подключения (команды инициализации, точка доступа и т.п.). Файл utel.chat
ABORT 'BUSY'
ABORT 'NO CARRIER'
ABORT 'VOICE'
ABORT 'NO DIALTONE'
ABORT 'NO DIAL TONE'
ABORT 'NO ANSWER'
ABORT 'DELAYED'
REPORT CONNECT
TIMEOUT 6
'' 'ATQ0'
'OK-AT-OK' 'ATZ'
TIMEOUT 3
'OK-AT-OK' 'ATI'
'OK' 'ATZ'
'OK' 'AT\^SYSCFG=2,2,3fffffff,0,1'
'OK-AT-OK' 'AT+CGDCONT=1,"IP","3g.utel.ua"'
'OK' 'ATDT*99***1#'
TIMEOUT 30
CONNECT
И наконец, скрипт connect_utel.sh вызывает установление соединения:
pppd /dev/ttyAPP2 115200 modem connect "/usr/sbin/chat -v -f /etc/ppp/utel.chat" defaultroute nodetach ipcp-accept-remote novj mru 1500 mtu 1500 noipdefault usepeerdns user "" password "" &
/*root /root # ./modem_on
root /root # ./connect_utel
root /root # chat: Jan 01 01:25:34 CONNECT
Serial connection established.
Using interface ppp0
Connect: ppp0 <--> /dev/ttyAPP2
Could not determine remote IP address: defaulting to 10.64.64.64
local IP address 46.202.62.69
remote IP address 10.64.64.64
primary DNS address 213.179.249.151
secondary DNS address 213.179.249.152
root /root # ifconfig
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
ppp0 Link encap:Point-to-Point Protocol
inet addr:46.202.62.69 P-t-P:10.64.64.64 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:5 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:62 (62.0 B) TX bytes:83 (83.0 B)
root /root #