Arduino学习心得(1)—Atmega8/168/328P最小系统板

很多时候我们在做项目的时候会用到Arduino UNO、Arduino Nano和Arduino pro mini,它们都是基于Atmega328P的开发板,当我们想做一个简单的LED灯控制项目的时候,Atmega328P 32KB的程序存储空间对我们来说可能过剩,而且三个当中最便宜的Arduino Pro Mini也都要8块钱,说贵也不贵,说便宜也不算太便宜,但对控制LED来说,这个是肯定过剩的,那么有什么可以代替的吗?

有,这就是我们今天要讲的Atmega8(以后可能会讲Attiny)。

一,介绍

  ATmega8 是ATMEL公司在2002年第一季度推出的一款新型AVR高档单片机,有8K字节的系统内可编程Flash,512字节的EEPROM,1K字节的片内SRAM,3个PWM通道,2个外部中断。个人感觉除了ROM和RAM大小和PWM通道的多少以外,和Atmega328P使用起来区别不大,而且价格便宜(目前淘宝价格是3.6元一个,328P是7.3元一个,话说我不知道为什么Atmega168比328还贵。)


二,引脚定义

  

Atmega8与Arduino对应的引脚图(图片来自网络)


三,接线

Atmega8在面包板上接线图

   接线如图,AVCC(Pin20)与VCC(Pin7)接VCC(5V),GND接GND,RST(Pin1)通过电阻上拉,晶振接Pin9和Pin10,Pin9和Pin10接22pf陶瓷电容,电容另一端接地。


四(一),烧录引导程序后上传程序

  这里有两种方法,第一种使用USBAsp编程器,第二种使用Arduino作为编程器

  方法一,首先购买一个如图所示的USBAsp,并搭配转接线,并安装驱动(驱动可由卖家提供)

购买的USBAsp以及转接线


给转接线头一个特写(一)


给转接头一个特写(二)

+5V连接VCC
GND连接GND
MOSI,MISO,SCK分辨连接17,18,19引脚
reset连接reset                                                                                                                            (此外,这个转接口正好可以插在Arduino UNO和Arduino Nano的那个6Pin上。)

然后打开Arduino 1.0(注意是1.0版本),在Tools-Board中选择ArduinoNG Atmega8.如下图所示:                                                                                                                 

选择ArduinoNG/ATmega8

并在Programmer中选择USBAsp(别忘了安装驱动)                                                                 

选择USBAsp

然后再点击Tools下面的Burn BootLoader,然后你会发现USBAsp的那个蓝灯会变成红色,然后再次变蓝,ArduinoIDE中会提示烧写完成。如果说没有成功检查驱动是否安装,接线是否出错。完成如下图所示:                                                                                                                 

完成烧写提示。


  烧录引导程序方法二:                                                                                                                    首先把你的Arduino UNO插入电脑,然后再Arduino 1.0中找到Arduino ISP示例程序,直接上传到Arduino UNO中(Arduino Nano同理)。如图所示:                                                       

选择ArduinoISP

然后按照下图方法接线:                                                                                                             

按照上图方法接线(图片来自arduino官网)

然后还是选择在Board中选择arduino NG/ Atmega8,但是在Programmer中选择Arduino as ISP,如图所示:                                                                                                       

选择Arduino as ISP

然后点击Burn BootLoader,一会儿提示烧录完成即可。

在这里为了方便起见,我做了一个万能的烧录板,

总体是长这个样子


背部走线


对引脚做了些标识


可以直接插在Arduino UNO上面用


也可以插在主板上再插上Arduino Nano


还可以直接插USBAsp线来用

好了回归正题,烧录完Bootloader之后,就可以上传程序了

第一种方法是用Arduino UNO,记得拔掉上面的Atmega328P

接线方法如图

如图方法接线(图片来自arduino官网)

第二种方法是直接使用FT232RL板子(这个板子可以直接插进Arduino pro mini中上传程序吗,用起来十分方便,强烈推荐使用这个)                                                                                

FT232RL板子


引脚定义

可以通过这个来直接连接Atmega8,具体接线方法如下:                                                           DTR接一个104电容接Pin1                                                                                                         RX接TX(Pin2)                                                                                                                         TX接RX(Pin3)                                                                                                                          VCC接VCC                                                                                                                                  GND接GND                                                                                                                               然后就可以选择ArduinoIDE中的编程器选择AVR ISP,直接点击上传即可。                               

选择这个


以上方法就是ATmega8最小系统的使用方法,说方便也不算方便,如果能做个像我那样的烧录架的话确实很方便,在一些占用ROM不是很大的项目来说会节约不少的成本,毕竟这东西还不到四块钱,而且还不浪费,在某些情况下我觉得是很实用的,希望对你们有所帮助。



这是我第一次写专栏,可能写的不够好,或是怎么样的,有什么问题或者建议希望在评论区提出,这一套我也会一直写下去,下一期可能是简单了解一下Arduino Timer1的CTC Mode。

我是NostalgistL00,下期见。

I won't miss my flight again. I'm not where I belong.

本文为我原创

本文禁止转载或摘编

-- --
  • 投诉或建议
评论