Platform: RK3399
OS: Android 8.1
问题1
1.硬件连接上,GPS与蓝牙公用一个串口UART0,使用GPS功能时,需要将UART0权限及所有者修改为GPS
解决方法:
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数据