当前位置:文档之家› ATMEGA8寄存器和熔丝位介绍

ATMEGA8寄存器和熔丝位介绍

ATMEGA8寄存器和熔丝位介绍
ATMEGA8寄存器和熔丝位介绍

ATMEGA8寄存器和熔丝位介绍及FLASH操作

一、ATMEG8寄存器介绍

1.状态寄存器(SREG)在I/O空间的地址为:3FH,在数据空间地址为:005FH

I T H S V N Z C

Bit7——I:全局中断允许位。

Bit6——T:位复位存储。

Bit5——H:半进位标志位。

Bit4——S:符号标志位,S=N⊕V

符号标志位S是负数标志位N和2的补码溢出标志位V两者的异或值。

Bit3——V:2的补码溢出标志位。

Bit2——N:负数标志位。

负数标志位表示在一个算数或逻辑操作后的结果是否为负数。

Bit1——Z:零值标志位。

Bit0——C:进位标志位。

2.X、Y、Z地址指针寄存器。

寄存器R26-R31除了可能作通用工作寄存器用外,还可两两合并,组成3个16位寄存器X、Y、Z,作为间接寻址操作中的地址指针寄存器使用,这样就可以在整个数据空间实现间接寻址操作。

3.堆栈指针寄存器(SP)

堆栈指针寄存器用来保存临时数据、局部变量、中断或子程序的返回地址。

4.振荡器校准寄存器(OSCCAL)

CAL7CAL6CAL5CAL4CAL3CAL2CAL1CAL0用法不详。

5.MCU控制寄存器(MCUCR)

SE SM2SM1SM0ISC11ISC10ISC01ISC00 Bit7——SE:休眠使能位

为了使MCU执行SLEEP指令后进入休眠模式,SE必须置位。为了确保休眠模式是程序员的有意行为,建议只在SLEEP指令前一条指令置位SE。MCU一旦唤醒立即清除SE。

Bit6-4——SM2:0休眠模式选择位

000:空闲模式

001:ADC噪声抑制模式

010:掉电模式

011:省电模式

100:保留

101:保留

110:standby模式。只在使用外部晶振或谐振器时有用。

Bit3:2——ISC11、ISC10:中断1触发方式控制位

00:INT1低电平产生中断请求。

01:INT1引脚上任意的逻辑变换将引发中断

10:INT1下降沿引发中断请求

11:INT1上升沿触中断请求

如果SREG寄存器的I标志位和相应的中断屏蔽位置位的话,外部中断1由INT1引脚触发

Bit1:0——ISC01、ISC00中断0触发方式控制位

00:INT0低电平产生中断请求。

01:INT0引脚上任意的逻辑变换将引发中断

10:INT0下降沿引发中断请求

11:INT0上升沿触中断请求

6.MCU状态寄存器(MCUCSR)

RES RES RES RES WDRF BORF EXTRF PORF Bit7-4——保留

Bit3——WDRF:看门狗复位标志位

当看门狗复位时,此位被置1。上电复位或用指令写入0时,该位被清除。

Bit2——BORF:低电压复位标志位

当BOD复位产生时,该位被置1。上电复位或用指令写入0时,该位被清除。

Bit1——EXTRF:外部复位标志位

当外部复位产生时,该位被置1。上电复位或用指令写入0时,该位被清除。

Bit0——PORF:上电复位标志位

当上电复位产生时,该位被置1。使用指令写入0时,该位被清除。

7.看门狗控制寄存器(WDTCR)地址:21/0041

RES RES RES WDCE WDE WDP2WDP1WDP0 Bit4——WDCE:看门狗定时器改变允许标志位

当要禁止看门狗定时器,该位必须置1,否则看门狗将不会被禁止。一旦WDCE置1后,硬件会在4个时钟周期内自动将该位清零。当需要重新设定看门狗定时器的预置分频参数时,WDCE也必须先置1。

Bit3——WDE:看门狗允许标志位

当WDE位置1,则使能看门狗定时器。WDE为零时,看门狗定时器功能被禁止。清零WDE的操作,必须在WDCE置1后的4个时钟周期内完成。因此如要禁止看门狗必须按照以下的特定顺序,以防止意外关断看门狗:

1.在同一操作中,把WDCE和WDE置1。即使WDE原先已经为1也必须WDE写1。

2.在随后的4个时钟周期内,清零WDE,禁止看门狗定时器。

Bit2-0——WDP2、WDP1、WDP0:看门狗定时器预分频器设置位

WDP2:0用于设置看门狗溢出的时间间隔。

看门狗预分频选择

WDP2:0WDT脉冲数典型溢出时间

(VCC=3V)

典型溢出时间

(VCC=5V)

00016K17.1ms16.3ms 00132K34.3ms32.5ms

01064K68.5ms65ms

011128K0.14s0.13s

100256K0.27s0.26s

101512K0.55s0.52s

1101024K 1.1s 1.0s

1112048K 2.2s 2.1s

8.中断控制寄存器(GICR)地址:3B/005B

INT1INT0IVSEL IVCE

Bit0——IVCE:中断向量表移位允许位

IVCE位必须被写入1才能允许对IVSEL的更改。在4个时钟周期后,IVSEL位写入后,IVCE 位会由硬件自动清零。置位IVSEL位将屏敝中断。

Bit1——IVSEL:中断向量表选择位

当IVSEL被清零时,中断向量的位置定义在FLASH存储器的起始处。当该会被置1时,中断向量的位置被定义在引导程序载入区的起始处。引导程序载入区在FLASH空间的位置和大小由BOORST熔丝位决定。

Bit6——INT0:外部中断请求0使能

当INT0位被置1,同时状态寄存器SREG的I位被置1时,外部引脚中断0被使能。MCU 通用控制寄存器MCUCR中的中断0方式控制位ISC01和ISC00决定了外部中断0电平的触发方式。即使INT0引脚被配置为输出方式,其上的有效电平的变化仍会触发中断。

Bit7——ITN1:外部中断请求1使能

当INT1位被置1,同时状态寄存器SREG的I位被置1时,外部引脚中断1被使能。MCU 通用控制寄存器MCUCR中的中断1方式控制位ISC11和ISC10决定了外部中断1电平的触发方式。即使INT1引脚被配置为输出方式,其上的有效电平的变化仍会触发中断。

复位和中断向量表的位置

BOOTRST IVSEL RESET复位起始地址中断向量表起始地址

1(未编程)00X0000X001

1(未编程)10X000引导载入区起始地址+0X001 0(编程)0引导载入区起始地址0X001

0(编程)1引导载入区起始地址引导载入区起始地址+0X001

为了防止移动中断向量表的误操作,必须遵守一个特殊的写入规程来改变IVSEL位的值。

首先,置中断向量表移位使能位IVCE为1。

然后,必须在4个时钟周期内将需要的值写入IVSEL位。在写入IVSEL的同时IVCE将由

硬件自动清零。

在这个执行过程当中,中断将自动被屏蔽。中断在IVCE位被置1的指令周期中将会被屏蔽,并保持屏蔽状态,直到写IVSEL位的指令被执行。如果IVSEL没有被写入,中断屏蔽将保持4个时钟周期。将态寄存器中的I位不受这种自动屏蔽的影响。

需要注意的是如果中断向量表被放置在引导载入程序区中,且引导锁定熔丝位BLB02被编程,那么,当执行应用程序区中的程序时,中断将被屏蔽。如果中断向量表被放置在应用程序区,且引导锁定熔丝位BLB12被编程时,那么,在执行引导载入程序区程序时,中断也被屏蔽。

9.端口B数据寄存器(PORTB)地址:18/0038

PORTB7PORTB6PORTB5PORTB4PORTB3PORTB2PORTB1PORTB0

10.端口B方向寄存器(DDRB)地址:17/0037

DDRB7DDRB6DDRB5DDRB4DDRB3DDRB2DDRB1DDRB0

11.端口B输入引脚寄存器(PINB)地址:16/0036

PINB7PINB6PINB5PINB4PINB3PINB2PINB1PINB0

12.端口C数据寄存器(PORTC)地址:15/0035

PORTC7PORTC6PORTC5PORTC4PORTC3PORTC2PORTC1PORTC0

13.端口C方向寄存器(DDRC)地址:14/0034

DDRC7DDRC6DDRC5DDRC4DDRC3DDRC2DDRC1DDRC0

14.端口C输入引脚寄存器(PINC)地址:13/0033

PINC7PINC6PINC5PINC4PINC3PINC2PINC1PINC0

15.端口D数据寄存器(PORTD)地址:12/0032

PORTD7PORTD6PORTD5PORTD4PORTD3PORTD2PORTD1PORTD0

16.端口B方向寄存器(DDRD)地址:11/0031

DDRD7DDRD6DDRD5DDRD4DDRD3DDRD2DDRD1DDRD0

17.端口B输入引脚寄存器(PINB)地址:10/0030

PIND7PIND6PIND5PIND4PIND3PIND2PIND1PIND0

18.I/O特殊功能寄存器(SFIOR)地址:30/0050

ADHSM ACME PUD PSR2PSR10 Bit2——PUD:上拉禁止位

当PUD被置1后,所有的IO引脚上拉电阻都无效。

在将一个引脚从输入高阻态(DDRxn=0,PORTxn=0)转化为高电平输出状态(DDRxn=1,PORTxn=1)的过程当中,会暂时出现上拉有效输入(DDRxn=0,PORTxn=1)或低电平输出(DDRxn=1,PORTxn=0)的中间过程。通常情况下,应先转化到上拉有效输入状态(DDRxn=0,PORTxn=1),再轮换为高电平输出状态(DDRxn=1,PORTxn=1)。更严格的转换是先

将PUD位置1,再进行上述转换。

同样,在将一引脚由上拉有效输入(DDRnx=0,PORTxn=1)转化为低电平输出(DDRxn=1,PORTxn=0)过程中也会产生类似的问题。要根据实际情况选择高阻态输入(DDRxn=0,PORTxn=0)或高电平输出(DDRxn=1,PORTxn=1)作为中间转换过程,再转换为低电平输出(DDRxn=1,PORTxn=0)。

不管方向寄存器DDRxn为0或1,总是可以通过PINxn来获得外部引脚当前的实际电平。Bit1——PSR2:预分频复位T/C2

当该位置1,T/C2预分频器复位。操作完成后,该件被硬件清零。该位写0无效。若内部CPU时钟作为T/C2时钟,该位读为零。当T/C2工作于异步模式时,直到预分频器复位该位保持为1。

Bit0——PSR10:预定比例分频器复位

当写入1到该位,将复位预定比例分频寄存器,一旦预定比例分频器被复位,硬件自动清零该标志位。而写零到该位将不会产生任何操作。由于预定比例分频器为T/C0和T/C1共享,因此复位预定比例分频器会影响到两个定时器/计数器。读取PSR10位的值总是0。

19.通用中断标志寄存器(GIFR)地址:

INTF1INTF0

Bit7——INTF1:外部中断1中断标志位

当INT1引脚上的有效事件触发一个中断请求后,INTF1会被硬件置1。如果SREG寄存器中的I标志和GICR寄存器中的INT1位被置1,MCU将跳到相应的中断向量处开始执行中断服务程序,同时由硬件自动将INTF1标志清零。如果写逻辑1到INTF1,该位将被清零。当INT1被设置为低电平触发方式时,标志INTF1始终为0。

Bit6——INTF0:外部中断0中断标志位

当INT0引脚上的有效事件触发一个中断请求后,INTF0会被硬件置1。如果SREG寄存器中的I标志和GICR寄存器中的INT0位被置1,MCU将跳到相应的中断向量处开始执行中断服务程序,同时由硬件自动将INTF0标志清零。如果写逻辑1到INTF0,该位将被清零。当INT0被设置为低电平触发方式时,标志INTF0始终为0。

20.T/C0控制寄存器(TCCR0)地址:33/0053

CS02CS01CS00

Bit2:0——CS02:00:T/C0时钟选择位

000:无时钟源,T/C0停止。

001:clk_IO(系统时钟)

010:clk_IO/8(系统时钟/8)

011:clk_IO/64(系统时钟/64)

100:clk_IO/256(系统时钟/256)

101:clk_IO/1024(系统时钟/1024)

110:外部T0脚,下降沿驱动

111:外部T0脚,上升沿驱动

当选择使用外部时钟源时,无论T0引脚是否定义为输入功能,T0引脚上的逻辑信号电平的变化都会驱动C/T0计数,这个特性允许用户通过软件来控制计数。

21.T/C0计数器寄存器(TCNT0)地址:32/0052

22.定时器/计数器中断屏蔽寄存器(TIMSK)地址:39/0059

OCIE2TOIE2TICIE1OCIE1A OCIE1B TOIE1-TOIE0 Bit7——OCIE2:T/C2输出比较匹配中断使能

当该位被设为1,且状态寄存器中的I位被置1时,T/C2溢出中断使能。当T/C2发生溢出,即TIFR中的TOV2置位时,中断服务得以程序。

Bit6——TOIE2:T/C2溢出中断使能

当该位被设为1,且状态寄存器中的I位被置1时,T/C2输出比较匹配中断使能。当T/C2比较匹配发生,即TIFR中的OCF2置位时,中断服务得以程序。

Bit5——TICIE1:T/C1输入捕捉中断使能

当该位被设为1,且状态寄存器中的I位被置1时,T/C1输入捕捉中断使能。一旦TIFR 的ICF1置位,CPU即开始执行T/C1输入捕捉中断服务程序。

Bit4——OCIE1A:T/C1输出比较A匹配中断使能

当该位被设为1,且状态寄存器中的I位被置1时,T/C1输出比较A匹配中断使能。一旦TIFR的OCF1A置位,CPU即开始执行T/C1输出比较A匹配中断服务程序。

Bit3——OCIE1B:T/C1输出比较B匹配中断使能

当该位被设为1,且状态寄存器中的I位被置1时,T/C1输出比较A匹配中断使能。一旦TIFR的OCF1B置位,CPU即开始执行T/C1输出比较B匹配中断服务程序。

Bit2——TOIE1:T/C1溢出中断使能位

当TOIE1被设为1,且状态寄存器中的I位被设为1时,若在T/C1发生溢出(TOV1=1),则执行T/C1溢出中断服务程序。

Bit0——TOIE0:T/C0溢出中断使能位

当TOIE0被设为1,且状态寄存器中的I位被设为1时,若在T/C0发生溢出(TOV0=1),则执行T/C0溢出中断服务程序。

23.定时器/计数器中断标志寄存器(TIFR)地址:38/0058

OCF2TOV2ICF1OCF1A OCF1B TOV1TOV0 Bit7——OCF2:T/C2输出比较匹配标志

当T/C2与OCR2(T/C2输出比较寄存器)的值匹配时,OCF2被置位。此位在中断服务执行时由硬件清零,也可对其写入1来清零。当I、OCIE2、OCF2都置位时,中断服务程序得到执行。

执行强制输出比较匹配A中断服务程序时OCF1A自动清零。也可以通过对其写入逻辑1来清除该位。

Bit6——TOV2:T/C2溢出标志位

当T/C2溢出时,TOV2置位。执行相应的中断服务程序时,此位由硬件清零。此外TOV2也可以通过写1来清零。在PWM模式中当,当T/C2在0X00改变计数方向时,TOV2置1。Bit5——ICF1:T/C1输入捕捉标志。

外部引脚ICP1B出现捕捉事件时ICF1置位。此外,当ICR1作为计数器的TOP值时,一旦计数器达到TOP,ICF1也置位。执行中断服务程序时ICF1自动清零。也可以对其写入逻辑1来清除该标志位。

Bit4——OCF1A:T/C1输出比较A匹配标志

当TCNT1与OCR1A匹配成功时,该位被设置为1。强制输出比较(FOC1A)不会置1OCF1A。

执行强制输出比较匹配A中断服务程序时OCF1A自动清零。也可以通过对其写入逻辑1来清除该位。

Bit3——OCF1B:T/C1输出比较B匹配标志

当TCNT1与OCR1B匹配成功时,该位被设置为1。强制输出比较(FOC1B)不会置1OCF1B。

执行强制输出比较匹配B断服务程序时OCF1B自动清零。也可以通过对其写入逻辑1来清除该位。

Bit1——TOV1:T/C1溢出标志

当T/C1溢出时,TOV1置位。执行相应的中断服务程序时,此位由硬件清零。此外TOV1也可以通过写1来清零。

Bit0——TOV0:T/C0溢出标志

当T/C0溢出时,TOV0置位。执行相应的中断服务程序时,此位由硬件清零。此外TOV0也可以通过写1来清零。

24.T/C1控制寄存器A(TCCR1A)地址:

COM1A1COM1A0COM1B1COM1B0FCO1A FOC1B WGM11WGM10 Bit7:6——COM1A1:0:通道A的比较输出模式

Bit5:4——COM1B1:0:通道B的比较输出模式

COM1A1:0和COM1B1:0分别控制OC1A和OC1B的状态。如果COM1A1:0(COM1B1:0)的一位或两被写入1,OC1A(或OC1B)输出功能将取代IO端口功能。此时OC1A(或OC1B)相应的输出引脚数据方向控制必须置位以便使能输出驱动。

OC1A(CO1B)与物理引脚相连时,COM1x1:0的功能由WGM1[3:0]的设置决定。

T/C1比较输出模式,非PWM

COM1A1/COM1B1COM1A0/COM1B0说明

00普通端口操作,OC1A/OC1B未连接

01比较匹配时OC1A/OC1B电平取反

10比较匹配时清零OC1A/OC1B(输出低电平)

11比较匹配时置位OC1A/OC1B(输出高电平)

T/C1比较输出模式,快速PWM

COM1A1/COM1B1COM1A0/COM1B0说明

00普通端口操作,OC1A/OC1B未连接

01WGM13:0=15,比较匹配时OC1A取反,OC1B未连接。WGM13:0为其它值时,为普通端口操作。OC1A/OC1B未连接。

10比较匹配时清零OC1A/OC1B,OC1A/OC1B在TOP 时置位。

11比较匹配时置位OC1A/OC1B,OC1A/OC1B在TOP 时清零。

T/C1比较输出模式,快速PWM

COM1A1/COM1B1COM1A0/COM1B0说明00普通端口操作,OC1A/OC1B未连接

01WGM13:0=9或14;比较匹配时OC1A取反,OC1B 未连接。WGM13:0为其它值时,为普通端口操作。OC1A/OC1B未连接。

10升序计数时比较匹配时清零OC1A/OC1B,降序计数时比较匹配将置位OC1A/OC1B在TOP。

11升序计数时比较匹配时置位OC1A/OC1B,降序计数时比较匹配将清零OC1A/OC1B在TOP。

Bit3——FOC1A:通道A强制输出比较。

Bit2——FOC1B:通道B强制输出比较。

FOC1A和FOC1B只有当WGM13:0指定为非PWM模式时被激活。为与未来器件兼容。工作在PWM模式下对TCCR1A与入时,这两位必须清零。当FOC1A/FOC1B位置1,立即强制波形产生单元进行比较匹配。COMx1:0的设置改变OC1A/OC1B的输出。

Bit1:0——WGM11:0:波形发生模式

这两位与WGM13:0相结合。用于控制计数器的计数序列—计数器计数的上限值和确定波形发生器的工作模式。

波形产生模式的位描述

25.T/C1控制寄存器B(TCCR1B)地址:

ICNC1ICES1-WGM13WGM12CS12CS11CS10 Bit7——ICNC1:输入捕捉噪声抑制器

置位ICNC1将使能输入捕捉抑制功能。此时外部引脚ICP1的输入被滤波。其作用是从ICP1引脚连续进行4次采样。如果4次采样值都相等,那么信号送入边沿检测器。因此使能该功能使得输入捕捉被延迟了4个时钟周期。

Bit6——ICES1:输入捕捉触发沿选择

该选择使用ICP1上的哪个边沿触发捕获事件。ICES1为0选择的是下降沿触发输入捕捉;

ICES1为1选择的是上升沿触发输入捕捉。

按照ICES1的设置捕获一个事件后,计数器的数值被复制到ICR1寄存器。捕获事件还会置侠ICF1。如果此时中断使能,输入捕捉事件即被触发。

Bit5——保留

Bit4:3——WGM13:2:波形发生模式

Bit2:0——CS12:0:时钟选择

000:无时钟源(T/C停止)

001:CLK_IO/1(无预分频)

010:CLK_IO/8(来自分频器)

011:CLK_IO/64(来自分频器)

100:CLK_IO/256(来自分频器)

101:CLK_IO/1024(来自分频器)

110:外部T1引脚,下降沿驱动

111:外部T1引脚,上升沿驱动

选择外部时钟源后,即使T1引脚被定义为输出,引脚上的逻辑信号电平变化仍然会驱动T/C1计数,这个特性允许用户通过软件来控制计数。

26.T/C1数据寄存器H(TCNT1H)地址:

27.T/C1数据寄存器H(TCNT1L)地址:

28.输出比较寄存器1A(OCR1AH、OCR1AL)地址:

OCR1A[15:8]

OCR1A[7:0]

29.输出比较寄存器1B(OCR1BH、OCR1BL)地址:

OCR1B[15:8]

OCR1B[7:0]

30.输入捕捉寄存器1(IRC1H、IRC1L)地址:

IRC1[15:8]

IRC1[7:0]

31.T/C2控制寄存器(TCCR2)地址:

FOC2WGM20COM21COM20WGM21CS22CS21CS20

Bit7——FOC2:强制输出比较

FOC2仅在WGM指明非PWM模式才有效。但是,为了保证和未来器件的兼容性,使用PWM时,写TCCR2要对其清零。写1后,波形发生器将立即进行比较操作。比较匹配输出引脚QC2将按照COM21:0的设置输出相应的电平。要注意FOC2类似于一个锁存信号,真正对强制输出比较起作用的是COM21:0的设置。

FCO2不会引发任何中断,也不会在使用OCR2作为TOP的CTC模式下对定时器清零。读FOC2返回的值永远是零。

Bit6、bit3——WGM21:0:波形产生模式

这几位控制计数器的控制序列,计数器TOP的来源,以及产生任何波形。T/C支持的模式有:普通模式,比较匹配发生时清除计数器模式(CTC),以及两种PWM模式。

波形产生模式的位定义

模式

WGM21

(CTC2)

WGM20

(PWM2)

T/C的工作模式TOP

OCR2的更新

时间

T0V2的置位

时刻

000普通0XFF立即更新MAX

101相位修正PWM0XFF TOP BOTTOM

210CTC OCR2立即更新MAX

311快速PWM0XFF TOP MAX

注:位定义CTC2和PWM2已经不再使用了,要使用WGM21:0。但是功能和位置与以前的版本兼容。

Bit5:4——COM21:0:比较匹配输出模式

这些位决定了比较匹配发生时输出引脚OC0电平。如果COM21:0当中的某一位或全部置位,OC0以比较匹配的方式进行工作。同时其方向控制位要设置为1以使能输出驱动。

当OC0连接到物理引脚上时,COM21:0的功能依赖于WGM21:0的设置。

比较输出模式,非PWM模式

COM21COM20说明

00正常的端口操作,OC2未连接

01比较匹配发生时OC2取反

10比较匹配发生时OC2清零

11比较匹配发生时OC2置位

比较输出模式,快速PWM模式

COM21COM20说明

00正常的端口操作,OC2未连接

01保留

10比较匹配发生时OC2清零,计数到TOP时OC2置位

11比较匹配发生时OC2置位,计数到TOP时OC2清零

比较输出模式,相位修正PWM模式

COM21COM20说明

00正常的端口操作,OC2未连接

01保留

10在升序计数时发生比较匹配清零OC2,在降序计数时发生比较匹配置位OC2 11在升序计数时发生比较匹配置位OC2,在降序计数时发生比较匹配清零OC2 Bit2:0——CS22:0:时钟选择

000:无时钟源(T/C停止)

001:CLK T2S/1(无预分频)

010:CLK T2S/8(来自分频器)

011:CLK T2S/32(来自分频器)

100:CLK T2S/64(来自分频器)

101:CLK T2S/128(来自分频器)

110:CLK T2S/256(来自分频器)

111:CLK T2S/1024(来自分频器)

32.T/C2寄存器(TCNT2)地址:

TCNT2[7:0]

33.T/C2输出比较寄存器(OCR2)地址:

OCR2[7:0]

34.异步状态寄存器(ASSR)地址:

----AS2TCN2UB OCR2UB TCR2UB Bit3——AS2:异步T/C2

AS2为0时T/C2由I/O时钟CLK I/O驱动;AS2为1时T/C2由连接到TOSC1引脚的晶体振荡器驱动。改变AS2有可能破坏TCNT2、OCR2与OCCR2的内容。

Bit2——TCN2UB:T/C2更新中

T/C2工作于异步模式时,写TCNT2将引起TCN2UB置位。当TCNT2从暂存寄存器更新完毕后TCN2UB由硬件清零。TCN2UB为0表明TCNT2可以写入新值了。

Bit1——OCR2UB:输出比较寄存器2更新中

T/C2工作于异步模式时,写入OCR2将引起OCR2UB置位。当OCR2从暂存寄存器更新完毕后OCR2UB由硬件清零。TCN2UB为0表明OCR2可以写入新值了。

Bit0——TCR2UB:T/C2控制寄存器更新中

T/C2工作于异步模式时,写TCCR2将引起TCR2UB置位。当TCCR2从暂存寄存器更新完毕后TCR2UB由硬件清零。TCR2UB为0表明TCCR2可以写入新值了。

如果在更新标志置位的时候写上述任何一个寄存器都将引起数据的破坏,并引发不必要的中断。

35.SPI控制寄存器(SPCR)地址:

SPIE SPE DORD MSTR CPOL CPHA SPR1SPR0

36.SPI状态寄存器(SPSR)地址:

SPIF WCOL-----SPI2X

37.SPI数据寄存器(SPDR)地址:

MSB LSB

https://www.doczj.com/doc/f116798254.html,ART数据寄存器(UDR)地址:

RXB[7:0]

TXB[7:0]

https://www.doczj.com/doc/f116798254.html,ART控制和状态寄存器A(UCSRA)地址:

RXC TXC UDRE FE DOR PE U2X MPCM .USART控制和状态寄存器B(UCSRB)地址:

https://www.doczj.com/doc/f116798254.html,ART

RXCIE TXCIE UDRIE RXEN TXEN UCSZ2RXB8TXB8

https://www.doczj.com/doc/f116798254.html,ART控制和状态寄存器C(UCSRC)地址:

URSEL UMSEL UPM1UPM0USBS UCSZ1UCSZ0UCPOL

https://www.doczj.com/doc/f116798254.html,ART波特率寄存器(URSEL)地址:

URSEL---UBRR[11:8]

RR[7:0]

43.TWI控制寄存器(TWCR)地址:

TWINT TWEA TWSTA TWSTO TWWC TWEN-TWIE

44.TWI状态寄存器(TWSR)地址:

TWS7TWS6TWS5TWS4TWS3TWS2TWS1TWS0 45.TWI数据寄存器(TWDR)地址:

TWD7TWD6TWD5TWD4TWD3TWD2TWD1TWD0

46.TWI从机地址寄存器(TWAR)地址:

TWA7TWA6TWA5TWA4TWA3TWA2TWA1TWA0

47.TWI比特率寄存器(TWBR)地址:

TWBR7TWBR6TWBR5TWBR4TWBR3TWBR2TWBR1TWBR0 48.模拟比较器控制状态寄存器(ACSR)地址:

ACD ACBG ACO ACI ACIE ACIC ACIS1ACIS0 49.ADC多功选择寄存器(ADMUX)地址:

REFS1REFS0ADLAR-MUX3MUX2MUX1MUX0 .ADC控制和状态寄存器(ADCSRA)地址:

5050.ADC

ADEN ADSC ADFR ADIF ADIE ADPS2ADPS1ADPS0

51.ADC数据寄存器(ADCL、ADCH)地址:

ADC转换结束后,转换结果存于两个寄存器当中。如果采用差分通道,结果由2的被码形式表示。

ADLAR=0:

------ADC9ADC8 ADC7ADC6ADC5ADC4ADC3ADC2ADC1ADC0

ADLAR=0:

ADC9ADC8ADC7ADC6ADC5ADC4ADC3ADC2 ADC1ADC0------

二、ATMEGA8熔丝位介绍

1.程序和数据存储器锁定位

ATMEGA8提供一个字节宽度的锁定位,共包括6个锁定标志位。它们的默认状态为1(未编程),对这些位编程后,其状态为0(被编程)。使用芯片擦除命令,可擦除所有的锁定位,使它们恢复为1(未编程)。

锁定字节

位名称位用途默认值(出厂值)

71(未编程)

61(未编程)BLB125引导锁定位1(未编程)

BLB114引导锁定位1(未编程)

BLB023引导锁定位1(未编程)

BLB012引导锁定位1(未编程)

BLB21加密锁定位1(未编程)

BLB10加密锁定位1(未编程)

应用区是FLASH用来存储应用代码的区域。应用区的保护级别由BLB0锁定位确定,由于SPM指令在应用区执行时是无效的,所以应用区不能用来存储引导程序区代码。

BLB0锁定位保护模式(应用区)

BLB

BLB00模式BLB02BLB01保护

111允许SPM/LPM指令访问应用区

210不允许SPM指令对应用区进行写操作

300不允许SPM指令对应用区进行写操作,也不允许运行于引导区的LPM指令从应用区读取数据。若中断向量位于引导区那和执行应用区代码时中断是禁止的。

401不允许运行于引导区的LPM指令从应用区读取数据。若中断向量位于引导区那和执行应用区代码时中断是禁止的。

应用区用来存储应用代码,而引导区程序必须保存在引导程序区。这是因为只有在BLS 运行时SPM指令才会有效。SPM指令可能访问整个FLASH,包括BLS本身。引导区的保护级别通过BLS1锁定位来确定。

BLB1锁定位保护模式(引导区)BLB

BLB11模式BLB12BLB11保护111允许SPM/LPM指令访问引导程序区210不允许SPM指令对引导区进行写操作

300不允许SPM指令对引导区进行写操作,也不允许运行于应用的LPM指令从引导区读取数据。若中断向量位于引导区那和执行应用区代码时中断是禁止的。

401不允许运行于引导区的LPM指令从应用区读取数据。若中断向量位于引导区那和执行应用区代码时中断是禁止的。

FLASH由两个区域构成,应用区和引导区。两个存储空间大小由BOOTSZ熔丝位配置。由于两区使用不同的锁定位,所以两个区有不同的加密级别。

BOOT区大小配置

BOOTSZ

1BOOTSZ

引导区

大小

应用FLAS

FLASH H

引导FLAS

FLASH H

应用区结

束地址

BOOT复位

地址(引导

区起始地

址)

11128字节40X000-0XF7F0XF80-0XFFF0XF7F0XF80 10256字节80X000-0XEFF0XF00-0XFFF0XEFF0XF00 01512字节160X000-0XDFF0XE00-0XFFF0XDFF0XE00

001024字

320X000-0XBFF0XC00-0XFFF0XBFF0XC00

CPU是否支持RWW,或者CPU是否在利用引导程序区进行代码更新时停止,取决于被编程的是哪个地址。除了前面所述的通过BOOTSZ熔丝位配置的两个区以外,FLASH还可能分为两个固定的区—同时读写区(RWW)和非同时读写区(NRWW)。两个区的主要区别是:对RWW区的页进行擦除或写操作时可读NRWW区;对NRWW区进行擦除或写操作时CPU 停止。

引导程序区软件工作时,用户软件不能读取位于RWW区内的任何代码。“RWW区”指的是被编程(擦除或写操作)的那个区,而不是利用引导区程序进行代码更新过程中实际被读取的那部分。

如果引导区程序是对RWW区内的某一页进行编程,则可以从FLASH中读取代码,但只限于NRWW区内的代码。在FLASH编程期间,用户软件必须保证没有对RWW区的读访问。如果用户软件在编程过程中试图读取位于RWW区内的代码(利用call、jmp、lpm指令或中断),软件可能会终止于一个未知状态。为了避免这种情况的发生,需要禁止中断或者将其转移到引导区。引导程序区总是位于NRWW区。只要RWW区处于不能读访问的状态,存储程序存储器控制和状态寄存器(SPMCSR)的RWW区忙标志位RWWSB置位。编程结束后,要在读取位于RWW区代码之前通过软件清除RWWSB。

RWW界限

FLASH区页数寻址范围同时读写区(RWW)960X000-0XBFF

非同时读写区(NRWW)320XC00-0XFFF

编程锁定保护模式

加密锁定位

保护类型(用于芯片加密)

锁定方式LB2LB1

111无任何加密锁定保护

210禁止串/并方式对FLASH和E2PROM的再编程禁止串/并方式对熔丝位的编程

300禁止串/并方式对FLASH和E2PROM的再编程和校验禁止串/并方式对熔丝位的编程

进入引导程序区:通过跳转指令或从应用区调用的方式可以进入引导程序区。这些操作可以由一些触发信号启动,比如通过USART或SPI接口收到了相关的命令。另外,可能通过编程BOOT复位熔丝位使得复位向量指向BOOT区的起始地址。这样,复位后引导区立刻就启动了。加载了应用代码后,程序开始执行应用代码。MCU本身不能改变熔丝位的设置。也就是说,一旦BOOT复位熔丝位被编程,复位向量将一直指向BOOT区的起始地址。熔丝位只能通过串行或并行编程方法来改变。

BOOT复位熔丝位

BOOTRST复位地址

1复位向量=应用区复位地址(地址0X0000)

0复位向量=引导载入区复位地址

2.熔丝位

ATMEGA8有两个字节的熔丝位:熔丝位高字节(FHB)和熔丝位低字节(FLB),下表中给出了它们的名称及作用。熔丝位未编程的状态为1,被编程后的状态为0。

熔丝位SPLNE不能通过串行方式编程;熔丝位CKOTP与熔丝位CKSEL有关。熔丝位BOOTSZ1:0的默认值定义的引导载入区为最大值1024字。

芯片擦除的操作不能改变所有熔丝位的状态。当加密锁定熔丝位LB1被编程后,其他所有熔丝位被锁定。因此,应在编程LB1之前改变其它熔丝位的状态。

熔丝位高字节

熔丝位名称位用途默认值(出厂值)RSEDISBL7设定引脚PC6为IO口或RESET1(PC6为RESET引脚)

WDTON6WDT总为有效1(由WDTCR位设定WDT是否有效)SPINE5允许串行编程和数据下载0(允许SPI编程)

CKOTP4晶振选项1

EESAVE3芯片擦除时保护EEPROM1(EEPROM无保护)

BOOTSZ12设置引导加载区大小0

BOOTSZ01设置引导加载区大小0

BOOTRST0设置复位向量1

熔丝位低字节

熔丝位名称位用途默认值(出厂值)BODLEVEL7BODF触发电平1

BODEN6BOD允许1(禁止BOD)

SUT15设置复位启动延时时间1

SUT04设置复位启动延时时间0

CKSEL33选择时钟源0

CKSEL22选择时钟源0

CKSEL11选择时钟源0

CLSEL00选择时钟源1

复位和中断向量表的位置

BOOTRST IVSEL RESET复位起始地址中断向量表起始地址

1(未编程)00X0000X001

1(未编程)10X000引导载入区起始地址+0X001 0(编程)0引导载入区起始地址0X001

0(编程)1引导载入区起始地址引导载入区起始地址+0X001

时钟源选择

可选系统时钟源熔丝位(CKSEL3:0)

外部晶振1111-1010

外部低频晶振1001

外部RC振荡器1000-0101

内部RC振荡器0100-0001

外部时钟0000

熔丝CKSEL3:0默认值定义使用芯片内部的RC振荡器(1M)为系统时钟源。

振荡器的不同工作模式

熔丝位工作频率范围

(MHz)

C1、C2范围(使用石英晶体)

CKOPT CKSEL3:0

11010.4-0.9仅适合陶瓷振荡器11100.9-3.012-22 1111 3.0-8.012-22

0101,110,111≤1.012-22使用外部晶振时的唤醒脉冲和延时时间的选择设定

熔丝位掉电和省电

模式唤醒复位延时启动时间

(Vcc=5.0V)

适合应用条件

CKSEL0SUT1:0

000258CK 4.1ms陶瓷振荡器快速上升电源001258CK65ms陶瓷振荡器快速上升电源0101K CK-陶瓷振荡器BOD方式0111K CK 4.1ms陶瓷振荡器快速上升电源1001K CK65ms陶瓷振荡器快速上升电源10116K CK-石英振荡器BOD方式11016K CK 4.1ms石英振荡器快速上升电源11116K CK65ms石英振荡器快速上升电源

使用外部低频晶振时的唤醒脉冲和延时时间的选择设定

熔丝位掉电和省电

模式唤醒复位延时启动时间

(Vcc=5.0V)

适合应用条件

CKSEL3:0SUT1:0

1001001K CK 4.1ms快速上升电源或BOD方式1001011K CK65ms快速上升电源10011032K CK65ms唤醒时频率已经稳定100111保留

熔丝位SUT1:0的默认值设定了最大的复位启动延时时间。

使用外部RC振荡器时的不同工作模式

熔丝位(CKSEL3:0)工作频率范围(MHz)

0101≤0.9

01100.9-3.0

0111 3.0-8.0

10008.0-12.0

使用外部RC振荡器时,系统唤醒的延时计数脉冲和系统复位的延时时间由熔丝位SUT1:0的组合确定。

使用外部RC振荡器时的唤醒脉冲和延时时间的选择设定

熔丝位(SUT1:0)掉电和省电

模式唤醒

复位延时启动时间

(Vcc=5.0V)

适用条件

0018CK-BOD方式

0118CK 4.1ms快速上升电源1018CK65ms慢速上升电源

116CK 4.1ms

快速上升电源或BOD方式(工作频率>8MHz时不建议使用)

在ATMEGA8芯片中集成了可校验的内部RC振荡器,它可以提供固定的1.0、2.0、4.0或者8.0MHz的时钟信号作为系统时钟源。上述的时钟频率是在5V、25℃条件下的典型值。可以通过对CKSEL熔丝位编程而选用内部RC振荡器作为系统时钟源。此时,无需使用外部XTAL1和XTAL2连接外部任何元件构成系统时钟源。并且,CKOPT熔丝位应处于未被编程状态。当使用内RC为作系统时钟源时,看门狗的振荡器将仍然作为看门狗定时器和复位延时时的时钟源使用。

使用内部RC振荡器时的不同工作模式

熔丝位(CKSEL3:0)工作频率范围(MHz)

0001 1.0

0010 2.0

0011 4.0

01008.0

使用内部RC振荡器时,系统唤醒的延时计数脉冲和系统复位的延时时间由熔丝位SUT1:0的组合确定。

使用内部RC振荡器时的唤醒脉冲和延时时间的选择设定

熔丝位(SUT1:0)掉电和省电

模式唤醒

复位延时启动时间

(Vcc=5.0V)

适用条件

006CK-BOD方式

016CK 4.1ms快速上升电源

106CK65ms慢速上升电源

11保留

可使用外部时钟源作为系统时钟,外部时钟信号从XTAL1引脚输入。将CKSEL编程为0000时,即选定系统时钟使用外部时钟源。通过对熔丝位CKOPT的编程,可以使芯片内部XTAL1与地之间的36PF电容有效。

当使用外部时钟源时,系统唤醒时的延时计数脉冲数和延时时间由熔丝位SUT1:0的组合确定。

使用外部时钟源时的唤醒脉冲和延时时间的选择设定

熔丝位(SUT1:0)掉电和省电

模式唤醒

复位延时启动时间

(Vcc=5.0V)

适用条件

006CK-BOD方式016CK 4.1ms快速上升电源106CK65ms慢速上升电源11保留

对于有定时器计数器振荡器引脚(TOSC1和TOSC2)的AVR控制器,只需直接将晶振连接到两个引脚上,不需要外部电容。振荡器已经对32.768KHz的手表的晶振进行了优化。最好不要直接从TOSC1引脚直接输入时钟脉冲信号。

三、FLASH操作

1.程序存储器控制寄存器(SPMCR)

SPMIE RWWSB-RWWSRE BLBSET PGWRT PGERS SPMEN Bit7——SPMIE:SPM中断使能

SPMIE置位后,如果状态寄存的I也置位,SPM中断即被使能。只要SPMCR寄存器的SPMEN清零,SPM中断将被执行。

Bit6——RWWSB:RWW区忙标志

启动对RWW区的自编程(页擦除或写入)操作时,RWWSB被硬件置1。RWWSB位置位时不能访问RWW区。自编程操作完成,如果RWWSRE位为1,RWWSB位将被清除。另外,启动页加载操作将使RWWSB位自动清零。

Bit5——保留

Bit4——RWWSRE:RWW区读使能

RWW区处于编程(页擦除或写入)状态时,RWW区的读操作(RWWSB位被硬件置1)将被阻塞。用户软件必须得到编程结束(SPMEN清零)才能重新使能RWW区。如果RWWSRE 和SPMEN同时被写入1,则在紧接着的4个时钟周期内的SPM指令将再次使能RWW区。如果FLASH忙于页擦除或页写入(SPMEN置位),RWW区不能被使能。如果FLASH加载与RWWSRE写操作同时发生,则FLASH加载操作终止,加载的数据亦将丢失。

Bit3——BLBSET:BOOT锁定位设置

如果此位与SPMEN同时置位,发生于紧接着的4个时钟周期内的SPM指令会根据R0中的数据设置BOOT锁定位。R1中的数据和Z指针中的地址信息被忽略。锁定位设置完成或在4个时钟周期内没有SPM指令被执行时,BLBSET自动清零。

在SPMCSR的BLBSET和SPMEN置位后的3个周期内运行的LPM指令将读取锁定位或熔丝位(取决于Z指针的Z0)并送到目的寄存器。

Bit2——PGWRT:页写入

如果此位与SPMEN同时置位,发生于紧接着的4个时钟周期内的SPM指令执行页写功能,将临时缓冲器中存储的数据写入FLASH。页地址取自Z指针的高位部分。R1、R0的数据则被忽略。页擦除操作完成或在四个时钟周期内没有SPM指令被执行时,PGWRT自动清零。如果页写对象为NRWW区,在整个页擦除操作过程中CPU被停止。

Bit1——PGERS:页擦除

如果此位与SPMEN同时置位,发生于紧接着的4个时钟周期内的SPM指令页擦除功能。页地址取自Z指针的高位部分。R1、R0的数据则被忽略。页擦除操作完成或在四个时钟周期内没有SPM指令被执行时,PGERS自动清零。如果页写对象为NRWW区,在整个页擦除操作过程中CPU被停止。

Bit0——SPMEN:数据存储使能

此位置1后紧接着的4个时钟周期内使能SPM指令。如果将这一位与RWWSER、BLBSET、PGWRT或PGERS之一同时置位,则如上所述,接下来的SPM指令将有特殊的含义。如果只有SPMEN置位,那么接下来的SPM指令将把R0、R1中的数据存储到由Z指针确定的临时页缓冲器。Z指针的LSB被忽略。SPM指令完成或在四个时钟周期内没有SPM指令被执行时,SPMEN自动清零。在页擦除和页写入过程中SPMEN保持为1直到操作完成。

在低5位写入除“10001”、“01001”、“00101”、“00011”或00001之外的任何组合都无效。

在自编程时访问FLASH:Z(ZH、ZL)指针用于SPM命令寻址。

Z15Z14Z13Z12Z11Z10Z09Z08

Z07Z06Z05Z04Z03Z02Z01Z00由于FLASH存储器是是以页的形式组织起来的,程序计数器可看作由两个部分构成:其一为实现页内寻址的低位部分;其次为实现页寻址的高位部分。由于页擦除和页写操作的寻址是相互独立的,因此保证引导区软件在页擦除和页写操作寻址相同的页是最重要的。一旦编程操作开始启动,地址就被锁存,然后Z指针就可以用作其他用途了。

唯一不能使用Z指针的SPM操作是设置引导区锁定位。Z指针的内容被忽略。LPM指令也使用Z指针来保存地址。由于这个指令的寻址逐字节地进行,所以Z指针的LSB也用到了。

FLASH存储器组织

FLASH大小页大小PWWORD页号PCPAGE PCMSB

4K字(8K字节)32字PC[4:0]128PC[11:5]11

单片机各寄存器汇总

符号 地址功能介绍 B F0H B寄存器 ACC E0H 累加器 PSW D0H 程序状态字 IP B8H 中断优先级控制寄存器 P3 B0H P3口锁存器 IE A8H 中断允许控制寄存器 P2 A0H P2口锁存器 SBUF 99H 串行口锁存器 SCON 98H 串行口控制寄存器 P1 90H P1口锁存器 TH1 8DH 定时器/计数器1(高8位)TH0 8CH 定时器/计数器1(低8位)TL1 8BH 定时器/计数器0(高8位)TL0 8AH 定时器/计数器0(低8位) TMOD 89H 定时器/计数器方式控制寄存器 TCON 88H 定时器/计数器控制寄存器 DPTR 82H 83H 83H数据地址指针(高8位) PC SP 81H 堆栈指针 P0 80H P0口锁存器 PCON 87H 电源控制寄存器 、PSW-----程序状态字。 D7D6D5D4D3D2D1D0 CY AC F0 RS1 RS0 OV P 下面我们逐一介绍各位的用途 CY:进位标志。 AC:辅助进、借位(高半字节与低半字节间的进、借位)。 F0:用户标志位,由用户(编程人员)决定什么时候用,什么时候不用。 RS1、RS0:工作寄存器组选择位。这个我们已知了。 0V:溢出标志位。运算结果按补码运算理解。有溢出,OV=1;无溢出,OV=0。什么是溢出我们后面的章节会讲到。

P :奇偶校验位:它用来表示ALU 运算结果中二进制数位“1”的个数的奇偶性。若为奇数,则P=1,否则为0。 运算结果有奇数个1,P =1;运算结果有偶数个1,P =0。 例:某运算结果是78H (01111000),显然1的个数为偶数,所以P=0。 定时/计数器寄存器 1.工作方式寄存器TMOD(P134) TMOD 为T0.T1的工作方式寄存器,其各位的格式如下:TMOD D7 D6 D 5 D4 D3 D2 D1 D0 GATE C/-T M1 M0 GATE C/-T M1 M0 定时器1 定时器0 位7 GATE ——T1的门控位。 当GATE=0时,只要控制TR1置1,即可启动定时器T1开始工作; 当GATE=1时,除需要将TR1置1外,还要使INT1引脚为高电平,才能启动相应的定时器开始工作。 位6 C/—T ——T1的功能选择位。 当C/—T=0时,T1为定时器方式; 当C/—T=0时,T1为计数器方式; 位5和位4 M1和M0——T1的方式选择位。 由这两位的组合可以定义T1的3种工作方式 定时器T1工作方式选择表 如右表: 位3 GATE ——T0的门控位。 当GATE=0时,只要控制TR0置1,即可启动定时器T0开始工作; 当GATE=1时,除需要将TR0置1外,还要使INT0引脚为高电平,才能启动相应的定时器开始工作。 位2 C/T ——T1的功能选择位。 当C/—T=0时,T0为定时器方式; 当C/—T=0时,T0为计数器方式; 位1和位0 M1和M0—T0的方式选择位。 由这两位的组合可以定义T1的3种工作方式 定时器T0工作方式选择表 TMOD 不能进行位寻址,只能用字节传送指令设置定时器工作方式,低半节定义定时器0,高半字节定义定时器1。复位时,TMOD 所有位均为0,定时器处于停止工作状态。 定时/计数器控制寄存器中断请求标志寄存器TCON(P183) TCON 的作用是控制定时器的启/停,标志定时器的溢出和中断情况。定时器控制寄存器TCON 各位格式如下:TCON(88H) 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 当有中断源发出请求时,有硬件将相应的中断标志位置 1.在中断请求被响应前,相应中断标志位被锁存在特殊功能寄存器TCON 或SCON 中。 TCON 为定时器T0和T1的控制寄存器,同时也锁住T0和T1的溢出中断标志及外部中断——INT0和— M1 M0 工作方式 功能描述 0 0 方式0 13位计数器 0 1 方式1 16位计数器 1 0 方式 2 自动再装入8位计数器 1 1 方式3 定时器1:停止计数 M1 M0 工作方式 功能描述 0 0 方式0 13位计数器 0 1 方式1 16位计数器 1 0 方式 2 自动再装入8位计数器 1 1 方式3 定时器0:分成2个8位计数器

熔丝选择

熔丝选择指南 熔丝选择过程中所涉及的诸多因素罗列如下: 1.正常工作电流; 2.应用电压(AC或DC); 3.环境温度; 4.过载电流与熔丝必须熔断的时间; 5.最大故障电流; 6.脉冲、冲击电流,涌入电流,启动电流和电路瞬变值; 7.结构尺寸限制,如长度、直径或高度; 8.必要的机构鉴定书,如UL,CSA,VDE等军事部门等机构; 9.需要考虑的事项:容易更换,轴向引线,目测指示等; 10.熔丝座部件:保险丝夹,安装盒,面板安装,P.C.板安装,射频干扰屏等等。 正常工作电流:在25℃条件下运行,熔丝的电流额定值通常要减少25%以避免干扰熔断。例如,一个电流额定值为10A的熔丝通常不推荐在25℃环境温度下在大于7.5A的电流下操作。欲知详情,请见前面的“额定值减少”和下面的“环境温度”。 电压:熔丝的电压额定值必须等于或大于有效的电路电压。有关例外的情况请见“电压额定值”。 环境温度:熔丝的电流承载能力试验是在25℃环境温度下进行的,这种试验受环境温度变化的影响。环境温度越高,熔丝的工作温度就越高,其寿命就越短。相反,在较低的温度下操作将延长熔丝的寿命。当正常工作电流达到或超过所选熔丝的额定电流时,熔丝也逐渐变得越热。实际经验表明,在室温下,如果在不大于表列熔丝额定电流数值的75%条件下使用的话,那么熔丝应该无限期操作下去。 以下为环境温度对电流承载能力影响的典型曲线图:

其中: 曲线A:为传统的慢熔断熔丝的曲线; 曲线B:为特快熔断,快熔断和螺旋绕制的熔丝的曲线; 曲线C:自复聚合物保护器的曲线; *除额定值的减少之外还有环境温度的影响,请见例子。 例子:在某一使用场合,给定的正常电流为1.5A,采用一种传统的慢断熔丝,在室温下工作,则: 表列熔丝额定值=正常工作主电流/0.75 即1.5A/0.75=2.0A熔丝(在25℃下) 同样,如果该同一熔丝在70℃高温的环境温度下工作,就必须额外减少工作电流,环境温度曲线图中的曲线A(传统的慢熔断熔丝表明)70℃时的最大运行额定值的百分比为80%,在这种情况下, 表列熔丝额定值=正常工作主电流/0.75*额定值有百分比 即1.5A/0.75*0.80=2.5A熔丝(在70℃下) 过载电流情况:这是当电路需要保护时的电流强度。(故障情况可用当破坏发生前的承载电流或同时用所受的最长时间来表示。)要试图使熔丝的特性与电路的需要相匹配,就应考虑时间-电流特性曲线,同时还应时时考虑时间-电流特性曲线是以平均数值为根据的。

AVR单片机熔丝位设置方法和设置步骤 大全

什么是熔丝位? 熔丝是一个保护知识产权的设计。简单的说,你在特定的引脚上加电压,足够的电流,就可以烧断里边的这根熔丝,烧断以后,片里的程序就不可以被读出来也不能改写了,只能用来运行。一般成品出售时都这样做。专用的写片机支持这个功能。自己也可以根据芯片的官方文档来操作。熔丝位是在一个特定的地址上可以读到熔丝状态的一个位。0表示已熔断,1表示未熔断。 熔丝位介绍 AVR Studio中STK500处理熔丝位有巨大的优势:它是以功能组合让用户配置。这种方式与小马(PonyProg2000,SL-ISP)相比,具有以下的优势(优势是如此明显,可以用“巨大优势”来形容):有效避免因不熟悉熔丝位让芯片锁死(这是初学者的恶梦),笔者曾经锁死过三片Atmega16。不需要靠记忆与查文档,就能配置熔丝位(这也是初学者的恶梦)动手之前:请你一定弄清楚了,你这样改会有什么后果,除非你有很多钱不在乎多锁死几个芯片。 AVR单片机熔丝位设置 熔丝配置错,单片机被锁,非常抑闷,这篇文章具有一定价值,留作下次配置时参考之用。 对AVR熔丝位的配置是比较细致的工作,用户往往忽视其重要性,或感到不易掌握。下面给出对AVR熔丝位的配置操作时的一些要点和需要注意的相关事项。有关ATmega128熔丝位的具体定义和功能请查看本书相关章节,在附录中将给出一个完整的汇总表。 (1)在AVR的器件手册中,对熔丝位使用已编程(Programmed)和未编程(Unprogrammed)定义熔丝位的状态,“Unprogrammed”表示熔丝状态为“1”(禁止);“Programmed”表示熔丝状态为“0”(允许)。因此,配置熔丝位的过程实际上是“配置熔丝位成为未编程状态“1”或成为已编程状态“0””。 (2)在使用通过选择打钩“√”方式确定熔丝位状态值的编程工具软件时,请首先仔细阅读软件的使用说明,弄清楚“√”表示设置熔丝位状态为“0”还是为“1”。 (3)使用CVAVR中的编程下载程序时应特别注意,由于CVAVR编程下载界面初始打开时,大部分熔丝位的初始状态定义为“1”,因此不要使用其编程菜单选项中的“all”选项。此时的“all”选项会以熔丝位的初始状态定义来配置芯片的熔丝位,而实际上其往往并不是用户所需要的配置结果。如果要使用“all”选项,应先使用“read->fuse bits”读取芯片中熔丝位实际状态后,再使用“all”选项。

寄存器(register)

寄存器 Scope of register: 寄存器是CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果。其实寄存器就是一种常用的时序逻辑电路,但这种时序逻辑电路只包含存储电路。寄存器的存储电路是由锁存器或触发器构成的,因为一个锁存器或触发器能存储1位二进制数,所以由N个锁存器或触发器可以构成N位寄存器。寄存器是中央处理器内的组成部份。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,包含的寄存器有累加器(ACC)。 1、寄存器- 特点及原理 寄存器又分为内部寄存器与外部寄存器,所谓内部寄存器,其实也是一些小的存储单元,也能存储数据。但同存储器相比,寄存器又有自己独有的特点: ①寄存器位于CPU内部,数量很少,仅十四个; ②寄存器所能存储的数据不一定是8bit,有一些寄存器可以存储16bit数据,对于386/486处理器中的一些寄存器则能存储32bit数据; ③每个内部寄存器都有一个名字,而没有类似存储器的地址编号。 寄存器的功能十分重要,CPU对存储器中的数据进行处理时,往往先把数据取到内部寄存器中,而后再作处理。外部寄存器是计算机中其它一些部件上用于暂存数据的寄存器,它与CPU之间通过“端口”交换数据,外部寄存器具有寄存器和内存储器双重特点。有些时候我们常把外部寄存器就称为“端口”,这种说法不太严格,但经常这样说。 外部寄存器虽然也用于存放数据,但是它保存的数据具有特殊的用途。某些寄存器中各个位的0、1状态反映了外部设备的工作状态或方式;还有一些寄存器中的各个位可对外部设备进行控制;也有一些端口作为CPU同外部设备交换数据的通路。所以说,端口是CPU和外设间的联系桥梁。CPU对端口(Ports)的访问也是依据端口的“编号”(地址),这一点又和访问存储器一样。不过考虑到机器所联接的外设数量并不多,所以在设计机器的时候仅安排了1024个端口

AVR单片机熔丝位设置,以及搞错熔丝位,导致芯片死锁的恢复办.

AVR单片机熔丝位设置详解 1、BOD(Brown-out Detection 掉电检测电路 BODLEVEL(BOD电平选择: 1: 2.7V电平; 0:4.0V电平。这需要根据芯片的工作电压来选择。 BODEN(BOD功能控制: 1:BOD功能禁止;0:BOD功能允许 使用方法:如果BODEN使能(复选框选中启动掉电检测,则检测电平由BODLEVEL决定。一旦VCC下降到触发电平(2.7v或4.0v以下,MCU复位;当VCC电平大于触发电平后,经过tTOUT 延时周后重新开始工作。 2、复位启动时间选择 SUT 1/0: 当选择不同晶振时,SUT有所不同。如果没有特殊要求,推荐SUT 1/0设置复位启动时间稍长,使电源缓慢上升(即SUT1:0;SUT0:1)。 3、CKSEL3/2/10: 时钟源选择。芯片出厂的默认情况下,CKSEL3—0和SUT1、SYT0分别设置为“0001”和“10”,这样将使用芯片8mHz的内部晶振和使用最长的启动延时。 配置方法: 4、M103:设置ATmega103兼容方式工作。出厂时的默认设置为0,即以ATmega103兼容模式下运行。 5、JTAGEN:如果不使用JTAG接口,应该将JTAGEN的状态设置为1,即禁止JTAG功能,JTAG 引脚用于I/O接口。 6、SPIEN:SPI方式下载数据和程序允许,默认状态为允许0,一般保留其状态。 7、WDTON:看门狗定时器始终开启。默认情况下为“1”,即禁止看门狗定时器始终开启。选择为“0”表示看门狗定时器始终开启,建议设置为0,防止程序跑飞。 8、EESAVE:EESAVE设置为“1”表示对芯片进行擦除操作时,flash和EEPROM中的数据一同擦除,设置为“0”表示擦除操作只对flash中的数据有效而对EEPROM无效。芯片出厂的默认设置为“1”。在实际应用中需要根据实际需要进行设置。

ICCAVR-AVR_BootLoader

ICCAVR-AVR_BootLoader-AVR BootLoader详解 ATmega128具备引导加载支持的用户程序自编程功能(In-System Programming by On-chipBoot Program),它提供了一个真正的由MCU 本身自动下载和更新(采用读/写同时"Read-While-Write"进行的方式)程序代码的系统程序自编程更新的机制。利用AVR的这个功能,可以实现在应用编程(IAP)以及实现系统程序的远程自动更新的应用。 IAP的本质就是,MCU可以灵活地运行一个常驻Flash的引导加载程序(Boot Loader Program),实现对用户应用程序的在线自编程更新。引导加载程序的设计可以使用任何的可用的数据接口和相关的协议读取代码,或者从程序存储器中读取代码,然后将代码写入(编程)到Flash存储器中。 引导加载程序有能力读写整个Flash存储器,包括引导加载程序所在的引导加载区本身。引导加载程序还可以对自身进行更新修改,甚至可以将自身删除,使系统的自编程能力消失。引导加载程序区的大小可以由芯片的熔丝位设置,该段程序区还提供两组锁定位,以便用户选择对该段程序区的不同级别的保护。 本节将给出一个实际的的Boot Loader程序,它可以配合Windows中的超级终端程序,采用Xmodem传输协议,通过RS232接口下载更新用户的应用程序。 5.2.1 基本设计思想 1.Boot Loader程序的设计要点 Boot Loader程序的设计是实现IAP的关键,它必须能过通过一个通信接口,采用某种协议正确的接收数据,再将完整的数据写入到用户程序区中。本例Boot Loader程序的设计要点有: (1)采用ATmega128的USART口实现与PC之间的简易RS232三线通信; (2)采用Xmodem通信协议完成与PC机之间的数据交换; (3)用户程序更新完成后自动转入用户程序执行; (4)Boot Loader程序采用C语言内嵌AVR汇编方式编写,阅读理解方便,可移植性强,代码小于1K字。 2.Xmodem通信协议 Xmodem协议是一种使用拨号调制解调器的个人计算机通信中广泛使用的异步文件运输协议。这种协议以128字节块的形式传输数据,并且每个块都使用一个校验和过程来进行错误检测。如果接收方关于一个块的校验和与它在发送方的校验和相同时,接收方就向发送方发送一个认可字节。为了便于读者阅读程序,下面简要说明该协议的主要特点,有关Xmoden的完整的协议请参考其它相关的资料。 (1)Xmodem的控制字符:01H、04H、06H、15H、18H、1AH。 (2)Xmodem传输数据块格式:" 个字节的数据块...> "。其中为起始字节; 为数据块编号字节,每次加一;是前一字节的反码;接下来是长度为128字节的数据块;最后的是128字节数据的CRC校验码,长度为2个字节。 (3)接收端收到一个数据块并校验正确时,回送;接收错误回送;而回送表示要发送端停止发送。 (4)发送端收到后,可继续发送下一个数据块(packNO+1);而收到则可再次重发上一个数据块。 (5)发送端发送表示全部数据发送完成。如果最后需要发送的数据不足128个字节,用填满一个数据块。 (6)控制字符"C"有特殊的作用,当发送端收到"C"控制字符时,它回重新开始以CRC校验方式发送数据块(packNO = 1)。 (7)每发送一个新的数据块 加1,加到OxFF后下一个数据块的 为零。 (8)校验方式采用16位CRC校验(X^16 + X^12 + X^5 + 1)。 5.2.2 源程序代码 下面给出的源程序是在ICCAVR中实现的。 /***************************************************** 采用串行接口实现Boot_load应用的实例 华东师大电子系马潮2004.07 Compiler: ICC-AVR 6.31

寄存器简单理解

GPIOB_BASE是一个地址,这个地址是GPIOB一系列寄存器的首地址,后面地址依次是GPIOB 的寄存器,将这个地址转换为结构体形式,并将后面寄存器按顺序定义在结构体里面,这样访问寄存器就可以通过引用结构体的形式了而不必书写寄存器的地址来访问寄存器。 寄存器用途: 1.可将寄存器内的数据执行算术及逻辑运算; 2.存于寄存器内的地址可用来指向内存的某个位置,即寻址; 3.可以用来读写数据到电脑的周边设备。 AX 累加器,得名原因是最初常使用ADD AX,n这样的指令 CX 计数器,得名原因是最常使用CX的值作为重复操作的次数 BX 常用作地址寄存器,如MOV AX,[BX],把BX所指地址中的数取到AX中去 DX 通用寄存器 所讲的寄存器都是以x86为基础的,那么这种CPU内,寄存器可分为以下几种: 1.EAX、EBX、ECX、EDX等通用寄存器——从通用上来讲,它所存储的东西,只要它的容积所容许的话,什么都是可以存储的; 2.CS、SS、ES等段寄存器——它所存储的只能是地址,它的作用是从寻址上可以体现出来; 3.EIP,也称为指令指针 4.EFLAGS寄存器,俗称为标志寄存器——所存储的是与CPU的每一个执行的指令有关。是关系到CPU每一个指令的执行相关内容与特殊的关联,即CPU所执行的指令是否违规,它的指令是否有进位,它的指令是否有溢出,都是在标志寄存器中能表现与表达出来; 5.浮点单元,这里面之所以只浮点单元,是因为在它里面还有一些小的寄存分类,主要是数学上的浮点上的计算 6.MMX指令使用的8个64位寄存器 7.单指令、多数据操作(SIMD,single-instruction,multiple-data)使用的8个128位XMM寄存器

一二次侧熔丝的选择

配电变压器一二次侧熔丝容量的选择方法 谷万明黑龙江省巴彦县供电公司(151800) 1前言 在城镇和农村电力设备供用电安全检查中,经常会遇到配电变压器本身或二次侧出线短路时,其一次侧或二次侧或一、二次侧熔丝未熔断,发生变电所线路开关跳闸或配电变压器烧损事故,造成长时间停电和重大的直接和间接的经济损失,对工农业生产和城乡人民生活产生很大影响。 发生类似事故的主要原因是配电变压器的一、二次侧熔丝容量选择不正确造成的。当配电变压器本身或二次侧出线发生短路事故时,由于配电变压器的一、二次侧熔丝容量选择不正确,容量过大,短路电流无法使其熔断,造成配电变压器脱离一、二次侧熔丝保护,从而发生变电所线路开关跳闸或配电变压器烧损事故。 配电变压器一、二次侧熔丝是运行中的配电变压器本身及二次侧短路和过负荷的主要保护方式,其中一次侧熔丝的主要作用是作为配电变压器本身和二次侧出线短路故障的后备保护,二次侧熔丝的主要作用是作为配电变压器过负荷和二次侧出线短路故障的主保护。配电变压器一、二次侧熔丝容量的正确选择,对于配电变压器的安全经济运行,提高供电可靠性,都是十分重要的。

2选择方法 配电变压器一、二次侧熔丝容量的选择方法,根据按额定容量和实际负荷容量可分为两种。 2.1按额定容量选择方法 按照配电变压器额定容量选择一、二次侧熔丝容量时,又根据配电变压器有无铭牌情况,分为两种: (1)有铭牌情况: 对于有铭牌的配电变压器,在铭牌上标明了配电变压器的额定容量一、二次侧额定电流和阻抗电压等参数,在选择一、二次侧熔丝容量时,根据铭牌上标明的一、二次侧额定电流,按运行规程规定进行选择。 变压器运行规程规定: ①100kVA以下的变压器,一次侧熔丝容量可按2~3倍额定电流选择,考虑到熔丝的机械强度,一般一次侧熔丝容量不小于10A,二次侧熔丝容量应按二次额定电流选择。 ②100kVA及以上的变压器,一次侧熔丝容量可按1.5~2倍额定电流选择,二次侧熔丝容量应按二次额定电流选择。

msp430状态寄存器介绍概括

寄存器实在太多了。。我有个文档给你看看吧、、 MSP430寄存器中文注释---P1/2口(带中断功能) /************************************************************ * DIGITAL I/O Port1/2 寄存器定义有中断功能 ************************************************************/ #define P1IN_ 0x0020 /* P1 输入寄存器*/ const sfrb P1IN = P1IN_; #define P1OUT_ 0x0021 /* P1 输出寄存器*/ sfrb P1OUT = P1OUT_; #define P1DIR_ 0x0022 /* P1 方向选择寄存器*/ sfrb P1DIR = P1DIR_; #define P1IFG_ 0x0023 /* P1 中断标志寄存器*/ sfrb P1IFG = P1IFG_; #define P1IES_ 0x0024 /* P1 中断边沿选择寄存器*/ sfrb P1IES = P1IES_; #define P1IE_ 0x0025 /* P1 中断使能寄存器*/ sfrb P1IE = P1IE_; #define P1SEL_ 0x0026 /* P1 功能选择寄存器*/ sfrb P1SEL = P1SEL_; #define P2IN_ 0x0028 /* P2 输入寄存器*/ const sfrb P2IN = P2IN_; #define P2OUT_ 0x0029 /* P2 输出寄存器*/ sfrb P2OUT = P2OUT_; #define P2DIR_ 0x002A /* P2 方向选择寄存器*/ sfrb P2DIR = P2DIR_; #define P2IFG_ 0x002B /* P2 中断标志寄存器*/ sfrb P2IFG = P2IFG_; #define P2IES_ 0x002C /* P2 中断边沿选择寄存器*/ sfrb P2IES = P2IES_; #define P2IE_ 0x002D /* P2 中断使能寄存器*/ sfrb P2IE = P2IE_; #define P2SEL_ 0x002E /* P2 功能选择寄存器*/ sfrb P2SEL = P2SEL_; MSP430寄存器中文注释---P3/4口(无中断功能) /************************************************************ * DIGITAL I/O Port3/4寄存器定义无中断功能 ************************************************************/ #define P3IN_ 0x0018 /* P3 输入寄存器*/

保险丝的选择和使用

保险丝的选择和使用 熔断器是动力和照明线路的一种保护器件,当发生短路或过大电流故障时,能迅速切断电源,保护线路和电气设施的安全(但不能准确保护过负荷)。 一、熔断器的分类 熔断器分为高压和低压两大类。用于3kV-35kV的为高压熔断器;用于交流220V 、380V 和直流220V 、440v 的为低压熔断器。 高压熔断器又分为户内式和户外式两种,型号说明如下: 例如RN1-3 / 150 -200 即为户内式。额定电压3kV、额定电流150A 、断开容量为200MVA。 户内式有RN1、RN2、RN3 、RN5 、RN6 等,户外式有RW3 、RW4 、RW10 等,直流电机车用有RNZ 、RNZ1等。 低压熔断器常见有插入式、管式、螺旋式三大类。又可分为开启式、半封闭式和封闭式三种。 开启式不单独使用,常与闸刀开关组合使用;半封闭管式的一端或两端开启,熔体熔化粒子喷出有一定方向,使用请注意安全;封闭式常见有插入式、无填料管式、有填料管式和有填料螺旋式。低压熔断器字母含义如下:

R-熔断器; C-插入式; L -螺旋式; M-密闭管式; S-快速;T-有填料管式。如RC1、RC1A 为插人式; RM-无填料管式; RT0、RL1、RLS分别为有填料管式和有填料螺旋式。 二、熔断器的选择原则 1.按照线路要求和安装条件选择熔断器的型号。容量小的电路选择半封闭式或无填料封闭式;短路电流大的选择有填料封闭式;半导体元件保护选择快速熔断器。 2.按照线路电压选择熔断器的额定电压。 3.根据负载特性选择熔断器的额定电流。 4.选择各级熔体需相互配合,后一级要比前一级小,总闸和各分支线路上电流不一样,选择熔丝也不一样。如线路发生短路,15 A 和25A 熔件会同时熔断,保护特性就失去了选择性。因此只有总闸和分支保持2-3 级差别,才不会出现这类现象。如一台变压器低压侧出口为RT0 1000 / 800 、电机为RT0 400 / 250 或RT0 400 / 350 ,上下级间额定电流之比分别为3.2 和2.3 故选择性好,即支路发生短路,支路保险熔断不影响总闸供电。 5.熔体不能选择太小。如选择过小,易出现一相保险丝熔断后,造成电机单相运转而烧坏;据统计60%烧坏的电机均系保险配置不合适造成的。

AVR单片机熔丝位设置详解

A VR单片机熔丝位设置详解 1、BOD(Brown-out Detection) 掉电检测电路 BODLEVEL(BOD电平选择):1: 2.7V电平; 0:4.0V电平。这需要根据芯片的工作电压来选择。 BODEN(BOD功能控制): 1:BOD功能禁止;0:BOD功能允许 使用方法: 如果BODEN使能(复选框选中)启动掉电检测,则检测电平由BODLEVEL决定。一旦VCC下降到触发电平(2.7v或4.0v)以下,MCU复位;当VCC电平大于触发电平后,经过tTOUT 延时周后重新开始工作。 2、复位启动时间选择 SUT 1/0:当选择不同晶振时,SUT有所不同。如果没有特殊要求,推荐SUT 1/0设置复位启动时间稍长,使电源缓慢上升(即SUT1:0;SUT0:1)。 3、CKSEL3/2/10:时钟源选择。芯片出厂的默认情况下,CKSEL3—0和SUT1、SYT0分别设置为“0001”和“10”,这样将使用芯片8mHz的内部晶振和使用最长的启动延时。 配置方法: 4、M103:设置ATmega103兼容方式工作。出厂时的默认设置为0,即以ATmega103兼容模式下运行。

5、JTAGEN:如果不使用JTAG接口,应该将JTAGEN的状态设置为1,即禁止JTAG 功能,JTAG引脚用于I/O接口。 6、SPIEN:SPI方式下载数据和程序允许,默认状态为允许0,一般保留其状态。 7、WDTON:看门狗定时器始终开启。默认情况下为“1”,即禁止看门狗定时器始终开启。选择为“0”表示看门狗定时器始终开启,建议设置为0,防止程序跑飞。 8、EESAVE:EESAVE设置为“1”表示对芯片进行擦除操作时,flash和EEPROM 中的数据一同擦除,设置为“0”表示擦除操作只对flash中的数据有效而对EEPROM无效。芯片出厂的默认设置为“1”。在实际应用中需要根据实际需要进行设置。 9、BOOTRST:决定上电启动时,第一条指令的地址。默认状态为“1”,表示启动从0x0000开始执行;如果BOOTRST设置为“0”,启动时从BOOTLOADER的起始位置开始启动(BOOTLOADER的首地址由BOOTSZ1和BOOTSZ0决定)。 BOOTSZ1和BOOTSZ0:这两位决定了BOOTLOADER的大小和起始地址。默认状态为“00”表示4096字节,起始位置为0xF000。 BOOLOADER区大小配置: 注:在做熔丝位设置时要先确定“√”表示的是1还是0

不同熔断器必须用不同的选择公式

筑龙网 W W W .Z H U L O N G .C O M 不同熔断器必须用不同的选择公式 一般工矿企业中小型三相异步电动机多用RCl 型或RLl 型熔断器作短路保护装置,而过载保护则采用热继电器或过电流继电器。RCl 型瓷插式熔断器适用于交流50t{z、额定电压380V、额定电流为200A 的电路末端或支路,作为电缆及电器设备的短路保护元件,并在一定 程度上起过载保护作用;RLl 系列低压螺旋式熔断器适用于交流50Hz 或60I-Iz、额定电压500V、额定电流为200A 的电路中,作为过载及短路保护元件。且产品样本上介绍RLl 具有明显的熔断指示等,加上RLl 型较RCl 型熔断器装置方便、安装尺寸小等。因此,某企业在一次设备更新改造时,将原来的RCl 型熔断器都更换成RLl 型熔断器,但在选用上仍采用一般电工书籍上所介绍的经验公式: 式中 I Fe ——熔断器熔体的额定电流,A; I Me ——三相异步电动机的额定电流,A。 在安装工程完毕试运行过程中,发现新安装的RLl 型熔断器熔体频频熔断(设备负荷未变化的情况下)。经调查研究分析,其主要原因是RLl 与RCl 型熔断器的保护特性不一样,而在使用中都采用相同的 经验公式I Fe ≥2.5 I Me 。 例如:一台3kW 的电动机,其额定电流为6.3A,起动电流为45A 左右,选用的Ru 型熔断器熔体电流为15A,一起动熔体就显示熔断了,一连试验三次均是如此。后来换成原来的15ARCl 型熔断器,则

筑龙网 W W W .Z H U L O N G .C O M 电动机能够起动运行,起动的时间约为3s。 熔体的熔断过程与熔体材料、形状以及环境温度等因素都有关系。不同型号的熔断器的保护特性(又称“时间一电流”特性或“安秒”特性)是不一样的。这就存在着电动机的热特性和熔断器保护特性配合的问题。图3—13所示的为RCl 型、RLl 型系列熔断器的保护特性,从中可以看出两者的特性有很大的差异。现以上述电动机起动的例子来看,当选用RLl 型15A 熔体时,从3—13图上可以看出对应45A(起动电流)的熔体熔断时间不到1s;而对应RC1型15A 熔丝则需要10s 左右。这就是为什么同样是15A 的熔体熔断器,有的能够满足起动的要求,有的则不能的原因所在。退一步来说,即使起动电流不到45A,电动机能够起动起来,但多次起动或者稍长时间的过负荷,RLl 型熔断器也容易熔断。所以,不同的熔断器必须用不同的选择公式。运行和维修的实践证明采用下述经验公式是适当的: 选用RCl 型熔断器时,I Fe ≥(2~2.5) I Me ; (3—108) 选用RLI 型熔断器时,I Fe ≥(3~4) I Me ; (3—109)

Mega128熔丝位汇总

附录A ATmega128熔丝位汇总 编程与状态说明: 在AVR的器件手册中,使用已编程(Programmed)和未编程(Unprogrammed)定义熔丝位的状态。“Unprogrammed”表示熔丝状态为“1”(禁止);“Programmed” 表示熔丝状态为“0”(允许) 1:未编程(检查框不打钩) 0:编程 (检查框打钩) AVR的熔丝位可多次编程的,不是OPT熔丝。 熔丝位的配置(编程)可以通过并行方式、ISP串行方式、JTAG串行方式实现。 AVR芯片加密锁定后(LB2/LB1 = 1/0,0/0)不能通过任何方式读取芯片内部Flash 和E2PROM中的数据,但熔丝位的状态仍然可以读取,但不能修改配置。 芯片擦除命令是将Flash和E2PROM中的数据清除,并同时将两位锁定位状态配置成无锁定状态(LB2/LB1 = 1/1)。但芯片擦除命令并不改变其它熔丝位的状态。 下载编程的正确的操作程序是:在芯片无锁定状态下,下载运行代码和数据,配置相关的熔丝位,最后配置芯片的加密锁定位。 芯片被加密锁定后,如果发现熔丝位配置不对,必须使用芯片擦除命令,清除芯片中的数据,解除加密锁定。然后重新下载运行代码和数据,修改配置相关的熔丝位,最后再次配置芯片的加密锁定位。 1. 芯片加密锁定熔丝 加密锁定位 加密锁定方式 LB2 LB1 保护类型(用于芯片加密) 1(默认) 1 1 无任何编程加密锁定保护 2 1 0 禁止串/并行方式对Flash和E2PROM的再编程 禁止串/并行方式对熔丝位的编程 3 0 0 禁止串/并行方式对Flash和E2PROM的再编程和校验 禁止串/并行方式对熔丝位的编程 注:加密锁定熔丝只能使用芯片擦除命令还原为默认的无任何加密锁定保护状态 2.功能熔丝 说 明 熔丝名称 1 0 默认 M103C ATmega128工作模式 ATmega103 兼容模式 0 WDTON 看门狗由软件控制 看门狗始终工作,软件只可以调节溢出时间 1 SPIEN 禁止ISP串行编程 允许ISP串行编程 0 JTAGEN 禁止JTAG口 使能JTAG口 0 EESAVE 芯片擦除时不保留E2PROM数据 芯片擦除时保留E2PROM数据 1 BODEN 禁止低电压检测功能 允许低电压检测功能 1 BODLEVEL 低电压检测门槛电平2.7V 低电压检测门槛电平4.0V 1 OCDEN 禁止JTAG口的在线调试功能 禁止JTAG口的在线调试功能 1

UART寄存器介绍

UART寄存器介绍 UARTn_BR: UART波特率寄存器 UARTn_BR[15:0]: 由定时器的装入寄存器定时装入相应内容。 UARTn_CR.Run=0可以装入直到UARTn_CR.Run=1才写入无效 UARTn_TxBUFR:UART传输寄存器 UARTn_TxBUFR[8]: 传输数据第八位或者奇偶校验位或者唤醒位或者未定义的位有相应操作模式决定 1.如果是001模式则此位写0 2.如果是8+校验111模式则此位由UART自己处理写入软件操作无效 UARTn_TxBUFR[7]: 传输数据第七位或者奇偶校验位 1.如果是7+校验011模式同样此位由UART自己处理写入软件操作无效 UARTn_TxBUFR[6:0]:数据位 UARTn_RxBuffer: UART接收寄存器 RX[9]:桢错误标志1表示此桢有问题 RX[8]:接收数据位8,或者奇偶校验位或者唤醒位

RX[7]:接收数据位7,或者奇偶校验位 RX[6:0]:数据位 UARTn_CR:UART控制寄存器 CR[15-11]保留都是0 CR[10]FifoEnble队列模式0关闭表示TxFIFO认为是包含了16位数据才是满栈 1是开启表示TxFIFO认为当前就是才是满栈直接置TxFULL位 CR[9]SCENBLE 智能卡关闭还是开启不使用则置0 CR[8]RxEnble 接收功能关闭开启由下降沿来触发RXD脚初始化 CR[7]Run=0波特率无用=1则有用 CR[6]LoopBack=0标准的接收和发送模式=1是特殊模式。此位只由UART无效被改变 CR[5]ParityOdd选择奇偶校验=0则为偶校验=1为奇校验CR[43]StopBits 00 0.5停止位01是1个停止位10是1.5个11是2个 CR[2:0] MODE 5种模式 UARTn_IER UART的中断允许寄存器 15-9保留位为0 8 RxHalfFullIE 接收存储器超过8位则置

ATmega16熔丝位详解

ATmega16熔丝位详解 初学者对熔丝经常不解,AVR芯片使用熔丝来设定时钟、启动时间、一些功能的使能、BOOT区设定、当然还有最让初学者头疼的保密位,设不好锁了芯片很麻烦。要想使MCU功耗最小也要了解一些位的设定 在此写下自己对熔丝的理解,参照了一些MEGA16的PDF文档,双龙的文档,以及大家的帖子。力求易懂、全面。 下面以双龙的在系统编程软件SLISP为例具体说明我对熔丝的理解。 a intro b 低位(时钟及启动时间设置): c 时钟总表 d 高位(BOOT区设置): e 常用熔丝设置 打开运行SLISP.exe,首先记住: 1:未编程(配置熔丝检查框未打钩) 0:编程(配置熔丝检查框打钩) 建议在配置熔丝之前先“读取配置”读出原来的设定,再自己编辑。 先了解一下M16的出厂设置。 默认设置为:内部RC振荡8MHz 6 CK + 65 ms CKSEL=0100 SUT=10

低位(时钟及启动时间设置): 1.BOD(Brown-out Detection) 掉电检测电路 BODLEVEL(BOD电平选择): 1: 2.7V电平; 0:4.0V电平 BODEN(BOD功能控制): 1:BOD功能禁止;0:BOD功能允许 使用方法:如果BODEN使能(复选框选中)启动掉电检测,则检测电平由BODLEVEL决定。一旦VCC下降到触发电平(2.7v或4.0v) 以下,MUC复位;当VCC电平大于触发电平后,经过tTOUT 延时周后重新开始工作。 注:1.复选框选中代表0,0电平有效。 2.因为M16L可以工作在2.7v~5.5v,所以触发电平可选2.7v(BODLEVEL=0)或4.0v(BODLEVEL=1);而M16工作在4.5~5.5V,所以只能选BODLEVEL=0,BODLEVEL=1不适用于ATmega16。

14、芯片与寄存器的介绍

理解芯片控制的原理 如果要说做单片机很难吗?其实并不难,用3句话就可以讲明白: 第1句话:芯片管脚不是输入,就是输出。 我们所有的程序,用单片机控制的产品,以及外设,无非就是控制芯片的各个管脚输入或者输出两个状态;例如,芯片发送数据就是输出;芯片驱动一个产品,也是输出;芯片接收数据就是输入;单片机对一个存储芯片写输入,可以理解为单片机与存储芯片连接的管脚输出状态,输出数据到存储芯片的管脚上,而存储芯片此时它的芯片对应管脚被配置成输入,将数据写入到芯片内部。 所以说,芯片管脚不是输入,就是输出,当然,如果你不使用这个管脚,也可以将它配置成某一种中间状态,免得干扰了外界,影响了PCB板上的其他元器件状态。 第2句话:芯片管脚不是高电平,就是低电平。 无论管脚是输入还是输出,它的目的是传输数据,传输信息,所以要么是高电平,要么低电平,通过010101这样的数据来传输它想传输的内容;这个就是所谓的二进制。 第3句话:传输协议。 什么是传输协议,比如与串口芯片通信,那么就要是串口协议的;如果是I2C 协议的EERPOM,那么就是I2C协议;还有其他一些比如485协议,CAN协议,USB协议,SD卡的SDIO协议…….等等数不胜数。 而这些协议,无非就是按照预先规定的表达方式进行通信,比如举个例子,我约定先连续发4个1,,然后再发4个0,就表示芯片A要开始发数据给芯片B 了,即芯片A通过它的芯片管脚发‘11110000’给到芯片B的时候,那么芯片B 就知道芯片A要给它真正的数据,它就要做好准备工作,准备好之后,芯片B 就会给芯片A一个回应,当芯片A收到芯片B的回应,就正式开始发数据。 这样通信双方之间的协商规定,就构成了协议,经过这么多年,就形成了我们所常见到的串口协议,CAN协议,USB协议(像USB协议又分为USB1.0协议,USB2.0协议,USB3.0协议,版本越高,速度就越快,协议进行优化后,通信效率也变高了)。 不知道大家理解了没有呢?所以总结下来,一个芯片最简单的外设莫过于 I/O口的高低电平控制,我们这里将详细讲解一下如何用一个I/O口去控制一个LED灯的亮灭。

保险丝选型规范

目次

前言 本规范批准部门:本规范所替代的历次修订情况和修订专家为:

保险丝选型规范 1范围和简介 1.1范围 本规范规定了保险丝的选型方法和要求。 本规范适用于小型熔断保险丝的选择以及应用设计。 1.2简介 本规范介绍了保险丝的技术参数,根据参数进行选型的方法,以及根据我司保险丝应用的现状,在实际选择中需要注意的问题,用以支持正确选型。 1.3关键词 保险丝过流保护选型 2规范性引用文件 无 3术语和定义 3.1.额定电流(In) 标注在保险丝上的额定工作电流。该数值由制造商确定,为该保险丝所能载的电流。额定电流通常是标准推荐的档位,例如1,,,,2等(单位:A) 3.2.额定电压(Un) 标注在保险丝上的额定电压,表示该保险丝可以被使用的最大工作电压。通常标准额定电压为32、63、125、250、600V。保险丝是对电流的变化而不是对电压的变化敏感。保险丝在从零到其最大额定值间的任何电压下都保持其原状,所以保险丝可以在小于其额定电压的任何电压下使用。3.3.电压降(Ud) 额定电流下保险丝两端的电压降 3.4.冷电阻(R) 保险丝不工作时本身的电阻值。大部分保险丝是用正温度系数为材料制造的,因此,会有冷电阻和热电阻(额定电流下的电压降),实际的工作电阻位于其间。用不大于保险丝公称额定电流10%的测量电流可测得冷电阻。热电阻是根据保险丝上流过的值等于公称额定电流的电流时产生的。3.5.环境温度 指直接环绕保险丝周围的空气温度,不应与室温相混淆。在许多实际场合,保险丝的温度相当高,例如保险丝安装在封闭空间,或者安装在其发热元件附近,如电阻、变压器、电感线圈等附近。 3.6.分断能力(Breaking Capacitor)

atmel Studio 6.1环境下的bootloader

网上有关AVR的bootloader配置大部分都是关于ICCAVR的,我用Atmel Studio 6.1弄了好久才出来,这里给大家讲下(我用的AT90CAN32) 首先程序和马老师的几乎一样,只是稍微有改进,因为Atmel Studio 6.1本身有boot.h文件,包含该文件之后可以省去一些汇编的语言。程序会在最后附上。下面主要说下配置问题。 1、熔丝位配置:如图1 图1 JTAGEN 或SPIEN一定要打勾使能,要不然如果bootloader烧写不成功以后就不能用JTAG或SPI了,那么单片机就锁死了,我就锁死了一个单片机,哭晕。。。 BOOTSZ;选择1k或2k或3k或4k BOOTRST:打勾,这样的话程序会从bootloader定义的地址开始烧写,比如我的程序会从0X3800开始写入 2、如图2点击project——>文件名porperties——>toolchain出现如图3所示,点击memory settings,在FLASH segment 中输入.text=0x3800(注意0x3800是和熔丝位设置的bootloader 区的大小一样的) 图2

图3 点击Misellaneous,输入-WI,--section-start=.text=0x7000(其中0x7000是0x3800的二倍,如果你设置的不是0x3800,那么也只需要按照你设置的乘以2就行) 图4 到这里就配置完成了。 如果配置完成了,那么正常情况下就可以把程序烧写进入单片机了,这时候用串口就可以从单片机向上位机发送指令了,如果三秒钟之内给单片机回复d的话,单片机回复C之后,就可以向单片机发送命令了,这里用的是超级终端,WIN7本身没有超级终端,需要下载,我下载的是如图5所示的超级终端。打开超级终端时候注意配置波特率和结束位等,还有就是发送文件时注意选择XMODEM协议。剩下的就可以按照ICCAVR的方法进行发送和接收了,这里主要说的是配置方法和ICCAVR的不同 图5 #include #include

相关主题
文本预览
相关文档 最新文档