Вникаем в базовые команды управления LTE/GPS модулем sim7600G-H 7600G-H Обратная сторона 2217x2000 sim7600g-h_2.jpg Если кратко, sim7600G-H представляет собой модуль сотовой связи, включающий в себя GPS, GLONASS и BeiDou, версия “G” означает global, с поддержкой частот Европы, Азии, Северной Америки, “H” - LTE CAT4 со скоростями Uplink <= 50Mbps / Downlink <= 150Mbps. Поскольку модуль будет использоваться в связке с одноплатником с актуальным ядром, наиболее удобный будет интерфейс USB2.0, имеющиеся UART, SPI, I2C не рассматриваются.
Для использования UART потребуется TXB0108 voltage level translator .
Устанавливаем сим-карту, подключаем антенны, включаем в USB-порт, смотрим dmesg
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[ 4213221.561156] usb 3-1.2: new high-speed USB device number 30 using ehci-pci
[ 4213221.682677] usb 3-1.2: New USB device found, idVendor = 1e0e, idProduct = 9001, bcdDevice = 3.18
[ 4213221.682687] usb 3-1.2: New USB device strings: Mfr = 1, Product = 2, SerialNumber = 3
[ 4213221.682692] usb 3-1.2: Product: SimTech, Incorporated
[ 4213221.682696] usb 3-1.2: Manufacturer: SimTech, Incorporated
[ 4213221.682699] usb 3-1.2: SerialNumber: 0123456789ABCDEF
[ 4213221.684970] option 3-1.2:1.0: GSM modem ( 1-port) converter detected
[ 4213221.685408] usb 3-1.2: GSM modem ( 1-port) converter now attached to ttyUSB0
[ 4213221.686070] option 3-1.2:1.1: GSM modem ( 1-port) converter detected
[ 4213221.686474] usb 3-1.2: GSM modem ( 1-port) converter now attached to ttyUSB1
[ 4213221.687469] option 3-1.2:1.2: GSM modem ( 1-port) converter detected
[ 4213221.687816] usb 3-1.2: GSM modem ( 1-port) converter now attached to ttyUSB2
[ 4213221.688326] option 3-1.2:1.3: GSM modem ( 1-port) converter detected
[ 4213221.688550] usb 3-1.2: GSM modem ( 1-port) converter now attached to ttyUSB3
[ 4213221.689526] option 3-1.2:1.4: GSM modem ( 1-port) converter detected
[ 4213221.689759] usb 3-1.2: GSM modem ( 1-port) converter now attached to ttyUSB4
[ 4213221.690918] qmi_wwan 3-1.2:1.5: cdc-wdm0: USB WDM device
[ 4213221.692270] qmi_wwan 3-1.2:1.5 wwan0: register 'qmi_wwan' at usb-0000:00:1d.0-1.2
Спустя примерно 5 секунд появляются следующие устройства: ls -la /dev/ttyUSB* /dev/cdc*
1
2
3
4
5
6
crw------- 1 root root 180, 0 дек 22 21:43 /dev/cdc-wdm0
crw-rw---- 1 root dialout 188, 0 дек 22 21:44 /dev/ttyUSB0 # DIAGinterface
crw-rw---- 1 root dialout 188, 1 дек 22 21:44 /dev/ttyUSB1 # NMEAinterface
crw-rw---- 1 root dialout 188, 2 дек 22 21:44 /dev/ttyUSB2 # ATCOMinterface
crw-rw---- 1 root dialout 188, 3 дек 22 21:44 /dev/ttyUSB3 # MODEMinterface
crw-rw---- 1 root dialout 188, 4 дек 22 21:43 /dev/ttyUSB4 # Wireless Ethernet Adapterinterface
В старых документациях по настройке и сборке драйверов фигурирует интерфейс /dev/ttyUSB5 - Virtual Net Card, он уже есть, это /dev/cdc-wdm0
Сразу замечу, никакие сторонние драйвера GobiSerial.ko НЕ надо собирать, ядро НЕ надо патчить Текущее ядро Debian Buster 4.19 поддерживает модуль на USB порте прямо “из коробки”, но в коробку сначала надо положить: apt install libqmi-utils udhcpc Тут много интересного: qmicli --help-all
Поехали
1
2
qmicli --device-open-proxy --device = /dev/cdc-wdm0 --dms-get-operating-mode
qmicli --device-open-proxy --device = /dev/cdc-wdm0 --dms-set-operating-mode = 'online'
1
2
3
[ /dev/cdc-wdm0] Operating mode retrieved:
Mode: 'online'
HW restricted: 'no'
[/dev/cdc-wdm0] Operating mode set successfully
Проверяем имя сетевого интерфейса устройства qmicli --device-open-proxy --device=/dev/cdc-wdm0 --get-wwan-iface, получаем wwan0 ifconfig -a wwan0
1
2
3
4
5
6
wwan0: flags = 4240<POINTOPOINT,NOARP,MULTICAST> mtu 1500
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 ( UNSPEC)
RX packets 0 bytes 0 ( 0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 ( 0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Проверяем cat /sys/class/net/wwan0/qmi/raw_ip должно быть Y В противном случае:
1
2
3
ip link set wwan0 down
echo 'Y' | tee /sys/class/net/wwan0/qmi/raw_ip
ip link set wwan0 up
Параметры точки доступа Как правило используется только Access Point Name, то есть apn=’ИМЯ’, логин и пароль можно не указывать в параметрах:
1
2
3
4
5
6
qmicli \
--device-open-proxy \
--device = /dev/cdc-wdm0 \
--wds-start-network = "apn='internet',ip-type=4" \
--client-no-release-cid
или, если нужно указать, то
1
2
3
4
5
6
qmicli \
--device-open-proxy \
--device = /dev/cdc-wdm0 \
--wds-start-network = "apn='internet',username='LOGIN',password='PASSWORD',ip-type=4" \
--client-no-release-cid
1
2
3
4
5
[ /dev/cdc-wdm0] Network started
Packet data handle: '3364889936'
[ /dev/cdc-wdm0] Client ID not released:
Service: 'wds'
CID: '17'
udhcpc -i wwan0 - простой вариант, udhcpc -q -f -n -i wwan0 - Exit if lease is not obtained udhcpc -q -f -n -t3 -T2 -i wwan0 - Send 3 discover packets [-t], Pause between packets 2 seconds [-T]
1
2
3
4
udhcpc: started, v1.30.1
udhcpc: sending discover
udhcpc: sending select for 10.14.1.101
udhcpc: lease of 10.14.1.101 obtained, lease time 7200
Отключение 1
2
3
4
5
6
qmicli \
--device-open-proxy \
--device = /dev/cdc-wdm0 \
--wds-stop-network = 3364889936 \
--client-cid = 17
1
2
Network cancelled... releasing resources
[ /dev/cdc-wdm0] Network stopped
Сброс qmicli --device-open-proxy --device=/dev/cdc-wdm0 --wds-reset
Так же, можно использовать готовый скрипт qmi-network /etc/qmi-network.conf
1
2
3
4
APN = internet
#APN_USER=my-apn-username
#APN_PASS=my-apn-password
PROXY = yes
qmi-network /dev/cdc-wdm0 start qmi-network /dev/cdc-wdm0 stop
Ещё команды для наглядности 1
2
3
4
5
qmicli \
--device-open-proxy \
--device = /dev/cdc-wdm0 \
--nas-get-signal-strength
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[ /dev/cdc-wdm0] Successfully got signal strength
Current:
Network 'lte' : '-64 dBm'
RSSI:
Network 'lte' : '-64 dBm'
ECIO:
Network 'lte' : '-2,5 dBm'
IO: '-106 dBm'
SINR ( 8) : '9,0 dB'
RSRQ:
Network 'lte' : '-16 dB'
SNR:
Network 'lte' : '14,8 dB'
RSRP:
Network 'lte' : '-101 dBm'
или
1
2
3
4
5
qmicli \
--device-open-proxy \
--device = /dev/cdc-wdm0 \
--nas-get-signal-info
1
2
3
4
5
6
[ /dev/cdc-wdm0] Successfully got signal info
LTE:
RSSI: '-83 dBm'
RSRQ: '-11 dB'
RSRP: '-111 dBm'
SNR: '12,2 dB'
1
2
3
4
5
qmicli \
--device-open-proxy \
--device = /dev/cdc-wdm0 \
--nas-get-home-network
1
2
3
4
5
[ /dev/cdc-wdm0] Successfully got home network:
Home network:
MCC: '222'
MNC: '88'
Description: 'Operator'
Очень удобная команда получения времени сети, как альтернативный источник не требующий интернета или GPS qmicli --device-open-proxy --device=/dev/cdc-wdm0 --dms-get-time
1
2
3
4
5
[ /dev/cdc-wdm0] Time retrieved:
Time count: '1034159238899 (x 1.25ms): 2012-10-13 10:27:18'
Time source : 'device'
System time : '1292699048624 (ms): 2020-12-22 19:04:08'
User time : '1223284 (ms): 1980-01-06 00:20:23'
Вывести поддерживаемые частотные диапазоны 1
2
3
4
5
qmicli \
--device-open-proxy \
--device = /dev/cdc-wdm0 \
--dms-get-band-capabilities
1
2
3
4
[ /dev/cdc-wdm0] Device band capabilities retrieved:
Bands: 'gsm-dcs-1800, gsm-900-extended, gsm-900-primary, gsm-850, gsm-pcs-1900, wcdma-2100, wcdma-pcs-1900, wcdma-1700-us, wcdma-850-us, wcdma-800, wcdma-900, wcdma-850-japan'
LTE bands: '1, 2, 3, 4, 5, 7, 8, 12, 13, 18, 19, 20, 25, 26, 28, 34, 38, 39, 40, 41'
LTE bands ( extended) : '1, 2, 3, 4, 5, 7, 8, 12, 13, 18, 19, 20, 25, 26, 28, 34, 38, 39, 40, 41, 66'
TXB0108 преобразователь логических уровней 7600G, TXB0108, Rpi ZERO 3415x2000 sim7600g-h_rpi-zerow_3.jpg 7600G, TXB0108, Rpi ZERO 3437x2000 sim7600g-h_rpi-zerow_4.jpg
Hardware Design page 27 826x1169 sim7600g_hardware_design_exw.png Итак, UART модуля работает с напряжением 1.8В, esp32 и Raspberry Pi используют 3.3В, производитель предлагает использовать преобразователь TXB0108RGYR.
2020-12-22 20:10 +0000