PAGE1
PAGE1
ATtiny85处理器概述
处理器简介
ATtiny85是一款由MicrochipTechnology(原AtmelCorporation)生产的8位微控制器。它属于AVR系列,基于RISC架构,拥有低功耗、高性能的特点。ATtiny85具有8kB的闪存、512B的SRAM和512B的EEPROM,非常适用于小型嵌入式项目。ArduinoGemma正是基于这颗微控制器设计的,使得开发者可以轻松上手并进行各种创意项目。
主要特性
8位AVR微控制器:采用RISC架构,提供高效的指令集。
低功耗:在多个低功耗模式下运行,适用于电池供电的设备。
闪存容量:8kB的程序存储空间,足够运行大多数小型项目。
SRAM和EEPROM:512B的SRAM用于数据存储,512B的EEPROM用于非易失性数据存储。
工作电压:支持1.8V到5.5V的工作电压范围。
I/O端口:6个可编程I/O端口,其中5个可以配置为ADC输入。
定时器:内置两个8位定时器/计数器。
通信接口:支持SPI、I2C和UART通信。
中断:支持多个中断源,包括外部中断、定时器中断和ADC中断等。
ATtiny85的内部架构
内核架构
ATtiny85采用的是AVR内核,这是一种高性能的8位RISC(精简指令集计算机)架构。RISC架构的特点是拥有简单而高效的指令集,使得处理器可以在每个时钟周期内执行多条指令。这种架构的优势在于提高了处理速度和代码执行效率,非常适合嵌入式应用。
存储器组织
ATtiny85的存储器分为三个主要部分:闪存(Flash)、SRAM和EEPROM。
闪存(Flash):8kB的程序存储空间,用于存储编译后的代码。闪存可以多次擦写,但有一定的擦写次数限制。
SRAM:512B的数据存储空间,用于存储运行时的数据。SRAM在断电后会丢失数据。
EEPROM:512B的非易失性数据存储空间,用于存储持久化的数据。EEPROM在断电后仍然可以保留数据。
寄存器
ATtiny85内部有许多寄存器,用于控制各种功能。主要的寄存器包括:
通用寄存器:32个8位通用寄存器,用于数据处理和临时存储。
状态寄存器:用于存储处理器的状态信息,如进位标志、零标志等。
控制寄存器:用于配置和控制各种外设,如定时器、ADC、UART等。
低功耗模式
ATtiny85支持多种低功耗模式,这些模式可以显著降低功耗,延长电池寿命。主要的低功耗模式包括:
Idle模式:CPU停止运行,但外设继续工作。适合需要定时器或ADC等外设持续工作的应用。
Power-down模式:除RTC(实时时钟)外,所有外设停止工作。适合需要长时间休眠的应用。
Power-save模式:CPU停止运行,定时器继续工作。适合需要定时唤醒的应用。
Standby模式:CPU和大多数外设停止工作,只有外部中断和RTC可以唤醒。适合需要极低功耗的应用。
低功耗模式示例
#includeavr/sleep.h
#includeavr/power.h
voidsetup(){
//设置引脚模式
pinMode(0,INPUT);
pinMode(1,OUTPUT);
//配置低功耗模式
set_sleep_mode(SLEEP_MODE_PWR_DOWN);//选择Power-down模式
sleep_enable();//启用睡眠模式
//配置外部中断
GIMSK|=(1INT0);//使能外部中断0
MCUCR|=(1ISC00)|(1ISC01);//设置外部中断0为上升沿触发
//使能全局中断
sei();
}
voidloop(){
//进入低功耗模式
sleep_mode();
}
//外部中断处理函数
ISR(INT0_vect){
digitalWrite(1,HIGH);//点亮LED
delay(1000);//延迟1秒
digitalWrite(1,LOW);//关闭LED
sleep_mode();//重新进入低功耗模式
}
代码说明
set_sleep_mode(SLEEP_MODE_PWR_DOWN);:选择Power-down模式。
sleep_enable();:启用睡眠模式。
GIMSK|=(1INT0);:使能外部中断0。
MCUCR|=(1ISC00)|(1ISC01);:设置外部中断0为上升沿触发。
sei();:使能全局中断。
sleep_mode();:进入低功耗模式