前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SPI 协议学习

SPI 协议学习

作者头像
全栈程序员站长
发布2022-11-07 16:46:06
5040
发布2022-11-07 16:46:06
举报
文章被收录于专栏:全栈程序员必看

1. SPI硬件知识

1.1 硬件连线

请添加图片描述
请添加图片描述

引脚含义如下:

引脚

含义

DO(MOSI)

Master Output, Slave Input,SPI主控用来发出数据,SPI从设备用来接收数据

DI(MISO)

Master Input, Slave Output,SPI主控用来发出数据,SPI从设备用来接收数据

SCK

Serial Clock,时钟

CS

Chip Select,芯片选择引脚

1.2 SPI控制器内部结构

这个图等我们看完后面的SPI协议,再回过头来讲解:

请添加图片描述
请添加图片描述

2. SPI协议

2.1 传输示例

假设现在主控芯片要传输一个0x56数据给SPI Flash,时序如下:

请添加图片描述
请添加图片描述

首先CS0先拉低选中SPI Flash,0x56的二进制就是0b0101 0110,因此在每个SCK时钟周期,DO输出对应的电平。 SPI Flash会在每个时钟周期的上升沿读取D0上的电平。

2.2 SPI模式

在SPI协议中,有两个值来确定SPI的模式。 CPOL:表示SPICLK的初始电平,0为电平,1为高电平 CPHA:表示相位,即第一个还是第二个时钟沿采样数据,0为第一个时钟沿,1为第二个时钟沿

CPOL

CPHA

模式

含义

0

0

0

SPICLK初始电平为低电平,在第一个时钟沿采样数据

0

1

1

SPICLK初始电平为低电平,在第二个时钟沿采样数据

1

0

2

SPICLK初始电平为高电平,在第一个时钟沿采样数据

1

1

3

SPICLK初始电平为高电平,在第二个时钟沿采样数据

我们常用的是模式0和模式3,因为它们都是在上升沿采样数据,不用去在乎时钟的初始电平是什么,只要在上升沿采集数据就行。

极性选什么?格式选什么?通常去参考外接的模块的芯片手册。比如对于OLED,查看它的芯片手册时序部分:

请添加图片描述
请添加图片描述

SCLK的初始电平我们并不需要关心,只要保证在上升沿采样数据就行

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/183355.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月10日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. SPI硬件知识
    • 1.1 硬件连线
      • 1.2 SPI控制器内部结构
      • 2. SPI协议
        • 2.1 传输示例
          • 2.2 SPI模式
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档