资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

spi总线注意事项和linux下使用实战

spi总线注意事项和linux下使用实战

spi一般是4线(CS、MISO、MOSI、SCK)或者3线(MISO和MOSI线合并),当然这里忽略了设备芯片的电源、地等其他线。
一条spi总线上只有一个master,slave根据片选情况可以有多个,但同一时间只能有一个工作。通过片选cs信号来区分。
这里只关心spi总线的外设,所以不用像spi host controller驱动及内核spi_bus_type那样关心很多spi的细节。
具体协议参见《SPI_motorola_specification.pdf》

创新互联公司是一家专业提供双桥企业网站建设,专注与成都做网站、成都网站建设、H5开发、小程序制作等业务。10年已为双桥众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。

spi总线注意事项和linux下使用实战

注意图中CPHA和CPOL表示什么意思,决定了是哪个沿采样。
需要注意linux对应的mode。

一般外设驱动涉及的内核提供的spi api有:
具体参见include/linux/spi/spi.h
spi_register_driver()、spi_unregister_driver()
struct spi_driver
spi_write()、spi_read()、spi_write_then_read()、spi_sync()、spi_async()、spi_setup()。
struct spi_device
struct spi_message、 spi_message_init()、 spi_message_add_tail()

arm device tree之前的board方式时,spi设备需要你调用spi_register_board_info()来注册。现在的arm device tree,由spi的bus host controller驱动根据你在device tree的spi controller节点中加入的子节点来生成相应的spi设备(通过spi_register_master()调用of_register_spi_devices()进而调用spi_alloc_device()、 spi_add_device ()进行),并注册进相应的spi总线号上(这样struct spi_device和struct spi_master的父子关系就确定了)。

随便搜索其中一个spi函数,即可在驱动中找到很多spi的设备驱动例子。

具体请参考我的免费的linux各种驱动开发课程如下:
https://edu.51cto.com/course/17138.html

另外我的相关培训视频请看:
欢迎观看我发布的各个课程: https://edu.51cto.com/lecturer/8896847.html


当前文章:spi总线注意事项和linux下使用实战
浏览路径:http://www.cdkjz.cn/article/gpjgdj.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220