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
    +关注

    关注

    184

    文章

    6426

    浏览量

    184800
  • Atmega328P
    +关注

    关注

    4

    文章

    56

    浏览量

    17090
收藏 人收藏

    评论

    相关推荐

    Arduino Uno R3开发版简化

    本人小白,想把Atmega328p-AU芯片单独拿出来用来控制LED阵列,但Arduino R3开发板的原理图真看不懂!想知道除了328芯片还需要什么以及线路怎么连接,感谢各位大佬!
    发表于 04-02 08:38

    ESP32与Arduino板之间的区别差异

    Arduino板包括一个ATmega328P8位微控制器,具有0至13个数字引脚。这些引脚用于数字输入和数字输出,其中数字输入用于从设备读取数据,数字输出用于将数据从Arduino发送到设备。
    的头像 发表于 02-02 14:36 2423次阅读

    请问avr的mega328p芯片和arduino的库函数一样吗?

    请问avr的mega328p芯片和arduino的库函数一样吗?
    发表于 11-08 06:06

    Arduino用USBASP把328P的熔丝位弄乱了,芯片锁死怎么办?

    Arduino用USBASP把328P的熔丝位弄乱了,芯片锁死怎么办
    发表于 11-06 06:42

    ATMega32可以改造成Arduino吗?

    手上有一块ATMega32A-PU8可以改造成Arduino么?是不是还是要串口转换芯片?
    发表于 11-01 06:47

    esp8266microPython如何调用Arduino库?

    esp8266microPython如何简单的调用Arduino库,本人C++不是太熟练,想把ATmega328p的一个LCD屏驱动移植到esp8266 microPython 上,不知如何实现
    发表于 10-30 07:42

    Virtual Tamaguino:在VBB中混合的Tamagotchi Arduino克隆

    电子发烧友网站提供《Virtual Tamaguino:在VBB中混合的Tamagotchi Arduino克隆.zip》资料免费下载
    发表于 07-11 17:00 0次下载
    Virtual Tamaguino:在VBB中混合的Tamagotchi <b class='flag-5'>Arduino</b><b class='flag-5'>克隆</b>

    基于ATmega328P微控制器的Ardu键盘

    电子发烧友网站提供《基于ATmega328P微控制器的Ardu键盘.zip》资料免费下载
    发表于 06-19 14:47 0次下载
    基于<b class='flag-5'>ATmega328</b>P微控制器的Ardu键盘

    基于ATmega328P的DIY macropad

    电子发烧友网站提供《基于ATmega328P的DIY macropad.zip》资料免费下载
    发表于 06-12 14:47 0次下载
    基于<b class='flag-5'>ATmega328</b>P的DIY macropad

    简单的独立ATMega328p微控制器

    电子发烧友网站提供《简单的独立ATMega328p微控制器.zip》资料免费下载
    发表于 06-12 10:57 0次下载
    简单的独立<b class='flag-5'>ATMega328</b>p微控制器

    如何在没有任何类型的Arduino IDE或Arduino硬件的情况下将ESP-01连接到ATMega328P / ATMega8 micros?

    我希望在没有任何类型的 Arduino IDE 或 Arduino 硬件的情况下将 ESP-01 连接到 ATMega328P / ATMega8 micros。纯原始的,AVR 的。
    发表于 06-07 06:24

    ESP8266-01 gpio2 5v输出触发继电器一直不成功是为啥?

    嗨,我设置了一个电路,其中 ESP8266-01 向切换继电器的 ATMEGA328P-PU 发送命令,我已经移除了 ATMEGA 并试图让 ESP 触发继电器开关但努力获得足够的功率,我有尝试了许多关于使用晶体管等的不同教程,但到目前为止还没有成功,谁能给出一个明确的例
    发表于 05-31 09:20

    是否可以将esp用作连接其他设备的从机?

    机? 我在带有 SPISlave 库的 esp 上使用 Arduino Core 2.4.0,在 328p 上使用经典Arduino SPI 库。
    发表于 05-31 07:15

    是否有关于Atmega和esp-link之间MQTT通信的十六进制字节顺序的教程?

    我有一个项目使用 Atmega328 控制地板采暖系统的各个加热电路,该项目已经运行了好几年。他由带有 esp-link v3.0.14 通过 UART 连接的 ESP8266 支持,我用它来传输
    发表于 05-25 07:58

    我玩Arduino,但我使用寄存器开发

    摘要:Arduino开发板常用的芯片是Atmel公司生产的AVR微控制器系列。最常见的是ATmega328P,被广泛用于Arduino Uno开发板。使用Arduino平台开发AVR的
    的头像 发表于 05-19 09:27 1483次阅读
    我玩<b class='flag-5'>Arduino</b>,但我使用寄存器开发