软件模拟spi的注意事项
2023-09-11 14:15:08 时间
前几天遇到了软件模拟spi的时候,读和写不一致的现象,后来仔细研究了一下,其实是时序性问题不对。
spi的有四种时序,硬件实现的时候,很简单,初始化后直接调用api即可。但是软件模拟就比较麻烦。
举例如下:
读时序如下:
写时序如下:
这两个结合起来就是下面四种spi模式的第四种
也就是模式2,如下所示:
值得注意的是:
按照上面的时序图,单片机应该是在上升沿输出数据(即写数据),
但是,读数据,看时序图好像是也上上升沿,其实是错误的,应该是下降沿读数据,即单片机在下降沿的时候采样丛集的数据。
网络参考:https://blog.csdn.net/ybhuangfugui/article/details/52068759
2.模拟SPI初始化
3.模拟SPI写函数(时序)
这种时序的写法在学习过51的朋友来看再熟悉不过了。
注意:
1、高字节在前,说以上面红色标记的的部分就是将高位先输出,依次移位输出。
2、在时钟的上升沿将数据输出,所以在“时钟-高”之前将数据输出。
4.模拟SPI读函数(时序)
读时序和写时序原理类似,但还是存在差异。
注意:
1、高位先输出来(从机输出),所以,需要将读取的数据依次移向高位。
2、在时钟的下降沿读出数据,所以,我红色标记的部分可以看得出来,是在时钟为低之后才去读取数据。
相关文章
- poj 3069 Saruman's Army 贪心模拟
- R_Studio模拟学生成绩对数据简单分析
- Java 第十一届 蓝桥杯 省模拟赛 梅花桩
- Java 第十一届 蓝桥杯 省模拟赛 70044与113148的最大公约数
- Java 第十一届 蓝桥杯 省模拟赛 无向连通图最少包含多少条边
- C# 中使用System.Net.Http.HttpClient 模拟登录博客园 (GET/POST)
- Dynamips/Dynagen模拟CISCO路由环境
- 模拟请求webservice并获取返回报文
- 使用startActivityForResult场景模拟
- Easy Mock以及Vue+Mock.js模拟数据
- 《安富莱嵌入式周报》第289期:开源回流焊,首发开源跨平台电路仿真软件,用于电气化学的电位仪,超炫酷的双语音模拟合成器,逆向工程师对波音787适航指令的看法
- ASP.NET Core 6框架揭秘实例演示[27]:ASP.NET Core 6 Minimal API的模拟实现
- 【MATLAB】MATLAB 仿真模拟调制系统 — SSB 系统
- LVGL 8.2 meter控件实现模拟时钟
- AI机器人:机器人语音&文本智能交互之自定义软件——实现模拟中本聪与V神跨时空畅谈
- kafka通过控制台模拟消息发送和消息接收正常,但是通过javaAPI操作生产者发送消息不成功 消费者接收不到数据解决方案?