Arduino Pro Mini是基于ATmega328的微控制板,支持5V/3.3V电压。但是我们比较容易买到的是5V供电的版本,有的时候需要用到3.3V版本(比如我们的软控DAC)。怎样才能让这款板板支持3.3V电压呢。

思路

把5V的Arduino改造成3.3V版本,实际上就是提出了一个问题:5V的Arduino和3.3V版本有什么不同?

实际上AtMega328P可以支持很宽的电压范围。但是在不同工作电压下,可以跑到的最大主频是不同的。

在5V下可以跑到16MHz,而在3.3V下只能跑到8MHz。所以我们首先需要解决时钟问题。

5V的版本配备的外置晶振是16MHz的,为了得到8MHz的主时钟,我们可以修改熔丝位,使用328内部的8MHz RC振荡器。

另外,328内部还有BOD检测,当电压低于设置值的时候会自动停机。使用3.3V电源应该把BOD阈值修改为2.7V。

最后,还要刷入支持8MHz主频的Arduino Bootloader。

这样改造出来的Arduino,支持3.3V电源电压,RAW脚稳压之后仍然得到5V电压,Arduino本身执行不受影响。

但是如果把RAW的稳压输出用于外设供电,就要仍然使用5V的外设。因此最好是外置一个3.3V的稳压电源供Arduino和外设使用。

准备工作

1、  如果你从来没有使用过Arduino,你首先需要下载IDE。如何安装在此不赘述。

2、  准备两块板板,一块是我们要刷成3.3V的Arduino Pro Mini目标板。另一块是用来烧写Bootloader的AVR ISP编程器,本文使用一块Arduino Pro Mini来制作AVR ISP编程器。(没有特殊原因,只因为博主刚好有两块Arduino Pro Mini)。

  

3、  一块USB转R232转接板,作为Arduino ISP编程器。最好是可选择3.3V和5V供电电压的,方便最后测试。

注意AVR ISP和Arduino ISP的区别。前面说的AVR ISP是用来烧Bootloader的(Bootloader实际上是一个AVR程序),而这里的Arduino ISP是用来下载Arduino程序的。

   

制作流程

一、制作AVR ISP

首先我们要使用Arduino Pro Mini来制作一个AVR ISP,再用这个AVR ISP来刷目标Arduino的Bootloader。

1、进行这样的连接:Arduino Pro Mini --- 连接RS-232 --- USB转RS-232板 --- 连接USB --- 电脑

如图所示:

  

注意:

  1) 串口的RXD和TXD是交换连接的,即Arduino的RXD连接ISP的TXD;Arduino的TXD连接ISP的RXD。

  2) Arduino ISP上的电源选择5V。

2、连接完毕后,确认串口COM号选择无误。

3、在IDE的File的Examples中选择“ArduinoISP”。这是随Arduino IDE提供的一个Demo程序,可以把Arduino制作成一个AVR ISP编程器。

如图所示:

  

OK。现在,Upload。

二、修改目标板的熔丝位并烧写Bootloader

之前的步骤如果你已经完成,说明你已成功的做了一个AVR ISP,接下来修改目标板的熔丝位和烧Bootloader。

Arduino IDE可以烧写Bootloader,同时设置熔丝位,这样就大大方便了我们的操作。

1、在IDE的tools的programmer中选择“Arduino as ISP”。

如图所示:

  

2、用管理员权限打开“C:\Program Files\Arduino\hardware\arduino\avr\boards.txt”,注意安装路径不同,路径可能有差别。Anyway,我们要修改“boards.txt”,这个文件指定了各种Arduino板的软件配置、熔丝位和Bootloader。

对照Datasheet,我们发现扩展熔丝位已经把BOD设为2.7V了,这样只需要修改时钟即可。

找到Arduino Pro or Pro Mini (3.3V, 8MHz),(不是Pro Mini的话就找对应的板子)对照下图修改:

  

  扩展一下:根据Datasheet,只需要修改low_fuses的低4位为0010,即CKSEL3~CKSEL0这4位:

  

2、进行这样的连接:Arduino Pro Mini --- 连接SPI --- AVR ISP --- 连接RS-233 --- USB转RS-232板 --- 连接USB --- 电脑

如图所示:

  

注意:

  1)Arduino Pro Mini目标板和AVR ISP板之间的连接按照ArduinoISP Demo的说明:

  

即:

Arduino Pro Mini目标板      AVR ISP板

Rst                                      10

11                                       11

12                                       12

13                                       13

VCC                                    VCC

GND                                    GND  

  2) Arduino ISP的电源仍然选择5V

3、连接完毕后,从Arduino IDE的tool中选择boards -> “modified Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega328”。(modified是博主自己加的,没什么用,为了好找罢了)

4、上述一切工作完毕,这时,目标板已经是板上的猪肉,任你宰割了。Arduino ISP实际上只起它本来的作用——USB转RS-232和供电。

真正刷写Bootloader的是AVR ISP,被改变的是Arduino Pro Mini目标板。然后点击IDE的tools -> “Burn Bootloader”。

到这步为止,目标板的熔丝位修改成功,Bootloader也已经刷新,即目标板已经成功变为支持3.3V的板板了。

按下目标板的RST按钮,则开始执行8MHz的Bootloader了。

三、测试一把

1、进行这样的连接:Arduino Pro Mini目标板 --- 连接RS-232 --- USB转RS-232板 --- 连接USB --- 电脑

这里要记得把Arduino ISP的供电电压选为3.3V。

2、打开IDE的file的examples,选择blink。然后Upload。

如果目标板按照预期的进行间隔1s,持续1s的闪烁。那么,恭喜你,你已成功制作了一枚支持3.3V的Arduino Pro Mini板板~~

手把手教你把5V的Arduino改造成3.3V版本的更多相关文章

  1. 手把手教从零开始在GitHub上使用Hexo搭建博客教程(四)-使用Travis自动部署Hexo(2)

    前言 前面一篇文章介绍了Travis自动部署Hexo的常规使用教程,也是个人比较推荐的方法. 前文最后也提到了在Windows系统中可能会有一些小问题,为了在Windows系统中也可以实现使用Trav ...

  2. 手把手教从零开始在GitHub上使用Hexo搭建博客教程(三)-使用Travis自动部署Hexo(1)

    前言 前面两篇文章介绍了在github上使用hexo搭建博客的基本环境和hexo相关参数设置等. 基于目前,博客基本上是可以完美运行了. 但是,有一点是不太好,就是源码同步问题,如果在不同的电脑上写文 ...

  3. UWP Jenkins + NuGet + MSBuild 手把手教你做自动UWP Build 和 App store包

    背景 项目上需要做UWP的自动安装包,在以前的公司接触的是TFS来做自动build. 公司要求用Jenkins来做,别笑话我,之前还真不晓得这个东西. 会的同学请看一下指出错误,不会的同学请先自行脑补 ...

  4. 推荐!手把手教你使用Git

    推荐!手把手教你使用Git 原文出处: 涂根华的博客   http://blog.jobbole.com/78960/ 一:Git是什么? Git是目前世界上最先进的分布式版本控制系统. 二:SVN与 ...

  5. 【转】手把手教你把Vim改装成一个IDE编程环境(图文)

    手把手教你把Vim改装成一个IDE编程环境(图文) By: 吴垠 Date: 2007-09-07 Version: 0.5 Email: lazy.fox.wu#gmail.com Homepage ...

  6. 手把手教你用动软.NET代码生成器实例教程

    动软实战攻略 手把手教你用动软 文档编号:20110421 版权所有 © 2004-2011 动软 在线帮助:http://help.maticsoft.com 目录   一.        产品介绍 ...

  7. 手把手教你如何搭建iOS项目基本框架

    手把手教你如何搭建iOS项目基本框架 今天我们来谈谈如何搭建框架,框架需要做一些什么. 第一步:找到我们的目标我们的目标是让其他开发人员拿到手后即可写页面,不再需要考虑其他的问题. 第二步:我们需要做 ...

  8. 手把手教你玩转SOCKET模型之重叠I/O篇(下)

    四.     实现重叠模型的步骤 作 了这么多的准备工作,费了这么多的笔墨,我们终于可以开始着手编码了.其实慢慢的你就会明白,要想透析重叠结构的内部原理也许是要费点功夫,但是只是学会 如何来使用它,却 ...

  9. iOS 非ARC基本内存管理系列 -手把手教你ARC——iOS/Mac开发ARC入门和使用(转)

    手把手教你ARC——iOS/Mac开发ARC入门和使用 Revolution of Objective-c 本文部分实例取自iOS 5 Toturail一书中关于ARC的教程和公开内容,仅用于技术交流 ...

随机推荐

  1. sql 存储过程笔记3

    16:22 2014/1/26一.定义变量--简单赋值declare @a int set @a = 5 print @a --使用select语句赋值declare @user1 nvarchar( ...

  2. JEESZ-SSO解决方案

    提醒:文档只是作为一个基础的参考,愿意了解的朋友可以随时咨询. 第一节:单点登录简介 第一步:了解单点登录 SSO主要特点是: SSO应用之间使用Web协议(如HTTPS),并且只有一个登录入口. S ...

  3. 蓝桥杯入门——1.Fibonacci数列

    问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1. 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少. 输入格式 输入包含一个整数n ...

  4. 踏步-java工具类

    /** * @Title:removeDuplicate * @author:踏步 * @date:2019年5月23日 下午2:31:40 * @Description:TODO 去除list的重复 ...

  5. mybatis的简单搭建和使用(一)

    前言 mybatis是一个持久层的框架,那么问题来了,什么是持久层的框架呢,持久层就是把数据持久化的保存到数据库中,这种过程一般叫数据持久化的过程,现为了程序员能够很方便的操作数据库,于是就出现持久层 ...

  6. windows下多个python版本共存 及安装Django

    了解python的人都知道python有2.x版本和3.x版本,而python3.x版本不向下兼容,但是根据具体的需要,有时候要2.x和3.x共存,python共存本身没有问题,只是需要设置一些环境变 ...

  7. 洛谷-P3808-AC自动机(模板)

    链接: https://www.luogu.org/problem/P3808 题意: 给定n个模式串和1个文本串,求有多少个模式串在文本串里出现过. 思路: 模板, 代码: #include < ...

  8. 【Android-自定义控件】SwipeRefreshDemo 下拉刷新,上拉加载

    参考:https://github.com/PingerOne/SwipeRefreshDemo 谷歌官方的SwipeRefreshLayout控件,只有下拉刷新功能. 自定义的SwipeRefres ...

  9. bat文件设置环境变量脚本

    :: 获取管理员权限 @echo off % mshta vbscript:CreateObject()(window.close)&&exit cd /d "%~dp0&q ...

  10. Vue 事件监听实现导航栏吸顶效果(页面滚动后定位)

    Vue 事件监听实现导航栏吸顶效果(页面滚动后定位) Howie126313 关注 2017.11.19 15:05* 字数 100 阅读 3154评论 0喜欢 0 所说的吸顶效果就是在页面没有滑动之 ...