实验五IIC实验

上传人:E**** 文档编号:90895503 上传时间:2019-06-20 格式:PPT 页数:13 大小:172KB
返回 下载 相关 举报
实验五IIC实验_第1页
第1页 / 共13页
实验五IIC实验_第2页
第2页 / 共13页
实验五IIC实验_第3页
第3页 / 共13页
实验五IIC实验_第4页
第4页 / 共13页
实验五IIC实验_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《实验五IIC实验》由会员分享,可在线阅读,更多相关《实验五IIC实验(13页珍藏版)》请在金锄头文库上搜索。

1、预习思考,1、将图4图五的流程图译成汉语 2、关键步骤对应于2410iic.c中的哪个函数(可以直接在框图中标明,写函数名即可,函数后面的参数用省略号表示即可),实验五:I2C串行接口总线通讯实验,实验目的 了解IIC总线接口的基本原理,掌握通过IIC总线访问器件的方法 掌握初始化UDA1380的流程,为后面实验打下理论基础 实验原理和说明 IIC概念:两线串行数据(SDA)和串行时钟(SCL)线在连接器件间传递信息。每个器件都有唯一的地址识别,都可以作为一个发送器或接收器,IIC特点: 仅有两条总线信号线:SDA和SCL 一个真正的多主机总线,具有冲突检测和仲裁功能 每一个连接设备都是可编址

2、的。处于主从模式 串行的8位双向数据传送总线。传输速率可100Kb/s、400Kb/s、3.4Mb/s,实验五:I2C串行接口总线通讯实验,IIC数据传输规范 位传输:两个重要的传输位:START(开始位)和STOP(结束位)。START位处在当SDA信号线上的状态由高到低转换且SCL信号线为高时;STOP位处在当SDA信号线上的状态由低到高转换且SCL信号线为高时 字节传输:传送的每一个字节必须为8位:每次传送字节数不限;每一个字节后面必须跟一个相应位。采用MSB。如果从设备不能一次接受完一个字节,它就使时钟置为低电平,迫使主设备等待;当从设备能接收下一个数据字节后,将释放SCL线,继续后面

3、的数据传输,S3C2410 IIC总线与UDA1380连接原理图 注意点: 这里的 IIC总线必须 要用上拉电阻,实验五:I2C串行接口总线通讯实验,S3C2410 IIC总线访问器件的方法,实验五:I2C串行接口总线通讯实验,UDA1380读写模式 (注意两者的区别) 写模式介绍,实验五:I2C串行接口总线通讯实验,读模式介绍,实验五:I2C串行接口总线通讯实验,代码分析 在2410iic.c文件中,主要有下面几个函数: void _Wr2410Iic(U32 slvAddr,U32 addr,U32 wdata); void _Rd2410Iic(U32 slvAddr,U32 addr,

4、U32 *rdata); void Run_IicPoll(void); void IicPoll(void); Run_IicPoll函数 该函数的作用就是判断一个字节是否发送或者接收完毕,只要传输完毕,就会产生中断,使IIC控制寄存器的bit4置1。该函数判断该位,如果为1,说明传输完毕,可以进 行下面的字节传输,如果是0,则继续等待,直到它变为1。如果变为1,就调用IicPoll函数。 void Run_IicPoll(void) if(rIICCON & 0x10) IicPoll(); ,实验五:I2C串行接口总线通讯实验,IicPoll函数 该函数的主体是一个switch语句,用来

5、判断现在进行的是什么操作,并进行相应的读写操作。这个函数主要反映了I2C的时序,所以要认真理解。 case POLLACK: case RDDATA: case WRDATA: case SETRDADDR: _Rd2410Iic函数 _iicMode = SETRDADDR; /进行写操作 _iicPt = 0; _iicData0 = (U8)addr; _iicDataCount = 1;,实验五:I2C串行接口总线通讯实验,rIICDS = slvAddr&0xfe; /设备地址,参见实验指导书写操作图4的第三步 rIICSTAT = 0xf0; /参见实验指导书写操作图4的第四步 /

6、发送设备地址 while(_iicDataCount!=1) Run_IicPoll(); /发送要读取寄存器地址 _iicMode = RDDATA; /进行读操作 _iicPt = 0; _iicDataCount = 2; rIICDS = slvAddr|0x01; /设备地址,注意这样做的目的 rIICSTAT = 0xb0; /主设备读,开始 rIICCON = 0xaf; /继续IIC操作 while(_iicDataCount!=1) Run_IicPoll(); *rdata = _iicData1*256+_iicData2; /所读到的数,结合前面的表格体会,开发板,mount o nolock 192.168.2.110:/ /mnt,宿主机,cp -R mnt/s*/11*/EXP7/driver/* /home cd /home/EXP7/iic_test make,开发板上运行,cd mnt/home/EXP7/iic_test lsmod insmod 2410IIC_TEST.o 可以看到被加载了,S3C2410 CPU,1380,SDA,SCL,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号