i2c接口笔记】的更多相关文章

一. i2c基础知识 1. NACK信号:当在第9个时钟脉冲的时候SDA线保持高电平,就被定义为NACK信号.Master要么产生STOP条件来放弃这次传输,或者重复START条件来发起一个新的开始. 2. i2c write的时候,master在写完最后一个字节之后Slave会回ACK,然后master发送stop信号结束通信 3. i2c read的时候,master在接收完slave发送的最后一个字节之后会回NAK,因为这个时候master已经接收到足够的字节,NAK告诉slave不要在发…
在前面阅读理解了I2C的官方协议文档后,就拿s3c2440和EEPROM来验证一下. 本来是想用s3c2440的SDA和SCL管脚复用为GPIO来模拟的,但在没有示波器的情况下搞了一周,怎么都出不来,最后还是放弃了.甚至参考了linux下i2c-algo-bit.c和i2c-gpio.c,依然没调出来.如果有示波器,可能很快就能找到原因,现在完全不知道问题出在哪里.其实想用GPIO模拟I2C的目的很简单,以一种简单而又深刻的方式来理解I2C. 既然这条路暂时没法走,退而求其次,用s3c2440的…
1.前言     对于大多数project师而言,I2C永远是一个头疼的问题.相比UART和SPI而言,I2C的时序要复杂一些,I2C组合变化也丰富一些.在这里以AT24C04为例说明I2C使用过程中的一些注意点. 2.AT24C04操作示意图 图 AT24C04操作示意图 示意图说明:示意图分阐述了4种不同的操作方式,比如写单个存储单元,写多个存储单元,读单个存储单元和写单个存储单元.对于单个操作而言,上部为MCU通过I2C输出的相关指令,下部为I2C设备的响应.比如写单个存储单元操作时,MC…
关于STM32的I2C接口死锁在BUSY状态无法恢复的现象,网上已有很多讨论,看早几年比较老的贴子,有人提到复位MCU也无法恢复.只有断电才行的状况,那可是相当严重的问题.类似复位也无法恢复的情况是存在的,技术支持矢口否认问题存在,并不是正确面对问题的态度.比如我用这款F439芯片的SDRAM控制器,在错误操作后进入HardFault状态,复位无法恢复,JTAG也无法联机,只能断电重来,官方的Erratasheet里也提到了. 如果I2C接口无法可靠工作,那么所做的设计将存在严重隐患,不可能要求…
本章目标: 了解I2C总线协议: 掌握S3C2410/S3C2440中I2C接口的使用方法: 12.1 I2C总线协议及硬件介绍 12.1.1 I2C总线协议 1 I2C总线的概念 2 I2C总线的信号类型 3 I2C总线的数据传输格式 12.1.2 S3C2410/S3C2440 I2C总线控制器 1. S3C2410/S3C2440 I2C总线控制器寄存器介绍     S3C2410/S3C2440的I2C接口有4种工作模式:主机发送.主机接收.从机发送. 从机接收.其内部结构如图12.6所…
1.购买基于DS3231的RTC时钟模块,并且支持3.3V的那种 2.配置树莓派 a.打开树莓派的i2c接口 sudo raspi-config -->Interfacing Options -->I2C,全部选择yes b.添加i2c模块     sudo nano /etc/modules     然后添加以下两行内容:         i2c-bcm2708         i2c-dev c.安装i2c工具,查看i2c设备b sudo apt-get install i2c-tools…
一:I2C设备操作方式: 1.  应用程序操作法:i2c的设备的驱动可以直接利用linux内核提供的i2c-dev.c文件提供的ioctl函数接口在应用层实现对i2c设备的读写,但是在应用层使用ioctl函数对应用程序员要求较高,需要自行构建msg结构体,必须了解设备的操作流程,时序之类的. 这方式实现需要用用程序员调用 read, write, ioctl, open, close等linux标准文件接口操作/dev/i2c(X)设备文件. 2. 驱动程序操作法:i2c设备的驱动也可以通过普通…
接口笔记 Nop.Services.Configuration ISettingService : 配置接口(查看) Nop.Services.Localization ILocalizationService:本地化资源接口(查看) ILanguageService:语言接口(查看) ILocalizedEntityService:本地化属性接口(查看) LocalizationExtensions:本地化服务扩展(查看)…
参考:http://blog.csdn.net/yuanlulu/article/details/6163106 ROM最初不能编程,出厂什么内容就永远什么内容,不灵活.后来出现了PROM,可以自己写入一次,要是写错了,只能换一片,自认倒霉.人类文明不断进步,终于出现了可多次擦除写入的EPROM,每次擦除要把芯片拿到紫外线上照一下,想一下你往单片机上下了一个程序之后发现有个地方需要加一句话,为此你要把单片机放紫外灯下照半小时,然后才能再下一次,这么折腾一天也改不了几次.历史的车轮不断前进,伟大的…
1. 几个基本概念 1.1. 设备模型 由 总线(bus_type) + 设备(device) + 驱动(device_driver) 组成,在该模型下,所有的设备通过总线连接起来,即使有些设备没有连接到一根物理总线上,linux为其设置了一个内部的.虚拟的platform总线,用以维持总线.驱动.设备的关系. 因此,对于实现一个linux下的设备驱动,可以划分为两大步: 1.设备注册: 2.驱动注册. 当然,其中还有一些细节问题: 1.驱动的probe函数 2.驱动和设备是怎么进行绑定的. 1…