หนึ่งควรเปลี่ยนจากการใช้ Arduino เป็นโปรแกรมเมอร์เป็นโปรแกรมเมอร์ภายนอกได้อย่างไร


12

ส่วนที่สองของชุดสามส่วนที่เกี่ยวกับการเปลี่ยนจาก Arduino กับไมโครคอนโทรลเลอร์ AVR ธรรมดาและส่วนประกอบสนับสนุนขั้นต่ำ ( ส่วนหนึ่ง , ส่วนที่สาม )

ฉันเคยเห็นผู้คนมากมายถามสิ่งนี้บนอินเทอร์เน็ตดังนั้นต่อไปนี้:

ผมรู้อยู่แล้วว่าวิธีการในการเขียนโปรแกรมและใช้เล่าเรื่อง ATmega328 กับ Arduino เป็นโปรแกรมเมอร์ ตอนนี้ฉันต้องการเริ่มใช้โปรแกรมเมอร์ภายนอกกับ Arduino IDE

ฉันจะดำเนินการเปลี่ยนแปลงนี้อย่างไร ฉันควรเรียนรู้อะไร (มันจะดีถ้ามีการสอนแบบย่อส่วนสำหรับบางส่วนให้เป็นส่วนหนึ่งของคำตอบ)


2
+1 ผู้สมัครที่ยอดเยี่ยมสำหรับคำถามอ้างอิงฉันหวังว่าจะได้คำตอบที่มีโครงสร้างและมีรายละเอียดที่ง่ายต่อการติดตามสำหรับผู้เริ่มต้นไม่ใช่คำตอบ "etch-a-board"
Anindo Ghosh

ฉันสับสน. คุณต้องการขั้นตอนที่จะย้ายจากวิธีการหนึ่งไปอีกวิธีหนึ่ง คุณคาดหวังคำตอบว่าเป็นอย่างไร แบบฝึกหัดสำหรับการใช้โปรแกรมเมอร์ภายนอกโดยตรงนั้นเป็นบทเรียนที่ดี
asheeshr

@AshRj: การเปลี่ยนและการเริ่มใหม่เป็นสองสิ่งที่แตกต่างกัน ถ้าใครรู้วิธีการใช้ Arduino พวกเขาจะต้องรู้ว่าความแตกต่างในรหัสต่าง ๆ จะเป็นอย่างไร (และพื้นฐานของการใช้โปรแกรมเมอร์)
Manishearth

@Manishearth คุณหมายถึงอะไรโดย 'ไม่มี bootloader'?
ขั้วโลก

@Polar: โดยทั่วไปผมไม่ต้องการให้ bootloader Arduino ที่จะมีจะช่วยให้ฉัน (ซึ่งเกิดขึ้นถ้าคุณใช้ Arduino เป็นโปรแกรมเมอร์) ผมเพียงแค่ต้องการ ATMEGA เปลือยที่ทุกรหัสเป็นของฉันรหัส
Manishearth

คำตอบ:


6

หมายเหตุ: มินิ - บทช่วยสอนนี้อ้างอิงจากข้อมูลอย่างเป็นทางการที่นี่ในเว็บไซต์ Arduino นอกจากนี้ยังเกี่ยวข้องกับการใช้ Arduino IDE อย่างเป็นทางการ

หมายเหตุ 2: ลิงก์ที่ให้ไว้กับผลิตภัณฑ์อาจเป็นลิงก์Farnell (เนื่องจากมีแผ่นข้อมูล) หรือหน้าผลิตภัณฑ์จริงบนเว็บไซต์ของผู้ผลิต


ขั้นตอนที่ 1: รับโปรแกรมเมอร์ภายนอก

สิ่งแรกที่ควรทราบคือคุณต้องมีโปรแกรมเมอร์ภายนอกเพื่อหลีกเลี่ยง bootloader และเรียกคืนหน่วยความจำ 1K หรือ 2K ซึ่งใช้เวลามากขึ้น (12.5% ​​ของหน่วยความจำทั้งหมด ) คุณสามารถใช้AVR-ISPเป็นSTK-500หรือโปรแกรมเมอร์ขนาน port - เว็บไซต์ Arduino อย่างเป็นทางการมีคำแนะนำสำหรับการนี้ที่นี่ โปรดทราบว่าคุณไม่สามารถสื่อสารกับบอร์ดผ่านโปรแกรมเมอร์แบบขนานได้คำแนะนำคือการใช้สายเคเบิลอนุกรมสำหรับสิ่งนั้น ประโยชน์หลักของการใช้โปรแกรมเมอร์แบบขนานคือพวกเขามีราคาถูกกว่าคนอื่น ๆ ถ้าคุณยินดีที่จะทำการบัดกรี - คุณต้องการตัวต้านทาน (3) และตัวเชื่อมต่อเพียงไม่กี่ตัวในขณะที่ ISP สามารถตั้งค่าให้คุณสำรอง ถึง£ 30 / $ 50 (อัตราการแปลงเป็นค่าโดยประมาณ)


ขั้นตอนที่ 2: แก้ไขไฟล์การตั้งค่า Arduino

ต่อไปคุณจะต้องกำหนดค่า Arduino IDE เพื่อให้คุณหลีกเลี่ยง bootloader ตรวจสอบให้แน่ใจว่าคุณไม่ได้เปิด Arduino IDE! ไฟล์การกำหนดค่าตามความชอบpreferences.txtสามารถพบได้ในตำแหน่งต่อไปนี้ขึ้นอยู่กับระบบปฏิบัติการของคุณ:

  • C:\Documents and Settings\<Username>\Application Data\Arduino\preferences.txt (Windows)
  • /Users/<Username>/Library/Arduino/preferences.txt (Mac)
  • ~/.arduino/preferences.txt (Linux)

หากต้องการไปที่ไฟล์กำหนดค่าใน Windows ให้ไปที่เมนูเริ่มแล้วไปที่%appdata%(หมายเหตุ: ฉันไม่ได้ใช้ Windows เป็นประจำอย่าลังเลที่จะแก้ไขให้ถูกต้อง) จากนั้นไปที่ Arduino แล้วไปที่preferences.txt

สำหรับ Mac ให้ใช้ Terminal และทำ:

cd ~/Library/Arduino
open .

หรือใน Finder ใช้ไป (CMD-Shift-G) ~/Library/Arduinoและป้อน ทั้งสองพาคุณไปยังหน้าต่าง Finder กับpreferences.txtใน

บนระบบ Unix โฟลเดอร์ที่ขึ้นต้นด้วย '.' (เช่น.cache, .git) โดยค่าเริ่มต้นซ่อนอยู่ดังนั้นใน Linux คุณจะต้องใช้ Terminal และป้อน:

cd ~/.arduino
nautilus .

หมายเหตุ: คุณสามารถแทนที่ nautilus ด้วยได้ gnome-open หากต้องการ ฉันรู้ว่าสิ่งเหล่านี้ทำงานบนรสชาติทั่วไปของ Linux แต่คุณอาจมีปัญหาในบางส่วนของ 'แปลกใหม่' รสชาติ

เมื่อคุณพบpreferences.txtไฟล์แล้วให้เปิดและเปลี่ยนupload.usingจากbootloaderเป็นชื่อของหนึ่งในโปรแกรมเมอร์ใน./hardware/programmers.txtไดเรกทอรีย่อย หากคุณต้องการลบ bootloader จากบอร์ดเดียว./hardware/boards.txtคุณสามารถเปลี่ยน<board>.upload.usingพารามิเตอร์และบอร์ดอื่น ๆ ทั้งหมดจะยังคงใช้ bootloader จากนั้นเพียงบันทึกไฟล์ที่เกี่ยวข้องและปิดมันลง (Arduino ของฉันเพิ่งพังและฉันเกือบจะสูญเสียคำตอบอาจเป็นเพราะฉันลืมทำสิ่งนี้)


ขั้นตอนที่ 3: อัพโหลดภาพร่าง

เมื่อคุณแก้ไขไฟล์ที่เกี่ยวข้องแล้วให้เปิด Arduino IDE อีกครั้งแล้วอัปโหลดภาพร่างตามปกติ หากคุณเพิ่งแก้ไข./hardware/boards.txtเฉพาะบอร์ดนั้นเท่านั้นที่จะไม่มี bootloader แต่ถ้าคุณแก้ไขpreferences.txtแล้วบอร์ดทั้งหมดจะไม่มี bootloader


ขั้นตอนที่ 4: แทนที่ bootloader

หากคุณต้องการที่จะมี bootloader บนกระดานของคุณอีกครั้ง (ด้วยเหตุผลใดก็ตาม) แล้วครั้งแรกเอาทั้ง<board>.upload.usingพารามิเตอร์หรือชุดกลับไปupload.using bootloaderจากนั้นคุณจะต้องเบิร์น bootloader กลับไปยังบอร์ดที่ได้รับผลกระทบ - คำตอบนี้อธิบายวิธีการที่ดีพอสมควรในการทำมันและมีวิธีที่ง่ายกว่าในการอัพโหลดArduino bootloaderด้วย ISP เท่านั้นบนเว็บไซต์อย่างเป็นทางการที่นี่


ฉันเดาว่าฉันยังไม่ชัดเจนฉันได้แก้ไขคำถามเพื่อทำให้สิ่งนี้ชัดเจน: ฉันต้องการยกเลิก IDE ทั้งหมดไม่มากก็น้อย (ซึ่งหมายความว่าคุณต้องเรียนรู้ภาษาการเขียนโปรแกรมอื่นอย่างไรก็ตามเนื่องจากคุณได้โพสต์คำตอบแล้ว ฉันจะถามเป็นคำถามแยกต่างหาก
Manishearth

@Mearearth อ่าฉันจะแก้ไขมันเพื่อสะท้อนว่าถ้าคุณต้องการ จากนั้นอีกครั้งเราสามารถทำคำถามเพิ่มเติม ...
โพสต์

ฉันจะถามคนอื่นมันจะกว้างเกินไปถ้าฉันทำแบบนั้น
Manishearth

@Manishearth Ok :)
ขั้วโลก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.