วิธีปิดการใช้งาน JTAG ก่อนบูตโหลด Atmegas 40DIP ด้วย Arduino IDE Mightycore: 4 ขั้นตอน
วิธีปิดการใช้งาน JTAG ก่อนบูตโหลด Atmegas 40DIP ด้วย Arduino IDE Mightycore: 4 ขั้นตอน
Anonim
วิธีปิดการใช้งาน JTAG ก่อนบูตโหลด Atmegas 40DIP ด้วย Arduino IDE Mightycore
วิธีปิดการใช้งาน JTAG ก่อนบูตโหลด Atmegas 40DIP ด้วย Arduino IDE Mightycore

เมื่อเร็วๆ นี้ ฉันต้องใช้ atmegas 40 DIP เพื่อควบคุมระบบอุตสาหกรรม เนื่องจากไมโครคอนโทรลเลอร์ชนิดนี้มี I/O แบบแอนะล็อกหรือดิจิทัลจำนวนมาก คุณจึงไม่ต้องการตัวขยายใดๆ

atmegas32/644p/1284p มีวิธีดาวน์โหลดภาพสเก็ตช์ที่คุณสร้างขึ้นซึ่งเรียกว่า "JTAG" (ดู

en.wikipedia.org/wiki/JTAG สำหรับคำอธิบายเพิ่มเติม) หากคุณใช้ Arduino IDE หรือ LDmicro (IEC 61-131) ภาพสเก็ตช์จะถูกดาวน์โหลดโดยพอร์ต SPI และพิน JTAG (4 พิน: PC2 (D18) PC3 (D19) PC4 (D20) PC5 (D21) จะไม่สามารถใช้ได้สำหรับสิ่งใด ดังนั้น คุณต้องปิดการใช้งาน JTAG ในโปรแกรมของคุณ

ด้วย arduino IDE คุณเพียงแค่เพิ่มโค้ด 3 บรรทัดในส่วนการตั้งค่าดังนี้:

uint8_t tmp = 1<< JTD;

MCUCR = tmp;

MCUCR = tmp;

วิธีบรรทัด MCUCR สองครั้ง

ด้วย LDmicro ฉันไม่สามารถทำอะไรได้เลย

เพื่อหลีกเลี่ยงปัญหาเหล่านี้ ฉันบูตโหลดหลังจากลงทะเบียน MCUCR จัดการ atmegas ของฉันด้วย Arduino IDE ภายใต้ Mightycore วิธีเผาฟิวส์โดยปิดการใช้งาน JTAG

ขั้นตอนที่ 1: การคำนวณฟิวส์ของวงจร 40DIP ของคุณ:

การคำนวณฟิวส์ของวงจร 40DIP ของคุณ
การคำนวณฟิวส์ของวงจร 40DIP ของคุณ
การคำนวณฟิวส์ของวงจร 40DIP ของคุณ
การคำนวณฟิวส์ของวงจร 40DIP ของคุณ
การคำนวณฟิวส์ของวงจร 40DIP ของคุณ
การคำนวณฟิวส์ของวงจร 40DIP ของคุณ

ไปที่เว็บไซต์:

eleccelerator.com/fusecalc/fusecalc.php?chi…

เลือกวงจรที่ดี (atmega1284p ในตัวอย่างของฉัน แต่เป็นแบบเดียวกันกับ 40 DIP atmegas อื่น ๆ) และดูที่ "U hfuse:w:0x99:m" และยกเลิกการเลือก JTAGEN เพื่อให้ "U hfuse:w:0xD9:m" จำค่า 0xD9 ไว้ให้ดี

ขั้นตอนที่ 2: ค้นหาไฟล์ Boards.txt ในไดเรกทอรี Mightycore:

ค้นหาไฟล์ Boards.txt ในไดเรกทอรี Mightycore
ค้นหาไฟล์ Boards.txt ในไดเรกทอรี Mightycore
ค้นหาไฟล์ Boards.txt ในไดเรกทอรี Mightycore
ค้นหาไฟล์ Boards.txt ในไดเรกทอรี Mightycore

บนพีซีของคุณ ค้นหาไดเร็กทอรี Mightycore สำหรับฉันใน C:\user\myself\AppData\Local\Arduino15\packages\Mightycore\Harware\avr\2.0.0\boards.txt

ขั้นตอนที่ 3: แก้ไข Boards.txt และ Bootload ด้วย Mightycore:

แก้ไข Boards.txt และ Bootload ด้วย Mightycore
แก้ไข Boards.txt และ Bootload ด้วย Mightycore

ดูที่บล็อกความถี่นาฬิกาของ atmega1284p ด้วย Notepad++

แก้ไขฟิวส์สูงแต่ละตัว เช่น “1284.menu.clock.16MHz_external.bootloader.high_fuses=0xd6” เป็น "1284.menu.clock.16MHz_external.bootloader.high_fuses=0xd9" (0xd9 ค่าก่อนหน้าที่คุณต้องจำ) บันทึกไว้

จากนั้นคุณเพียงแค่ต้องปฏิบัติตามวิธีการ bootloading ที่ให้มาใน

www.instructables.com/id/Arduino-18x-Clone…

แค่นั้นแหละ.

ขั้นตอนที่ 4: สรุป:

ตอนนี้ คุณได้รับ 4 I/O และคุณไม่จำเป็นต้องทำการลงทะเบียนใดๆ ในภาพสเก็ตช์ของคุณ คุณสามารถย้อนกลับและเปิดใช้งาน JTAGE และรีบูตอีกครั้งได้

ขอบคุณบทช่วยสอนทั้งหมดบนเว็บที่ให้กุญแจสำคัญในการประสบความสำเร็จในโครงการนี้