RK356X RKAndroid12 TF卡配置 自动挂载

RK356X RKAndroid12 TF卡配置 自动挂载

RK3568 有三个SDMMC接口,分别为SDMMC0 SDMMC1 SDMMC2

DTS 配置
1. max-frequency = <150000000>;
       此配置设置 SD 卡的运行频率,虽然设置为 150M ,但是还要根据 SD 卡的不同模式进行调整。这部分不
需要用户关心,实际运行频率和模块的关系软件会关联。最大不超过 150MHz
2. supports-sd;
       此配置标识此插槽为 SD 卡功能,为必须添加项。否则无法初始化 SD 卡。
3. bus - width = <4> ;
      此配置标识需要使用 SD 卡的线宽。 SD 卡最大支持 4 线模式,如果不配置就模式使用 1 线模式。另外这个位只支持的数值为 1 4 ,配置其他数值会认为是非法数值,强制按照 1 线模式进行使用。
4. cap-mmc-highspeed; cap-sd-highspeed;
     此配置为标识此卡槽支持 highspeed SD 卡。 如果不配置,表示不支持 highspeed SD 卡。
5. 配置使用 SD3.0
     首先确保芯片支持 SD3.0 模式 (3288,3328,3399,3368) ,并且需要配置 vqmmc 这一路的 SDMMC 控制器的 IO 电源,并添加如下一些 SD3.0 的速度模式
sd-uhs-sdr12: 时钟频率不超过24M
sd-uhs-sdr25: 时钟频率不超过50M
sd-uhs-sdr50: 时钟频率不超过100M
sd-uhs-ddr50: 时钟频率不超过50M,并且采用双沿采样
sd-uhs-sdr104: 时钟频率不超过208M
7. 配置 SD 卡热拔插检测脚
        如果检测脚是直接连接到芯片的 SDMMC 控制器的 sdmmc_cd 脚,则请直接将该脚位配置为功能脚,并 在 sdmmc 节点的 default pinctrl 内进行引用即可。
如果检测脚是使用其他 GPIO ,则需要在 sdmmc 节点内使用 cd-gpios 来进配置,例如
cd - gpios = <&gpio4 24 GPIO_ACTIVE_LOW> ;
如果使用 GPIO 的检测脚,但是又要求反向检测方式 ( SD 卡插入时检测脚为高电平 ) ,则需要追加
cd- inverted ;
通用RK TF设备树配置如下:

&sdmmc2 {
max-frequency = <150000000>;
supports-sd;
bus-width = <4>;
cap-mmc-highspeed;
cap-sd-highspeed;
disable-wp;
vmmc-supply = <&vcc3v3_sd>;//默认可以去掉
vqmmc-supply = <&vccio_sd>;//默认可以去掉
pinctrl-names = "default";
pinctrl-0 = <&sdmmc2m0_bus4 &sdmmc2m0_cmd &sdmmc2m0_clk &sdmmc2m0_det>;
status = "okay";
};&sdmmc1 {
max-frequency = <150000000>;
supports-sd;
bus-width = <4>;
cap-mmc-highspeed;
cap-sd-highspeed;
disable-wp;
vmmc-supply = <&vcc3v3_sd>;//默认可以去掉
vqmmc-supply = <&vccio_sd>;//默认可以去掉
pinctrl-names = "default";
pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_clk &sdmmc1_cmd &sdmmc1_det>;
status = "okay";
};&sdmmc0 {
max-frequency = <150000000>;
supports-sd;
bus-width = <4>;
cap-mmc-highspeed;
cap-sd-highspeed;
disable-wp;
vmmc-supply = <&vcc3v3_sd>;//默认可以去掉
vqmmc-supply = <&vccio_sd>;//默认可以去掉
pinctrl-names = "default";
pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
status = "okay";
};
插卡正常出现的日志:
[ 293.194013] mmc1: new high speed SDXC card at address 59b4
[ 293.198185] mmcblk1: mmc1:59b4 00000 59.6 GiB
[ 293.204351] mmcblk1: p1
如果在内核看到这样的打印,说明 SD 卡已经被正确识别,并且已经有一个可用的分区 p1
如果在用户界面看不到 SD 卡设备或者设备不可使用,请排查用户态磁盘守护进程,如 vold
另外可手动验证分区是否可以使用
mount - t vfat /dev/block/mmcblk1p1 /mnt
或者
mount - t vfat /dev/block/mmcblk1 /mnt
然后到 mnt 目录下看下是否有 SD 卡里面的文件
常见问题排查

问题1:无法识别128GTF卡,只能识别64G以下TF卡

可能是你配置了SD3.0模式,检查硬件原理图 vccio_sd所接的供电能否进行3.3V/1.8V切换

如果不支持去掉sd-uhs-sdr104。

1. SD

从左到右依次是:
DET ---- 检测脚
DATA1 ---- 数据线
DATA0
GND
CLK ---- 时钟
VCC_SD ---- SD 卡供电电源
VCCIO_SD ---- 数据线的 IO 供电电源
CMD ---- 命令线
DATA3
DATA2
除了 DET/CLK/GND 外,其它的 DATA0-3/VCC_SD/VCCIO_SD/CMD 必须都为 3.3v 左右,最小不能低
3v DET 脚插入为低,拔出为高; DATA0-3/CMD 的电压都是 VCCIO_SD 供给的,所以 DATA0-
3/CMD 必须跟 VCCIO_SD 保持一致,而 VCC_SD VCCIO_SD 要保持一致( NOTE: SD 3.0 ,要求
VCCIO_SD 1.8v );
如果 VCC_SD/VCCIO_SD 的电源是长供电,那么请保证 VCC_SD VCCIO_SD 在卡拔插时不会有塌 陷;
2. 开机不读卡,运行时拔插 OK:大概率时电源问题
例如:拔掉所有电源,发现查着 HDMI 发现有漏电到 VCC_SD 卡里面;或者使用外接电源进行测试。
3. 概率性不识别:
mmc1: new high speed SD card at address b368
mmcblk1: mmc1:b368 SMI 486 MiB
[mmc1] Data transmission error !!!! MINTSTS: [0x00002000]
dwmmc_rockchip ff0c0000.rksdmmc: data FIFO error (status=00002000)
mmcblk1: error -110 sending status command, retrying
need_retune:0,brq->retune_retry_done:0.
降频和增加卡检测延时增强电源稳定性,如果降频 OK 的话,请检查硬件 layout
&sdmmc {
card-detect-delay = <1200>;
}

自动挂载

RKAndroid12默认支持SDMMC0的TF自动挂载,接入TF可以在/storage/目录下见到

SDMMC1自动挂载( sdmmc2类同)在 device/rockchip/common/scripts/fstab_tools/fstab.in 这个里面修改,或者可以用get_build_var PRODUCT_FSTAB_TEMPLATE 看看是否这个路径

//sdmmc1
/devices/platform/fe2c0000.dwmmc/mmc_host* auto auto defaults voldmanaged=sdcard1:auto

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/666933.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java项目管理01-Maven基础

一、Maven的常用命令和生命周期 1.Maven的常用命令使用方式 complie&#xff1a;编译&#xff0c;将java文件编译为class字节码文件 clean&#xff1a;清理&#xff0c;删除字节码文件 test&#xff1a;测试&#xff0c;运行项目中的test类 package&#xff1a;打包&#x…

堪称灾难级攻击的 UDP FLOOD洪水攻击,应该如何防护?

DDOS又称为分布式拒绝服务&#xff0c;全称是Distributed Denial of Service。DDOS本是利用合理的请求造成资源过载&#xff0c;导致服务不可用&#xff0c;从而造成服务器拒绝正常流量服务。就如酒店里的房间是有固定的数量的&#xff0c;比如一个酒店有50个房间&#xff0c;当…

如何彻底卸载MySQL【可以解决问题】

[序]写在前面 相信很多小伙伴都遇到了以前版本的MySQL没有卸载干净而导致新版本的MySQL无法安装的情况&#xff0c;今天小编带你彻底解决这个令人头痛的问题&#xff08;本人也有亲身经历&#xff01;希望能够给大家带来一点点帮助&#xff09; 注&#xff1a;本文部分图片来自…

Django的web框架Django Rest_Framework精讲(一)

文章目录 Django Rest_Framework1. DRF介绍2.DRF特点3.环境安装与配置&#xff08;1&#xff09;DRF需要以下依赖&#xff08;2&#xff09;创建django项目 4.序列化器的使用&#xff08;1&#xff09;创建序列化器 5. 反序列化器使用 Django Rest_Framework 1. DRF介绍 Djan…

Java实现批量视频抽帧2.0

继上个版本 对其进行略微升级 &#x1f913; 上个版本仅对一个视频进行抽帧处理 此版本可对一个文件夹内的全部视频进行抽帧并对应的文件夹进行帧图片的保存 1️⃣配置pom.xml &#xff08;保持上次不变&#xff09; <dependencies><dependency><grou…

企业在什么情况下需要一款固定资产管理系统?

在现代商业环境中&#xff0c;企业的固定资产是其运营和发展的重要基础。然而&#xff0c;许多企业在固定资产管理方面面临着挑战&#xff0c;如信息不准确、效率低下和资源浪费等问题。为了解决这些问题&#xff0c;越来越多的企业开始意识到引入一款固定资产管理系统的重要性…

网络异步编程

网络异步编程 一、tcp连接的状态 LISTEN&#xff1a;服务端状态&#xff0c;等待客户端发起连接请求SYN_SENT&#xff1a;客户端已发送同步连接请求&#xff0c;等待服务端相应SYN_RECEIVED&#xff1a;服务器收到客户端的SYN请请求&#xff0c;并发送自己的SYN响应&#xff…

java仓库进销存商品库存管理系统springboot+vue

库存管理信息系统研究的内容涉及库存管理的全过程&#xff0c;包括入库、出库、退 货、订货、库存统计查询等等。 根据上述工作流程&#xff0c;库存管理系统将包含以下内容 1&#xff09;登录信息的输入&#xff0c;密码的修改。 2&#xff09;基本信息的输入&#xff0c;包括…

部门管理的主要内容:从目标设定到团队发展的全面指南

部门管理是指对一个组织机构中的各个部门进行协调、规划和管理的过程。部门管理的主要内容包括以下几个方面&#xff1a;部门目标和职责的规划、部门人员的管理、部门绩效的评估和监控、部门之间的协调和沟通、部门文化和价值观的塑造。下面为大家具体介绍这些内容 1、部门目标…

自学网安-IIS服务器

部署环境&#xff1a;win2003 配置环境&#xff1a;winxp ip&#xff1a;10.1.1.2 win2003 ip&#xff1a;10.1.1.1 开始安装 双击“应用程序服务器” 双击“Internet 信息服务&#xff08;IIS&#xff09;” 勾选万维网服务&#xff0c;确定然后下一步 查看端口号;netstat …

ConcurrentHashMap的使用以及源码分析

一、ConcurrentHashMap&#xff1f; 1.1 存储结构 ConcurrentHashMap是线程安全的HashMap ConcurrentHashMap在JDK1.8中是以CASsynchronized实现的线程安全 CAS&#xff1a;在没有hash冲突时&#xff08;Node要放在数组上时&#xff09; synchronized&#xff1a;在出现ha…

Java 日期时间相互转换 格式化输出

Java 日期时间相互转换 格式化输出 package com.zhong.time;import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date;public class SimpleDateFormatTest {public static void main(String[] args) throws ParseException {Date date n…

impala与kudu进行集成

文章目录 概要Kudu与Impala整合配置Impala内部表Impala外部表Impala sql操作kuduImpala jdbc操作表如果使用了Hadoop 使用了Kerberos认证&#xff0c;可使用如下方式进行连接。 概要 Impala是一个开源的高效率的SQL查询引擎&#xff0c;用于查询存储在Hadoop分布式文件系统&am…

设计模式1-访问者模式

访问者模式是一种行为设计模式&#xff0c;它允许你定义在对象结构中的元素上进行操作的新操作&#xff0c;而无需修改这些元素的类。这种模式的主要思想是将算法与元素的结构分离开&#xff0c;使得可以在不修改元素结构的情况下定义新的操作。 所谓算法与元素结构分离&#x…

极速上手:使用Jmeter轻松实现N种参数化

参数化的方式&#xff1a; 一、使用用户自定义变量 一种方式&#xff1a;直接在测试计划中添加用户自定义变量 另外一种方式&#xff1a;配置元件——用户自定义变量 示例&#xff1a;用户自定义变量&#xff0c;登录手机号码 在接口请求的时候&#xff0c;进行引用 请求之后&…

32ADC模数转换器&AD单通道&多通道

目录 一.简介 二.逐次逼近法​编辑 三.结构框图 四.小tips (1)转换模式 &#xff08;2&#xff09;触发控制 &#xff08;3&#xff09;数据对齐 &#xff08;4&#xff09;转换时间 &#xff08;5&#xff09;校准 &#xff08;6&#xff09;硬件电路 五.相关函数 …

vue使用es的reduce方法编译报错Error: Can‘t resolve ‘core-js/modules/es.array.reduce.js‘

哈喽 大家好啊 最近在vue使用es的reduce方法编译报错Error: Cant resolve core-js/modules/es.array.reduce.js 报错如图所示&#xff1a; 解决方案&#xff1a; npm install --save core-js 然后重新编译下将正常了 参考原文: 使用import异步加载语法报错_module not foun…

Android Split APK介绍

文章目录 Split APKSplit APK 详细介绍概念Android App Bundle&#xff08;AAB&#xff09;Split APK 的优势动态分发减小安装包大小模块化和渠道分发 Split APK 的类型基于屏幕密度### 基于 CPU 架构基于语言 实现 Split APK Split APK Split APK 是 Android 中一种应用程序安…

SpringBoot实战第二天

今日战报 继续完善用户相关接口开发&#xff1a; 1.完成获取用户信息功能 2.完成更新用户信息功能 3.完成更新用户头像功能 4.完成更新用户密码功能 获取用户信息 接口文档 如接口文档所示&#xff0c;我们需要做的就是从header中的Authorization中读取token&#xff0c;解码…

问题:测风站应设置在平直的巷道中,其前后()范围内不得有障碍物和拐弯等局部阻力。 #微信#媒体

问题&#xff1a;测风站应设置在平直的巷道中&#xff0c;其前后&#xff08;&#xff09;范围内不得有障碍物和拐弯等局部阻力。 参考答案如图所示