Вникаємо у базові команди управління LTE/GPS модулем sim7600G-H

simcom sim7600G-H 2200x2000 sim7600g-h_1.jpg
sim7600g-h
sim7600G back side
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
7600G, TXB0108, Rpi ZERO 3415x2000
sim7600g-h_rpi-zerow_3.jpg
7600G, TXB0108, Rpi ZERO
7600G, TXB0108, Rpi ZERO 3437x2000
sim7600g-h_rpi-zerow_4.jpg
Hardware Design page 27
Hardware Design page 27 826x1169
sim7600g_hardware_design_exw.png


Отже, UART модуля працює з напругою 1.8В, esp32 та Raspberry Pi використовують 3.3В, виробник пропонує використовувати перетворювач TXB0108RGYR.