- 发布
- 北京淼森波信息技术有限公司
- 手机
- 18601085302
- 发布时间
- 2023-12-17 02:21:58
Linux SPI子系统驱动开发
一、概述
本主题分为两个部分:
部分介绍基于SPI子系统开发的理论框架;
第二部分以华清远见教学平台FS_S5PC100上的M25P10芯片为例(内核版本2.6.29),编写一个SPI驱动程序实例。
二、SPI总线协议简介
介绍驱动开发前,需要先熟悉下SPI通讯协议中的几个关键的地方,后面在编写驱动时,需要考虑相关因素。
SPI总线由MISO(串行数据输入)、MOSI(串行数据输出)、SCK(串行移位时钟)、CS(使能信号)4个信号线组成。如FS_S5PC100上的M25P10芯片接线为:
上图中M25P10的D脚为它的数据输入脚,Q为数据输出脚,C为时钟脚。
SPI常用四种数据传输模式,主要差别在于:输出串行同步时钟极性(CPOL)和相位(CPHA)可以进行配置。
如果CPOL= 0,串行同步时钟的空闲状态为低电平;
如果CPOL= 1,串行同步时钟的空闲状态为高电平。
如果CPHA= 0,在串行同步时钟的前沿(上升或下降)数据被采样;
如果CPHA = 1,在串行同步时钟的后沿(上升或下降)数据被采样。