当前位置: 首页 > wzjs >正文

建设部网站官网建设网站如何盈利

建设部网站官网,建设网站如何盈利,北京网页设计和网页制作,wordpress 宕机20250607在荣品的PRO-RK3566开发板的Android13系统下实现长按开机之后出现插入适配器不会自动启动的问题的解决 2025/6/7 17:20 缘起: 1、根据RK809的DATASHEET,短按开机【100ms/500ms】/长按关机,长按关机。6s/8s/10s 我在网上找到的DATASHE…

20250607在荣品的PRO-RK3566开发板的Android13系统下实现长按开机之后出现插入适配器不会自动启动的问题的解决
2025/6/7 17:20


缘起:
1、根据RK809的DATASHEET,短按开机【100ms/500ms】/长按关机,长按关机。6s/8s/10s
我在网上找到的DATASHEET是V1.0的,据说有V1.4的或者更新的?
如果有,方便的话,发一下。

2、我们希望长按2s开机。
如果 RK809的开机模式是写死了。我司需要 等待 2s时间 【以防 误操作/误触发】

可以使用这个上电逻辑不?

先让 RK809检测到500ms 开机指令,如果检测到,先【清除掉 寄存器中的开机指示?】,然后让 RK809等待1.5s == 1500ms,
现在 在 检测 电源键 是否还是按下的。如果是的。走正常的开机逻辑。
如果不是,就判定为 误操作,关机了。

或者您这边有更好的 上电逻辑/建议?


【已知的/已经测试出来的BUG:】

这个PATCH可以实现 按键2s 开机。
但是有一个问题。

现在 插电/适配器之后,RK3566不会自动开机。
追问一下。是否可以解决这个问题?


uboot_longpress_power_on.patch

diff --git a/drivers/power/pmic/rk8xx.c b/drivers/power/pmic/rk8xx.c
old mode 100644
new mode 100755
index e361015337..e44c38448a
--- a/drivers/power/pmic/rk8xx.c
+++ b/drivers/power/pmic/rk8xx.c
@@ -6,6 +6,7 @@
  */
 
 #include <common.h>
+#include <boot_rkimg.h>
 #include <dm.h>
 #include <errno.h>
 #include <irq-generic.h>
@@ -486,6 +487,8 @@ static int rk8xx_probe(struct udevice *dev)
     uint8_t power_en0, power_en1, power_en2, power_en3;
     uint8_t on, off;
     uint8_t value;
+    int mode;
+
 
     /* read Chip variant */
     if (device_is_compatible(dev, "rockchip,rk817") ||
@@ -618,6 +621,31 @@ static int rk8xx_probe(struct udevice *dev)
         printf("IRQ chip initial failed\n");
         return ret;
     }
+    /* 10*100ms */
+    mode = rockchip_get_boot_mode();
+    printf("xxxx: mode: %d\n", mode);
+    value=pmic_reg_read(dev, 0xf0)&0x80;
+    printf("value=0x%x\n",value );
+    if((pmic_reg_read(dev, 0xf0)&0x80) && mode == BOOT_MODE_UNDEFINE )
+    {
+        printf("xxxx: power off\n");
+        rk8xx_shutdown(dev);
+    }
+    if ((pmic_reg_read(dev, 0xf0) & 0x80)==0 &&
+        mode == BOOT_MODE_UNDEFINE) {
+        i = 0;
+        while (i < 10) {
+            value = pmic_reg_read(dev, 0xf0) & 0x80;
+            printf("value=0x%x\n",value );
+            if ((value & 0x80)) {
+                printf("xxxx: power off\n");
+                rk8xx_shutdown(dev);
+            }
+            mdelay(100);
+            i++;
+        }
+        printf("xxxx: power on\n");
+    }
 
     return 0;
 }


Z:\Android13.0\u-boot\drivers\power\pmic\rk8xx.c
    ret = rk8xx_irq_chip_init(dev);
    if (ret) {
        printf("IRQ chip initial failed\n");
        return ret;
    }


    /* 10*100ms */
    mode = rockchip_get_boot_mode();
    printf("xxxx: mode: %d\n", mode);
    
    for j = 0;
    //for(j=0; j<256; j++)
    //{
    //    //printf("0x%02x, ", pmic_reg_read(dev, j) );
    //    printf("0x%02x = 0x%02x\n", j, pmic_reg_read(dev, j) );
    //}
    
    //if( 0x82 == pmic_reg_read(dev, 0xf0) )
    if( 0x40 == pmic_reg_read(dev, 0xf5) )
    //if( 0 )
    {
        printf("**** Success 2025/6/5 20:12 %s %s %d have +12V !\n", __FILE__, __FUNCTION__, __LINE__);
    }
    else
    {
        value=pmic_reg_read(dev, 0xf0)&0x80;
        printf("value=0x%x\n",value );
        if((pmic_reg_read(dev, 0xf0)&0x80) && mode == BOOT_MODE_UNDEFINE )
        {
            printf("xxxx: power off\n");
            rk8xx_shutdown(dev);
        }
        if ((pmic_reg_read(dev, 0xf0) & 0x80)==0 &&
            mode == BOOT_MODE_UNDEFINE) {
            i = 0;
            //while (i < 30) {
            //while (i < 5) {
            while (i < 2) {
                value = pmic_reg_read(dev, 0xf0) & 0x80;
                printf("value=0x%x\n",value );
                if ((value & 0x80)) {
                    printf("xxxx: power off\n");
                    rk8xx_shutdown(dev);
                }
                mdelay(10);
                printf("**** wyb 2025/6/4 17:43 %s %s %d i=%d s! loop 2 ---- mdelay 10ms\n", __FILE__, __FUNCTION__, __LINE__, i);
                //mdelay(1000);
                i++;
            }
            printf("xxxx: power on\n");
        }
    }


    return 0;
}

U-Boot 2017.09 (Jun 07 2025 - 17:34:50 +0800)

Model: Rockchip RK3568 Evaluation Board
MPIDR: 0x81000000
PreSerial: 2, raw, 0xfe660000
DRAM:  4 GiB
Sysmem: init
Relocation Offset: ed218000
Relocation fdt: eb9f8aa8 - eb9fecd0
CR: M/C/I
Using default environment

optee api revision: 2.0
dwmmc@fe2b0000: 1, dwmmc@fe2c0000: 2, sdhci@fe310000: 0
Bootdev(atags): mmc 0
MMC0: HS200, 200Mhz
PartType: EFI
DM: v1
Android 13.0, Build 2023.8, v2
boot mode: None
RESC: 'boot', blk@0x0001da6c
Device is: UNLOCKED
DTB: rk-kernel.dtb
HASH(c): OK
ANDROID: fdt overlay OK
**** wyb 2025/5/30 17:47 drivers/power/pmic/rk8xx.c rk8xx_bind 334
I2c0 speed: 100000Hz
**** wyb 2025/5/30 17:47 drivers/power/pmic/rk8xx.c rk8xx_ofdata_to_platdata 389
**** wyb 2025/5/30 17:47 drivers/power/pmic/rk8xx.c rk8xx_probe 521
PMIC:  RK8090 (on=0x40, off=0x80)
**** wyb 2025/5/30 17:47 drivers/power/pmic/rk8xx.c rk8xx_irq_chip_init 447
xxxx: mode: 11
value=0x80
xxxx: power off
**** wyb 2025/5/30 17:47 drivers/power/pmic/rk8xx.c rk8xx_shutdown 293

 

逻辑是对的,对了一下原理图,vdc应该只有dc上电时才有一瞬间的电压导通启动,应该通过其他电路放电

查看手册,可以通过PMIC_ON_SOURCE 寄存器来获取启动方式
可以获取0xf5第 6 位的值来判定目前是什么方式启动,如果是1 就是dc触发开机,就不跑power判定逻辑


 

    ret = rk8xx_irq_chip_init(dev);
    if (ret) {
        printf("IRQ chip initial failed\n");
        return ret;
    }


    /* 10*100ms */
    mode = rockchip_get_boot_mode();
    printf("xxxx: mode: %d\n", mode);
    
    for j = 0;
    //for(j=0; j<256; j++)
    //{
    //    //printf("0x%02x, ", pmic_reg_read(dev, j) );
    //    printf("0x%02x = 0x%02x\n", j, pmic_reg_read(dev, j) );
    //}
    
    //if( 0x82 == pmic_reg_read(dev, 0xf0) )
    if( 0x40 == pmic_reg_read(dev, 0xf5) )
    //if( 0 )
    {
        printf("**** Success 2025/6/5 20:12 %s %s %d have +12V !\n", __FILE__, __FUNCTION__, __LINE__);
    }
    else

    {
        value=pmic_reg_read(dev, 0xf0)&0x80;
        printf("value=0x%x\n",value );
        if((pmic_reg_read(dev, 0xf0)&0x80) && mode == BOOT_MODE_UNDEFINE )
        {
            printf("xxxx: power off\n");
            rk8xx_shutdown(dev);
        }
        if ((pmic_reg_read(dev, 0xf0) & 0x80)==0 &&
            mode == BOOT_MODE_UNDEFINE) {
            i = 0;
            //while (i < 30) {
            //while (i < 5) {
            while (i < 2) {
                value = pmic_reg_read(dev, 0xf0) & 0x80;
                printf("value=0x%x\n",value );
                if ((value & 0x80)) {
                    printf("xxxx: power off\n");
                    rk8xx_shutdown(dev);
                }
                mdelay(10);
                printf("**** wyb 2025/6/4 17:43 %s %s %d i=%d s! loop 2 ---- mdelay 10ms\n", __FILE__, __FUNCTION__, __LINE__, i);
                //mdelay(1000);
                i++;
            }
            printf("xxxx: power on\n");
        }
    }


    return 0;
}


文章转载自:

http://zsTziiXn.jykzy.cn
http://JzYWDYJQ.jykzy.cn
http://SV0y8g0M.jykzy.cn
http://qGvT6gPa.jykzy.cn
http://C3CjnW4n.jykzy.cn
http://w1pRIRVv.jykzy.cn
http://AfBmx8xT.jykzy.cn
http://SJbYV8qv.jykzy.cn
http://P3xkDIIy.jykzy.cn
http://EvmTKhWC.jykzy.cn
http://76fBnvaK.jykzy.cn
http://ayJWX1Ms.jykzy.cn
http://K0DAFzBT.jykzy.cn
http://cHEqZz0F.jykzy.cn
http://TyzDnx0l.jykzy.cn
http://nnV6hnGV.jykzy.cn
http://W3OZhFfp.jykzy.cn
http://SUNWRJ0q.jykzy.cn
http://gUipZEmi.jykzy.cn
http://cKAA67ZN.jykzy.cn
http://NQCcWzpN.jykzy.cn
http://58NVhPpj.jykzy.cn
http://h60ceFrm.jykzy.cn
http://mgIDnwL7.jykzy.cn
http://H6Eh5dq0.jykzy.cn
http://mXP0Zcou.jykzy.cn
http://6IKwuLUI.jykzy.cn
http://ncZzjAtp.jykzy.cn
http://LKyyMDVa.jykzy.cn
http://2nYERjG5.jykzy.cn
http://www.dtcms.com/wzjs/633666.html

相关文章:

  • 网站建设询价如何在百度中搜索到网站
  • 网站建设特效素材wordpress 调用模板
  • 学校网站建设开深圳专业做网站
  • 网站推广是什么岗位wordpress用户上传图片
  • 网站的推广费用软件开发工程师年终工作总结
  • 网站搭建和网站开发方舟网站建设
  • 网站编辑面试问题和答案唐山路北网站建设
  • 北京市住房城乡建设厅网站首页拼多多推广关键词首选帝搜软件
  • 网站备份和备案的区别怎么登陆建设u盾网站
  • 网站开发程序员是什么学校毕业海报制作哪个软件好
  • 网站悬浮广告代码网站名字大全有哪些
  • 男女一夜做受视频最新网站dw 做静态网站
  • 湖北省建设厅官方网站证书查询wordpress 肖
  • 简书网站开发长沙河西做网站
  • 服务好的高端网站建设企业dz地方门户模板
  • 网站策划方案目标wordpress 父级页面
  • 购物类网站首页效果图国外vps
  • 丹东网站设计个人网站系统
  • 商城网站用html做无限次数视频app软件ios
  • 做美工用什么素材网站重庆巴南区网站建设
  • 网站响应式布局电子规划书商务网站建设
  • 苏州网站建设致宇学动漫设计好就业吗
  • 重庆专业网站建设免费行情软件下载大全
  • 安阳手机网站建设编程猫官方网站入口
  • 网站推广策略都有哪些免费虚拟机下载手机版
  • 网站备案流程及资料wordpress 显示字体大小
  • 企业网站页头背景图怎么做彩票游戏网站
  • 网站开发职业要求代申请可信网站
  • 网站上传发生一个ftp错误wordpress注册后需激活使用
  • 宝安做网站的新浪网页版入口