- 博客(258)
- 收藏
- 关注
原创 RK3399 各个IO电源域名称和配置
重点关注下uboot-set节点的配置,这是配置uboot中电源域的,如果不配置,可能会出现uboot中操作对应电源域的GPIO无效的问题。之后通过节点对应的电源域名称(比如APIO2_VDD)在原理图上找到所连接的电源regulator名称填到dts中即可。
2024-08-10 15:02:34 335
原创 RK3588 Linux插入HDMI后出现hdmi: i2c read time out!
如果I2C硬件上通信没问题的话,很可能是HDMI实际所用的i2c通道与dts中配置的不同。
2024-08-02 16:53:59 132
原创 RK3588 Linux跑reboot出现RTC时间明显变快的问题
开机时系统会读取RTC时间作为系统时间,因脚本中添加了如上代码,开机后系统会再次将系统时间写入到RTC中,反复reboot就会反复写入,因RTC写入时间会产生误差(误差在1秒内),比如RTC当前时间为12:00:00:500(此处500代表500ms),如果此时我再次向RTC写入时间12:00:00(写入的时间只能精确到秒),那么RTC只需500ms就能到12:00:01,也就是比实际上快了500ms。而不是从RTC中读取的时间之后再写入RTC。
2024-08-02 16:35:45 232
原创 RK3588 Linux修改debug串口波特率为115200
打开rk3588-linux.dtsi文件,修改fiq_debugger节点中的“rockchip,baudrate”值为115200。打开u-boot/configs/rk3588_defconfig文件,修改CONFIG_BAUDRATE为115200。以上修改完成后编译uboot和boot,之后烧录loader,uboot,boot即可。1,loader部分修改。3,kernel部分修改。2,uboot部分修改。
2024-07-28 15:05:53 259
原创 RK3588 Linux摄像头无法加载效果文件
查看版本号方法:shell下执行:strings /vendor/lib/librkaiq.so | grep "AIQ v"2,RK平台3A算法库版本(比如camera_engine_rkaiq_rk3588_arm64.deb)3,json文件版本(比如ov13850_CMK-CT0116_Largan-50013A1.json)摄像头可以加载效果文件的前提是内核驱动版本与3A算法库版本和json效果文件都要匹配。1,内核中多媒体驱动版本(主要在kernel/drivers/media)
2024-07-02 17:31:06 214 3
原创 RK3588 linux插适配器概率出现电池放电现象
1,充电芯片发生SYSOVP,即VSYS过压保护,此时充电芯片会切断适配器供电路径,由电池对系统供电。2,充电芯片的充电电压被修改,若充电芯片的充电电压设置的比电池电压低,就会出现电池对外放电的现象。插着适配器,运行较大负载,过程中陆续出现多次电池对外放电现象,放电功率约等于整机功耗。
2024-06-12 09:56:03 131
原创 RK3588 Linux在接电池的时候充电芯片的寄存器值被修改
有上述描述可知,电量计(bq4050)是可能对充电芯片的ChargingVoltage和ChargingCurrent进行配置的,写入的地址为0x12,而刚好我们所用的充电芯片(SC8885S)写地址为0x12,所以才会出现充电芯片的0x15(即ChargingVoltage)寄存器值被修改的现象。我们在做测试的过程中发现一个问题,后分析发现是因为充电芯片(型号SC8885S)的一个寄存器的值被修改,这个寄存器地址为0x15,为电池充电电压的设置寄存器。装上电池测试一段时间后就出现0x15寄存器值变化。
2024-06-06 10:28:24 139
原创 RK3588 使用YT8521百兆通信正常千兆不通
我们有个项目在设计时将32脚的1.2V电源输出外部串了电感以后又串了磁珠,可能是两者串一起后使电源产生了轻微振荡。而千兆网络因为速率较高,更容易受到这种振荡的影响,导致千兆始终无法正常link。解决:参考YT8521的参考电路将磁珠换成电阻即可。百兆测试link后速率正常,吞吐率正常。但千兆始终无法link成功。可能的一种原因:电源问题。
2024-05-06 18:01:40 885
原创 RK3588 使用HYM8563 RTC时间不准(比如24小时后比北京时间快或慢几秒)
RTC时间不准确很可能与RTC的参考时钟有关系,HYM8563使用的晶振频率为32.768KHz,可实际测量晶振频率是否准确,是否有偏差。如果实际频率偏离32.768KHz,可以调整晶振的匹配电容大小进行修正解决。
2024-04-24 17:36:30 400
原创 RK3588 Android12 拔出耳机后一段时间后系统才检测到耳机拔出的状态
需要注意的一点是,HP_DET对应主控芯片的GPIO设置的模式对上拉电阻的大小是有影响的。如果完全由外部上拉,可将HP_DET设置为内部无上下拉的模式(pcfg_pull_none),若只使用内部上拉,也可以将GPIO设置为内部上拉模式(pcfg_pull_up)。耳机检测引脚HP_DET的上拉电阻阻值过大,因硬件设计耳机未插入时HP_DET为高电平,耳机插入后为低电平。将耳机检测引脚HP_DET的上拉电阻阻值适当改小,阻值越小,驱动电流越大,电平转换的速度越快。
2024-04-17 15:08:27 299
原创 RK3588S Android12驱动设置GPIO输出电平概率性不生效
首先检查下dts中是否有重复配置此GPIO端口,若没有,有可能是IO引脚功能复用的原因。RK芯片很多引脚都是多功能复用的,配置为GPIO时若没有明确将此引脚配置为GPIO功能且此引脚复用的功能也有配置使用的话就可能会出现GPIO控制不生效的问题。在dts中配置GPIO的节点中明确配置此引脚为GPIO功能。
2024-04-17 11:58:39 359 1
原创 RK3588S Android12使用bq25700或南芯系列充电芯片出现ACOK中断不停上报的问题
如果硬件上对ACOK的电平状态做了反向设计(比如增加了MOS),那么读取AC_STAT为1时适配器处于插入状态,但CPU端的ACOK对应GPIO为低电平,此时驱动中仍设置下次中断触发的有效电平为低电平就会出现中断不停触发的现象,且代码只会一直跑中断函数中的if和else中其中1个。一般bq25700等充电芯片可以通过读取状态寄存器的值判断当前AC接入的状态,若ACOK引脚电平状态为高电平,寄存器AC插入状态位的值为1,反之则为0。解决方法很简单,将驱动代码中的下次有效出发电平反向就可以了。
2024-04-17 10:10:38 602
原创 RK3588S Android12查看系统本次开机的时长
它依次显示下列信息:当前时间、系统已经运行了多长时间、有多少登陆用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。
2024-04-07 10:46:40 270 1
原创 RK3399 Android7.1查询本地保存的日志
对应的app源码路径为:vendor/rockchip/common/tools/log_capture/logcatext/logcat.cpp。本地保存的日志文件路径:/data/logs/aplog。
2024-04-07 10:41:37 137
原创 RK3399 Android7.1本地OTA升级失败
将OTA升级包放至存储根目录下,重启后弹出提示升级,系统显示正在更新系统,完成后自动重启进入系统,然后就弹出提示升级失败。1,接着适配器,电池电量低于15%2,未接适配器,电池电量低于20%
2024-04-07 10:34:56 337
原创 RK3399 Android7.1在uboot中设置GPIO的上下拉模式
如果dts中设置gpio的上下拉在uboot中不生效,可以考虑使用uboot中的函数来设置GPIO的上下拉模式。函数为gpio_pull_updown(u-boot\drivers\gpio\rk_gpio.c)。(可能要先request一下)gpio_test=GPIO_BANK1|GPIO_A1;(GPIO口为GPIO1_PA1)GPIOPullDown:下拉。PullDisable:浮空。GPIOPullUp:上拉。
2024-03-21 09:54:51 363
原创 RK3588S Android12使用typec扩展HDMI播放视频速度加快(像2倍速)
使用去除音轨的视频文件测试如果速度正常,原因很可能是没有注册hdmi声卡。
2024-02-27 10:21:14 317
原创 RK3588S Android12使用typec扩展HDMI播放视频无声音
原因是未注册HDMI声卡,比如typec0接口的解决如下:dts中添加如下节点:
2024-02-27 10:13:32 350
原创 RK3588S Android12配置使用或不使用某类传感器(sensor)
在device/rockchip/rk3588/rk3588s_s/BoardConfig.mk中配置对应宏定义的开关即可。
2024-02-26 10:41:46 301
原创 RK3588S Android12去掉相册照片分享中的蓝牙选项
这里仅分享在硬件配置无蓝牙或需求不需要蓝牙功能时的简单修改,直接删除Bluetooth.apk应用即可。单独删除Bluetooth就可以了,BleutoothMidiService如果不用的话也可以删除。重编后烧录系统若发现这个应用还在,那么就clean后全编一下。
2024-02-22 15:45:39 288
原创 RK3588S Android12概率性检测不到电池在线
解决该问题的方法是重新设置GPIO内部的上下拉模式,GPIO可设置为内部上拉(pcfg_pull_up),内部下拉(pcfg_pull_down),无上下拉(pcfg_pull_none)。原因是该GPIO默认为主控内部上拉至电源的(即主控GPIO引脚的名字最后的后缀为u),主控内部的上拉电阻与外部的上拉电阻并联导致总上拉电阻阻值变小,所以GPIO分压后电压变大了。测量题中问题出现时GPIO的电压为0.8V左右,这个电压有时会被认为是高电平,驱动读到GPIO电平为高,所以认为电池未接入。
2024-01-30 20:42:04 215
原创 RK3588S Android12修改前摄像头不要镜像显示预览画面
也可以不改mirror的值,修改下面的if条件语句,将前摄的代码改为和后摄一样也行。
2024-01-30 20:25:19 395
原创 RK3588S Android12去掉设置-显示中自动亮度调节选项
--- a/device/rockchip/common/overlay/frameworks/base/core/res/res/values/config.xml+++ b/device/rockchip/common/overlay/frameworks/base/core/res/res/values/config.xml@@ -57,7 +57,7 @@ <!-- Flag indicating whether the we should enable the automatic
2024-01-30 20:20:07 261
原创 RK3588S Android12解决关机状态下快速插拔适配器开机进系统的问题
所以插上适配器后CPU即启动,uboot代码运行,但当uboot代码运行到检测适配器是否在线的代码时(u-boot\drivers\power\charge_animation.c中charge_animation_show函数),因适配器已拔出,所以检测到当前适配器并不在线,那么代码就不会设置开机模式为充电模式,也就不会进入到关机充电界面,所以就直接进系统了。在uboot中判断适配器是否在线的代码中再增加判断PMIC的启动模式是poweron按键启动还是VDC启动。这样就不会开机进系统了。
2024-01-30 20:14:39 1272
原创 RK3588S Android12使用typec转HDMI正插显示正常反插不显示
原因:硬件设计上将typec0_tx2n和typec0_tx2p接反了,typec0_rx2n和typec0_rx2p也接反了。解决:调整回来以后就正常了。
2024-01-23 10:08:15 621
原创 RK3588S Android12编译报错提示:[-Werror,-Wunused-function]
这是编译规则比较严格,将警告视为错误提示出来了。
2023-12-26 10:50:27 509
原创 RK3399 Android7.1使用iptables实现防火墙功能
iptables是android上可用的网络管控工具,它与kernel中的netfilter配合,为netfilter设置一些过滤规则,当kernel收到网络数据包后,依据iptables设置的规则进行相应的处理。iptables包括5条链表,分别为:PREROUTING(路由前),INPUT(输入),FORWARD(转发),OUTPUT(输出),POSTROUTING(路由后)。如果我要管控外部对本机的网络访问,就管控INPUT这条链路;如果要管控本机对外部的网络访问,就管控OUTPUT这条链路。
2023-12-15 20:27:52 528
原创 RK3588S Android12将debug串口用作普通串口
这样修改后uboot阶段和kernel开始阶段仍会有日志打印,后面就没有日志打印了。/dev下也会生成ttyS2的设备节点了。如果开始一段时间的日志打印对串口的使用没有影响可不必处理。最好同步将内核配置中的CONFIG_FIQ_DEBUGGER等相关配置关闭。
2023-11-29 16:38:20 798
原创 RK3399调整IO口驱动能力
很多PIN脚可以配置驱动能力(即驱动电流值大小),大部分为GPIO引脚,这些引脚有可调节驱动电流的范围,且默认一般为最小值。这里“drive-strength”就是对应的驱动电流值(mA),注意这个值需在引脚可调节驱动电流值的范围内,不在的话则设置无效。有可配置驱动电流的引脚都可以通过dts的配置修改驱动能力。
2023-11-27 17:07:54 774 1
原创 RK平台io命令使用方法
读直接输入io,后面加寄存器地址即可,但是,默认是按1字节来读的,由于芯片每个寄存器都是32位(即4个字节),为了方便查阅,我们经常一次读4个字节,如:有时候也会一次性读多个字节,比如一次性读32个字节,每4个字节显示为一组:写写寄存器的操作相对读只是后面多了个寄存器的值,一般经常是一次写4个字节,如:
2023-11-23 16:23:34 193
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人