最近需要用GPIO模拟I2C协议,如果是在Linux下面比较简单,但在Windows下面,是否有没Linux那么简单了。

索性自己对I2C协议还有一些了解,翻了SPEC并结合示波器量出的实际信号分析,总算有些成就,在这里以做记录

I2C是什么,这里不做介绍,网上资料太多.

要用GPIO模拟I2C协议,就是控制GPIO的High与Low,复制出与I2C通信协议一样的波形出来.

由于标准的I2C频率在10K到100kHz之间,所以用GPIO模拟还是需要考虑一个IO动作时间问题.

个人推荐整个模拟动作在驱动里面实现,如果在APP层通过IO驱动提供的IO RW来做,性能上面会慢很多

言归正题

波形的理解.

I2C波形分为开始,发送数据,接收数据, ACK, NACK, STOP这些行为.

SCL为Low时,可以修改SDA的状态,SCL为HIGH时为电平稳定期,同时也是另一端接收时间

开始:     SCL为High的时候,SDA由High变为LOW

ACK:    SCL为High的时候,SDA为Low

NACK:    SCL为High的时候,SDA为High

发送数据:  以8Bit为一个单元,一个BIT一个BIT的发,高位先发,低位后发,

接收数据:  同上

STOP :     SCL为High的时候,SDA由Low变为High

Master每发送一个字节后,都需要读 Slave 的回应,ACK表示执行成功,NACK表示Slave没有响应.

Master接收Slave发送的数据,每接收一个,都需要发一次ACK给SLAVE,然后再接收,接收完成后,需要发NACK及STOP给 Slave

后续请看后面章节描述

树莓派python gpio 模仿iic_GPIO实现I2C协议模拟(1)相关推荐

  1. 树莓派python gpio 模仿iic_Adafruit的树莓派教程:GPIO配置

    概览 树莓派最令人兴奋的特点之一是它有一个GPIO连接器可以用来接其他的硬件设备. GPIO连接器实际上是由许多不同类型的接口组成的: 真正的GPIO(General Purpose Input Ou ...

  2. 树莓派python gpio 模仿iic_树莓派高级GPIO库,wiringpi2 for python使用笔记(五)i2c读取测试...

    wiringpi2显然也把i2c驱动带给了Python,手头上正巧有一个DS3231的模块,上边带了一个DS3231 RTC(实时时钟),与一片24C32,两个芯片均为iic总线设备,与树莓派接线如下 ...

  3. 树莓派python gpio 模仿iic_树莓派-用GPIO虚拟I2C

    前言: 非常不幸,树莓派没用多久,I2C接口无法detect. 抱着试一试的心理,到群里问了问,结果被人喷曰:"现在钱多人傻的人真多,什么都不懂,还玩树莓派". 我心想,难道树莓派 ...

  4. 树莓派python gpio图形_树莓派GPIO功能学习

    前言 树莓派现在越来越火,网上树莓派的资料也越来越多.树莓派的学习可以分为linux系统学习和linux驱动学习,利用树莓派制作LED流水灯应该算是驱动学习吧.树莓派来自国外,国外嵌入式开源领域具备良 ...

  5. 树莓派2代B model 上手初体验,不用显示器,Python GPIO 点亮一颗LED

    开题:[好东西,值得研究!] 标题:树莓派2代B model 上手初体验,不用显示器,Python GPIO 点亮一颗LED [知识普及] 1,树莓派各版本对比: 2,树莓派2代BModel 主板,图 ...

  6. SylixOS 基于STM32平台的GPIO模仿I2C总线的驱动开发流程

    2019独角兽企业重金招聘Python工程师标准>>> 概述 本文档以STM32F767平台为例,详细介绍SylixOS上GPIO模仿I2C总线的驱动开发流程. 初始化 GPIO模仿 ...

  7. 树莓派python控制gpio_树莓派的GPIO控制

    陈拓chentuo@ms.xab.ac.cn 2018.06.09/2018.06.10 从网上下载了几张精美的图片,感谢图片的制作者! 0. 概述 本文介绍树莓派 Zero W的GPIO控制,并用L ...

  8. 利用Python实现键盘操控小车、通过树莓派GPIO使用python操控小车(树莓派小车、树莓派+Python+LN298操控小车)

    (树莓派小车.树莓派+Python+LN298操控小车) 一.Python代码获取键盘实时键位 二.树莓派自带GPIO控制电机 大功告成!编写不易,大家成功后点个关注or赞谢谢~~ 一.Python代 ...

  9. 树莓派4B GPIO介绍及编程

    1. 树莓派GPIO引脚对照表 2. GPIO引脚用途 3. GPIO编程 1. 树莓派GPIO引脚对照表             注:本表格适用于各版本,并且兼容26Pin的树莓派B,树莓派B为26 ...

最新文章

  1. angular2 step by step #1 - environment setup
  2. 【剑指offer-Java版】30最小的K个数
  3. 商人过河 java_商人过河问题(二)java实现
  4. 纯css实现responsive list -- 魔力calc
  5. centos 对已有卷扩容_centos7 逻辑卷扩容
  6. 可访问范围 与 visual 或 abstract “修饰符”
  7. 模拟银行自动提款系统python
  8. python 抓网卡数据包_Python选择网卡发包及接收数据包
  9. C#程序在线升级代码---webservice
  10. ReactRouter的实现
  11. 科学解释成功者成功的秘诀
  12. POI报表入门,excel,使用事件模型解析百万数据excel报表
  13. 湖北湖南广州计算机科学大学排行,校友会2018中国大学计算机类专业排名
  14. 图神经网络(GNN)资源帖视频及必读论文
  15. 面试复盘系列:从象棋提升之道趣说面试提升之法
  16. php predis连接超时,如何解决redis连接超时问题
  17. 这些优质的教育类公众号您知道么,非常实用!
  18. EditText相关设置
  19. centos7 下mono安装
  20. 利用 sqlplus spool 实现oracle 导出 csv 文件

热门文章

  1. 在i3 Cpu上允许64位系统
  2. Python 爬取公众号文章链接并生成html
  3. 四川成都发生地震!!!!!!!!!!!!
  4. SpringBoot + Prometheus + Grafana 打造可视化监控一条龙!
  5. android:绘图 (android.graphics包)
  6. 如何让div中的a标签上下左右居中对齐
  7. 【Java基础】乐观锁和悲观锁的实现
  8. Run-Length Encoding(RLE)
  9. 【第17届中国国际郑州供暖通风及舒适家居博览会】
  10. 汇编 王爽老师实验三,查看psp区