自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 资源 (3)
  • 收藏
  • 关注

原创 05-emmc的识别模式

(4)主机发送CMD3(SET_RELATIVE_ADDR),给改设备一个相对设备地址(RCA),该地址用于数据传输模式,设备一旦接收到RCA,设备就变为Stand-by状态。(2)当设备进入idle状态后,通过CMD1(SEND_OP_COND)命令来判断设备是否处于忙状态,而且可以获取到OCR寄存器的值,即可以获取到emmc支持的电压范围,和控制进行比较,判断是否有匹配的电压。8、发送CMD1,根据应答判断OCR的bit31是否busy,1代表空闲,0代表忙,如果忙,再次发送,连续尝试3次。

2023-03-04 17:18:46 994

原创 03-emmc的基础描述-速率_带宽_引脚_上电_时序

上面的方向是对emmc颗粒而言的DS在hs400和hs400es模式下使用。其中emmc5.1才支持hs400es,对主机的数据读来说,采用的是DS的双沿,主机crc读和cmd读(只有hs400es支持)只是上升沿采样常规的VCC是3.3V电压,VCCQ是1.8V电压在上电或者复位后,只有DATA0用于数据传送,其他数据需要配置能用。

2023-03-04 15:04:12 4000

原创 如何解决自定义usb驱动被hid驱动抢占的问题

1、在libusb中,我们知道可以通过libusb_kernel_driver_active判断设备是否有驱动加载,然后通过libusb_detach_kernel_driver卸载掉对应的驱动但是调用该接口依赖struct usb_drive和struct usb_interface其中ifnum是有自己的usb device确定的,目前默认是0,所以是固定的,也就是只需要获取到对应usb设备的struct usb_device,变可以获取到对应的struct usb_interface。

2023-02-22 11:09:44 817

原创 mmcblk节点变化原因分析

(1)代码流程(2)流程描述从上面1的代码流程可以看出,在初始化时会解析__fdt_pointer对应地址的dtb,把整个dtb进行扫描,获取对应的数据结构并存放在of_root中当系统调用arch_initcall_sync时,会执行of_platform_default_populate_init,在这个里面会根据of_root中的数据依次创建platform_device,并且把数据添加到klist_devices中。

2023-02-20 10:14:49 417

原创 linux如何配置emmc和sd卡的各种速率

emmc支持多种速率模式,这些模式均可以在dts中进行配置。

2023-02-17 15:18:13 2398 1

原创 emu上如何静态加载sdhc的模型数据

start对应的值是66 * 512 / 8 = 0x1080, 也就是地址偏移1,对应的是真实地址是8。获取到l_endin.bin 后,把这个作为最终的bin然后再次load即可。emmc默认有大小端问题需要转换bin文件,且emmc是128bit位宽。- 1.bin为需要加载的文件,可用于bootrom验证。1、加载emmc的ext_csd寄存器内容。2、静态加载数据到emmc数据空间。- 目前模型是64bit位宽。

2023-02-11 19:55:41 144

原创 sdhc在emu验证中出现的问题

在hs400_es模式下,目前发现芯片发送cmd24后,cmd脚有应答,但是没有对应的dqs信号,导致芯片无法采样到cmd的应答,从而包cmd timeout的错误。A: 由于DATA3脚和sd看的检测脚复用,默认被上拉导致一直为高电平,解决方法是emu配置修改为1,或者软件强制发送CMD42命令强制拉低。在模型的手册中可以发现,需要模型的版本添加对应的宏定义才能够正确采样到波形,添加宏定义,重新做版本后,验证正常。1、CQ中断门限功能正常,门限为1的时候中断线有8次变化,门限为4的时候中断线有2次变化。

2023-02-11 19:49:49 384

原创 emmc的1.8V和3.3V有什么区别

1、emmc软件上并没有电压切换(该寄存器是针对sd的)5、hs200和hs400必须使用1.8V。4、emmc手册描述(VCCQ)2、emmc手册描述。

2023-02-11 18:55:11 1755 1

原创 sd卡如何进入spi模式

1、如果上电的时候发送CMD0,并且CS脚为低(即data3脚),则进入SPI模式。2、如果要退出SPI模式进入SD卡模式,需要重新掉电,再上电。

2023-02-08 11:42:55 385

原创 sd和emmc如何进行tuning

从phy手册看,DQS有3种来源,1是外部strobe,2是phony dqs, 3是lpbk_dqs(推荐),如果没有strobe信号,可以使用另外两个内部的信号,所以HS200和HS400应该调整的是内部的延时,个人理解在tuning只在read的时候才需要,因为read的时候数据和cmd是dvice发送过来的,clk也是参考的device,所以对host来说data和cmd跨时钟域了,所以需要调整内部的lpbk_dqs去适配clk。通过上面的流程,phy是怎么调整采样点的?

2023-02-08 11:41:45 3432

原创 09-sd卡的电压切换

如果参数中S18R为1,且响应中S18A为1,此时为3.3V状态,主机便可以发送CMD11进行电压切换,其他情况下不能执行CMD11。vqmmc代表的是信号线bus上的上拉电压,以及控制器的sd卡bank电压,可以切换为1.8和3.3V。控制器和总线的上拉电阻受1.8/3.3V的切换控制,sd卡为3.3V不变,可以开关。(1)发送CMD11(SD_SWITCH_VOLTAGE)从(1)和(2)的对比发现实际上2个分支走的内容是一样的。(1)软件切换的流程基本和协议的流程一致。1)set_power分支。

2023-02-08 11:39:52 2588 2

原创 04-sd有哪些模式,如何配置

(2)发送ACMD6,参数0代表1bit,2代表4bit,收到resp说明发送成功。bit31为1,选择组1,值为0即可,如果正常说明配置成功。bit31为1,选择组1,值为1即可,如果正常说明配置成功。bit31为1,选择组1,值为0即可,如果正常说明配置成功。bit31为1,选择组1,值为1即可,如果正常说明配置成功。bit31为1,选择组1,值为2即可,如果正常说明配置成功。bit31为1,选择组1,值为3即可,如果正常说明配置成功。bit31为1,选择组1,值为4即可,如果正常说明配置成功。

2023-02-08 11:37:46 656

原创 03-sd的基础描述-速率_带宽_引脚_上电_时序_分区等

(3)上电后卡会进入idle状态,如果是 SD 主机, CMD0 非必需;而 SPI 主机,第一条命令就应该发送 CMD0,让卡进入 SPI 模式。(2)提供最少 74个 SD 卡时钟给 SD 卡,保持 CMD 线为高。(2)在下电期间, DAT, CMD 和 CLK 应该断开, 或者拉到 0, 以防止操作电流通过信号线传递。(1)主机应该供电给卡,电压要在 250ms 之内达到 Vdd 最小值。(1)除了DDR50之外,其他的输入和输出均为上升沿有效。(1)vdd需要减小到0.5V,并且保持至少1ms。

2023-02-08 11:35:37 797

原创 01-sdhc底层基本通信协议有哪些

0110 1001 0100 0000 0011 0110 0000 0000 0000 0000 对应的hex为69 40 36 00。也就是CRC会把48bit中的前40bit进行CRC-7的校验,结果为0x3E。R1b 除在数据线 DAT0 上发送可选的忙信号外,与 R1 相同。CRC是16bit,针对每条数据线单独计算的。数据可以一直传输,知道接收到终止命令。在4bit模式下,数据是间隔组装的。不同的class支持不同的cmd。CRC是针对每条数据线单独计算的。数据是纵向组装,crc是横向组装。

2023-02-08 10:51:16 154

at91sam9g25 计数器驱动程序

实现9g25上面的tc计数模块的驱动,可以对外部输入的脉冲进行计数

2018-11-13

linux 下标准spi操作程序

实际产品中使用,通过linux的spidev方式进行spi通信,内带api以及spi flash的读写spi和测试程序

2018-11-13

linux 下标准串口操作程序

标准的linux下串口操作,真正产品使用,支持读写初始化等,支持阻塞读取,支持timeout机制,支持各种模式配置

2018-11-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除