加密芯片SPI通讯的调试
SPI是串行外设接口(Serial Peripheral Interface)的缩写。是Motorola公司推出的一种同步串行接口技术,是一种高速的、全双工,同步的通信总线。
SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线:它们是SDI(数据输入)、SDO(数据输出)、SCLK(时钟)、CS(片选)。
(1)SDO/MOSI——主设备数据输出,从设备数据输入;
(2)SDI/MISO——主设备数据输入,从设备数据输出;
(3)SCLK——时钟信号,由主设备产生;
(4)CS/SS——从设备使能信号,由主设备控制。
CS作为片选信号不难理解。当总线上挂有多个从设备时,主机通过控制对应从设备的片选信号,即可选中激活该设备,完成与该设备的通讯。一般片选为低电平时,处于选中状态。
需要说明的是,SPI通信有4种不同的模式,不同的从设备可能在出厂时就是配置为某种模式,这是不能改变的;但我们的通信双方必须是工作在同一模式下,所以我们可以对我们的主设备的SPI模式进行配置,通过CPOL(时钟极性)和CPHA(时钟相位)来控制我们主设备的通信模式,具体如下:
Mode0:CPOL=0,CPHA=0
Mode1:CPOL=0,CPHA=1
Mode2:CPOL=1,CPHA=0
Mode3:CPOL=1,CPHA=1
时钟极性CPOL是用来配置SCLK的电平出于哪种状态时是空闲态或者有效态,时钟相位CPHA是用来配置数据采样是在第几个边沿。
作为特殊应用的加密芯片来说,其SPI通讯大多数采用标准SPI接口协议,但也不乏例外,调试过程中有几点注意:
1、加密芯片作为防盗版功能模块或者是数据加解密模块,大多数需作为SPI从机设备,上位机端作为SPI主机。
2、主机SPI设置成CKPOL=0 ,CKPHA=0。其含义:此时空闲态时,SCLK处于低电平,数据采样是在第1个边沿,也就是SCLK由低电平到高电平的跳变,所以数据采样是在上升沿,数据发送是在下降沿。
3、有些加密芯片协议特殊,而且由于SPI没有同步信号功能,所以加密芯片需要借助BUSY引脚来给主机发送通知信号,当BUSY为高电平,允许SPI主设备发送数据,反之允许主机接收数据。
4、BUSY为SPI请求信号。当BUSY拉低时允许SPI主设备读取数据,此时SPI主机端将CS/SS拉低,SPI_CLK产生时钟。
5、芯片发生故障无法正常运行时可通过复位重置。
加密芯片SPI通讯的调试相关推荐
- STM32F103C8T6驱动6线OLED(SPI通讯)
传送门:Arduino使用u8g2库函数驱动4线/6线OLED屏幕(I2C/SPI通讯)附带库函数详解 [点击进入] 一.0.96寸SSD1306原理图(默认为SPI) 二.OLED硬件介绍及控制方式 ...
- STM32Cube学习笔记-SPI通讯
引言 使用STM32Cube开发东西最怕的就是写的代码太多,为什么呢?因为不会写,我深有体会.SPI通讯是一种常用的常用的通讯方式,同步.串行.同步代表着实时性好,串行代表着接线少,很多的设备愿意采 ...
- 华邦存储器W25Q80, W25Q16, W25Q32系列的spi通讯
华邦存储器W25Q80, W25Q16, W25Q32系列与stm32f1系列单片机的spi通讯 2020.4.9 spi通讯在配置好之后一定要开启spi使能,和串口的配置是一样的 2020.4.13 ...
- 详细介绍GPIO、I2C、SPI通讯原理以及物理层原理
目录 一. GPIO 1. 什么是GPIO? 2. GPIO组成原理 3. GPIO工作原理 二. I2C 1. 什么是I2C? 2. I2C组成原理 3. I2C的特性 4. I2C的通讯模式 5. ...
- SPI通讯协议详解 基于STM32
SPI 协议简介 SPI 协议是由摩托罗拉公司提出的通讯协议 (Serial Peripheral Interface),即串行外围设备接口,是 一种高速全双工的通信总线.它被广泛地使用在 ADC.L ...
- 基于stm32平台上的IC-MU磁绝对值编码器SPI通讯和码盘数据处理
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 IC-MU磁绝对值编码器的SPI通讯和码盘数据处理 前言 一.硬件连接 二.STM32 cubmx配置模式 三.软件代码及思路 1.寄 ...
- Arduino使用u8g2库函数驱动4线/6线OLED屏幕(I2C/SPI通讯)附带库函数详解
话不多说,直接入正题: 常见的OLED通常有两种样式,如下图所示,分别是4线和6线控制 本人几乎浏览了网上所有关于控制OLED模块的教程,并都经过了项目实测:大力推荐u8g2这个库函数来控制,文章末尾 ...
- WK2204 - spi转uart调试记录
WK2204 - spi转uart调试记录 硬件 芯片简介 电路设计 驱动 添加设备树 添加驱动 调试 查看启动加载 检查串口通信 数据乱码或丢失 RS485只能收不能发 系统中断响应异常 思考 硬件 ...
- 57步进电机驱动板,可以通过编码器调速,支持SPI通讯屏显示,485通讯
57步进电机驱动板,可以通过编码器调速,支持SPI通讯屏显示,485通讯. 板子上面有电位器可电流设定或者485改电流设定. 最大电流支持4.5A,如果需要更大电流需要改元器件参数. 有启停和方向按键 ...
最新文章
- 两个什么漏洞,可让十亿安卓手机被获取Root权限?
- java 数组怎么求和_java数组排序,并将数组内的数据求和
- java中的值传递和引用传递问题
- EcmaScript对象克隆之谜
- 作者:洪文兴(1980-),男,厦门大学自动化系副教授,厦门信息产业与信息化研究院执行院长。...
- 怎么确定迭代器后面还有至少两个值_学会迭代和迭代器,让你的程序更省内存...
- vi/vim使用进阶: 在VIM中使用GDB调试 – 使用vimgdb
- 如何使用QGIS下载在线地图
- AcWing 851. spfa求最短路(解决负边权最短路)
- SQL注入之注入检测总结
- 服务器的使用:Linux一键搭建KMS激活服务器
- redis数据类型之HashSet
- PAT|1147 Heaps(最大堆、最小堆、二叉树的遍历)
- USB 3.0 高清音视频采集芯片——MS2130
- 项目文档模板_用于启动项目文档的模板
- BZOJ5442 [Ceoi2018]Global warming
- ios云信不能全屏_ios集成网易云信IM功能遇到的坑
- linux ptp时钟同步
- android跳转qq群代码,Android app 跳 QQ 群界面
- 百度大脑3月新品推荐:EasyDL视频目标追踪全新发布
热门文章
- Google+ 为什么会死?
- 谁说程序员的老婆和代码不可兼得?!
- Hacker News 7 月编程语言招聘趋势榜:Python 稳居第一,Go 成功击败 Java
- Facebook的秘密服务器,竟藏着互联网的军事根源?
- 华米OV坐不住了!九大手机厂商围剿微信小程序
- 北漂的程序员们,这寒冬你是否“有枝可依”?
- mysql配置环境变量,进阶加薪全靠它!
- 已收藏!java自学网址
- 903计算机技术综合基础,北大903计算机技术综合基础考研真题、资料、参考书
- el-jy-ii计算机组成原理实验报告,EL-JY-II型计算机组成原理实验系统