驱动总结篇之spi驱动设备(五)

全双工可以读和写

spi驱动框架分三层:核心层、控制器驱动层、外设驱动层

外设驱动与外界交换,控制器驱动成封装了很多控制硬件的函数,外设驱动可以直接调用这些函数

spi驱动框架中设备树包含了spi控制器和设备的相关信息

1、设备树需要与控制器驱动匹配,probe函数在控制器驱动结构体中((厂家写))

2、设备树需要与设备驱动匹配,probe函数在设备结构体中)(自己写)

3、控制器与设备需要匹配(估计不用写)

一、spi总线

提供SPI控制器驱动和 设备驱动 的注册方法、注销方法、SPI通信硬件无关接口

二、控制器驱动

写在内核中,供给设备驱动调用,里面有具体读spi设备读写的函数

三、spi设备驱动

spi_driver描述一个spi外设驱动

在外设驱动实现中调用spi_register_driver(struct spi_driver *sdrv),向spi总线挂载spi_driver,该函数在drivers\spi\spi.c中实现

static struct spi_driver mc33880_driver = {
        .driver = {
            .name        = DRIVER_NAME,
            .owner        = THIS_MODULE,
        },
        .probe        = mc33880_probe,
        .remove        = __devexit_p(mc33880_remove),
    };

spi设备数据收发处理流程(全双工)

1、定义spi_trandfer,设置spi——transfer的tx_buf成员变量,tx_buf为要发送的数据,然后设置rx_buf成员变量,rx_buf保存着接收到的数据,最后设备len,也就是进行通信的数据的长度

2、初始化spi_message

3、将spi_messag_add函数将spi_transfer传输到spi_messag队列

4、使用spi_sync函数完成数据同步传输

iic设备数据传输(半双工)

使用i2c_transfer进程i2c的数据收发

1、定义消息变量msg

2、定义i2c_client

3、读取数据,先确定读地址,再度

4、写数据

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SPI SD驱动是一种用于控制SD卡的驱动程序。SD卡是一种流行的可移动存储设备,常用于嵌入式系统和消费电子设备SPI是串行外设接口(Serial Peripheral Interface)的缩写,它是一种通信协议,用于在微控制器或微处理器与外设之间进行通信。SPI SD驱动利用SPI协议与SD卡进行通信,通过发送和接收指令和数据来读取和写入SD卡上的数据。 SPI SD驱动通常由以下几个部分组成: 1. 初始化:驱动程序会初始化SPI接口和SD卡,包括设置SPI时钟速度、配置SPI接口的模式和极性,并对SD卡进行初始化。这可以确保SD卡正常工作,并与主控设备建立起通信。 2. 指令发送:驱动程序会根据需要发送各种不同的指令,例如读取数据、写入数据、擦除数据等。这些指令以特定的格式发送到SD卡,以便SD卡能够正确执行相应的操作。 3. 数据读写:驱动程序负责接收和发送数据。当需要从SD卡上读取数据时,驱动程序将接收SD卡返回的数据;当需要向SD卡写入数据时,驱动程序将发送数据到SD卡。 4. 错误处理:如果在通信过程中发生错误,驱动程序会处理这些错误,例如重新发送指令或进行错误标记。这可以确保数据的完整性和正确性。 通过SPI SD驱动,主控设备可以方便地与SD卡进行通信,读取和写入数据。SPI SD驱动广泛应用于各种嵌入式系统和消费电子设备中,包括智能手机、数码相机、嵌入式单板电脑等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值