xMega128 A1的TWI接口怎么在总线上发STOP信号?求最高人民法院指点!

您好,欢迎来到机电之家网! [
机电企业信息化电子商务示范平台
&&&AVR mega128学习板开发板编程器仿真器四合一
价格:498 & 元(人民币)
产地:山东
最小起订量:1套
发货地:山东济南
发布时间:日
济南恩易电子公司
经营模式:生产加工
公司类型:私营合伙企业
所属行业:单片机
主要客户:科研,通讯,金融
说明书,报价手册及驱动
&&暂无相关下载
AVR mega128学习板开发板编程器仿真器四合一
联系& 杨迪 & 8 QQ:&
AVR mega128学习板开发板编程器仿真器四合一是我公司专门针对单片机初学者设计研发的,为提供更好的平台,128开发板由四部分组成,AVR开发板 AVR编程器 AVR仿真器 AVR核心板,四种功能结合在一起,子板和母板组合,也可以分开使用。AVR mega128学习板开发板编程器仿真器四合一通讯接口为USB接口,方便了没有串口的朋友,此开发板以Atmega128为核心,采用底板,核心板的组织形式,集成AVR JTAG ICE仿真器和STK500 ISP编程器,用户只需要再拥有一台计算机即可进行系统的学习,AVR mega128学习板开发板编程器仿真器四合一,一种产品四种功能,使用起来非常得心应手。货号:EasyAVRM128SK-A规格: 套重量:300克& 价格 498/套
产品特性:
1.采用核心板和主板分离的形式,在系统的学习之后,可以把核心板直接用于产品中,快速搭建系统。 2.开发板上集成了AVR JTAG ICE仿真器和AVR ISP编程器,您只需要再拥有一台计算机,而不需要购买仿真器和编程器就可以学习开发了。3.信号调理电路,输入0~10V,轨至轨信号调理。
板载资源:
AVR mega128学习板开发板编程器仿真器四合一 CPU核心板:1、M128 所有引脚引出,可以利用杜邦头很方便的进行接插扩展,标准2.54针距,可以直接插在万用板上使用,便于进行实验。2、m128 DB Core 自带5V、3V3 双路电源稳压。3、m128 DB Core 外部晶振多种选择,既可以使用板上已经焊接好的14.7456M的晶振,也可以自己根据自己的需求扩展,晶振的切换通过跳线实现。4、m128 DB Core 带有JTAG ISP 标准接口5、m128 DB Core 自带一路标准RS232-TTL 转换电路,方便实现串口通信。
AVR mega128学习板开发板编程器仿真器四合一底板:
1、板载JTAG 仿真器2、板载STK500 下载内核3、2 路独立可调的信号调理电路,可控增益G=0.1-103、2 路RS232 串行接口4、1 路RS485 接口5、8 路LED 显示6、4 位动态7 段数码管,利用74HC595进行驱动7、4 位独立按键8、板载IIC 总线PCF8563 实时钟芯片9、板载IIC 总线EEPROM AT24c0110、1 路有源蜂鸣器11、1 路18B20 温度传感器接口,支持单总线器件。(12820可选:10元每个)12、1602LCD 接口(送1602液晶)13、1 LCD 接口(LCD12864可选:80元每个)
AVR mega128学习板开发板编程器仿真器四合一的实验目录:
模数转换(AD):& 单通道AD采集,七段数码管显示结果& 双通道分时采集,利用串口将结果传至PC蜂鸣器:& 按键检测,蜂鸣器鸣叫& PCF8563定时,蜂鸣器1s鸣叫一次键盘:& 按键检测,蜂鸣器鸣叫& 按键检测,LED显示LED:& 跑马灯程序& 按键检测,LED显示定时器:& 定时器T1实现1秒定时,利用七段数码管显示内部EEPROM:& 利用EEPROM记录开机次数,七段数码管显示结果WDT:& 看们狗定时器简单实验DS18B20:& DS18B20检测温度,七段数码管显示结果& DS18B20检测温度,利用串口将结果传至PCSPI:& 利用SPI驱动SPI器件74HC595,实现七段数码管的显示TWI:& 利用TWI驱动TWI器件24C01& 利用TWI驱动TWI器件PCF856324C01:& 24C01读写,利用JTAG察看结果& 24C01读写,利用串口将结果传至PCPCF8563:& PCF8563定时,七段数码管显示时间& PCF8563定时,利用串口将时间传至PC& PCF8563定时,蜂鸣器1s鸣叫一次ST7920(LCD128*64):& 利用ST7920驱动器的LCD128*64串行模式显示USART:& 串口打字机(将接收到的数据原样输出)& PCF8563定时,利用串口将时间传至PC& 24C01读写,利用串口将结果传至PC& DS18B20检测温度,利用串口将结果传至PC
通过对AVR mega128学习板开发板编程器仿真器四合一学习后,你会觉得毕业设计如此简单,轻松应对电子设计大赛,机器人大赛,对电子产品的设计有进一步的认知,建立起学习ARM,DSP,FPGA的良好基础。
&&& 想找一份好工作吗?&&& 你想成为一名电子设计工程师吗?&&& 你对电子设计有浓厚兴趣,而没有工具吗?&&& 看了很久的程序方面的书籍,却没有实践的机会吗?&&& 需要开发产品,想快速入门?&&& 想参加电子设计大赛,机器人大赛吗?
AVR mega128学习板开发板编程器仿真器四合一是您不二选择!
开发板系列我公司还出售:
mega16开发板(板载仿真器 编程器)三合一&&& 498/套ATMEL 原装 ATSTK500开发板&&&&&&&&&&&&&&&&& 750/块 ATmega8 开发板 学习板 Mini Mega8 核心板&&&& 87/块ATmega48 开发板 学习板 Mini Mega48 核心板&& 84/块ATMega88 开发板 学习板 mini mega88 核心板&& 91/块ATmega16 开发板 AVR学习板 Mega16 核心板&&& 106/块ATmega32 开发板 学习板 Mini M32 核心板&&&& 116/块ATmega128 开发板 学习板 Mini M128 核心板&& 147/块ATmega64 开发板 学习板 Mini M64 核心板&&&& 144/块
AVR 仿真器 编程器系列如下:原装 AVR JTAG ICE mkII 仿真下载器 (ATJTAGICE2)&&&&&&&&&&&&&&&&&&&&&&&&&&&& 2800/台国产 AVR JTAG ICE mkII Clone 仿真下载器 (ATJTAGICE2)&&&&&&&&&&&&&&&&&&&&&& 750/台AVR ISP mkII 量产 极速编程器 (推荐) 最新支持Xmega与原装AVR ISP mkii兼容&&& 230/台AVR仿真器 AVR编程器 Avrvi mkII pro 多功能功能仅此与原装AT JTAGICE MKII&&&& 580/台AVR仿真器 AVR编程器 二合一 AVR JTAG与ISP 二合一V2.5 特价商品&&&&&&&&&&&&&& 298/台AVR USB ISP V2.0 (只具有在线下载功能)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 150/台
联系& 杨迪 & 8 QQ:&
济南恩易电子公司
联系人:李玉敬 (小姐)
邮编:250100
地址:济南市高新区新泺大街1768号
联系我时,请说是在机电之家上看到的,谢谢!
在线询盘/留言 请仔细填写准确及时的联系到你!
您的姓名:
联系手机:
固话电话:
联系邮箱:
所在单位:
需求数量:
咨询内容:我想了解:《AVR mega128学习板开发板编程器仿真器四合一》的详细信息.请商家尽快与我联系。
您要求厂家给您提供:
最低订货量
免责声明:以上所展示的信息由会员自行提供,内容的真实性、准确性和合法性由发布会员负责。机电之家对此不承担任何责任。
友情提醒:为规避购买风险,建议您在购买相关产品前务必确认供应商资质及产品质量。基于两线串行TWI技术实现两个ATmega16单片机通信_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
3页免费18页免费46页免费7页¥3.0046页免费 49页免费47页免费27页免费9页免费4页免费
喜欢此文档的还喜欢3页免费8页免费6页免费10页1下载券13页1下载券
基于两线串行TWI技术实现两个ATmega16单片机通信|A​V​R​单​片​机
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢AVR 单片机学习(九)iic总线及TWI模块的使用方法
单片机&嵌入式
单片机应用
嵌入式操作系统
学习工具&教程
学习和开发单片机的必备工具
(有问必答)
(带你轻松入门)
电子元件&电路模块
当前位置: >>
>> 浏览文章
AVR 单片机学习(九)iic总线及TWI模块的使用方法
IIC总线定义与特点
I2C总线的工作原理
AVR的TWI模块的使用方法
IIC inter integrated circuit& 总线是一种由PHILIPS
公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如:电源和系统风扇,可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理。
TWI:ATMega
系列单片机内集成两线制串行接口模块,ATmegl文档称为TWI接口事实上TWI与PHILIOS的I2C总线是同一回事,之所以叫它TWI是因为这样命名可使ATmel避免交术语版税。所以,TWI是兼容I2C的一种说法。
I2C总线最只要的优点是其简单性和有效性。由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达25英尺,并且能够以10KPS的最大传输率支持40个组件,I2C总线的另一个优点是,它支持多主控(MULTIMASTERING),其中任何能够进行发送和接受的设备都可以称为主总线,一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。
由于AVR 有上拉电阻所以 R1 R2
可以不要。其实还的共地应该是3根线。在多主控上有个总线总裁的知识可以参阅相关文档学习。呵呵、初学者不用了解。
I2C总线是由数据线SDA和时钟线SCL构成的串行总线,可发送和接受数据。在CPU与被控IC之间、IC与IC之间进行双向传送、最高传送速率100KBPS.各种被控制电路均并联在这条总线上,最高传送速率100KBPS.各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中,I2C总线并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成的功能,CPU发出的控制信号分为地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定调整的类别(如对比度、亮度等)及需要调整的量。这样各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。
oI2C总线在传送数据过程中共有三种类型信号,
它们分别是:开始信号、结束信号和应答信号。
o开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。
o结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。
o应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。
o这些信号中,起始信号是必需的,结束信号和应答信号,都可以不要。
发送地址跟上面右边那个两个发送数据 0&&
是一样的由时钟来锁存相应的数据位,地址共七位,第8位是读还是写状态,读的话置1& 写 置0
。第9位是应答为,切记应答位不是单片机发出的,而是I2C器件发出的。应答位是这样产生的,I2C器件在接收到完整的8位数据之后,I2C器件判定接受成功,它会向总线发送一个应答信号,可以看到就是在一个时钟脉冲期间,数据线SDA保持低电平就是0,当然发送完地址位之后呢?就发送数据,长度可能是可能1个字节或多个字节。数据的个数跟器件是有关系的。比如AT24C02
EEPROM芯片对他进行读写操作 如写可以进行1& 2&
4& 8 字节,当地址数据结束后来一个结束信号。表示这一帧结束了。
下面说下ATmega 16 的TWI模块。下图 (由于ATmega 16 的技术文档讲的比较详细了,所以我们也结合atmege 16
的数据手册说了)。
这是两线的一些特点:(自己翻一下吧)
一、简单,但是强大而灵活的通讯接口,只需两根线
二、支持主机和从机的操作
三、器件可以工作于发送或接受
四、7位地址空间允许128个从机
五、高达400KHZ的数据传输率
六、斜率受控制的输出驱动器
七、可以抑制总线的尖峰噪声控制器
八、完全可变成的从机地址以及公共地址
九、睡眠时地址匹配可以唤醒AVR
首先看下数据传输和帧格式下图(传输 数据 (位))(TWI总线上数据位的传送与时钟脉冲同步。时钟线为高时,数据线电压必须保持稳定,除非在启动与停止的状态下。官方的解释)
其实这个图说明在SCL为高电平期间 SDA 数据必须稳定0 或1
当然还有起始位与停止位如下图
(翻译如下)
主机启动与停止数据传输。主机在总线上发出START信号以启动数据传输;在总线上发出STOP信号以停止数据传输。在START与STOP
状态之间,需要假定总线忙,不允许其它主机控制总线。特例是在START与STOP
状态之间发出一个新的START状态。这被称为REPEATED
START状态,适用于主机在不放弃总线控制的情况下启动新的传送。在REPEATED
START之后,直到下一个STOP,需要假定总线处于忙的状态。这与START是完全一样的,因此在本手册中,如果没有特殊说明,START与REPEATEDSTART均用START表述。如下所示,START与STOP状态是在SCL线为高时,通过改变SDA电平来实现的。
开始停止时序图
&像这个图中间的一些开始停止和从新开始在绝大数都是用不到的。就不细说了。
下图是地址数据包格式(好好看看是 地址数据的讲解)
翻译下:所有在TWI总线上传送的地址包均为9位,包括7位地址位、1位READ/WRITE控制
位与1位应答位。如果READ/WRITE为1,则执行读操作;否则执行写操作。从机被寻
址后,必须在第九个SCL (ACK)周期通过拉低SDA作出应答。若该从机忙或有其它原因
无法响应主机,则应该在ACK周期保持SDA为高。然后主机可以发出STOP状态或
REPEATED START 状态重新开始发送。地址包包括从机地址与分别称为SLA+R或
SLA+W的READ或WRITE位。
地址字节的MSB首先被发送。从机地址由设计者自由分配,但需要保留地址
作为广播地址。
当发送广播呼叫时,所有的从机应在ACK周期通过拉低SDA作出应答。当主机需要发送
相同的信息给多个从机时可以使用广播功能。当Write位在广播呼叫之后发送,所有的从
机通过在ACK周期通过拉低SDA作出响应。所有的从机接收到紧跟的数据包。注意在整
体访问中发送Read位没有意义,因为如果几个从机发送不同的数据会带来总线冲突。
所有形如1111 xxx格式的地址都需要保留,以便将来使用。
地址包格式图下图:
这个图从右边往左边看先发送的最高位 最后发的是低位。 从 1---9 最后一位 ACK 响应。
下面是数据包下图
可见数据包是8位数据加一个应当位。
下图是地址和数据包一个完整的传输。组合一起
SLA +RW 就是地址数据 的传送的字节数由应用程序的协议决定。
1个字节&& 2& 4 8
个字节数据。
下图是多主机总线系统如图(这个大部分场合用不到所以不用看 以后可以了解下)
下面讲解下TWI 模块的使用方法:如图构成
首先看下SCL& SDA
有两个引脚&& 是在22&
与23 脚 PC0 PC1 下面是这两脚的说明
还有一个波特率发声单元与USART相似 他控制SCL
的时钟周期,当然这个比特率有两个寄存器决定,TWBR& TWPS 有SCL frequency
公式的。CPU的单片机晶振频率 除以 16加上2倍的TWBR&
乘以4的TWPS它的次数注意:如果工作在主机模式不应该小于10 下面有解释
下面是总线的接口单元主要包括一些寄存器总线总裁。我们没必要关心然后又一个地址匹配单元看下啊(只有在多级通讯时候多个单片机进行I2C通讯时候我们给每个单片机设置一个本机地址如果匹配了表示发给自己的,初学者一般也不看)最下面是控制器有图都复制上来吧!还有官方中文解释。
解释有下图
其实都不重要我们要TWI 寄存器它的使用是重要的。呵呵开始讲吧!最终我们的应用都是对这些寄存器操作。
首先是比特率上面有公式第一个寄存器
这个是控制寄存器非常重要。
第二个寄存器
首先是第7位 TWINT: TWI 中断标志
在什么时候产生中断呢?当发送完 地址包 数据包 ,注意这一位清0呢。必须手动清0
必须通过软件写1,不像其他的中断能够自动置1.
第6位 (使能TWI 应答)这个TWEA 在多级通讯时候,就是有其他的I2C器件向AVR单片机发送数据,这时候AVR
单片机在接受到一帧数据之后,它会发送一个应答位,也就是使能这位后,向发送放返回一个应答位这种信息。
第5位(是一个状态标志位,TWSTA它表示的是TWI START 这个信号。第4位 和第5位都是多级通讯用的到的。)
第3位:TWWC&& 是TWI 的写碰撞标志。
就是标志出TWDR 数据寄存器是否可以写。如果为低的时候可以写数据
第2位:TWI 使能。置位此位TWI 。如果使用TWI模块此位必须模块激活。
第1位:是保留位没有作用的。
第0位:TWIE 使能TWI 中断。 (要中断方式使用TWI 总线的的话就要使能这个位 置位)
第3个寄存器:状态寄存器
它的第7位到第3位
5位反应TWI逻辑总线的状态,不同的状态的状态代码会在后面部分描述,所以我们在读取这5位状态代码的时候,读取方法就是先读取这个寄存器然后通过与这个0b将最后两位屏蔽掉因为TWPS是预分频位,在比特率发生器里面是有作用的,有公式的
第四个寄存器:TWDR&(类似于USART
SPI 的数据寄存器差不多的)
发送模式包含 字节,接受模式包含接受到的数据。
第五个寄存器:TWAR
从机地址寄存器
(多级通讯用的到)
如何使用TWI
其实这个图跟一次完整数据传输类似的。所有的不同在这第
3个阶段结束的时候有一个TWI中断触发也就是TWINT这一位被置位,可以用于触发中断。
第一步 :向TWCR 写一个1 使能一个START 信号。就是通过TWCR
寄存器的内容进行一个发START信号的操作。发送成功之后会有一个TWINT中断,在中断里面SCL时钟不采取任何动作的。
第二步:在中断里面通过查询 status code 就是那五位数据看是何种状态,来确定是start
发送完成中断。
第三步:发送一个地址包,就是程序将SLA(从机地址)
+W&(读写位)就是7位从机地址加1位读写位,写入到TWDR&数据寄存器对这些寄存器进行一些确认操作。
第四步:在数据包发送完成和接受到ACK信号之后继续等待第2个中断。接收到ACK信号之后呢TWINT会置位&。
第五步:再处理一次中断,在这个中断里写入数据字节,也是8位数据
第六步:8位数据发送成功接受到ACK& TWINT 会再次置位,那么这个 status
code 会指示出发送完成。当然这只是发送一个字节数据,如果发送多个数据这个过程会持续多次,一直到数据发送完成。
第七步:接受完成之后且接收到ACK
我们这里会发送一个STOP信号,也是通过写TWCR寄存器来实现的。当然STOP发送成功之后不会触发中断。值得注意的是中间如果进行多字节的读或写的话发送的字节数是由编程来把握的,也就是说AVR单片机不会知道你要发多少个字节。所以这个处理相当于在第7步这里。如果我们程序判断我们程序已经发送完毕,我们就发一个STOP信号若如果,没有就重复一下第五步。这就是ATmega
16的TWI总线的使用方法。下面我们结合24c02一个实际的程序来给大家吹吹牛。
oAT24C02是由ATMEL公司提供的,I2C总线串行EEPROM,其容量为2Kbit(256B),工作电压在2.7V~5.5V之间,生产工艺是CMOS工艺。
各引脚功能如下。
A2~A0:器件地址选择引脚。将这3个引脚配置成不同的编码值,在同一串行总线上最多可扩充8片同一容量或不同容量的24系列串行EEPROM芯片。
SDA:串行数据输入输出口,是一个双向的漏极开路结构的引脚,容量扩展时可以将多片24系列的SDA引脚直接相连。
SCL:串行移位时钟控制端。写入时上升沿起作用,读出时下降沿起作用。
WP:硬件写保护控制引脚。当其为低电平时,正常写操作,高电平时,对EEPROM部分存储区域提供硬件写保护功能,即对被保护区域只能读不能写。
GND:接地。
VCC:接+5V电压
2k位&& 256*8 =
地址值相当于低三位 0 1 2& 组合 8个数字
7 硬件写保护 低电平 可以正常写操作 高& 的话只能读 所以我们接地OK了
它的相关电路设计如下图
我们设置的时候都会将他的地址值变为0 0 1 2 全接地线 ,5 6&
PC0& PC1& 因为第2功能是TWI 总线
0.1uf进行电源退耦,一般数字芯片 高速的数字时钟对所在电源产生干扰。净化电源。
容量计算方法
AT24Cxx:01~1024
容量=xx X 1Kbit
型号系列列表
AT24C01&1K(128X8)
AT24C02&2K(256X8)
AT24C04&4K(512X8)
AT24C08&8K(1KX8)
AT24C16&16K(2KX8)
AT24C512&512K(64KX8)
AT24C1024&1M(128KX8)
值得一提是AVR单片机片上自带EEPROM
芯片,而且是1K字节相当于24C08这个容量。而我们24c02实际应用并不大。当然有一些应用场合必须外置的。因为是学习板,因为这个芯片比较常见,学习I2C总线的作用。
下图为总体的操作流程
与读的操作流程和上面的7步可以对比下。器件地址的表示方法等下讲一下。器件地址的高4位是0xa0&&
1010 低四位&& 前3位就是 a0 a1
a2& 第4位是&
读写地址&& 然后等待ACK 。
数据地址相当于数据 在256字节的 存储器里面的编址,它处于数据包的一部分是8位的。
所以这个是写是 地址一个&&&
数据1是数据所处的地址&& 第2是数据的内容
这就是写一字节的操作流程。
右边是读类似。
读出的是多个字节 循环判断是否是最后一个字节,而24c02是 ACK 就是ACK 来产生的,最后产生一个停止位
所以这个读操作相当于是 地址包1个字节 数据包是多个字节。
下面结合程序来大家讲解AT24C02应用。
打开整体测试板程序 我没有哦
# 需要此头文件
【】【】【】【】
上一篇:下一篇:
CopyRight @
单片机教程网
, All Rights Reserved

我要回帖

更多关于 现场总线 的文章

 

随机推荐