微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > AVR单片机一些学习笔记

AVR单片机一些学习笔记

时间:05-30 来源:互联网 点击:

频率为7.7kHZ。

54、 通用同步/异步串行接收/发送器(Universal Synchronous and Asynchronous Serial Recevier andTransimitter)支持四种工作模式:普通异步模式、双倍速异步模式、主机同步模式和从机同步模式。UCSRC中的UMSEL(U Mode Select)位用于选择同步或异步模式。UCSRA中的U2X用于控制是否使用倍速模式。

55、 波特率计算公式:BAUD=fosc/(16(UBRR+1))。

56、 UCSRA中的UDRE(U Data Register Empty)置1时(数据寄存器为空),UDR才能够被写入,一旦被写入,硬件自动将其中的内容送到TXD上串行移出。RXD和TXD均可以产生相应的中断,并在进入中断后标志自动清0。

57、 由于UBRRH (U Baud Rate Register)和UCSRC的物理地址相同,只是在最高位URSEL的不同,而写操作和读操作的对象不同。当URSEL为0时,对象为UBRRH;当URSEL为1时,对象为UCSRC。(读UCSRC时,需要连续读两次才能得到结果,第一次读的是UBRRH的值)。

58、 USART的初始化包括:设置波特率,使能接收和发送器,设置帧格式。

数据发送:while(!(UCSRA (1 UDRE))); UDR = data;UDRE在UDR被写入值后被硬件自动清0,如果在UDR空中断没有对UDR赋值,那么UDRE没有清0,退出中断后会再次触发中断。但是TXC中断可以硬件自动清0TXC标志

数据接收:while(!(UCSRA (1 RXC)));data = UDR;RXC在UDR数据被读出后被硬件自动清0,所以在RXC中断时必须读取UDR,以清0RXC。或者手动清0RXC

TXD和RXD功能由TXEN和RXEN的设置来开启和关闭

59、 如果UCSRA中的FE,PE,DOR在RXC中断中需要读出进行错误检测,那么一定要先读UCSRA再读UDR

60、 串行外设接口(Serial Peripheral Interface,SPI.飞思卡尔公司提出),两线串行接口(Two-wireSerial Interface,TWI)。SPI一般有四根信号线:MOSI,MISO,SCLK,/SS.可以想象一下主机和从机从MOSI到MISO收尾相连形成环(本质就是串行移位呗~),当数据全部交换完毕后,主机拉高/SS,停止SPI传输。这就是为什么SPI比TWI(I2C)快的原因:因为数据是全双工,并且数据走不同的通道。

61、 SPI有四种工作模式,取决于同步时钟的极性(Clock Polariy)和同步时钟的相位(Clock Phase)2个参数。

62、 SPI的主机方式最高速率为(CK/2),从机方式最高速率为(CKI/4)

63、 数据寄存器SPDR。在读SPDR时,读取的是缓冲寄存器内容;写SPDR时,写到移位寄存器中。一旦将数据写入SPDR,硬件自动传输一次SPI通信,如果中断允许,则进入SPI中断。

64、 SPI速率一般为1MHZ,最高可达10MHZ

65、 TWI工作在被控模式时,CPU频率fcpuclock必须大于TWI时钟线SCL频率的16倍。SCL的频率: (在主机模式下,TWBR应大于10.另外特别需要注意的一点: 指的不是4的TWPS次方,应该是按照分频表格,将表格中的1,4,16,64替换 整体)

66、 TWINT中断标志位,当其被置位时,时钟线SCL被拉低,并且执行中断向量时,标志不会清0,只能靠手动软件清0。

67、 如果TWINT被置位,表示正在传送数据,此时如果写入TWDR,那么TWWC(写冲突)会被置位。也就是说当TWINT被置位时,TWDR应该保持稳定,这和I2C的协议是一致的。

68、 TWAR(地址寄存器)的高7位用于存储自己的地址,最后一位TWGCE(TWI General Call Recognition Enable)为地址匹配成功使能位。如果地址匹配成功,将会产生一次TWI中断

69、 在I2C的TWI寄存器设置中,不能使用|赋值,必须整体赋值

70、 CKOPT当系统频率较高时或者要求抗干扰能力强,设置为1。如果系统频率低,设置为0,这样可以减少电流的损耗。

71、 片内EEPROM,执行读操作时,CPU停止运行4个时钟周期。而在执行写操作时,CPU停止运行2个时钟周期。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top