0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

怎樣使用ATMEGA328P-PU制作經(jīng)典的Arduino克隆

454398 ? 來(lái)源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2019-11-20 10:15 ? 次閱讀

步驟1:開(kāi)始

怎樣使用ATMEGA328P-PU制作經(jīng)典的Arduino克隆

上周,我決定使用ATMEGA328P-PU制作經(jīng)典的Arduino克隆。我似乎是如此的輕松和快速,但對(duì)我來(lái)說(shuō)卻是一個(gè)非常糟糕的驚喜:我向便宜的ATMEGA328-PU(非P ?。。┍硎玖朔俏⑽⒐?。

區(qū)別:這款IC需要更多的能量,并且與arduino ISP Bootloader不兼容(請(qǐng)參閱錯(cuò)誤的簽名)。所以我有點(diǎn)失望。

我在網(wǎng)上尋找一種引導(dǎo)這種電路的方法:找到了很多方法,但是沒(méi)有一個(gè)可以在Arduino 1.0.6上運(yùn)行。所以我測(cè)試了我的一個(gè):所有這些技巧之間的某種混合。我現(xiàn)在將其提供給您。..

步驟2:要使用的原理圖和引導(dǎo)程序:

您可以在:

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

上輕松找到它我使用了一個(gè)原型板上連接照片上的所有電纜(板上的組件都是裝飾性的)。

然后,您必須執(zhí)行以下步驟:

1-在您的arduino中下載著名的示例“ arduinoISP”,然后關(guān)閉Arduino 1.0.6

2-備份arduino/hardware/tools/etc/avrdude.conf并執(zhí)行以下更改(在Notepad ++中,對(duì)于我來(lái)說(shuō)是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; #請(qǐng)勿更改

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“;

超時(shí)= 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;

內(nèi)存“ eeprom”

已分頁(yè)=否;

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;

;

內(nèi)存“閃存”

頁(yè)面=是;

大小= 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 ;

;

內(nèi)存“ 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”;

;

內(nèi)存“ 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”;

;

內(nèi)存“浪費(fèi)”

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“;

;

內(nèi)存“鎖定”

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“;

;

內(nèi)存“校準(zhǔn)”

size = 1;

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

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

;

內(nèi)存“簽名”

size = 3;

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

“ xxxxxx a1 a0 oooooooo”;

;

;

部分父級(jí)“ m328”

id =“ m328p “;

desc =” ATmega328P“;

#signature = 0x1e 0x95 0x0F; #將其更改為:

簽名= 0x1e 0x95 0x14;

ocdrev = 1;

;

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

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

我給您最初的 avrdude.conf ,然后將修改后的文件保存到2個(gè)存檔中。

3-運(yùn)行ARDUINO 1.0.6

4-板Arduino Duemilanove或Diecemilia

5-選擇合適的處理器:Atmega328

6-選擇Arduino的ISP

7-刻錄引導(dǎo)程序

8-關(guān)閉ARDUINO 1.0.6,將avrdude替換為您備份的原始文件。

9-,現(xiàn)在您必須更改文件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 =標(biāo)準(zhǔn)

保存

我將文件放在提供的存檔中。

10-現(xiàn)在,您可以使用ARDUINO 1.0.6對(duì)帶有Arduino uno的UNO板進(jìn)行編程卡或atmega328-pu/16MHz具有在我的示例中,帶有USBasp的 Arduino Uno帶ATmega328(非P)卡。

步驟3:示意圖克隆示例的實(shí)例:由Atmega328-PU Non P制成!課程

此卡用于我的一個(gè)項(xiàng)目:6軸機(jī)器人。它需要強(qiáng)大的5V DC電源電壓。

在圖片上,我很容易在克隆的頂部安裝了一個(gè)ETHERNET屏蔽,您可以看到USBasp下載相應(yīng)的程序。

第4步:結(jié)論:

我希望它會(huì)幫助一些購(gòu)買了錯(cuò)誤但最便宜的atmega328-PU non P的人!

責(zé)任編輯:wv

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Arduino
    +關(guān)注

    關(guān)注

    188

    文章

    6477

    瀏覽量

    187658
  • Atmega328P
    +關(guān)注

    關(guān)注

    4

    文章

    56

    瀏覽量

    17241
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    索尼虛擬制作技術(shù)讓經(jīng)典芭蕾舞劇再煥生機(jī)

    索尼PCL的創(chuàng)意設(shè)施“清澄白河BASE”,是一個(gè)充分活用索尼技術(shù)的視頻制作工作室。近日,該工作室制作了一部基于經(jīng)典芭蕾舞劇《天鵝湖》的短片,并將其發(fā)布在索尼官方社交平臺(tái)上。我們與負(fù)責(zé)策劃和制作
    的頭像 發(fā)表于 12-26 14:57 ?243次閱讀

    UCC272xxEVM-328用戶指南

    電子發(fā)燒友網(wǎng)站提供《UCC272xxEVM-328用戶指南.pdf》資料免費(fèi)下載
    發(fā)表于 12-09 14:39 ?0次下載
    UCC272xxEVM-<b class='flag-5'>328</b>用戶指南

    開(kāi)源項(xiàng)目!基于 Arduino 的 MIDI 架子鼓

    探索如何也能擁有一套適合你辦公桌的架子鼓! 電子元件 Arduino Leonardo (或其他帶有 ATmega32U4 芯片的 Arduino 型號(hào)) 7 個(gè)壓電傳感器 (直徑 35 毫米,信號(hào)捕獲
    發(fā)表于 11-25 12:00

    Atmega328P單片機(jī)的引導(dǎo)程序

    誰(shuí)有最新的 Atmega328P TQFP-32的引導(dǎo)程序
    發(fā)表于 10-22 16:48

    atmega328p芯片串口輸出為什么全是亂碼?

    我希望用atmega328p 芯片,就是Arduino uno的芯片進(jìn)行電容的測(cè)量,但是出現(xiàn)了一個(gè)問(wèn)題。就是上傳程序發(fā)現(xiàn)它的串口輸出全是亂碼,就是非常簡(jiǎn)單的打印一個(gè)數(shù)字,也打印不出。但是用它控制
    發(fā)表于 07-26 12:15

    在面包板上安裝了ATmega328P芯片,AT CIPSEND回復(fù)中的字符錯(cuò)誤怎么解決?

    我在面包板上安裝了 ATmega328P 芯片,已正確連接(帶有 16MHz 振蕩器,并且使用微控制器旁邊的 22pF 電容器過(guò)濾功率)。我正在使用 SortwareSerial 庫(kù)在模擬 A1
    發(fā)表于 07-18 07:51

    ESP32使用Arduino啟用藍(lán)牙后編譯固件過(guò)大,怎樣縮減大小呢?

    ESP32使用Arduino啟用藍(lán)牙后編譯固件過(guò)大,怎樣縮減大小,日志級(jí)別已經(jīng)最低了,分區(qū)不能動(dòng),已經(jīng)是1.9M的OTA分區(qū)配置了,怎樣還能縮減大小,藍(lán)牙功能能否裁剪
    發(fā)表于 06-28 11:27

    求助,在esp-idf中使用arduino作為組件后怎樣使用arduino的庫(kù)?

    在esp-idf中使用arduino作為組件后怎樣使用arduino的庫(kù),例如我此時(shí)需要使用arduino的第三方庫(kù)blinker,怎樣使用
    發(fā)表于 06-12 07:21

    支持 GPS,基于 Arduino 的墨水屏?xí)r鐘(文末可下載完整文件)

    MS8607壓力/濕度/溫度傳感器 × 1 電路板 × 1 按鈕開(kāi)關(guān) × 若干 制作外殼的材料 × 若干 Atmega328P DIP 版 × 1 32768 Hz 晶體 × 1 Adafruit GPS
    發(fā)表于 05-31 11:34

    Arduino Uno R3開(kāi)發(fā)版簡(jiǎn)化

    本人小白,想把Atmega328p-AU芯片單獨(dú)拿出來(lái)用來(lái)控制LED陣列,但Arduino R3開(kāi)發(fā)板的原理圖真看不懂!想知道除了328芯片還需要什么以及線路怎么連接,感謝各位大佬!
    發(fā)表于 04-02 08:38

    如何用Arduino制作一個(gè)簡(jiǎn)易自動(dòng)喂魚器

    如果你家里養(yǎng)有魚,并想找到一種自動(dòng)化喂食的方法,這個(gè)項(xiàng)目可能會(huì)對(duì)你有所啟發(fā)。 在這個(gè)教程中,作者將展示如何制作自己的基于Arduino的自動(dòng)喂魚器,讓小魚不在餓肚子。 自動(dòng)喂魚器的工作原理非常
    發(fā)表于 03-28 11:25

    PCBA電路板克隆開(kāi)發(fā)流程

    什么是克隆線路板?通常情況下有克隆線路板的需求時(shí),往往都是針對(duì)多層板的。而多層板起始數(shù)據(jù)至少四層或四層以上才可以。 深圳市清寶科技有限公司的工程師介紹道:克隆線路板起步前大家需要合理有效地知曉一下
    的頭像 發(fā)表于 03-02 11:15 ?1181次閱讀

    如何制作自己的Arduino電容計(jì)

    在這個(gè)項(xiàng)目中,您將學(xué)習(xí)如何制作自己的Arduino電容計(jì)(測(cè)量電容器的值,范圍從pF到1000的uF)。一般來(lái)說(shuō),電子愛(ài)好者喜歡設(shè)計(jì)自己的小工具而不是購(gòu)買。在這個(gè)項(xiàng)目中,我們使用兩種電容測(cè)量方法,即
    的頭像 發(fā)表于 02-25 15:10 ?1702次閱讀
    如何<b class='flag-5'>制作</b>自己的<b class='flag-5'>Arduino</b>電容計(jì)

    如何使用Arduino制作智能垃圾箱

    在這個(gè)項(xiàng)目中,我將向您展示如何使用Arduino制作智能垃圾箱,當(dāng)您帶著垃圾接近時(shí),垃圾箱的蓋子會(huì)自動(dòng)打開(kāi)。
    的頭像 發(fā)表于 02-11 12:22 ?3181次閱讀
    如何使用<b class='flag-5'>Arduino</b><b class='flag-5'>制作</b>智能垃圾箱

    ESP32與Arduino板之間的區(qū)別差異

    Arduino板包括一個(gè)ATmega328P8位微控制器,具有0至13個(gè)數(shù)字引腳。這些引腳用于數(shù)字輸入和數(shù)字輸出,其中數(shù)字輸入用于從設(shè)備讀取數(shù)據(jù),數(shù)字輸出用于將數(shù)據(jù)從Arduino發(fā)送到設(shè)備。
    的頭像 發(fā)表于 02-02 14:36 ?7950次閱讀
    ESP32與<b class='flag-5'>Arduino</b>板之間的區(qū)別差異