跳到主要内容

一、产品介绍

产品简介

DELINCOMM 系列

  • 单 GPS接收器 RG4538
  • GPS&GLONASS接收器 RU4538-G
  • GPS&BeiDou(北斗)接收器 RM4538-B

_images/gnss_RG4538.png

DK2635U7F 模块

_images/gnss_DK2635U7F.png

详细参数

RG4538RM4538-BRU4538-GDK2635U7F
芯片组G9501MT3333UBX-M8030-KTUBX-G7020-KT
轨道灵敏度-165dBm-165dBm-167dBm-162dBm
功耗最大60mA@3.3V最大45mA@3.3V最大40mA@3.3V最大25mA@3.3V
协议NMEA-0183NMEA-0183NMEA-0183NMEA-0183
工作电压3.3V~5.0V3.3V~5.0V3.3V~5.0V3.3V~5.0V
工作温度-40℃~85℃-40℃~85℃-40℃~85℃-40℃~85℃
模组尺寸45x38x13.8mm45x38x13.8mm45x38x13.8mm26x35x8.5mm
通讯类型UART/TTLUART/TTLUART/TTLUART/TTL
波特率9600960096009600
接口类型XH2.0mm间隔端子 4针 L=200cmXH2.0mm间隔端子 4针 L=200cmXH2.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 使用》。

主控板卡型号
RK3399AIO-3399C, AIO-3399J, AIO-3399JD4
RK3399ProAIO-3399ProC, AIO-3399Pro-JD4
RK3566AIO-3566JD4
RK3568AIO-3568J
RK3588ITX-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 卡升级
RK3399AIO-3399JD4,AIO-3399J AIO-3399CAIO-3399JD4, AIO-3399J AIO-3399C
RK3399ProAIO-3399Pro-JD4, AIO-3399ProCAIO-3399Pro-JD4, AIO-3399ProC
RK3566AIO-3566JD4AIO-3566JD4
RK3568AIO-3568JAIO-3568J
RK3588ITX-3588J, ROC-RK3588S-PC, ROC-RK3588SJD4 ,AIO-3588QITX-3588J,ROC-RK3588S-PC,ROC-RK3588SJD4,AIO-3588Q

固件制作

RK3399 系列

系统板卡型号
Android7.1 IndustryAIO-3399JD4, AIO-3399J, AIO-3399C
UbuntuAIO-3399JD4, AIO-3399J, AIO-3399C
BuildrootAIO-3399JD4, AIO-3399J, AIO-3399C

RK3399Pro 系列

系统板卡型号
Android9.0AIO-3399Pro-JD4, AIO-3399ProC
UbuntuAIO-3399Pro-JD4, AIO-3399ProC

RK3566 系列

系统板卡型号
Android11.0AIO-3566JD4
UbuntuAIO-3566JD4
BuildrootAIO-3566JD4

RK3568 系列

系统板卡型号
Android11.0AIO-3568J
UbuntuAIO-3568J
BuildrootAIO-3568J

RK3588 系列

系统板卡型号
Android12.0ITX-3588J, ROC-RK3588S-PC,AIO-3588Q
BuildrootITX-3588J,ROC-RK3588S-PC,AIO-3588SJD4,AIO-3588Q,AIO-3588MQ,AIO-3588JQ
Ubuntu20.04ITX-3588J,ROC-RK3588S-PC,AIO-3588SJD4,AIO-3588Q,AIO-3588MQ,AIO-3588JQ
Debian11ITX-3588J,ROC-RK3588S-PC,AIO-3588SJD4,AIO-3588Q,AIO-3588MQ,AIO-3588JQ