0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎样使用ATMEGA328P-PU制作经典的Arduino克隆

454398 来源:网络整理 作者:网络整理 2019-11-20 10:15 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

步骤1:开始

怎样使用ATMEGA328P-PU制作经典的Arduino克隆

上周,我决定使用ATMEGA328P-PU制作经典的Arduino克隆。我似乎是如此的轻松和快速,但对我来说却是一个非常糟糕的惊喜:我向便宜的ATMEGA328-PU(非P !!)表示了非微微功耗。

区别:这款IC需要更多的能量,并且与arduino ISP Bootloader不兼容(请参阅错误的签名)。所以我有点失望。

我在网上寻找一种引导这种电路的方法:找到了很多方法,但是没有一个可以在Arduino 1.0.6上运行。所以我测试了我的一个:所有这些技巧之间的某种混合。我现在将其提供给您。..

步骤2:要使用的原理图和引导程序:

您可以在:

https://www.arduino.cc/zh/Tutorial/ArduinoISP

上轻松找到它我使用了一个原型板上连接照片上的所有电缆(板上的组件都是装饰性的)。

然后,您必须执行以下步骤:

1-在您的arduino中下载著名的示例“ arduinoISP”,然后关闭Arduino 1.0.6

2-备份arduino/hardware/tools/etc/avrdude.conf并执行以下更改(在Notepad ++中,对于我来说是8080行):

#----------------------------- -------------------------------

#ATmega328

#- -------------------------------------------------- --------

部分

id =“ m328”;

desc =“ ATmega328”;

has_debugwire =是;

flash_instr = 0xB6、0x01、0x11;

eeprom_instr = 0xBD,0xF2、0xBD,0xE1、0xBB,0xCF,0xB4、0x00,

0xBE,0x01、0x B6、0x01、0xBC,0x00、0xBB,0xBF,

0x99、0xF9、0xBB,0xAF;

stk500_devcode = 0x86;

#avr910_devcode = 0x;

签名= 0x1e 0x95 0x14; #请勿更改

pagel = 0xd7;

bs2 = 0xc2;

chip_erase_delay = 9000;

pgm_enable =“ 1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1”,

“ xxxxxxxxxxxxxxxx”;

chip_erase =“ 1 0 1 0 1 1 0 0 1 0 0 xxxxx“,

” xxxxxxxxxxxxxxxx“;

超时= 200;

stabdelay = 100;

cmdexedelay = 25;

synchloops = 32;

bytedelay = 0;

pollindex = 3;

pollvalue = 0x53;

predelay = 1;

postdelay = 1;

pollmethod = 1;

pp_controlstack =

0x0E ,0x1E,0x0F,0x1F,0x2E,0x3E,0x2F,0x3F,

0x4E,0x5E,0x4F,0x5F,0x6E,0x7E,0x6F,0x7F,

0x66、0x76, ,0x77、0x6A,0x7A,0x6B,0x7B,

0xBE,0xFD,0x00、0x01、0x00、0x00、0x00、0x00;

hventerstabdelay = 100;

progmodedelay = 0;

锁存周期= 5;

togglevtg = 1;

poweroffdelay = 15;

resetdelayms = 1;

resetdelayus = 0;

hvleavestabdelay = 15;

已重置elay = 15;

chiperasepulsewidth = 0;

chiperasepolltimeout = 10;

programfusepulsewidth = 0;

programfusepolltimeout = 5;

programlockpulsewidth = 0;

programlockpolltimeout = 5;

ocdrev = 1;

内存“ eeprom”

已分页=否;

page_size = 4;

大小= 1024;

min_write_delay = 3600;

max_write_delay = 3600;

readback_p1 = 0xff;

readback_p2 = 0xff;

read =“ 1 0 1 0 0 0 0 0”,

“ 0 0 0 xxx a9 a8“,

” a7 a6 a5 a4 a3 a2 a1 a0“,

” oooooooo“;

写=” 1 1 0 0 0 0 0 0“,

” 0 0 0 xxx a9 a8“,

” a7 a6 a5 a4 a3 a2 a1 a0“,

” iiiiiiii“;

loadpage_lo =“ 1 1 0 0 0 0 0 0 1”,

“ 0 0 0 0 0 0 0 0 0”,

“ 0 0 0 0 0 0 a1 a0“,

” iiiiiiii“;

writepage =” 1 1 0 0 0 0 0 1 0“,

” 0 0 xxxx a9 a8“ ,

“ a7 a6 a5 a4 a3 a2 0 0”,

“ xxxxxxxx”;

模式= 0x41;

延迟= 20;

块大小= 4;

readsize = 256;

;

内存“闪存”

页面=是;

大小= 32768;

page_size = 128;

num_pages = 256;

min_write_delay = 4500;

max_write_delay = 4500;

readback_p1 = 0xff;

readback_p2 = 0xff;

read_lo =“ 0 0 1 0 0 0 0 0”,

“ 0 0 a13 a12 a11 a10 a9 a8“,

” a7 a6 a5 a4 a3 a2 a1 a0“,

” oooooooo“;

read_hi =” 0 0 1 0 1 0 0 0 “,

” 0 0 a13 a12 a11 a10 a9 a8“,

” a7 a6 a5 a4 a3 a2 a1 a0“,

” oooooooo“;

loadpage_lo =“ 0 1 0 0 0 0 0 0 0”,

“ 0 0 0 xxxxx”,

“ xx a5 a4 a3 a2 a1 a0a”,

“ iiiiiiii”;

loadpage_hi =“ 0 1 0 0 1 0 0 0 0”,

“ 0 0 0 xxxxx”,

“ xx a5 a4 a3 a2 a1 a0”,

“ iiiiiiii”;

writepage =“ 0 1 0 0 1 1 0 0”,

“ 0 0 a13 a12 a11 a10 a9 a8”,

“ a7 a6 xxxxxx”,

“ xxxxxxxx”;

模式= 0x41;

延迟= 6;

块大小= 128;

读取大小= 256 ;

;

内存“ lfuse”

size = 1;

min_write_delay = 4500;

max_write_delay = 4500;

读取=“ 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0”,

“ xxxxxxxxoooooooo”;

写入=“ 1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0”,

“ xxxxxxxxiiiiiiii”;

;

内存“ hfuse”

size = 1;

min_write_delay = 4500;

max_write_delay = 4500;

read =“ 0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0“,

” xxxxxxxxoooooooo“;

写=” 1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0“,

“ xxxxxxxxiiiiiiii”;

;

内存“浪费”

size = 1;

min_write_delay = 4500;

max_write_delay = 4500;

读取=“ 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0”,

“ xxxxxxxxxxxxxooo “;

写入=” 1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0 0“,

” xxxxxxxxxxxxxiii“;

;

内存“锁定”

size = 1;

min_write_delay = 4500;

max_write_delay = 4500;

REA d =“ 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0”,

“ xxxxxxxxxxoooooo”;

写入=“ 1 0 1 0 1 1 0 0 1 1 1 xxxxx“,

” xxxxxxxx 1 1 iiiiii“;

;

内存“校准”

size = 1;

读取=“ 0 0 1 1 1 0 0 0 0 0 0 xxxxx”,

“ 0 0 0 0 0 0 0 0 oooooooo”;

;

内存“签名”

size = 3;

读取=“ 0 0 1 1 0 0 0 0 0 0 0 xxxxx”,

“ xxxxxx a1 a0 oooooooo”;

;

;

部分父级“ m328”

id =“ m328p “;

desc =” ATmega328P“;

#signature = 0x1e 0x95 0x0F; #将其更改为:

签名= 0x1e 0x95 0x14;

ocdrev = 1;

;

#--------------- -------------------------------------------------- -----------------------------

#------------- -------------------------------------------------- -------------------------------

我给您最初的 avrdude.conf ,然后将修改后的文件保存到2个存档中。

3-运行ARDUINO 1.0.6

4-板Arduino Duemilanove或Diecemilia

5-选择合适的处理器:Atmega328

6-选择Arduino的ISP

7-刻录引导程序

8-关闭ARDUINO 1.0.6,将avrdude替换为您备份的原始文件。

9-,现在您必须更改文件arduino/hardware/arduino/avr/boards.txt,以使用这种电路显示新的电路板名称。我叫它: Arduino Uno w/ATmega328(非P)

您必须在其中插入的文本:

### ################################################## #########

uno328.name = Arduino Uno带ATmega328(非P)

uno328.upload.tool = avrdude

uno328.upload.protocol = Arduino的

uno328.upload.maximum_size = 32256

uno328.upload.speed = 115200

uno328.bootloader.low_fuses = 0xff的

uno328.bootloader.high_fuses =写0xDE

uno328.bootloader.extended_fuses = 0×05

uno328.bootloader.path = optiboot

uno328 .bootloader.file = optiboot_atmega328.hex

uno328.bootloader.unlock_bits = 0x3F的

uno328.bootloader.lock_bits =为0x0F

uno328.build.mcu = atmega328

uno328.build.f_cpu = 16000000L

uno328.build.core = Arduino的

uno328.build.variant =标准

保存

我将文件放在提供的存档中。

10-现在,您可以使用ARDUINO 1.0.6对带有Arduino uno的UNO板进行编程卡或atmega328-pu/16MHz具有在我的示例中,带有USBasp的 Arduino Uno带ATmega328(非P)卡。

步骤3:示意图克隆示例的实例:由Atmega328-PU Non P制成!课程

此卡用于我的一个项目:6轴机器人。它需要强大的5V DC电源电压。

在图片上,我很容易在克隆的顶部安装了一个ETHERNET屏蔽,您可以看到USBasp下载相应的程序。

第4步:结论:

我希望它会帮助一些购买了错误但最便宜的atmega328-PU non P的人!

责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Arduino
    +关注

    关注

    190

    文章

    6527

    浏览量

    197446
  • Atmega328P
    +关注

    关注

    4

    文章

    56

    浏览量

    17761
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    探索 ATMega328 微控制器:嵌入式开发新选择

    下载: A000048.pdf 1. ATMega328 基本介绍 ATMega328 采用 28 引脚 DIP 封装,它是 Atmel 公司推出的 8 位处理器。这款微控制器预装了 Arduino
    的头像 发表于 04-11 15:15 466次阅读

    ATmega161微控制器:特性、应用与设计要点

    ATmega161微控制器:特性、应用与设计要点 在电子工程领域,微控制器是众多项目的核心组件。ATmega161作为一款经典的8位微控制器,以其高性能、低功耗的特点,在嵌入式系统设计中占据着重
    的头像 发表于 04-07 11:15 191次阅读

    ATmega103(L)微控制器:特性、功能与应用全解析

    ATmega103(L)微控制器:特性、功能与应用全解析 在电子设计领域,微控制器就像是设备的“大脑”,掌控着各种功能的实现。ATmega103(L)作为一款经典的8位微控制器,凭借其丰富的特性
    的头像 发表于 04-06 14:40 627次阅读

    Atmel ATmega165A/PA/325A/PA/3250A/PA/645A/P/6450A/P微控制器:性能与应用的深度剖析

    Atmel ATmega165A/PA/325A/PA/3250A/PA/645A/P/6450A/P微控制器:性能与应用的深度剖析 在电子设计领域,微控制器是众多项目的核心组件,其性能和功能
    的头像 发表于 04-06 13:05 655次阅读

    深入解析ATmega32(L):8位微控制器的卓越之选

    深入解析ATmega32(L):8位微控制器的卓越之选 在嵌入式系统的设计领域,选择一款合适的微控制器至关重要。Atmel AVR ATmega32(L)作为一款经典的8位微控制器,以其高性能
    的头像 发表于 03-17 15:30 247次阅读

    探索 Atmel ATmega324P/V 8 位 AVR 微控制器的卓越性能

    ATMEGA324P-20PU.pdf 一、核心特性:高性能与低功耗的完美结合 1. 先进的 RISC 架构 ATmega324P/V 采用先进的 RISC 架构,拥有 131 条
    的头像 发表于 03-15 17:10 1084次阅读

    Atmel ATmega169A/PA/329A/PA/3290A/PA/649A/P/6490A/P微控制器深度解析

    Atmel ATmega169A/PA/329A/PA/3290A/PA/649A/P/6490A/P微控制器深度解析 在嵌入式系统设计领域,选择一款合适的微控制器至关重要。Atmel
    的头像 发表于 03-12 15:45 602次阅读

    Atmel ATmega644P/V 8位AVR微控制器深度剖析

    Atmel ATmega644P/V 8位AVR微控制器深度剖析 在嵌入式系统设计领域,选择一款合适的微控制器至关重要。Atmel ATmega644P/V这款8位AVR微控制器以其高性能、低功耗
    的头像 发表于 03-05 16:20 267次阅读

    ATmega329P/3290P:高性能低功耗8位微控制器的卓越之选

    ATmega329P/3290P:高性能低功耗8位微控制器的卓越之选 在电子工程师的设计世界里,选择一款合适的微控制器至关重要。今天,我们就来深入了解一下Atmel公司推出的ATmega329P
    的头像 发表于 02-26 16:20 216次阅读

    CDC328A:高性能时钟驱动器的技术剖析

    CDC328A:高性能时钟驱动器的技术剖析 在电子设计领域,时钟驱动器对于确保时钟信号的精确分配和稳定传输至关重要。CDC328A作为一款具有可选择极性的1线到6线时钟驱动器,在时钟分配和时钟生成
    的头像 发表于 02-10 16:20 491次阅读

    USBISP/USBasp编程器给Atmega32U4下载Arduino bootloader引导程序

    对于新出厂的ATmega32U4芯片内部是没有arduino引导程序的,需要用户预先下载bootloader后才能用串口下载自己的应用程序.在某些罕见情况下旧的bootloader会导致一些bug
    的头像 发表于 01-31 14:38 918次阅读
    USBISP/USBasp编程器给<b class='flag-5'>Atmega</b>32U4下载<b class='flag-5'>Arduino</b> bootloader引导程序

    atmega162芯片说明

    atmega162芯片说明
    发表于 11-19 16:30 0次下载

    选型手册:BLA9H0912L-1200PU Ampleon 的 LDMOS晶体管

    我们从采购选型的角度通过官方的PDF,带你了解 Ampleon 的 LDMOS BLA9H0912L-1200P; 与 BLA9H0912LS-1200P、,为什么有些工程师会报出 BLA9H0912L-1200PU的需求?我们
    的头像 发表于 08-21 17:13 3623次阅读
    选型手册:BLA9H0912L-1200<b class='flag-5'>PU</b> Ampleon 的 LDMOS晶体管

    物理不可克隆功能的工作原理和益处

    物理不可克隆功能(PUF)是一种物理对象,对于给定的输入和条件(激励),提供物理定义的“数字指纹”输出(响应),作为唯一标识符,通常用于半导体器件,如微处理器。
    的头像 发表于 07-15 09:55 1096次阅读

    《ESP32S3 Arduino开发指南》第二章 Arduino基础知识

    ,简单来说,只要是搭载Arduino支持芯片的开发板都可以称为Arduino开发板。目前支持Arduino开发的芯片有很多,比如Mega系列芯片(Mega328p/Mega2560/M
    发表于 05-13 09:28