自制Arduino uno R3开发板

主要步骤:

一、
系统板的电路设计与制作

二、 CH340G驱动安装

三、 USBasp驱动安装和为系统板烧写bootloader

本文将从以上三点详细讲解如何设计并制作Uno Mini系统板,主芯片采用Atmega328P,USB转TTL采用CH340G。

一、
系统板的电路设计与制作

1、

Atmega328P原理图

以上是基本电路,必须全做。RESET端上拉1K电阻,保持高电平,下接按键后接地,当按键按下则RESET端拉低,芯片复位。RX和TX分别是串口的接收端和发送端,直接通过电阻接串口芯片CH340G的TX和RX端,注意,主芯片TX和串口芯片RX端接,主芯片RX和串口芯片TX端接,不可接反。VCC和GND接104PF退耦电容(此处电容由芯片厂家给出容值)。PB6和PB7接16M晶振电路,为芯片提供外部时钟。22PF是16M晶振常用谐振电容,应用广泛,部分由晶振厂家提供容值。1M电阻是防止晶振过度驱动,过分驱动晶振会渐渐损耗,减少晶振的接触电镀,这将引起频率的上升。AREF端下接一个104PF退耦电容接地,这是AD和DA功能基准电压引脚。ISCP作为USBasp下载电路接口,引出相应引脚即可。

2、

CH340G原理图

这是最简单的CH340G电路,需要注意的是在使用5V电源时,需要在V3脚接一个104PF电容到地,V3引脚的电容用于内部电源节点退耦,来改善USB传输过程中的EMI,一般选用4700PF到0.1UF。D+和D-接口分别接USB端口D+和D-,一一对应即可。晶振电路同样是22PF谐振电容接12M晶振。在DTR引脚接一个104电容后到328P的RESET引脚,以避免Arduino下载电路时的手动复位,达到一键下载的效果。

3、7805稳压电路

采用经典的7805稳压芯片电路。二极管防止输出与输入端压差造成芯片损坏。

4、 PCB设计注意

(1)、CH340G的V3引脚所接电容应该尽量接近芯片;

(2)、CH340G的VCC引脚接地的电容应尽量靠近芯片;

(3)、328P和340G的时钟电路应该尽量接近芯片;

二、CH340G驱动安装

340USB转串口芯片对WIN10的适用性较强。需要注意USB母座的D+、D-与芯片连接不能出错,电路不能有虚焊。驱动可以到沁恒官网下载(http://www.wch.cn/download/CH341SER_EXE.html)。下面展示如何安装驱动:

1、
下载好后点击CH341SER.EXE文件,弹出窗口,点击安装即可,如果此时未插入系统板,则会显示预安装成功,插入系统板后,无需再次安装,电脑将自动显示出模拟串口。

2、
在未安装驱动时,正常情况下,设备管理器将显示如下,如果插入USB线后,设备管理器显示未知USB设备(设备描述符请求失败),那么可能是USB数据线与芯片连接出错,或者是虚焊。

3、
安装驱动以后,设备管理器将显示出模拟串口,如下:

至此,为CH340G安装驱动成功。

三、为系统板烧写bootloader

有两种方法,一是用USBasp等编程器为芯片烧写boot,二是用另一块Arduino板子为芯片烧写boot。这里采用第一种方式,注意如果用IDE通过USBasp给芯片烧写,由于某宝购买的USBasp大概率不是Arduino官方认可的,所以不容易成功。推荐使用progisp烧录程序给芯片直接烧写bootloader。

(一)、为USBasp安装驱动(文末附驱动文件夹下载地址)

对于WIN7 运行libusb-win32-bin-1.2.6.0文件夹下bin文件夹中的inf-wizard.exe文件即可

WIN10 64位系统下的方式是先禁用驱动程序强制签名后再安装驱动程序,具体做法如下:

设置­—更新与安全—恢复—立即重启,重启后出现蓝屏和选项后:

疑难解答—高级选项—启动设置—重启—按7选择禁用驱动程序强制签名。

接着打开设备管理器,右键点击带感叹号的USBasp,更新驱动,将驱动路径定位到驱动文件夹的X64文件下,点击安装,在弹出的安全警告中点击始终安装。安装后就能在设备管理器中查看到正常的USBasp了。

驱动安装成功后,推荐使用progisp烧写bootloader。

(二)、USBasp与系统板的连接方式

如果系统板有供电,那么USBasp上的VCC与GND就不需要与系统板连接。那么连接就是(不能连错了,小心):

MOSI————MOSI MISO————MISO

SCK————SCK RST————RST

连上系统板和USBasp后,将USBasp插入电脑,打开progisp,基本设置如下:

左上角Select Chip一定选择ATmega328p,选错轻则锁死芯片,重则烧毁;中间各选项勾选如图,分别勾选比较识别字,芯片擦写,空片检查,编程FLASH,校验FLASH,编程熔丝;擦除是将芯片FLASH清除;右上角调入FLASH是调入bootloader或者编译完成的hex文件,调入过后,点击自动,即可烧写。需要特别注意的是一切烧写程序的操作需要在正确设置熔丝位的情况下进行,下面讲如何正确设置熔丝位和解锁锁死的芯片。

(三)、关于设置328P熔丝位(熔丝位有关知识,请参考文末推荐文章)

熔丝位的设置极其重要,需要极其细心,否则会锁死芯片,导致芯片变成板砖。如果熔丝位设置与烧写的bootloader不对应,那么就算烧写成功,也不能从Arduino IDE一键下载程序,这一点非常重要。此处讲解设置步骤:

1、按Arduino\hardware\arduino\avr路径打开文件夹,打开boards.txt文件,此文件中可查看相应板卡芯片的熔丝位:

可以查看到对于uno的328P芯片,低熔丝位(low_fuses)是FF,高位(high_fuses)是DE,扩展位(extended_fuses)是FD。

2、如何在progisp里设置熔丝位

点击自动旁边三点,如下图所示:

然后弹出设置框,即可设置:

注意:设置好后点击写入,写入芯片后主页面左下角会有提示,但为了保险最后再点击读出,看烧写的是否和设置的一样。

特别提醒:SPIEN位千万不能设置为1,否则芯片变板砖。

3、关于熔丝位设置错误导致锁死AVR芯片的解救方法

如果不小心设置错熔丝位,progisp显示进入不了编程模式,那么就需要一个4M有源晶振进行解锁。正确连接有源晶振,拆除328P的外部16M无源晶振,将有源晶振的信号输出脚接到328P的XTAL1引脚上,连接USBasp和电脑,点击progisp,能进入编程模式后,迅速改正熔丝位,之后再接上16M晶振即可。

(四)、为系统板烧写bootloader

按照Arduino\hardware\arduino\avr\bootloaders\optiboot路径打开文件夹,我们DIY的是uno3开发板,注意此处不可选错文件,optiboot_atmega328.hex即我们需要烧写的文件。

调入FLASH,点击自动,几十秒就能烧写好。到这系统板的制作就完成最重要的一步。

四、验证bootloader烧写是否成功

1、验证程序

向串口发送一个字符,芯片接收到后,返回字符的阿斯克码值:

2、LED显示

由于PCB下载电路上没有并联LED,拆除后重新在面包板上接入LED显示:

黄色是电源显示,蓝色LED正极接5V,负极并接在328P的RX脚,蓝灯持续闪烁,说明正在下载。

3、下载效果

下载成功,向串口显示器发送换行符,返回10,说明实验成功,系统板正常工作

参考:

USBasp驱动文件和progisp下载:

https://pan.baidu.com/s/13y88ogGtFYYOMrc_d6Dmqg 提取码:nsvw

有关熔丝位讲解文章:https://blog.csdn.net/tyshtang/article/details/46137849

自制ArduinoUno R3开发板,烧写bootloader相关推荐

  1. digispark开发板烧写BootLoader固件升级Attiny85救砖之路

    事出有因 之前在网上买的digispark开发板一直没有时间去研究,digispark开发板似乎有4个版本 我手上的是这个版本,与上面的俩有细微的差别,但大同小异,基本都是一样的. 研究时发现商家给的 ...

  2. rk3288 linux烧录工具,Firefly-RK3288开发板烧写教程

    Firefly-RK3288开发板烧写教程 前言 本文介绍了如何将主机上的固件文件,通过 Micro USB OTG 线,烧录到开发板的闪存中. 升级时,需要根据主机操作系统和固件类型来选择合适的升级 ...

  3. 裸板烧写 bootloader

    [转] 有读者要求介绍一下裸板下Uboot的烧写:所以就简单的说明一下.这里主要是参考的TQ2440的出厂使用手册中介绍的,并做一下具体说明. 在裸板(没有Uboot)情况下,只用通过jtag调试接口 ...

  4. tiny4412安装Linux系统,FriendlyARM Tiny 4412开发板烧写Linux系统步骤

    一.制做用于安装系统的SD卡 通常Tiny4412出厂时已经安装好Android4.2.2系统,之后要从新烧写系统,则须要SD卡来烧写系统,不管是经过USB烧写,仍是SD卡脱机烧写,都须要使用SD卡启 ...

  5. iTOP4412开发板烧写命令集汇总

    第一种:通过fastboot.OTG方式烧写 前提:进入"iTOP-4412",即通过命令reboot重启开发板后,快速连续按回车进入. 在超级终端逐个键入如下命令(操作在超级终端 ...

  6. 【迅为iMX6Q】开发板 烧写工具 MfgTool2.exe 打不开问题的解决

    现象 最近整理电脑,重新搭建了 [迅为iMX6Q]开发板的开发环境,从网盘重新下载的烧写烧写工具:android_m6.0.1_2.0.0_ga_tool_20190725,直接双击MfgTool2. ...

  7. 【迅为iMX6Q】开发板烧写Uboot后串口无任何输出的问题解决

    问题描述 [迅为iMX6Q]开发板,资料还是很少的,或者说iMX6Q这款芯片,相关的资料很少 之前这个块开发板,是可以正常烧写并启动的,最近有了点时间,烧写了Linux系统镜像,发现设置为EMMC启动 ...

  8. 迅为LS2k1000龙芯国产双核开发板烧写系统到 U 盘

    龙芯的系统可以存放在 Nand Flash,SD 卡,U 盘,固态或者是网络加载,迅为的龙芯开发板核心板默认没有焊接 Nand Flash,是将文件系统存储在底板的固态硬盘上,这一章节我们将系统烧写到 ...

  9. hi3518ev300开发板烧写历程

    hi3518ev300,开发板烧录过程中遇到的问题 1.编译环境 电脑环境配置 win7+vm12.05虚拟机+ubuntu16.04 2.SDK编译问题 在整个SDK的编译过程中,根据<Hi3 ...

  10. 安卓开发板烧写程序与安装软件的区别_巧用imx6开发板烧写android系统的详细步骤讲解...

    平台:迅为iMX6开发板 iMX6 可以使用 OTG接口烧写镜像,OTG烧写也可以叫 USB 烧写. 1.OTG烧写环境 OTG 烧写只需要在 windows 环境,OTG 烧写方式首先要安装 ADB ...

最新文章

  1. 一步步学习SPD2010--第十一章节--处理母版页(8)--从母版页创建网页
  2. EL表达式的内置对象(待梳理)
  3. 关于js私钥加密公钥解密的问题
  4. Oracle常用操作之登录名和密码大小写问题
  5. iOS UITableView
  6. 【C++ grammar】抽象、封装与this指针
  7. selenium ruby和java_Selenium 2之Ruby版——安装篇
  8. 2、生成一个PHP扩展框架
  9. 003::每天五分钟入门TCP/IP协议栈::IP协议之TOS字段说明
  10. bean的生命周期(最全最细讲解)
  11. 图像处理中的数学原理归类
  12. 如何做好HMI交互设计?
  13. Linux Apache服务详解——Apache服务基础知识
  14. 一步步教您搞定讯飞语音识别 | 寻找C站宝藏
  15. Ctrl 键失效或者 Ctrl + D键失效,不灵
  16. 磁盘读写的时间花费和调度算法(操作系统)
  17. 王者荣耀8月15日服务器维护,王者荣耀:8月15日更新,10件装备调整,依旧互秒荣耀...
  18. 万彩办公大师OfficeBox3.1.0(小小工具箱几乎满足各种办公需求)
  19. 如何批量将多个 Word 文档快速合并成一个文档
  20. procdump 抓 dump文件

热门文章

  1. 计算机中模板与母版的区别,ppt中母版模板主题版式之间的区别和联系?
  2. 谷歌浏览器使用charles抓包localhost
  3. 计算机搜不到连接打印机主机,电脑搜索不到局域网打印机怎么办
  4. DTCloud编码规范
  5. Python基础知识从hello world 开始(第四天完结)
  6. win7高级搜索计算机,使用win7系统高级搜索功能的方法介绍
  7. Win10激活-记录篇
  8. 生信个人笔记之TCGA
  9. ARM与x86的战争史诗(连载1):Wintel帝国(ZZ)
  10. c语言实现AD采样后FFT算法,实践“玩转FFT算法...任你移植”,正确AD采样及生成函数表...