操作系统:linux2.6.27内核 通过AT91RM9200芯片的三个gpio管脚,模拟SPI模式来与外部的RTC时钟ds1302进行通讯。 请问,这个驱动如何编写??? [ 本帖最后由 zhj1011 于 2009-5-4 08:57 编辑 ]
i2c是由Philips公司发明的一种串行数据通信协议,仅使用两根信号线:SerialClock(简称SCL)和SerialData(简称SDA)。i2c是总线结构,1个Master,1个或多个Slave,各Slave设备以7位地址区分,地址后面再跟1位读写位,表示读(=1)或者写(=0),所以我们有时也可看到8位形式的设备地址,此时每个设备有读、写两个地址,高7位地址其实是相同的。 i2c数据格式如下: 无数据:SCL=1,SDA=1; 开始位(Start):当SCL=1时,SDA由1向0...
什么是 gpio口模拟i2c? 就是用一个gpio pin(CLK pin)的高低电位切换来模拟出始终的high/low,用另外一根gpio pin(DATA pin)的高低电位,传递数据。 IIC本来是一个硬件模块之间的通信协议,一般芯片都有专门的电路逻辑块来处理协议,并通过两根线路(时钟SCk、数据SDA)来跟其余同样有IIC模块的器件通信。 由于其通信速率(400K)和通信方式(串行)跟其他串并口通信方式不同,所以一般都用于主机跟从机传...
最近在学习gpio,想自己写一个gpio模拟i2c通信的程序,但是发现了一个矛盾:i2c的两根线sda和scl都是可以双向传输信号的,但是对于gpio一个端口,要么设置为输入模式,要么设置为输出模式,这两种模式是不能同时存在的(这是我目前的理解,不知道是否正确)。有人说可以在读数据时设置为接收,写数据时设置为发送,但是我感觉不太可行,尽管如此,我也在尝试这种方法。 希望做过这个实验的和对此有自己看法的朋友说下自己的想法,让...
现在,已经有越来越多的外围器件与微控制器的接口形式是二线制的i2c 串行总线,学
会其基本操作已...