ATmega328P AVR微控制器引脚配置_功能框图_应用特点
ATmega328P是一款高性能AVR技术微控制器,具有大量引脚和功能。它采用8位CMOS技术和RSIC CPU设计,通过自动睡眠和内部温度传感器提高了其性能和电源效率。
ATmega328P芯片具有内部保护和多种编程方法,可帮助工程师针对不同情况确定该控制器的优先级。该IC允许其它模块和微控制器本身采用多种现代通信方法,这就是微控制器ATmega328P的使用量每天都在快速增加的原因。
引脚配置
ATmega328P芯片具有28引脚,其每个引脚的用法和引脚图配置详细信息如下图所示:
I/O引脚
该微控制器具有三个数字端口(B、C、D),分别是PORTB、PORTC和PORTD。所有这些引脚都可以用作数字输入/输出。最重要的是,每个端口都可以用于其它目的。要将它们用作输出/输入或任何其他功能,应首先对其进行定义,否则所有I/O引脚将不会有任何默认功能。控制器的数字I/O引脚有:
- PB0 – GPIO14
- PB1 – GPIO15
- PB2 – GPIO16
- PB3 – GPIO17
- PB4 – GPIO18
- PB5 – GPIO19
- PB6 – GPIO9
- PB7 – GPIO10
- PC0 – GPIO23
- PC1 – GPIO24
- PC2 – GPIO25
- PC3 – GPIO26
- PC4 – GPIO27
- PC5 – GPIO28
- PC6 – GPIO1
- PD0 – GPIO2
- PD1 – GPIO3
- PD2 – GPIO4
- PD3 – GPIO5
- PD4 – GPIO6
- PD5 – GPIO11
- PD6 – GPIO12
- PD7 – GPIO13
中断引脚
大多数电气功能都需要中断系统来运行,如交流调光器等。ATmega328P在控制器内提供2个中断引脚的支持,可用于随时引起CPU的注意。ATmega328P的中断引脚如下:
- IN0 – GPIO4
- IN1 – GPIO5
UART通信模块
虽然该设备和模块内有多种通信系统,但最常见的是USART。它是大多数开发人员和系统实现和理解的最简单、最容易的方法之一。在此方法中,使用两根线发送和接收数据。ATmega328P的USART引脚为:
- RX – GPIO2
- TX – GPIO3
数据可以按照控制器内指定的发送速率发送,但也可以使用外部时钟引脚来保持数据同步:
- XCK – GPIO6
USART/UART通信系统可用于对微控制器进行编程。
SPI通信
它是多个外设情况下最好的串行通信系统之一。SPI协议允许多个设备使用同一通道进行通信。它由四根线组成,两根用于数据发送,一根用于时钟,但第四根线用于选择称为选择从设备的外设。当选择从机的外设数量较多时,引脚会增加。微控制器的SPI引脚有:
- MOSI – GPIO17
- MISO – GPIO18
- SS – GPIO16
- SCK – GPIO19
I2C通信模块
大多数外设都带有I2C通信方式,这是特定时间的一种方式。I2C协议仅使用一根数据线和一根时钟线。数据线将传输和接收数据,时钟线将发送时钟脉冲以保持数据同步。微控制器上的I2C引脚是:
- SDA – GPIO27
- SCL – GPIO28
定时器模块
ATtiny328P有两个内部定时器,可以使用这些定时器来制作计数器并生成脉冲。这两个定时器都依赖于振荡器。这两个定时器都可以使用内部和外部时钟来操作,但它们也有一个内部引脚,可以根据外部脉冲进行计数。微控制器ATmega328P中的所有这些引脚如下:
- T0 – GPIO6
- T1 – GPIO11
- TOSC1 – GPIO9
- TOSC2 – GPIO10
- ICP1 – GPIO
其中ICP1是输入捕捉引脚,可用于以特定时间间隔捕捉外部脉冲。当该引脚上出现输入脉冲时,它将生成一个时间戳,可以判断何时接收到外部信号。
系统时钟
内部时钟和外部时钟脉冲可以通过预分频器进行分频,并且可以在外部引脚接收它们的值。分频时钟脉冲的外部引脚为:
- CLKO – GPIO14
比较器模块
微控制器具有用于模拟信号的内部比较器模块。该模块采用反相和非反相形式的输入,可进一步用于任何内部目的,也可用于生成输出信号。单片机的比较器引脚如下:
- AN0(正)-GPIO12
- AN1(负)-GPIO13
捕捉/比较/PWM通道
ATmega328P有六个捕获/比较/PWM引脚用于生成所需的基于时间脉冲的信号,它使用预分频器来划分时间脉冲,所有这些引脚都是:
- OC0B – GPIO11
- OC0A – GPIO12
- OC1A – GPIO15
- OC1B – GPIO16
- OC2A – GPIO17
- OC2B – GPIO5
ADC通道
ATmega328P有6个ADC通道,可用于将模拟信号转换为数字信号。模拟转换器需要首先通过其电源引脚 (AVCC) 激活。ADC通道使用电源电压作为参考来区分模拟信号的不同电平。控制器的模拟引脚有:
- ADC0 – GPIO23
- ADC1 – GPIO24
- ADC2 – GPIO25
- ADC3 – GPIO26
- ADC4 – GPIO27
- ADC5 – GPIO28
- AVCC – 引脚 20
AREF引脚
有时模拟信号电压有波动,但控制器根据控制器的电源输入不断测量。为了通过任何其它电源输入或通过模拟信号生成设备的电源来测量它,将使用模拟电压基准AREF。该引脚将检测模拟信号的最大值,然后能够给出正确的输出。ATmega328P中的AREF引脚为:
- AREF – GPIO21
RESET: 在ATmega328中,有一些复位可以在某些情况下重新启动微控制器。在所有这些复位中,都有一个外部复位可以使用外部信号来复位设备:
- RESET – GPIO1
电源:每个控制器都需要电源才能运行,并且总是有一个电源输入引脚。ATmega328P的电源引脚数量为三个。一个引脚用于电压,其余两个用于公共接地。这两个接地引脚均在内部连接,使用哪一个并不重要。微控制器的电源引脚有:
- VCC – 引脚7
- GND – 引脚8、引脚22
振荡器:控制器配有8MHz可变振荡器。不过,它也可以使用高达40MHz的外部振荡器。要使用外部振荡器,需要振荡引脚来输入和输出信号。这些引脚如下:
- XTAL1 – GPIO9
- XTAL2 – GPIO10
功能框图
ATmega328P微控制器的框图如下:
与Arduino引脚映射
ATmega328P内置于Arduino中,可帮助用户在Arduino中编写程序,而不是汇编或其他控制器语言。Arduino因其庞大的在线数据和高级语言而受到欢迎,这有助于开发人员在Arduino中编写控制器程序并将其转换为微控制器代码。对于Arduino,控制器的引脚配置如下:
对于Arduino,引脚变得特定于其功能。在使用ATmega328P的编译器时,几乎所有引脚都可以用作GPIO。然而,在Arduino的使用过程中,每个引脚只会执行特定的功能,但控制器仍然能够像ATmega328P一样执行所有操作。
应用领域
- 大多数嵌入式系统(例如基于IoT的嵌入式系统)都使用ATmega328来执行多种操作,因为它具有大量示例和互联网上的帮助材料。
- 它用于Arduino,这使其成为最受欢迎的控制器。
替代型号
ATmega328微控制器的其它替代选项包括ATtiny45、ATtiny88、ATtiny85。
设计二维图
总结
ATmega328P是Microchip(前身为Atmel)公司生产的一款8位单片机(Microcontroller)芯片。它是AVR系列微控制器的一员,广泛应用于各种嵌入式系统和电子项目。
ATmega328P采用Harvard架构,具有8位RISC(精简指令集计算机)处理器,工作频率通常为8MHz或16MHz,可以通过时钟预分频设置来调整。它内置32KB的Flash程序存储器,用于存储用户程序代码。同时还包括2KB的SRAM和1KB的EEPROM用于数据存储。
ATmega328P支持串行通信(USART、SPI和I2C),这使得它能够与其他设备进行数据交换和通信。并且它具有多种低功耗模式,可以最大程度地降低功耗,适用于电池供电和节能应用。
ATmega328P广泛用于Arduino开发板,因此有大量的开发和社区支持。此外,也可以使用Atmel Studio等集成开发环境进行编程和调试。所以,它是一款功能丰富且易于使用的微控制器,因其灵活性和可靠性在各种嵌入式系统、DIY项目、自动化控制等领域得到广泛应用。