资源预览内容
第1页 / 共22页
第2页 / 共22页
第3页 / 共22页
第4页 / 共22页
第5页 / 共22页
第6页 / 共22页
第7页 / 共22页
第8页 / 共22页
第9页 / 共22页
第10页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第7章SPI和I2C模块及其应用实例本章目录7.1 SPI的基本工作原理7.2 SPI模块的编程基础7.3 SPI的进一步讨论7.4 IIC模块7.5 IIC总线工作原理 7.6 IIC模块的编程基础7.7 IIC模块的进一步讨论7.1 SPI的基本工作原理7.1.1 功能描述SPISPI全双工主全双工主- -从连接从连接7.1 SPI的基本工作原理7.1.2 SPI模块的I/O引脚 从机选择引脚 主出从入引脚MOSI 主入从出引脚MISO SPI串行时钟引脚SPSCK7.2 SPI模块的编程基础7.2.1 SPI模块的寄存器 地址地址寄存器名称与缩写寄存器名称与缩写访问访问权限权限基本功能基本功能SPI0SPI1$00D8$00F0控制寄存器控制寄存器1(SPICR1)读读/写写设置传输格式、中断使能设置传输格式、中断使能$00D9$00F1控制寄存器控制寄存器2(SPICR2)只读只读中断标志、发送与接收状态中断标志、发送与接收状态$00DA$00F2波特率寄存器波特率寄存器(SPI0BR)读读/写写设置波特率设置波特率$00DB$00F3状态寄存器状态寄存器(SPISR)只读只读读取各个状态标记位读取各个状态标记位$00CD$00F5数据寄存器数据寄存器(SPIDR)读读/写写收发的数据收发的数据说明:由于有两个串行外设接口说明:由于有两个串行外设接口(SPI0/SPI1)(SPI0/SPI1),使用,使用SPIxSPIx时,时,寄存器名称中寄存器名称中SPISPI改为改为SPIxSPIx,x=0x=0,1 1。7.2 SPI模块的编程基础7.2.2 SPI7.2.2 SPI编程基本方法编程基本方法 SPISPI初始化初始化1.1.第第1 1步:写控制字到步:写控制字到SPICRSPICR,确定是否允许,确定是否允许SPISPI接接收中断、收中断、SPISPI的工作方式、时钟极性、时钟相位、的工作方式、时钟极性、时钟相位、是否允许是否允许SPISPI等。等。第第2 2步:写控制字到步:写控制字到SPISCRSPISCR,确定,确定SPISPI的波特率。的波特率。 发送与接收发送与接收1 1字节数据字节数据 通过通过SPISPI发送发送1 1字节数据字节数据 void SPISend1(INT8U SendData)void SPISend1(INT8U SendData) 通过通过SPISPI接收接收1 1字节数据字节数据 INT8U SPIRev1(void)INT8U SPIRev1(void)7.3 SPI的进一步讨论 &SPISPI接口对一些扩展芯片如接口对一些扩展芯片如ADAD采集芯采集芯片片TLC2543TLC2543等应用比较广泛。等应用比较广泛。&TLC2543TLC2543与具有与具有SPISPI或相同接口能力的或相同接口能力的MCUMCU可以直接连接可以直接连接. .&对于没有对于没有SPISPI接口的接口的MCUMCU可以通过软件可以通过软件编程合成编程合成SPISPI操作。操作。 7.4 IIC模块 7.4.1 IIC7.4.1 IIC总线特点总线特点二线制二线制 支持多主控支持多主控 位速率位速率100kbit/s 100kbit/s 3.4Mbit/s3.4Mbit/s。连接到相同总线的连接到相同总线的ICIC数量数量7.4.2 IIC7.4.2 IIC总线标准的发展历史总线标准的发展历史 19921992年年19981998年年20012001年年7.4 IIC模块 7.4.3 IIC7.4.3 IIC总线的相关术语总线的相关术语 主机主机( (主控器主控器) )从机从机( (被控器被控器) )地址地址发送器发送器接收器接收器SDA(Serial DAta)SDA(Serial DAta)SCL(Serial CLock)SCL(Serial CLock)7.5 IIC总线工作原理 3IICIIC总线的典型连接总线的典型连接7.5 IIC总线工作原理 7.5.1 7.5.1 总线上数据的有效性总线上数据的有效性 IICIIC总线上数据的有效性总线上数据的有效性7.5 IIC总线工作原理 7.5.2 7.5.2 总线上的信号总线上的信号 开始、重新开始和停止信号开始、重新开始和停止信号7.5 IIC总线工作原理 7.5.2 7.5.2 总线上的信号总线上的信号 IICIIC总线的应答信号总线的应答信号7.5 IIC总线工作原理 7.5.3 7.5.3 总线上数据传输格式总线上数据传输格式 IICIIC总线的数据传输格式总线的数据传输格式7.5 IIC总线工作原理 7.5.4 7.5.4 IICIIC总线寻址约定总线寻址约定 &起始信号后的第一个字节为寻址字节 &寻址字节由被控器的七位地址位和一位方向位组成&任意两个从机的地址都不相同 7.5 IIC总线工作原理 7.5.5 7.5.5 主机向从机读写主机向从机读写1 1个字节数据的过程个字节数据的过程 主机向从机写数据主机向从机写数据 主机从从机读数据主机从从机读数据 7.6 IIC模块的编程基础 7.6.1 DG1287.6.1 DG128芯片芯片IICIIC的模块的模块允许多主机模式,符合允许多主机模式,符合IICIIC总线协议;总线协议;可软件编程选择可软件编程选择256256个串行时钟频率;个串行时钟频率;软件编程实现软件编程实现ACKACK信号;信号;位与位之间的中断传输方式;位与位之间的中断传输方式;仲裁丢失中断的同时,自动从主机模式切换到仲裁丢失中断的同时,自动从主机模式切换到从机模式;从机模式;具有从地址识别中断;具有从地址识别中断;起停信号的产生和检测,并可以重复产生开始起停信号的产生和检测,并可以重复产生开始信号;信号;信号的产生和检测;信号的产生和检测;总线繁忙检测。总线繁忙检测。 7.6 IIC模块的编程基础 7.6.2 IIC7.6.2 IIC模块寄存器介绍模块寄存器介绍寄存器名称寄存器名称缩写缩写地址地址访问权限访问权限基本功能基本功能地址寄存器地址寄存器IBADIBAD$00E0$00E0读读/ /写写设置从机地址设置从机地址分频寄存器分频寄存器IBFRIBFR$00E1$00E1读读/ /写写设置设置IICIIC模块的工作模块的工作频率等频率等控制寄存器控制寄存器IBCRIBCR$00E2$00E2读读/ /写写设置传输格式、中断设置传输格式、中断使能使能状态寄存器状态寄存器IBSRIBSR$00E3$00E3只读只读表明表明IICIIC模块的工作模块的工作状态状态数据寄存器数据寄存器IBDRIBDR$00E4$00E4读读/ /写写收发数据收发数据7.6 IIC模块的编程基础 7.6.3 IIC7.6.3 IIC模块编程模块编程&IICIIC模块初始化函数模块初始化函数void IICInit(void)void IICInit(void)&接收与发送接收与发送1 1字节数据字节数据接收接收1 1字节数据的函数字节数据的函数INT8U IICread1(INT8U DeviceAddr, INT8U AccessAddr, INT8U *Data)INT8U IICread1(INT8U DeviceAddr, INT8U AccessAddr, INT8U *Data)发送发送1 1字节数据的函数字节数据的函数INT8U IICwrite1(INT8U DeviceAddr, INT8U AccessAddr, INT8U Data)INT8U IICwrite1(INT8U DeviceAddr, INT8U AccessAddr, INT8U Data)&接收与发送接收与发送N N字节数据字节数据接收接收N N字节数据的函数字节数据的函数INT8U IICreadN(INT8U DeviceAddr, INT8U AccessAddr, INT8U Data, INT8U N)INT8U IICreadN(INT8U DeviceAddr, INT8U AccessAddr, INT8U Data, INT8U N)发送发送N N字节数据的函数字节数据的函数INT8U IICwriteN(INT8U DeviceAddr, INT8U AccessAddr, INT8U Data, INT8U N)INT8U IICwriteN(INT8U DeviceAddr, INT8U AccessAddr, INT8U Data, INT8U N)7.7 IIC模块的编程基础 7.7.1 7.7.1 仲裁程序仲裁程序 7.7.2 7.7.2 时钟同步时钟同步7.7.3 7.7.3 握手握手7.7.4 7.7.4 时钟周期延长时钟周期延长谢谢 谢谢Ver 1.0此课件下载可自行编辑修改,供参考!感谢您的支持,我们努力做得更好!
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号