ATmega328

ATmega328Atmel的megaAVR产品线之一款单芯片产品。

规格

这是一颗8比特AVR精简指令型单片机,拥有32KB ISP具备写入同时读取能力的闪存内存。1KB 的电气可抹除唯读内存。2KB 随机访问内存。23个通用输出输入线。32个通用工作寄存器。三个具备比对能力的计时计数器。内部与外部中断。可程序化的通用异步收发串列接口。一组字节导向的两线式串列接口。一组SPI串口。6信道10比特模拟数字转换器(TQFP及QFN/MLF包装中只有8信道)。一组具有内部震荡器的可程序化看门狗计时器。五组可选择的功率节约模式。这个单芯片的工作电压运作在1.8V-5.5V之间。这个单芯片运作性能达到每MHz 有1 MIPS[1]

关键参数

ParameterValue
CPU type8-bit AVR
Performance20 MIPS at 20 MHz[2]
Flash memory32 kB
SRAM2 kB
EEPROM1 kB
Pin count28-pin PDIP, MLF, 32-pin TQFP, MLF[2]
Maximum operating frequency20 MHz
Number of touch channels16
Hardware QTouch AcquisitionNo
Maximum I/O pins26
External interrupts24
USB InterfaceNo
USB SpeedNo

系列方案

一个常见的替代方案是ATmega328P,是低功率消耗的版本。

应用

截至2013年,ATmega328常见于许多项目之中,这些项目多半是简单的、低功耗的以及低成本的。最多的应用是在流行的Arduino控制板上,有Arduino Uno、Arduino Nano和Arduino LilyPad等。

程序刻录

ATmega 48A/PA/88A/PA/168A/PA/328/P 28-PDIP 接脚图 (datasheet)

可靠度鉴定显示数据保持失败率(data retention failure rate)远低于1 PPM,条件是在温度85 °C时可保持20年,在温度25°C时可保持100年。

并列式程序刻录模式[2]
Programming signalPin NameI/OFunction
RDY/BSYPD1OHigh means the MCU is ready for a new command, otherwise busy.
OEPD2IOutput Enable (Active low)
WRPD3IWrite Pulse (Active low)
BS1PD4IByte Select 1 (“0” = Low byte, “1” = High byte)
XA0PD5IXTAL Action bit 0
XA1PD6IXTAL Action bit 1
PAGELPD7IProgram memory and EEPROM Data Page Load
BS2PC2IByte Select 2 (“0” = Low byte, “1” = 2nd High byte)
DATAPC[1:0]:PB[5:0]I/OBi-directional data bus (Output when OE is low)

并列式程序刻录模式。要进入并列式程序刻录模式有一连串的动作,首先清除单芯片程序内容作法如下,PAGEL (PD7), XA1 (PD6), XA0 (PD5), BS1 (PD4) 必须设为0(接地)。RESET脚接地,VCC脚接地。接着VCC接4.5V-5.5V。等待60us。接着RESET接到11.5V-12.5V。等待310us。设置XA1:XA0:BS1:DATA = 100 1000 0000,xtal1脚给一个脉波150us,WR低准位脉波。以上会让单芯片清除原本程序内容。等到RDY/BSY(PD1)脚出现高准位就完成。 如要写入则设置XA1:XA0:BS1:DATA = 100 0001 0000, XTAL1脚送脉波, WR脚送低准位脉波。 详情参考原厂手册[2]

串列式程序刻录模式[2]
SymbolPinsI/ODescription
MOSIPB3ISerial data in
MISOPB4OSerial Data out
SCKPB5ISerial Clock

串列数据在单芯片的进出,当单芯片时脉在正缘(rising edge)时是送入数据到单芯片,当单芯片时脉是负缘(falling edge)时,数据则是从单芯片送出。VCC送电之前先把RESET脚与SCK脚设为低准位。等待20ms。接着从串列数据进入脚(MOSI脚)送入0xAC, 0x53, 0x00, 0x00刻录程序指令,单芯片接受之后会回传第二个指令0x53。

参见

  • ATmega88
  • ATmega168

注释

  1. . [2016-03-29]. (原始内容存档于2016-03-28).
  2. (PDF). [2016-05-04]. (原始内容 (PDF)存档于2016-04-22).

外部链接

  • . Atmel. [2016-06-02]. (原始内容存档于2016-06-04).
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.