基于MSP430F5系列的硬件I2C的使用分享.doc
《基于MSP430F5系列的硬件I2C的使用分享.doc》由会员分享,可在线阅读,更多相关《基于MSP430F5系列的硬件I2C的使用分享.doc(5页珍藏版)》请在三一文库上搜索。
1、基于MSP430F5系列的硬件I2C的使用分享0.前言对于大多数单片机来说,I2C成了一个老大难问题。从51时代开始,软件模拟I2C成了主流,甚至到ARMCortex M3大行其道的今天,软件模拟I2C依然是使用最广的方法。虽然软件模拟可以解决所有的问题,但是总感觉没有充分发挥MCU内部的硬件资源。查阅了所有关于MSP430F5系列的图书,没有关于硬件I2C的应用代码,自己通过调试摸索,把经验总结之后和大家分享,希望大家喜欢。同时,I2C的使用可以分为等待法和中断法,从理解的角度来说等待法思路清晰易于上手,从功耗的角度出发,中断法可以灵活的进入低功耗模式,但是不易理解。本文先从等待法入手。MS
2、P430F5系列的硬件I2C使用大致会有以下问题:【I2C地址设定】一般情况下I2C的7位地址被写成了8位长度,最低位无效。例如AT24C02的I2C地址为0xA0,其实真正的7位地址为0x50。而MSP430正是需要填入这7位地址0x50。【I2C停止位发送】在I2C读操作过程中,读取最后一个字节之后MCU应向从机发送无应答,MSP430F5系列的MCU发送无应答的操作将自动完成,这就以为在读取最后一个字节内容时,应先操作停止位相关寄存器。【I2C起始位发送】如果仔细分析MSP430F5参考手册,将会发现读操作和写操作发送I2C起始位时略有不同。写操作时需要先向TXBUF中写入数据,之后才可
3、以等待TXSTT标志位变为0,而读操作和写操作稍有不同。【AT24C02操作时序图】1.初始化设置1.1代码实现voiducb0_config(void)P3SEL/P3.2UCB0SCLP3DIR|=BIT2;P3OUT|=BIT2;/输出9个时钟以恢复I2C总线状态for(uint8_ti=0;i9;i+)P3OUT|=BIT2;_delay_cycles(8000);P3OUT_delay_cycles(8000);P3SEL|=(BIT1+BIT2);/P3.1UCB0SDAP3.2UCB0SCL/P3.1ISP.1P3.2ISP.5UCB0CTL1|=UCSWRST;UCB0CTL0
4、=UCMST+UCMODE_3+UCSYNC;/I2C主机模式UCB0CTL1|=UCSSEL_2;/选择SMCLKUCB0BR0=40;UCB0BR1=0;UCB0CTL0/7位地址模式UCB0I2CSA=EEPROM_ADDRESS;/EEPROM地址UCB0CTL11.2代码分析I2C从设备的地址一般有以下通俗说法7位地址,写地址(写控制字)和读地址(读控制字)。1个I2C通信的控制字节(I2C启动之后传送的第一个字节)由7位I2C地址和1位读写标志位组成,7位I2C地址即7位地址,若读写标志位为读标志(读写标志位置位)加上7位I2C地址便组成了读地址(读控制字),若读写标志位为写标志(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MSP430F5 系列 硬件 I2C 使用 分享
链接地址:https://www.31doc.com/p-3411312.html