มันค่อนข้างง่ายที่จะใช้ชิป Arduino แบบสแตนด์อโลน สิ่งหนึ่งที่ยุ่งยากเกี่ยวกับชิปที่ใช้สำหรับบอร์ดอย่างเป็นทางการคือพวกมันถูกหลอมรวมเพื่อใช้ออสซิลเลเตอร์ภายนอกที่รวดเร็ว (และแม่นยำยิ่งขึ้น) ที่ติดตั้งอยู่บนบอร์ด วิธีการนี้ใช้แม้ว่าคุณจะซื้อชิปหลวมเพราะส่วนใหญ่จะขายต่อโดยมีความตั้งใจที่จะติดตั้งในบอร์ด Arduino เพื่อแทนที่ชิปที่ถูกเบิร์นออกยกเว้นอาจเป็นชิปจาก Digikey
Caveats: Arduino ได้รับการออกแบบเป็นบอร์ดต้นแบบและบางสิ่งที่ทำได้ดีกว่าที่ทำในงานนี้ คุณอาจต้องการออกจากชิปบนบอร์ด Arduino จนกว่าคุณจะเสร็จสิ้นการออกแบบและทดสอบวงจรของคุณ คุณเท่านั้นจึงเชื่อมต่อโดยตรง มันสามารถใช้ในสถานที่ถ้าคุณมีวงจรนาฬิกาในสถานที่หรือคุณสามารถเปลี่ยนฟิวส์ (ดูในภายหลัง) และ reprogram Arduino กับอะแดปเตอร์ ISP และความเร็วสัญญาณนาฬิกา 8mhz (PlatformIO ช่วยให้คุณทำสิ่งนี้ ( และอนุญาตโดยตรง นำเข้าภาพร่าง Arduino) - ตรวจสอบหน้าเอกสารของพวกเขาสำหรับปลั๊กอิน Atmel AVR แต่คุณสามารถค้นหาคำแนะนำเกี่ยวกับวิธีเพิ่มไฟล์บอร์ดไปยัง Arduino เพื่อบอกให้ใช้ตัวเลือก 8mhz สำหรับชิปเปล่าได้)
หากคุณลบชิปเพื่อใช้ในวงจรที่แตกต่างกันก็ต้องการวงจรนาฬิกาที่เพิ่มเข้ามาใหม่หรือเปลี่ยนฟิวส์ (ฉันจะไปที่นั้นภายในหนึ่งนาที) นอกจากนี้ยังเป็นการยากที่จะเขียนโปรแกรมด้วยเหตุผลหลายประการดังนั้นคุณจะต้องซื้อฮาร์ดแวร์ราคาถูกสักหน่อย:
การเขียนโปรแกรมชิปแบบสแตนด์อโลน: CPU ของ Arduino ไม่ได้ออกแบบมาเพื่อพูดคุยกับคอมพิวเตอร์ คุณต้องมีคนกลาง บน Uno สิ่งนี้ทำได้ผ่าน Atmel ชิพที่สองที่มีความสามารถ USB และ bootloader บนชิปหลัก มันทำอะไรคือมันใช้ UART ในการอัพโหลดโปรแกรมในขณะที่ชิป USB แปลงข้อความของพีซีเป็นสัญญาณ UART เนื่องจาก bootloader ค่อนข้างเจ็บปวดเมื่อชิพอยู่ในตัวของมันเอง (เนื่องจาก UART นั้นจู้จี้จุกจิกและติดตั้งมันจึงทำให้ชิปนั้นใช้นาฬิกาภายนอกเป็นผล) คุณจะต้องซื้อ ISP โปรแกรมเมอร์สำหรับ Arduino (หรือ ทำตามภาพร่าง Arduino-as-ISP และคำแนะนำในการสร้างของคุณเองซึ่งต้องใช้ Arduino ที่มีชิปอยู่ดังนั้นคุณต้องมีโปรแกรมหนึ่งวินาที)
สิ่งเหล่านี้สามารถตั้งโปรแกรม ATMega 328 โดยตรงผ่าน SPI โดยไม่ต้องใช้ bootloader (มีคำแนะนำมากมายในอินเทอร์เน็ตและค้นหา "โปรแกรมเปลือย ATMega 328P พร้อม USBAsp" เป็นต้น) สิ่งนี้ทำให้ง่ายต่อการเปลี่ยนและดีบักโปรแกรมของคุณนอกเหนือจากการเปิดชิพออกและกลับเข้าสู่บอร์ด Arduino ต้นฉบับ คุณต้องเปลี่ยนการตั้งค่านาฬิกาหากคุณไม่ต้องการใช้คริสตัลภายนอก
ถ้าคุณต้องการที่จะแก้ปัญหาชิปมันมีประโยชน์ที่จะซื้ออะแดปเตอร์ FTDI หรือตัวแปลง USB เป็น UART อื่น ๆ โปรดทราบว่าหากไม่มีวงจรการรีเซ็ตส่วนหนึ่งของบอร์ด (หรือเพิ่มของคุณเองอีกครั้ง) สิ่งนี้จะไม่อนุญาตให้คุณตั้งโปรแกรม ATMega แม้ว่าจะมี bootloader ก็ตาม สำหรับการเชื่อมต่อกราวน์ RX และ TX กับอะแดปเตอร์ คุณอาจหรือไม่ต้องการเชื่อมต่อสาย VCC แต่ก็ไม่ควรทำเช่นนั้นหากมีสิ่งต่าง ๆ มากมายเชื่อมต่อกับชิปและ / หรือมีแหล่งจ่ายไฟของตัวเอง โปรดทราบว่าจำเป็นต้องสลับ RX และ TX เมื่อคุณเชื่อมต่อ นั่นคือ RX to TX และ TX ถึง RX - คุณต้องการชิปเพื่อ RX (รับ) อะแดปเตอร์คืออะไร TX (ส่ง) ไอเอ็นจีและในทางกลับกัน
วงจรนาฬิกานั้นไม่ยากที่จะสร้าง แต่มันต้องการส่วนประกอบบางอย่างที่คุณอาจไม่มี ดังนั้นหากต้องการเปลี่ยนแหล่งสัญญาณนาฬิกาให้ไปที่http://www.engbedded.com/fusecalc/และเลือก ATMega 328P ค่าเริ่มต้นนั้นดี แต่คุณอาจต้องการเปิดใช้งาน EEPROM แบบลบและปิดการใช้งานนาฬิกาหารด้วย 8 หรือปรับการตั้งค่า Brownout อย่าแตะต้องสิ่งอื่นใด (ปิดใช้งานการรีเซ็ตหรือ SPI หรือเปิดใช้งานผลลัพธ์ DebugWire ใน "สนุก" ที่ต้องใช้โปรแกรม HV เพื่อแก้ไข) เมื่อเสร็จแล้วให้วางคำสั่งที่ให้ไว้กับคำสั่ง AVRDude คุณจะต้องเปลี่ยนตัวเลือก -c (-p ถูกตั้งค่าเป็น ATMega 328P แล้ว แต่จะล้มเหลวสำหรับ non-P 328s - อย่าซื้อตัวเลือกเหล่านั้น) และอาจเพิ่มตัวเลือก -P (สำหรับพอร์ต) อย่าละเว้นตัวเลือกตัวพิมพ์เล็ก -u มิเช่นนั้นจะปฏิเสธที่จะอัพเดทฟิวส์
avrdude -p m328p -v -c usbasp -B 100 -u [add extras here: (-P <PORT>) <fuse set command here>]
โปรดทราบว่าหากคุณซื้อ USBASP (ตรวจสอบให้แน่ใจว่ามีจัมเปอร์สามชุด!) สำหรับสิ่งที่พวกเขาเป็นโปรแกรมเมอร์ตัวโปรดของฉันพวกเขาอาจไม่มีเฟิร์มแวร์ที่อัปเดตซึ่งรองรับตัวเลือก -B (ซึ่งคุณอาจต้องการ) นั่นหมายความว่าคุณต้องแนบมันเข้ากับ Arduino ผ่านพอร์ตการเขียนโปรแกรมหกพินในลักษณะเดียวกับที่คุณใช้เพื่อเขียนโปรแกรม bootloader ของ Arduino แต่ใช้ร่าง Arduino-as-ISP เพื่อเขียนโปรแกรมใหม่ เฟิร์มแวร์สำหรับโปรแกรมเมอร์ (ค้นหา "อัปเดตเฟิร์มแวร์ usbasp ผ่าน arduino-as-isp")! สำหรับการอ้างอิงซึ่งมักจะหมายความว่าสายเคเบิลหันหน้าออกห่างจากร่างกายของบอร์ดและคุณอาจต้องเขียนโปรแกรมสเก็ตช์ก่อนเชื่อมต่อสายเคเบิล นอกจากนี้ยังเปิดใช้งานจัมเปอร์ไฟจากโปรแกรมเมอร์บน USBASP (5V) และ "โปรแกรมตัวเอง" หนึ่ง (ดูhttps://forum.arduino.cc/index.php?topic=560719.0สำหรับตำแหน่งของกำลังและโปรแกรมจัมเปอร์โปรแกรม (JP2))