DIY ขั้นต่ำ atmega8 การสร้าง Arduino ตั้งแต่เริ่มต้น การอัพโหลดโปรแกรมลงกุ้ง

นักวิทยุสมัครเล่นหลายคนเริ่มคุ้นเคยกับไมโครคอนโทรลเลอร์ผ่าน Arduino ผู้ใช้ mysku ส่วนใหญ่รู้เกี่ยวกับนักออกแบบอิเล็กทรอนิกส์รายนี้และเป็นแพลตฟอร์มที่สะดวกสำหรับการพัฒนาอุปกรณ์อิเล็กทรอนิกส์อย่างรวดเร็วดังนั้นฉันจะไม่อาศัยข้อดีและข้อเสียของแพลตฟอร์มนี้

การตรวจสอบจะอธิบายความเป็นไปได้ของการใช้ Arduino เป็นโปรแกรมเมอร์ (ดูด้านล่างสำหรับ Arduino ISP) เผื่อใครสนใจดูแมวได้นะครับ

หลังจากเล่นโมดูลต่างๆ สำหรับ Arduino มามากพอแล้ว ฉันมีความปรารถนาที่จะสร้างอุปกรณ์ที่ครบครันซึ่งจะมีประโยชน์ในชีวิตประจำวัน
หลังจากบังเอิญพบกับโปรเจ็กต์บนอินเทอร์เน็ต ฉันจึงตัดสินใจลองทำซ้ำ

หลังจากอ่านคำอธิบายของโครงการแล้ว ปัญหาหลักสำหรับฉันหรืออย่างที่พวกเขาพูดกันคือข้อผิดพลาด:
- การสร้างแผงวงจรพิมพ์
- เฟิร์มแวร์สำหรับไมโครคอนโทรลเลอร์ Atmega8A ในแพ็คเกจ TQFP-32

ก่อนหน้านี้ ฉันไม่ได้แกะสลักบอร์ดแม้แต่ตัวเดียวและกระพริบเฉพาะไมโครคอนโทรลเลอร์ที่ติดตั้งใน Arduino ในแพ็คเกจ DIP เท่านั้น

Atmega8 ในแพ็คเกจ TQFP-32 นอกเหนือจากข้อดีอื่นๆ อีกมากมาย ราคาถูกและขนาดที่เล็กกว่าเมื่อเทียบกับ DIP ก็มีข้อเสียเช่นกัน - การแฟลชเฟิร์มแวร์ไมโครคอนโทรลเลอร์และการติดตั้งบนบอร์ดที่ซับซ้อนกว่านั้นไม่สะดวก

ข้อเสียเปรียบประการแรกสามารถกำจัดได้ วิธีทางที่แตกต่าง:
- ซื้ออะแดปเตอร์ TQFP32 TO DIP32 ที่มีกลไกการจับยึด ราคาประมาณ 1,000 รูเบิล;
- ซื้ออะแดปเตอร์ TQFP32 TO DIP32 ซึ่งไม่มีกลไกการหนีบและออกแบบมาเพื่อบัดกรีไมโครคอนโทรลเลอร์ ราคาประมาณ 100 รูเบิลต่อ 5 ชิ้น
- สร้างอะแดปเตอร์แผงวงจรพิมพ์ TQFP32 TO DIP32 ด้วยมือของคุณเอง
- บัดกรีลวดเส้นเล็กเข้ากับขาที่ต้องการแล้วคลายออกหลังจากกระพริบ

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

สามารถดาวน์โหลดไฟล์ต้นฉบับสำหรับ Sprint Layout ได้

บัดกรี Atmega8 ด้วยเครื่องเป่าผมหรือหัวแร้ง คุณสามารถ "คว้า" เพียง 8 ขาที่เกี่ยวข้องกับเฟิร์มแวร์ ฉันไม่แนะนำให้ใช้ที่หนีบต่างๆ หรือ “การทำฟาร์มรวม” กับที่หนีบผ้า

เราเชื่อมต่อ Arduino Uno เข้ากับคอมพิวเตอร์ผ่าน USB และดาวน์โหลดร่าง Arduino ISP การคอมไพล์และแฟลช Arduino Uno ในความคิดเห็นมีคำแนะนำในการเชื่อมต่อเฟิร์มแวร์ผ่าน Arduino ISP เราจะต้องใช้พิน MOSI, MISO, RESET, GND, GND, VCC, VCC, SCK

// ชื่อพิน: ไม่ใช่เมกะ: เมกะ (1280 และ 2560) // รีเซ็ตทาส: 10: 53 // MOSI: 11: 51 // MISO: 12: 50 // SCK: 13: 52

โครงการทั่วไปการเชื่อมต่อจะมีลักษณะดังนี้:

สำหรับเฟิร์มแวร์เราจะใช้ยูทิลิตี้คอนโซล:

Avrdude -p m8 -P USB15 -c arduino -b 19200 -U lfuse:w:0xE4:m -U hfuse:w:0xDA:m -U แฟลช:w:main.hex

โดยที่ -p m8 - ไมโครคอนโทรลเลอร์ที่จะแฟลชในกรณีของเราคือ Atmega8
-P USB15 - ชื่อของพอร์ตที่กำหนดโปรแกรมเมอร์ Arduino ISP
- พร้อม Arduino - ประเภทโปรแกรมเมอร์;
-b 19200 - ความเร็วพอร์ต USB;
-U แฟลช:w:main.hex - เฟิร์มแวร์;
-U ฟิวส์:w:0xE4:m -U ฟิวส์:w:0xDA:m - ฟิวส์

หลังจากแฟลชสำเร็จแล้ว คุณสามารถเปรียบเทียบโค้ดแฟลชกับไฟล์ hex ต้นฉบับเพิ่มเติมได้:

Avrdude -p m8 -P USB15 -c arduino -b 19200 -U แฟลช:v:main.hex

หากคุณไม่มี Arduino คุณสามารถใช้เป็นโปรแกรมเมอร์ราคาถูกได้ ราคาประมาณ 100 รูเบิล

โดยสรุปผมจะแสดงรูปถ่ายอุปกรณ์ที่ผมประกอบตามโครงการ ClusterM ให้คุณดู

ภาพถ่าย




ลักษณะเฉพาะ:
- การจำลอง iButton/Cyfral/Metacom;
- อ่าน iButton/Cyfral;
- การซิงโครไนซ์ฐานข้อมูลคีย์กับคอมพิวเตอร์ผ่าน USB
- ขนาดกระดานกะทัดรัด
- การใช้พลังงานต่ำผู้เขียนโครงการรายงานว่าอุปกรณ์ใช้งานได้ประมาณหนึ่งปีโดยใช้แบตเตอรี่หนึ่งชุด

เพื่อทำงานร่วมกับไมโครคอนโทรลเลอร์ ATmega8 หรือด้วย อุปกรณ์อาร์ดูโน่บน ATmega8 ในสภาพแวดล้อมการพัฒนา Arduino จะต้องกำหนดค่าโปรแกรม Arduino คุณต้องเพิ่มพารามิเตอร์ของอุปกรณ์ที่รองรับบนไมโครคอนโทรลเลอร์ ATmega8 ลงในไฟล์ hardware/arduino/boards.txt

อาจจำเป็นต้องเพิ่มไฟล์ bootloader ลงในโฟลเดอร์ hardware/arduino/bootloaders/optiboot

ไมโครคอนโทรลเลอร์ ATmega8 สามารถทำงานที่ความถี่ 0-16 MHz ที่แรงดันไฟฟ้า ~5V และ ATmega8L ที่ความถี่ 0-8 MHz และ ATmega8A ที่ความถี่ 0-16 MHz ในช่วงแรงดันไฟฟ้าที่กว้าง นี่เป็นไปตามหนังสือเดินทาง แต่ในทางปฏิบัติที่แรงดันไฟฟ้า 5V ไมโครคอนโทรลเลอร์ทั้งหมดของซีรีย์ ATmega8 สามารถทำงานที่ความถี่ 16 MHz พร้อมอุปกรณ์ภายนอก เครื่องสะท้อนควอทซ์และที่ความถี่ 8, 4, 2, 1 MHz พร้อมออสซิลเลเตอร์ภายใน

มีตัวเลือกบอร์ด Arduino ที่ใช้ไมโครคอนโทรลเลอร์ ATmega8 นี่คือ Arduino NG สภาพแวดล้อมการพัฒนา Arduino (Arduino IDE) พร้อมที่จะทำงานกับไมโครคอนโทรลเลอร์ ATmega8 แต่มีอุปกรณ์เพียงตัวเดียว - บอร์ด Arduino NG พร้อมไมโครคอนโทรลเลอร์ ATmega8 ที่ 16 MHz พร้อมคริสตัลภายนอก นี่คือสิ่งที่เกิดขึ้นใน Arduino v. 1.0.6. นอกจากนี้ Arduino NG ยังมี bootloader ที่ไม่เหมาะสมที่สุดและที่สำคัญที่สุดคือไม่สะดวก

เพื่อให้สามารถตั้งโปรแกรมไมโครคอนโทรลเลอร์ ATmega8 ที่ทำงานที่ความถี่ที่แตกต่างกันโดยมีและไม่มีตัวสะท้อนควอทซ์ได้ คุณจะต้องทำการเปลี่ยนแปลงในไฟล์ hardware/arduino/boards.txt ตัวอย่างเช่น คุณสามารถเพิ่มส่วนต่อไปนี้ลงไปได้:

# http://optiboot.googlecode.com # http://homes-smart.ru/index.php/oborudovanie/arduino/avr-zagruzchik ################## ########################################################################## atmega8o.name = atmega8 (Optiboot 16MHz ext) atmega8o.upload.protocol = arduino atmega8o.upload.maximum_size = 7680 atmega8o.upload.speed = 115200 atmega8o.bootloader.low_fuses = 0xbfa Loader.Path = Optiboot 50 atmega8o.bootloader ไฟล์ = Optiboot_atmega8.hex atmega CPU = 160000l Atmega8o.Build.core = arduino: arduino atmega8o.build.variant = arduino: มาตรฐาน ################### ############################## ############# a8_8MHz.name=ATmega8 (optiboot 8 MHz int) a8_8MHz.upload.protocol=arduino a8_8MHz.upload.maximum_size=7680 a8_8MHz.upload.speed=115200 a8_8MHz.bootloader.low_fuses =0xa4 a8_8MHz.bootloader.high_fuses=0xdc a8_8MHz.bootloader.path=optiboot a8_8MHz.bootloader ไฟล์=a8_8MHz_a4_dc.hex a8_8MHz.build.mcu=atmega8 a8_8MHz.build.f_cpu=8000000L a8_8MHz.build.core=ard uino a8_8MHz.build. ตัวแปร=มาตรฐาน ################ ################################# ############### a8_1MHz. ชื่อ=ATmega8 (ออปติบูต 1 MHz int) a8_1MHz.upload.protocol=arduino a8_1MHz.upload.maximum_size=7680 a8_1MHz.upload.speed=9600 a8_1MHz.bootloader .low_fuses=0xa1 a8_1MHz.bootloader.high_fuses=0xdc a8_1MHz.bootloader.path= optiboot a8_1MHz.bootloader.file=a8_1MHz_a1_dc.hex a8_1MHz.build.mcu=atmega8 a8_1MHz.build.f_cpu=1000000L a8_1M Hz.build.core=arduino a8_1MHz. build.variant=มาตรฐาน ########### ################################### ################ ## a8noboot_8MHz.name=ATmega8 (ไม่มีการบูต 8 MHz int) a8noboot_8MHz.upload.maximum_size=8192 a8noboot_8MHz.bootloader.low_fuses=0xa4 a8noboot_8MHz.bootloader.high_fuses=0xdc a8noboot_8MHz.build.mcu=atmega8 a8noboot_8MHz.build.f_cpu=800 0000L a8noboot_8MHz .build.core=arduino a8noboot_8MHz.build.variant=มาตรฐาน ##################### ############### #########################

ตอนนี้อุปกรณ์ต่อไปนี้จะปรากฏในโปรแกรม Arduino ในเมนูเครื่องมือ / บอร์ด:

  • ATmega8 (ออปติบูต 16MHz ต่อ)
  • ATmega8 (ออปติบูต 8 MHz int)
  • ATmega8 (ออปติบูต 1 MHz int)
  • ATmega8 (ไม่มีการบูต 8 MHz int)

อุปกรณ์สามตัวแรกบนไมโครคอนโทรลเลอร์ ATmega8 มี bootloader ได้แก่ เข้ากันได้กับ Arduinoและคุณสามารถโหลดภาพร่าง (โปรแกรม) จากสภาพแวดล้อมการพัฒนา Arduino ลงไปได้โดยตรง อุปกรณ์ที่สี่ไม่มี bootloader อาจเป็นชิป ATmega8 แยกต่างหาก ใน ATmega8 (ไม่มีการบูต 8 MHz int) ภาพร่างจากโปรแกรม Arduino สามารถโหลดผ่านโปรแกรมเมอร์ รวมถึงผ่านโปรแกรมเมอร์ที่ใช้บอร์ด Arduino

ATmega8 (optiboot 16MHz ต่อ) ทำงานร่วมกับเครื่องสะท้อนเสียงควอตซ์ภายนอก และอุปกรณ์อื่นๆ ที่มีออสซิลเลเตอร์ภายใน

พารามิเตอร์ในไฟล์ hardware/arduino/boards.txt จะกำหนดบิตฟิวส์ เส้นทางไปยังไฟล์ bootloader ประเภทของไมโครคอนโทรลเลอร์ และความถี่ บิตฟิวส์จะถูกเขียนลงในไมโครคอนโทรลเลอร์ (มีหรือไม่มีบูตโหลดเดอร์) เมื่อคุณเลือกรายการเมนู เครื่องมือ / เบิร์นบูตโหลดเดอร์. บิตฟิวส์จะกำหนดความถี่ที่ไมโครคอนโทรลเลอร์ของคุณจะทำงานและพารามิเตอร์ที่สำคัญอื่นๆ รวมถึงพารามิเตอร์ที่ขึ้นอยู่กับประสิทธิภาพ ความสามารถในการตั้งโปรแกรมใหม่ และอื่นๆ

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

  • เมื่ออัพโหลดภาพร่าง
    • ความถี่ที่ไม่เหมาะสม - นำไปสู่การเปลี่ยนแปลงความเร็วของโปรแกรม
    • โปรเซสเซอร์ที่ไม่เหมาะสม - ส่งผลให้โปรแกรมใช้งานไม่ได้
  • เมื่อบันทึก bootloader
    • ความถี่ที่ไม่เหมาะสม - อาจทำให้ไมโครคอนโทรลเลอร์ในระบบนี้ใช้งานไม่ได้
    • โปรเซสเซอร์ที่ไม่เหมาะสม (ฟิวส์) - ปิดกั้นไมโครคอนโทรลเลอร์

โปรดทราบว่าการกระทำที่ไม่ถูกต้องของคุณอาจทำให้ไมโครคอนโทรลเลอร์เสียหายได้ซึ่งคุณจะต้องใช้โปรแกรมเมอร์ในการกู้คืน

Bootloader สำหรับไมโครคอนโทรลเลอร์ ATmega8

สามารถดาวน์โหลด Optiboot bootloaders สำหรับความถี่การทำงานต่างๆ ของไมโครคอนโทรลเลอร์ได้จากเว็บไซต์ Bootloader Designer

Bootloaders Optiboot คือการพัฒนาบูตโหลดเดอร์อิสระฟรีที่นักพัฒนา Arduino ยอมรับ Optiboot ได้รับการออกแบบมาเพื่อใช้ใน Arduino รุ่นต่างๆ และสำหรับรุ่นต่างๆ ไมโครคอนโทรลเลอร์ Atmel. ความแตกต่างที่สำคัญระหว่าง Optiboot bootloader และคู่แข่งคือขนาดโค้ดที่ลดลงถึงสี่เท่า ลดความล่าช้าที่ไร้ประโยชน์ในการทำงานของไมโครคอนโทรลเลอร์ ความเร็วสูงการอัปโหลดภาพร่างจากคอมพิวเตอร์ของคุณ

วางไฟล์ bootloaders ในโปรแกรม Arduino ตามสิ่งที่เขียนไว้ในไฟล์ hardware/arduino/boards.txt ตัวอย่างเช่น สำหรับอุปกรณ์ ATmega8 (optiboot 16MHz ext) ไฟล์ bootloader จะต้องอยู่ในโฟลเดอร์ hardware/arduino/bootloaders/optiboot50 และชื่อไฟล์จะต้องเป็น optiboot_atmega8.hex

EGYDuino เป็นโคลน Arduino ที่คุณสามารถสร้างเองได้จากด้านเดียว แผงวงจรพิมพ์. นี่เป็นวิธีแก้ปัญหาที่ง่ายและราคาถูกที่สามารถทำได้ที่บ้าน และเข้ากันได้กับ Arduino 100%

คำอธิบาย

ไมโครคอนโทรลเลอร์ ATmega8 รับผิดชอบการเชื่อมต่อแบบอนุกรมผ่าน USB สามารถโปรแกรมโดยใช้ . AVR-CDC สร้างพอร์ต COM เสมือนบนพีซีหลังจากเชื่อมต่ออุปกรณ์และติดตั้งไดรเวอร์ที่เหมาะสม ไมโครคอนโทรลเลอร์ ATmega 8.168 ควรตั้งโปรแกรมโดยใช้ ArduinoNG boatloader การดำเนินการนี้สามารถทำได้โดยใช้บอร์ด Arduino อื่น (เลือกโปรแกรมเมอร์ ISP) และ Arduino IDE หรือโปรแกรมเมอร์แยกต่างหาก (USB, อนุกรมหรือขนาน) เช่น USBasp ที่มีความเหมาะสม ซอฟต์แวร์. คุณยังสามารถใช้ bootloader ได้ อาร์ดูโน่ดูมิลาโนเวสำหรับ ATmega 168 หรือ 328

บอร์ดมีลักษณะดังต่อไปนี้:

ใช้ไมโครคอนโทรลเลอร์ ATmega8 เป็นอินเทอร์เฟซ IC
- การเชื่อมต่อ USB เข้ากับพีซี
- ปุ่มรีเซ็ตมาตรฐาน
- พิน 100% เข้ากันได้กับ Arduino
- ตัวควบคุม 5V
- เอาต์พุต 3.3V
- ขนาดและการออกแบบที่เข้ากันได้
- ส่วนประกอบทั้งหมดถูกแทรกเข้าไปในรูยึดทะลุบนบอร์ด
- สวิตช์ไฟ USB หรือ DC
- LED สำหรับขา PIN13 พร้อม Jumper
- ไฟ LED พาวเวอร์
- ขั้วต่อ ICSP
- ง่ายต่อการผลิต
- ไมโครคอนโทรลเลอร์ ATmega8,168,328 โดยใช้ bootloader arduinoNG
- ปลั๊กไฟ DC มาตรฐาน

บอร์ด EGYDuino สามารถจ่ายไฟผ่านขั้วต่อ USB หรือตัวควบคุมแรงดันไฟฟ้าของอะแดปเตอร์ภายนอก

โครงการ

แผนภาพวงจรที่สมบูรณ์ของอุปกรณ์แสดงอยู่ด้านล่าง

แผงวงจรพิมพ์

รายชื่อธาตุกัมมันตภาพรังสี

การกำหนด พิมพ์ นิกาย ปริมาณ บันทึกร้านค้าสมุดบันทึกของฉัน
ไอซี1 ไมโครคอนโทรลเลอร์ATmega8-P1 ไปยังสมุดบันทึก
ไอซี2 MK AVR 8 บิต

ATmega328

1 ไปยังสมุดบันทึก
ไอซี3 ตัวควบคุมเชิงเส้น

LM7805

1 ไปยังสมุดบันทึก
D1 ไดโอดเรียงกระแส

1N4001

1 ไปยังสมุดบันทึก
D2, D3 ซีเนอร์ไดโอด3.6 โวลต์2 ไปยังสมุดบันทึก
C1, C2, C5, C6 ตัวเก็บประจุ22 พิโคเอฟ4 ไปยังสมุดบันทึก
ค3 ตัวเก็บประจุ1,000 พิโคเอฟ1 ไปยังสมุดบันทึก
C4, C7, C10 ตัวเก็บประจุ0.1 µF3 ไปยังสมุดบันทึก
เอส8, เอส9 ตัวเก็บประจุด้วยไฟฟ้า100 µF2 ไปยังสมุดบันทึก
R1, R2 ตัวต้านทาน

68 โอห์ม

2 ไปยังสมุดบันทึก
R3 ตัวต้านทาน

1.5 โอห์ม

1 ไปยังสมุดบันทึก
อาร์4, อาร์6 ตัวต้านทาน

10 kโอห์ม

2 ไปยังสมุดบันทึก
R5 ตัวต้านทาน

1 โอห์ม

1 ไปยังสมุดบันทึก
R7 ตัวต้านทาน

470 โอห์ม

1 ไปยังสมุดบันทึก
ไตรมาสที่ 1, ไตรมาสที่ 2 เครื่องสะท้อนควอตซ์16 เมกะเฮิรตซ์2 ไปยังสมุดบันทึก
LED1 ไดโอดเปล่งแสงสีแดง1

มาเริ่มกันเลย!

ขั้นตอนที่ 1.บทนำ


คำถามทำอย่างไรและต้องทำอย่างไรและทำไมฉันถึงต้องการโดยทั่วไป?

หลังจากอ่านข้อมูลมากมายเกี่ยวกับ Arduino...ตั้งแต่การสร้างลูกบาศก์ LED ไปจนถึงการสร้างบ้านอัจฉริยะ ไปจนถึงการสร้างโดรนบินได้...
คุณเช่นเดียวกับฉันเริ่มมองหาข้อมูลที่ยอมรับได้ไม่มากก็น้อยเกี่ยวกับการผลิตบอร์ดอันยิ่งใหญ่นี้
“ให้ตายเถอะ ฉันต้องการมัน!” หรือ "ฉันต้องการทำสิ่งนี้ ตอนนี้เลย" และแอปพลิเคชันที่เป็นไปได้ทั้งหมดของอุปกรณ์นี้ก็หมุนวนอยู่ในหัวของฉัน
มือของคุณเริ่มมองหาชิ้นส่วนสำหรับบอร์ดไปที่อินเทอร์เน็ตและที่นั่น:
ARDUINO เพียง 25$
นั่นคือทั้งหมดที่
การรวมกันทั้งหมดหลุดออกจากหัวของฉัน
ความสิ้นหวัง.
คุณไม่รู้ว่าจะมีชีวิตอยู่ต่อไปได้อย่างไร
แล้วคุณมาเจอเว็บไซต์นี้!
คุณรอดแล้ว!
ท้ายที่สุดตอนนี้เราจะประกอบบอร์ดที่รองรับ ARDUINO ภายใน 15 นาทีและในราคาเพียงประมาณ 300 รูเบิล!

ขั้นตอนที่ 2 รับทันที!


คุณต้องการส่วนประกอบเหล่านี้:
-กระดานขนมปัง
-ATMega 328(หมายเหตุผู้แปล: สามารถใช้ ATMega 8.168 ได้)
- บอร์ด Arduino พร้อมแล้ว (* และนักแปลอีกครั้ง - แทนที่จะเป็น Arduino คุณสามารถใช้โปรแกรมเมอร์ใดก็ได้แม้แต่ "5 สาย")
-1 ตัวสะท้อนที่ 16 MHz
-3 ตัวต้านทานต่อ 100 โอห์ม
-1 ตัวต้านทานต่อ 10kOhm
-2 ตัวเก็บประจุที่ 22pF
-3 LEDs (แดง เหลือง และเขียว)
-แบตเตอรี่ชนิดโครนา 1 ก้อน (9 โวลต์) พร้อมส่วนผสมพันธุ์
-สายยูเอสบี
-1 ตัวปรับแรงดันไฟฟ้า "Krenka"
- คอมพิวเตอร์ แล็ปท็อป ที่ติดตั้ง Arduino IDE
นั่นคือทั้งหมดที่

ขั้นตอนที่ 3 เริ่มการประกอบ


นำเขียงหั่นขนมและยึดไมโครคอนโทรลเลอร์ไว้เพื่อไม่ให้ขาปิด (ควรยืนเหนือ "ร่อง")

ขั้นตอนที่ 4 การเชื่อมต่อข้อเหวี่ยง

วาง Krenka บนเค้าโครงถัดจาก MK
พินเอาท์ของ Krenki:
-VCC (แหล่งจ่ายไฟภายนอก)
-GND (กราวด์ผู้ติดต่อทั่วไป)
-เอาท์พุท
เชื่อมต่อสายสีดำเข้ากับ GND เชื่อมต่อปลายอีกด้านเข้ากับบัส "GND" บนเขียงหั่นขนม
เชื่อมต่อ VCC เข้ากับพาวเวอร์ + บัสบนเขียงหั่นขนม
และโยน Output ไปยังตำแหน่งที่จ่ายไฟให้กับชิป

ขั้นตอนที่ 5 เราจ่ายพลังงานให้กับ MK


ลองดูที่ pinout ให้ดีเอทีเมก้า.
เชื่อมต่อเอาต์พุตของ CRANKS และ GND ของเขียงหั่นขนม ตามลำดับ เข้ากับเอาต์พุต (7 และ 20 พิน) และ GND (8 และ 22 พิน) ของ MK

ขั้นตอนที่ 6 เพิ่มความแม่นยำ



เชื่อมต่อตัวเก็บประจุ 22pF ระหว่าง GND และพิน 9 ของ ATMega
และตัวเก็บประจุตัวที่สองระหว่างพินที่ 10 ของ ATMega และกราวด์อีกครั้ง
เพิ่มตัวต้านทาน 10k Ohm ระหว่าง 5v ถึง RESET (1 พิน)

ขั้นตอนที่ 7 เพิ่มไฟ LED

เสียบสายไฟที่ใดก็ได้บนกระดาน
เชื่อมต่อตัวต้านทาน 100 โอห์มเข้ากับปลายด้านหนึ่งของสายไฟ (ดูรูป)
เชื่อมต่อขายาวของไดโอดสีเหลือง (+) เข้ากับปลายอีกด้านของตัวต้านทาน
ต่อขาสั้น (-) เข้ากับพื้น
ทำซ้ำสำหรับไดโอดสีแดงและสีเขียว

ขั้นตอนที่ 8 เชื่อมต่อทั้งหมดนี้กับ ARDUINO
เรามาไกลแล้ว!

เชื่อมต่อไดโอดสีเหลืองเข้ากับขา 9 ของ Arduino
ไดโอดสีเหลืองแสดงถึงการทำงานของโปรแกรมเมอร์
เชื่อมต่อไดโอดสีแดงเข้ากับขา 8 ของ Arduino
มันจะสว่างขึ้นหากมีอะไรผิดพลาด
และต่อไดโอดสีเขียวเข้ากับขา 7
มันแสดงสถานะการโหลดของ bootloader
เชื่อมต่อสายไฟ 4 เส้น (3 สีเหลืองและสีเขียวในภาพ) เข้ากับหมุด ATMega บนเขียงหั่นขนม (ดูรูป)
จากนั้นต่อสายเหล่านี้ไปที่ 10-13 พินของ Arduino
อย่าลืมเชื่อมต่อ 5 และ GND ของ Arduino และเขียงหั่นขนม!

ขั้นตอนที่ 9.การเขียนโปรแกรม
วุ้ย เราต้องโหลด bootloader แล้ว
คุณถามอย่างไร?
อัคแบบนั้น!
1) เปิด Arduino IDE
2) เลือกไฟล์-ตัวอย่าง-Arduino ISP
3) รวบรวมภาพร่างและอัปโหลดไปยัง Arduino
หลังจากอัปโหลดภาพร่างแล้ว คุณจะเห็นว่าไดโอดสีเหลืองเริ่มกะพริบ
ตอนนี้เพิ่มตัวต้านทาน 100 โอห์มระหว่างกราวด์และการรีเซ็ต Arduino

ขั้นตอนที่ 10 เติม bootloader จริง ๆ


ใน Arduino IDE ให้เลือก:
Tools-Board-Arduino Duemilkanove พร้อม AtMega 328 (* หากคุณไม่ได้ใช้ AtMega 328 ให้ค้นหาในรายการรุ่นที่มีคอนโทรลเลอร์ที่คุณติดตั้งไว้)
เครื่องมือ-โปรแกรมเมอร์-Arduino เป็น ISP
และอีกครั้งในเมนูเครื่องมือ ไปและคลิก “Burn Bootloader”
เฟิร์มแวร์จะเริ่มต้นขึ้น (ใช้เวลาประมาณหนึ่งนาที)
“เสร็จสิ้นการเบิร์น Bootloader” จะปรากฏขึ้นบนหน้าจอ

หากมีอะไรผิดพลาดไดโอดสีแดงจะสว่างขึ้นไม่ทำงาน ติดต่อเรา ทางข้อความส่วนตัวหรือที่ [ป้องกันอีเมล].
Voila! คุณมี Arduino ของคุณเอง!
มีความสุขในการทำงาน!

อาร์ดูโน่. อุปกรณ์ที่ทุกคนรู้จักและเป็นที่รักของหลาย ๆ คนได้รับความนิยมอย่างมากจนแม้แต่เด็กเล็ก ๆ ก็ยังพยายามเขียนภาพร่างก่อนเกิด ภัยคุกคาม นี่คือการล้อเล่น... กล่าวโดยสรุป ฉันไม่ต้องการที่จะล้าหลัง และในบทความนี้ ฉันจะบอกวิธีเปลี่ยนบอร์ดขยาย ATmega8A ให้เป็น Arduino ผู้ที่ไม่ทราบว่าค่าธรรมเนียมนี้คืออะไรสามารถอ่านได้ ใช่ฉันเข้าใจ หลายคนจะบอกว่าโฮมเมดอยู่ที่ไหน? สิ่งที่เกี่ยวกับ DIY ก็คือ คุณต้องการเพียงไม่กี่อย่างสำหรับ Arduino ที่แรกก็คือไมโครคอนโทรลเลอร์ เพื่อความถูก ATmega8 จะไปครับ อย่างที่สองคือควอตซ์ที่ 16 MHz ที่สาม - คอนเดนเซอร์เซรามิก 22pf สองตัว และประการที่สี่ - ตัวแปลง USB TTL อันใดก็ได้ ในการประกอบคุณต้องติดควอตซ์เข้ากับขา MK XTAL1 และ XTAL2 ติดคอนเดอร์สองตัวไว้ที่ขาเดียวกัน แล้วแนบขาอีกข้างกับพื้น เท่านี้ก็เรียบร้อย

ตอนนี้เรามาดูการปฏิบัติจริงกันดีกว่า เราจะเปลี่ยนบอร์ดดีบั๊กเป็น Arduino แต่การกระทำทั้งหมดใช้ได้กับ MK แบบธรรมดา ควอตซ์ และคอนเดนเซอร์สองสามตัว ไปกันเลย
ควอทซ์เริ่มต้นบนบอร์ดขยายคือ 7.3728 MHz สิ่งนี้จะไม่ทำงานสำหรับ Arduino เราก็เลยเอามาเปลี่ยนเป็น 16 MHz

ต่อไปเราต้องอัปโหลด bootloader ไปยังบอร์ดของเรา ในการทำเช่นนี้ให้ใช้บอร์ด Arduino ใดก็ได้ อยู่ภายใต้ มือ Arduinoอูโน่ หากคุณยังไม่มี Arduino ก็ถึงเวลาซื้อแล้ว คุณสามารถซื้อได้ในร้าน Chip Resistor ดังนั้นเราจึงมี Arduino UNO เราวาง Arduino UNO ไว้ข้างหน้าเราทางด้านขวาของโต๊ะ และบอร์ดขยาย ATmega8A ทางด้านซ้าย ทางด้านขวาของบอร์ดจะมีตัวเชื่อมต่อ ISP พร้อมด้วยพินเอาท์ Atmel แบบคลาสสิก

คุณสามารถใช้สายไฟและเชื่อมต่อขั้วต่อเหล่านี้แบบตัวต่อตัวได้ ยกเว้นพิน 5


ตอนนี้เราใช้สายไฟแล้วสอดปลายด้านหนึ่งเข้าไปในพินที่ 5 บนบอร์ดขยาย ATmega8A และปลายอีกด้านเข้าไปใน Arduino UNO Digital 10 พิน มันควรจะเป็นเช่นนี้

เป็นผลให้หลังจากการยักย้ายทั้งหมดเราควรมีรูปลักษณ์นี้

หากทุกอย่างเรียบร้อยดีเราจะเชื่อมต่อ คอมพิวเตอร์ยูเอสบี. ที่ การเชื่อมต่อที่ถูกต้องไฟ LED บน Arduino UNO และไฟ LED สีแดงบนบอร์ดส่วนขยาย ATmega8A ควรสว่างขึ้น (น่าเสียดายที่ในภาพสายไฟปิดกั้น LED แต่เชื่อฉันเถอะว่ามันเปิดอยู่)

มาดูขั้นตอนซอฟต์แวร์กันดีกว่า และนี่คือการตั้งค่าครั้งใหญ่จากผู้ผลิต Arduino ที่รอคอยแฟน ๆ ของ ATmega8 MK ทุกคน ปัจจุบัน IDE เวอร์ชัน 1.6.3 ไม่รองรับไมโครคอนโทรลเลอร์เหล่านี้ อย่างแม่นยำมากขึ้น ไฟล์การกำหนดค่ามี bootloader ด้วย แต่คุณไม่สามารถอัพโหลดได้ ความจริงก็คือ Arduino เปลี่ยนไปใช้ไมโครคอนโทรลเลอร์ ATmega328P ขั้นต่ำและการติดเชื้อนี้มี Extended Byte Fuse แต่แปดสกปรกไม่ใช่ เนื่องจากอึนี้ bootloader จึงไม่โหลด แต่จะบ่นว่าไม่มีบิตเหล่านี้ ดังนั้นคุณต้องอัปโหลดโปรแกรมโหลดบูต เวอร์ชั่นเก่าไอดี หากคุณไม่มีคุณสามารถดาวน์โหลดได้จากฉัน นี่คือเวอร์ชัน 1.0.3 และไม่จำเป็นต้องติดตั้ง เพียงแตกไฟล์มันที่ไหนสักแห่งแล้วก็แค่นั้น จากนั้นเพียงเรียกใช้โปรแกรมจากโฟลเดอร์นี้ ตอนนี้เรามาตั้งค่าโปรแกรมสำหรับเติม MK ของเรากันดีกว่า ขั้นแรก ให้เลือกโปรแกรมเมอร์จากตัวอย่าง ArduinoISPและอัปโหลดไปยัง Arduino UNO หรืออะไรก็ตามที่คุณใช้อยู่

หลังจากเติมแล้วคุณจะต้องเปลี่ยนบอร์ด Arduino UNO หรืออะไรก็ตามที่คุณมีอยู่ Arduino NG หรือเก่ากว่าที่มี ATmega8.

ทั้งหมด. คุณสามารถกรอกได้ คลิก เครื่องมือ -> เบิร์น bootloaderและรอให้การบันทึกเสร็จสิ้น

พร้อม. Arduino ถือกำเนิดขึ้น เราถอดสายไฟทั้งหมดออกและแขวนบอร์ดขยายไว้บนบอร์ดดีบัก GSMBOARD 1.1 จากนั้นนำบอร์ดขยาย USB-TTL และเชื่อมต่อสายไฟ GND - GND, RXD - TXD, TXD - RXD และแหล่งจ่ายไฟ ไฟ LED สีเขียวควรสว่างขึ้น

หากทุกอย่างใช้งานได้ ให้ปิดโปรแกรมเก่าแล้วเปิดโปรแกรมตัวผู้ รุ่นล่าสุด. วันนี้เป็น 1.6.3 และเรากำลังเขียนโค้ดต่อไปนี้ การตั้งค่าเป็นโมฆะ () ( pinMode (2, OUTPUT); ) void loop () ( digitalWrite (2, HIGH); ล่าช้า (2000); digitalWrite (2, LOW); ในขณะที่ (1); )สิ่งที่เกิดขึ้นที่นี่ ก่อนอื่นเราเริ่มต้นพิน 2 ไปที่เอาต์พุต จากนั้นเราจะแสดงอันหนึ่งขึ้นมา รอสองวินาทีแล้วกดให้เป็นศูนย์ แล้วเราก็ตกอยู่ในวงวนที่ไม่มีที่สิ้นสุด เพื่อให้ชัดเจน นี่คือรูปภาพของสิ่งที่บอร์ดดีบักได้กลายมาเป็น

อย่างที่คุณเห็นพินที่สองมีหน้าที่เปิดและปิดโมดูล ตอนนี้เป็นเวลาที่จะอัปโหลดภาพร่างของเราไปยัง Arduino ที่เพิ่งอบใหม่ ในการดำเนินการนี้ มากำหนดค่า IDE ใหม่โดยเลือกรายการตามภาพด้านล่าง และอย่าลืมเปลี่ยนพอร์ตเป็น USB-TTL

ทุกอย่างถูกตั้งค่า คลิกอัพโหลดภาพร่าง ทุกอย่างจะเรียบร้อยดี แต่มีข้อผิดพลาดเกิดขึ้น เอ๊ะ นี่คือจุดเริ่มต้นของคราด Arduino ใช้พอร์ต COM เสมือนเพื่อดาวน์โหลดโปรแกรม มันทำงานเช่นนี้ ขั้นแรก IDE รวบรวมโปรเจ็กต์จากนั้นดึงปุ่มรีเซ็ต MK และเนื่องจาก bootloader เปิดตัวก่อน IDE เมื่อเห็นมันจึงเริ่มเทโปรแกรมลงในแฟลช และหากหลังจากการคอมไพล์คุณไม่ได้รีเซ็ต MK ดังนั้น bootloader ของ IDE จะไม่รอและเกิดข้อผิดพลาด หากต้องการดึงการรีเซ็ตบน Arduinos ทั้งหมด ขาจะต้องพันกัน พอร์ตคอมดีทีอาร์ บอร์ดขยาย USB-TTL ไม่มีขานี้ ดังนั้นเมื่อ IDE คอมไพล์โครงการและเขียน กำลังโหลด.

เรากดและปล่อยปุ่มรีเซ็ตบนบอร์ดขยาย ATmega8A อย่างเมามัน IDE จะรับ bootloader และอัพโหลดโปรแกรมเพื่อแฟลช เพียงเท่านี้โปรแกรมก็จะลดระดับลงเล็กน้อยแล้วเปิดโมดูล GSM หากทำทุกอย่างถูกต้องก็ควรมีลักษณะเหมือนในภาพ

สำหรับผู้โชคดีที่เป็นเจ้าของอะแดปเตอร์ USB-RS232 คุณสามารถถอดพิน DTR ออกจากพอร์ต (โดยธรรมชาติผ่านชิป MAX3232) เพื่อรีเซ็ต MK นี่คือพิน 5 บนตัวเชื่อมต่อ ISP ผ่านตัวเก็บประจุ 100nf นั่นคือ DTR เป็นตัวเก็บประจุ - RES จากนั้น IDE เองก็จะดึงการรีเซ็ตออกมา ยังไงก็ได้ภาพแบบนี้ โปรแกรมทำงานและเปิดโมดูล

ตอนนี้คุณสามารถปรับแต่งโมดูล GSM ได้แล้ว หากคุณมีคำถามใด ๆ เขียน ลองคิดดูสิ 

ไม่ระบุชื่อ 02.02.16 22:32 น

ขอบคุณสำหรับบทความ ตอนนี้ฉันสามารถใช้ Mega 8 ใน Arduino Uno ได้แล้ว

นิโกะ19 25/12/59 23:03

ทำไมคุณถึงทำทั้งหมดนี้ด้วยบอร์ดขยายและรับ Arduino ถ้ามี Arduino สำเร็จรูปอยู่บนโต๊ะ? คำถามคือจะสร้าง Arduino แบบโฮมเมดได้อย่างไรสมมติว่าบนเขียงหั่นขนมจาก Mega8 และควอตซ์ที่วางอยู่รอบ ๆ สิ่งที่จำเป็นต้องอัปโหลดไปยัง Mega ทีละจุดหรือดีกว่านั้นคือไฟล์เฟิร์มแวร์สำเร็จรูป สำหรับ เช่น ฉันมีโปรแกรมเมอร์แบบขนาน แต่ก็มีแบบอนุกรมด้วย แต่ไม่มี Arduino สำเร็จรูป...

อเล็กซ์ 25/12/59 23:40

Arduino คือไมโครคอนโทรลเลอร์ Atmel ที่มีโปรแกรมโหลดบูตสำหรับการทำงานกับ Arduino IDE สิ่งที่คุณต้องทำคือตั้งค่าฟิวส์สำหรับบูตโหลดเดอร์ เลือกฟิวส์สำหรับไมโครคอนโทรลเลอร์จากโฟลเดอร์เฟิร์มแวร์แล้วอัปโหลด ถ้าจะพูดสั้นๆ.