一、产品介绍

产品简介

DELINCOMM 系列

  • 单 GPS接收器 RG4538

  • GPS&GLONASS接收器 RU4538-G

  • GPS&BeiDou(北斗)接收器 RM4538-B

_images/gnss_RG4538.png

DK2635U7F 模块

_images/gnss_DK2635U7F.png

详细参数

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

接口定义

DELINCOMM 系列

  • VCC: 红线

  • GND: 黑线

  • TX : 白线

  • RX : 绿线

DK2635U7F 模块

  • VCC: 白线

  • GND: 黑线

  • TX : 蓝线

  • RX : 绿线

二、使用方法

硬件连接

将模组的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-RK3588SJD4

如何使能 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天线是否放在空旷的室外

三、资料下载

相关文档和固件下载,见官网的资料下载

四、入门教程

固件制作

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

RK3568 系列

系统 板卡型号
Android11.0 AIO-3568J
Ubuntu AIO-3568J
Buildroot AIO-3568J

RK3588 系列

系统 板卡型号
Android12.0 ITX-3588J, ROC-RK3588S-PC
Ubuntu ITX-3588J, ROC-RK3588S-PC
Buildroot ITX-3588J, ROC-RK3588S-PC