[RK3399][Android8.1] 调试记录 --- GPS定位模块-ATGM336H调试记录

Platform: RK3399
OS: Android 8.1

问题1

1.硬件连接上,GPS与蓝牙公用一个串口UART0,使用GPS功能时,需要将UART0权限及所有者修改为GPS

[RK3399][Android8.1] 调试记录 --- GPS定位模块-ATGM336H调试记录_第1张图片

 

解决方法:

1.修改如下

rd_rk3399_LPDDR4_8.1_SDK/device/rockchip/common# vi init.connectivity.rc

on boot

# for bluetooth
    # change back to bluetooth from system
    chown bluetooth net_bt /data/misc/bluetooth
    mkdir /data/misc/bluedroid 0770 bluetooth net_bt
    # bluetooth LPM
    chown bluetooth net_bt /proc/bluetooth/sleep/lpm
    chown bluetooth net_bt /proc/bluetooth/sleep/btwrite

#   insmod /system/lib/modules/rtk_btusb.ko
    chmod 0660 /dev/rtk_btusb
    chown bluetooth net_bt /dev/rtk_btusb

    # bluetooth MAC address programming
    chown bluetooth net_bt ro.bt.bdaddr_path
    chown bluetooth net_bt /data/misc/bluetooth
    setprop ro.bt.bdaddr_path "/data/misc/bluetooth/bdaddr"

    chmod 0660 /dev/ttyS0
    chmod 0660 /dev/ttyS1
    chmod 0660 /dev/vflash
    chmod 0664 /dev/vendor_storage
    chown bluetooth net_bt /dev/vflash
    chown bluetooth net_bt /dev/vendor_storage
    chown bluetooth net_bt /dev/ttyS1
--    chown bluetooth net_bt /dev/ttyS0
++#   chown bluetooth net_bt /dev/ttyS0
    chown bluetooth net_bt /sys/class/rfkill/rfkill0/type
    chown bluetooth net_bt /sys/class/rfkill/rfkill0/state
    chmod 0664 /sys/class/rfkill/rfkill0/state

2.DTS中使能串口0

rd_rk3399_LPDDR4_8.1_SDK/kernel/arch/arm64/boot/dts/rockchip# vi rpdzkj_config.dtsi 



&uart0 {
        pinctrl-names = "default";
        dma-names = "!tx", "!rx";
        status = "okay";
};

3.修改GPS串口为串口0

4、调试,可以先通过cat dev/ttyS* 来看数据输出是否正常。

问题2

通过cat /dev/ttyS0 查看没有数据

解决方法:

1.使用示波器查看GPS 串口TX波形,发现有波形,但是幅值不对,增加上拉电阻,问题依旧

2.查看原理图,如下图,当U76 pin5为高时,数据传输方向为AtoB,但是GPS模块的TX接在B上,修改U76 PIN5为低,

cat /dev/ttyS0可以收到GPS数据

[RK3399][Android8.1] 调试记录 --- GPS定位模块-ATGM336H调试记录_第2张图片

3.使能RK3399的GPS功能

最终成功获取到经纬度数据

[RK3399][Android8.1] 调试记录 --- GPS定位模块-ATGM336H调试记录_第3张图片

[RK3399][Android8.1] 调试记录 --- GPS定位模块-ATGM336H调试记录_第4张图片

你可能感兴趣的:(硬件,驱动)