原则:有硬件I2C、SPI时尽量用硬件操作,省去IO模拟繁琐的时序调试。但在内部资源不够时就要用IO模拟总线了。

关于短延时:模拟时序时是否需要延时要看MCU与device的相对速度。比如I2C如果400K的速率和MCU动辄几十M的速率不再一个量级,肯定要通过延时调整时序;但对于SPI因为其速度很高,甚至有的比单片机的速度还高,这时就没必要延时了。

关于IO模拟的收发函数是否要合并成一个:对于SPI因为是全双工,所以可以分开,当然也可以合并成一个(发送时不需要返回值,而接收时此时参数是要发送的数据,返回值是要读的值)

关于在什么跳变沿操作:比如芯片手册中说到在上升沿采样/锁定(也就是在搞定平之后值必须稳定),那么单个位bit的收发都应该在0->1之间进行操作。

关于时钟极性和时钟相位:CPOL时钟极性只是说明了空闲时总线的电平状态:CPOL=1表明空闲时时钟是搞定平;否则是低电平。

            CPOA时钟相位说明了在第几个跳变沿进行采样,CPOA=0表明在第一个沿进行采样,否则在第二个沿。

转载于:https://www.cnblogs.com/jieruishu/p/6846924.html

关于IO模拟时序(SPI)的注意事项相关推荐

  1. linux io模拟时序,spi四种模式io模拟时序

    #include "iom8535v.h" #define _CPOL 1 #define _CPHA 0 #define SCK_IO DDRA|=0X01 #define MO ...

  2. STM32学习笔记一、 IO模拟串行通讯

    代码下载链接:实验五.USART-IO模拟.zip-嵌入式文档类资源-CSDN下载 文档下载链接:UART数据波形分析_uart波形-硬件开发文档类资源-CSDN下载 首先对UART数据波形进行分析: ...

  3. STM32任意IO模拟8080时序驱动TFTLCD屏

    本篇硬件平台STM32F103ZET6.TFTLCD屏采用2.8寸.320*240分辨率.16bitRGB.37pin.ILI9341驱动. 本来准备使用STM32F429平台的,因为它有LTDC,顺 ...

  4. MAX31855电路和程序,实现SPI和软件模拟时序两种方式读取数据

    1. 概述 MAX31855为热电偶至数字输出转换器,内置14位模/数转换器(ADC).器件带有冷端补偿检测和修正.数字控制器.SPI兼容接口,以及相关的控制逻辑,在温度控制器.过程控制或监测系统中设 ...

  5. STM32F103ZE+SHT30检测环境温度与湿度(IIC模拟时序)

    一.环境介绍 工程编译软件:  keil5 温湿度传感器: SHT30 MCU : STM32F103ZET6 程序采用模块化编程,iic时序为一个模块(iic.c 和 iic.h),SHT30为一个 ...

  6. 51单片机(IO模拟IIC通信)

    单片机作为主机 sbit SDA = P1^0; sbit SCL = P1^1; IIC数据操作:在iic总线上,数据伴随时钟脉冲,一位一位的传送的,数据位由高到低传送,每位数据占一个时钟脉冲.在时 ...

  7. 单片机IO模拟串口发送数据

    单片机IO模拟串口发送数据 由于项目上用的STM32单片机串口资源不够用,但是还是想看调试输出,所以就多引出了一个IO,使用IO模拟串口发送数据的时序来当做串口打印用了,本章实验工程以8bit数据位. ...

  8. AT32 421 IO模拟can通信

    421 IO模拟can通信 1. 测试代码:包含外部晶振16M及8M版本. 2. 连线:PA5–CAN_TX:PA4-CAN_RX.(外接3.3V电平CAN收发器). 3. Demo功能: –波特率1 ...

  9. 三星K9F1G08U0E(128MB,NAND FLASH) STM32平台驱动程序(模拟时序)

    STM32平台下模拟时序驱动K9F1G08U0E,主要目的为了解.学习NAND FLASH的功能特性,没有使用STM32的FSMC(火龙开发板硬件为模拟时序驱动),纯粹自娱自乐,如对你有帮助,不胜荣幸 ...

最新文章

  1. (38)Spring Boot分布式Session状态保存Redis【从零开始学Spring Boot】
  2. MyBatis之CRUD详解
  3. Mac下使用OpenCV
  4. 【oracle】oracle jdbc驱动与c3p0的一个兼容问题
  5. php数组去空函数怎么写,分享php数组去除空值函数
  6. 高并发高可靠性系统思考1
  7. 使用C#编写STM32对接物联网平台IoTSharp发送遥测数据
  8. matlab能用矩阵操作就不要用for循环
  9. sql 创建存储过程
  10. 《微积分的力量》读书摘记
  11. EF Core 新特性——Owned Entity Types
  12. python 爬虫 403 Forbidden
  13. 概率统计Python计算:标准正态分布分位点计算
  14. 五款最佳Linux下载管理器推荐
  15. 2018看得见的未来:超融合六大趋势
  16. 一文读懂堡垒机对企业信息安全起到的重要作用
  17. Airtest+Poco多设备并发自动化游戏测试框架(遇到的问题)
  18. SimpleITK、pydicom的安装使用——踏上python生物医学图像处理的初学之路
  19. android root 的作用,手机ROOT和非ROOT有什么区别?ROOT后有什么好处?
  20. android读取vcf文件

热门文章

  1. centos7 启动流程图_Linux启动过程详解
  2. 计算机二级vb知识点汇总,计算机二级vb基础知识考点整理(13页)-原创力文档...
  3. PDF批量替换文字器免费版
  4. 清空、重设input框
  5. bzoj 4814: [Cqoi2017]小Q的草稿【计算几何】
  6. boost线程之类成员函数
  7. 图上的文章(割点和桥)
  8. Java Collection
  9. 一般函数指针和类(非MFC)的成员函数指针
  10. Python下ImportError: DLL load failed: 找不到指定的模块