一、产品介绍¶
产品简介¶
DELINCOMM 系列¶
单 GPS接收器 RG4538
GPS&GLONASS接收器 RU4538-G
GPS&BeiDou(北斗)接收器 RM4538-B
DK2635U7F 模块¶
详细参数¶
RG4538 | RM4538-B | RU4538-G | DK2635U7F | |
---|---|---|---|---|
芯片组 | G9501 | MT3333 | UBX-M8030-KT | UBX-G7020-KT |
轨道灵敏度 | -165dBm | -165dBm | -167dBm | -162dBm |
功耗 | 最大60mA@3.3V | 最大45mA@3.3V | 最大40mA@3.3V | 最大25mA@3.3V |
协议 | NMEA-0183 | NMEA-0183 | NMEA-0183 | NMEA-0183 |
工作电压 | 3.3V~5.0V | 3.3V~5.0V | 3.3V~5.0V | 3.3V~5.0V |
工作温度 | -40℃~85℃ | -40℃~85℃ | -40℃~85℃ | -40℃~85℃ |
模组尺寸 | 45x38x13.8mm | 45x38x13.8mm | 45x38x13.8mm | 26x35x8.5mm |
通讯类型 | UART/TTL | UART/TTL | UART/TTL | UART/TTL |
波特率 | 9600 | 9600 | 9600 | 9600 |
接口类型 | XH2.0mm间隔端子 4针 L=200cm |
XH2.0mm间隔端子 4针 L=200cm |
XH2.0mm间隔端子 4针 L=200cm |
二、使用方法¶
硬件连接¶
将模组的VCC、GND、TX、RX分别接到所在板卡的串口的3.3V、GND、RX、TX,注意避免接错VCC、GND、TX、RX导致烧坏模组。
对于UART的一些定义和说明可以参考各个板卡的Wiki教程《UART 使用》。
主控 | 板卡型号 |
---|---|
RK3399 | AIO-3399C, AIO-3399J, AIO-3399JD4 |
RK3399Pro | AIO-3399ProC, AIO-3399Pro-JD4 |
RK3566 | AIO-3566JD4 |
RK3568 | AIO-3568J |
RK3588 | ITX-3588J, ROC-RK3588S-PC, AIO-3588SJD4,AIO-3588Q |
如何使能 GPS 和修改串口配置¶
Android 临时修改¶
使能 ADB: 如何使能 ADB, 参考各个产品的 Wiki 教程《ADB 的使用》的章节。
设置系统可读可写
adb shell setprop persist.sys.root_access 3 adb root && adb remount
修改参数
使能 GPS:将板卡
/vendor/build.prop
里面的ro.factory.hasGPS
修改为true
修改串口配置:将板卡
/system/etc/u-blox.conf
里面的SERIAL_DEVICE
修改为对应模块所接在的串口路径,SERIAL_BAUD_RATE
修改为对应模块的波特率。
软重启板卡
Android 代码修改¶
使能 GPS
将 SDK 目录下
device/rockchip/{CPU}/{PRODUCT}/{PRODUCT}.mk
里面BOARD_HAS_GPS
修改为true
修改串口配置
将 SDK 目录下
device/rockchip/{CPU}/{PRODUCT}/gps/u-blox.conf
里面SERIAL_DEVICE
修改为对应模块所接在的串口路径,SERIAL_BAUD_RATE
修改为对应模块的波特率。
重新编译 SDK 并烧录固件
常见问题排查¶
注意:以下内容是以GPS模块的串口路径 /dev/ttysWK2
和波特率 9600
为例子的。
如何判断GPS模块硬件连接是否正确?¶
当GPS模块按照”硬件连接”章节操作后,通过调试串口或者 adb shell,执行 cat /dev/ttysWK2
后,正确的硬件连接会出现如下LOG信息:
cat /dev/ttysWK2
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,,,,,,,,N*30
$GPGGA,,,,,,0,00,99.99,,,,,,*48
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
$GPGLL,,,,,,V,N*64
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,,,,,,,,N*30
$GPGGA,,,,,,0,00,99.99,,,,,,*48
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
$GPGLL,,,,,,V,N*64
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,,,,,,,,N*30
$GPGGA,,,,,,0,00,99.99,,,,,,*48
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
$GPGLL,,,,,,V,N*64
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,,,,,,,,N*30
$GPGGA,,,,,,0,00,99.99,,,,,,*48
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
$GPGLL,,,,,,V,N*64
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,,,,,,,,N*30
$GPGGA,,,,,,0,00,99.99,,,,,,*48
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
$GPGLL,,,,,,V,N*64
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,,,,,,,,N*30
$GPGGA,,,,,,0,00,99.99,,,,,,*48
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
$GPGLL,,,,,,V,N*64
...
如何判断 gps.default.so 有没有正常加载?¶
当按照“如何使能 GPS 和修改串口配置”章节操作后,主板重新上电,通过调试串口或者 adb shell,执行 logcat -s TD1030DBG
后,gps.default.so正常加载会出现如下LOG信息:
logcat -s TD1030DBG
--------- beginning of kernel
--------- beginning of system
--------- beginning of main
06-01 01:38:26.913 254 254 D TD1030DBG: ======ro.factory.hasGPS: true
06-01 01:38:26.913 254 254 D TD1030DBG: Ver:20170626
06-01 01:38:26.913 254 254 D TD1030DBG: Firefly Version: gps_hal-android-arm64-5299e92006fa
06-01 01:38:26.922 254 254 D TD1030DBG: [DebugMask:0x60]
06-01 01:38:26.922 254 254 D TD1030DBG: [PROJECT_NAME : TD1030]
06-01 01:38:26.922 254 254 D TD1030DBG: Uart Path : /dev/ttysWK2
06-01 01:38:26.922 254 254 D TD1030DBG: Uart Baudrate : 9600
06-01 01:38:26.922 254 254 D TD1030DBG: AGPS_PORT:7275
06-01 01:38:26.922 254 254 D TD1030DBG: [AGPS_SERVER : supl.google.com]
06-01 01:38:26.922 254 254 D TD1030DBG: GNSS_MODE:3
06-01 01:38:26.922 254 254 D TD1030DBG: Succeed : Load configfile ok!
06-01 01:38:26.923 254 254 D TD1030DBG: Succeed : open uart /dev/ttysWK2 boadrate = 9600
06-01 01:38:26.924 254 254 V TD1030DBG: UartTxData, do not send data to gps_soc by uart
06-01 01:38:27.074 254 254 V TD1030DBG: UartTxData, do not send data to gps_soc by uart
06-01 01:38:27.224 254 254 V TD1030DBG: UartTxData, do not send data to gps_soc by uart
06-01 01:38:37.447 254 254 D TD1030DBG: Enter : td_bdgps_get_extension(gps-xtra)
06-01 01:38:37.447 254 254 D TD1030DBG: Enter : td_bdgps_get_extension(agps_ril)
06-01 01:38:37.448 254 254 D TD1030DBG: Enter : td_bdgps_get_extension(agps)
06-01 01:38:37.448 254 254 D TD1030DBG: Enter : td_bdgps_get_extension(gps_navigation_message)
06-01 01:38:37.448 254 254 D TD1030DBG: Enter : td_bdgps_get_extension(gps_measurement)
06-01 01:38:37.448 254 254 D TD1030DBG: Enter : td_bdgps_get_extension(gps-debug)
06-01 01:38:37.448 254 254 D TD1030DBG: Enter : td_bdgps_get_extension(gps-ni)
06-01 01:38:37.449 254 254 D TD1030DBG: Enter : td_bdgps_get_extension(gnss_configuration)
06-01 01:38:37.449 254 254 D TD1030DBG: Enter : td_bdgps_get_extension(gps_geofencing)
06-01 01:38:37.450 254 254 D TD1030DBG: Enter : td_bdgps_init
06-01 01:38:37.450 254 254 D TD1030DBG: Enter : gps_state_init
06-01 01:38:37.452 254 254 D TD1030DBG: Enter : td_bd_agps_init
06-01 01:38:37.452 254 254 D TD1030DBG: Succeed : agps init
06-01 01:38:37.453 254 254 D TD1030DBG: Enter : bd_xtra_init
06-01 01:38:37.453 254 254 D TD1030DBG: Enter : td_agps_init
06-01 01:38:37.453 254 254 D TD1030DBG: Enter : td_gps_ni_init
06-01 01:38:37.454 254 254 D TD1030DBG: Enter : td_agps_ril_init
06-01 01:38:37.454 254 254 D TD1030DBG: Enter : td_bdgps_cleanup
06-01 01:38:37.463 254 719 D TD1030DBG: Enter : tdchip_ack_timer_thread(0)
06-01 01:38:37.465 254 254 D TD1030DBG: Enter : td_bdgps_init
06-01 01:38:37.465 254 254 D TD1030DBG: Enter : bd_xtra_init
06-01 01:38:37.466 254 715 D TD1030DBG: Enter : gps_state_thread
06-01 01:38:37.466 254 715 D TD1030DBG: Event : gps control fd event 10
06-01 01:38:37.466 254 717 D TD1030DBG: Enter : supl_client_assist_thread
06-01 01:38:37.467 254 254 D TD1030DBG: Enter : td_agps_init
06-01 01:38:37.467 254 254 D TD1030DBG: Enter : td_gps_ni_init
06-01 01:38:37.468 254 254 D TD1030DBG: Enter : td_agps_ril_init
其中,可以通过LOG信息检查软件设置的串口路径和波特率是否与GPS模块的一致,比如:
06-01 01:38:26.923 254 254 D TD1030DBG: Succeed : open uart /dev/ttysWK2 boadrate = 9600
如果串口路径没有0666权限,gps.default.so会加载失败,会出现以下错误的LOG信息:
06-01 01:38:26.923 254 254 D TD1030DBG: ERROR : Uart Open Permission denied
解决方法:给串口路径赋予0666权限。
GPS测试APK搜星数量少或者定位失败¶
当GPS模块正确连接和gps.default.so正常加载后,出现GPS测试APK搜星数量少或者定位失败的情况,需要检查GPS天线是否放在空旷的室外。
四、入门教程¶
固件烧写¶
主控 | USB 线刷 | SD 卡升级 |
---|---|---|
RK3399 | AIO-3399JD4,AIO-3399J AIO-3399C |
AIO-3399JD4, AIO-3399J AIO-3399C |
RK3399Pro | AIO-3399Pro-JD4, AIO-3399ProC | AIO-3399Pro-JD4, AIO-3399ProC |
RK3566 | AIO-3566JD4 | AIO-3566JD4 |
RK3568 | AIO-3568J | AIO-3568J |
RK3588 | ITX-3588J, ROC-RK3588S-PC, ROC-RK3588SJD4 ,AIO-3588Q | ITX-3588J,ROC-RK3588S-PC,ROC-RK3588SJD4,AIO-3588Q |
固件制作¶
RK3399 系列¶
系统 | 板卡型号 |
---|---|
Android7.1 Industry | AIO-3399JD4, AIO-3399J, AIO-3399C |
Ubuntu | AIO-3399JD4, AIO-3399J, AIO-3399C |
Buildroot | AIO-3399JD4, AIO-3399J, AIO-3399C |
RK3399Pro 系列¶
系统 | 板卡型号 |
---|---|
Android9.0 | AIO-3399Pro-JD4, AIO-3399ProC |
Ubuntu | AIO-3399Pro-JD4, AIO-3399ProC |
RK3566 系列¶
系统 | 板卡型号 |
---|---|
Android11.0 | AIO-3566JD4 |
Ubuntu | AIO-3566JD4 |
Buildroot | AIO-3566JD4 |
RK3588 系列¶
系统 | 板卡型号 |
---|---|
Android12.0 | ITX-3588J, ROC-RK3588S-PC,AIO-3588Q |
Buildroot | ITX-3588J,ROC-RK3588S-PC,AIO-3588SJD4,AIO-3588Q,AIO-3588MQ,AIO-3588JQ |
Ubuntu20.04 | ITX-3588J,ROC-RK3588S-PC,AIO-3588SJD4,AIO-3588Q,AIO-3588MQ,AIO-3588JQ |
Debian11 | ITX-3588J,ROC-RK3588S-PC,AIO-3588SJD4,AIO-3588Q,AIO-3588MQ,AIO-3588JQ |