สารบัญ:
- ขั้นตอนที่ 1: ถอดสายไฟ AC และถอดแบตเตอรี่ 9V ออก
- ขั้นตอนที่ 2: ต่อสายจัมเปอร์
- ขั้นตอนที่ 3: เพิ่มพลัง RPi
- ขั้นตอนที่ 4: ติดตั้ง Avrdude
- ขั้นตอนที่ 5: แก้ไขไฟล์กำหนดค่า Avrdude
- ขั้นตอนที่ 6: ดาวน์โหลดหรือคัดลอกไฟล์.hex Flash ไปยัง /home/pi
- ขั้นตอนที่ 7: ตรวจสอบว่า Avrdude สามารถพูดคุยกับ ATMEGA48V-10PU
- ขั้นตอนที่ 8: แฟลชไฟล์.hex ไปที่ ATMEGA48V-10PU
- ขั้นตอนที่ 9: การแก้ไขปัญหาอย่างง่ายหากแฟลชล้มเหลว
วีดีโอ: วิธีใช้ GPIO Pins ของ Raspberry Pi และ Avrdude เป็น Bit-bang-program DIMP 2 หรือ DA PIMP 2: 9 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
เหล่านี้เป็นคำแนะนำทีละขั้นตอนเกี่ยวกับวิธีใช้ Raspberry Pi และคำสั่งโอเพ่นซอร์สฟรี avrdude to bit-bang-program DIMP 2 หรือ DA PIMP 2 ฉันคิดว่าคุณคุ้นเคยกับ Raspberry Pi และ LINUX บรรทัดคำสั่ง. คุณไม่จำเป็นต้องทำความคุ้นเคยกับการเขียนโปรแกรมชิป AVR แต่จะช่วยได้หากมีสิ่งผิดปกติเกิดขึ้น เนื่องจากคุณสามารถอ่านผลลัพธ์ของ avrdude และมีความคิดว่าต้องทำอย่างไร
ขั้นตอนนี้ควรใช้เวลาประมาณ 1 ชั่วโมงในครั้งแรกและครั้งละ 5-10 นาทีหลังจากนั้น
คุณจะต้องการ:
1) Raspberry Pi พร้อมพิน GPIO และแหล่งจ่ายไฟ ฉันใช้ Raspberry Pi Zero W พร้อมหมุด GPIO บัดกรี ระบบปฏิบัติการควรเป็น Raspberry Pi OS (เดิมคือ Raspbian) ฉันใช้ Raspbian Lite (Stretch) ซึ่งค่อนข้างเก่า คำสั่งเหล่านี้ควรทำงานบน Raspberry Pi OS เวอร์ชันล่าสุด
ต่อไปฉันจะเรียก Raspberry Pi ว่า "RPi"
2) สายจัมเปอร์หญิงกับหญิง เลือกสีใดสีหนึ่งต่อไปนี้: แดง ดำ น้ำเงิน เหลือง เขียว ม่วง ฉันใช้สีน้ำตาลแทนสีม่วง
3) DIMP 2 หรือ DA PIMP 2 ที่มีหัวต่อ ICSP 10 พินเสริมที่บัดกรี ฉันใช้ DIMP 2 ที่นี่ แต่คำแนะนำเหมือนกันสำหรับ DA PIMP 2
4) การเข้าถึงอินเทอร์เน็ตสำหรับ RPi เพื่อให้คุณสามารถติดตั้งคำสั่งโอเพ่นซอร์สฟรี avrdude
5) สำเนาของไฟล์.hex flash สำหรับ DIMP 2 หรือ DA PIMP 2 ของคุณ คุณสามารถสร้างไฟล์.hex ได้ด้วยตัวเองจากซอร์สโค้ดดิบ แต่ฉันจะไม่แสดงให้คุณเห็นวิธีการดำเนินการดังกล่าวที่นี่
6) วิธีลงชื่อเข้าใช้ RPi ด้วยวิธีใดวิธีหนึ่ง - ใช้การเชื่อมต่อเครือข่ายหรือการเข้าถึงคอนโซลโดยตรง คุณต้องสามารถเรียกใช้คำสั่งได้
ขั้นตอนที่ 1: ถอดสายไฟ AC และถอดแบตเตอรี่ 9V ออก
ขั้นแรก ให้ตรวจสอบว่าสายไฟ AC ต่ออยู่กับ DIMP 2 หรือ DA PIMP 2 และเสียบเข้ากับสายไฟ AC หรือไม่ ถ้าเป็นเช่นนั้น อันตราย: อันตรายถึงชีวิตจากการช็อต สวมถุงมือยางแล้วปิดสวิตช์โยกหลักบน DIMP 2 หรือ DA PIMP 2 จากนั้นถอดสายไฟ AC ออกจากแหล่งจ่ายไฟหลัก AC และถอดสายไฟ AC ออกจาก DIMP 2 หรือ DA PIMP 2 คุณสามารถใช้ ถอดถุงมือยางออกเมื่อถอดสายไฟ AC แล้ว
จากนั้นถอดแบตเตอรี่ 9V RPi จะจ่ายไฟให้กับ DIMP 2 ผ่านสายสีแดง (Vcc) และสีดำ (GND) เปิดสวิตช์ตัวเลื่อนบน DIMP 2 หรือ DA PIMP 2 เพื่อปิดในกรณีที่
ขั้นตอนที่ 2: ต่อสายจัมเปอร์
เมื่อไม่ได้เปิด RPi ให้เริ่มต่อสายจัมเปอร์ ต่อจากนี้ไป หมุด GPIO จะอยู่บน Raspberry Pi และหมุดของ ICSP จะอยู่บน DIMP 2 (ส่วนหัว J3) หรือ DA PIMP 2 (ส่วนหัว J1)
อ้างถึงแผนภาพที่ฉันปูด้วยก้อนหินและรูปถ่ายหากคุณหลงทาง
ส่วน RPi ของไดอะแกรมมาจาก pinout.xyz
ส่วน ATMEGA48V-10PU ของไดอะแกรมเป็นลิขสิทธิ์ 2016 Atmel Corp.
ฉันกำลังอ้างสิทธิ์การใช้งานภาพวาดเหล่านี้โดยชอบเนื่องจากการเพิ่มเติมการเปลี่ยนแปลงที่สำคัญ
สีดำเปลี่ยนจาก GPIO pin 6 เป็น ICSP pin 10 นี่คือ GND (Ground)
สีเหลืองเปลี่ยนจาก GPIO pin 12 ถึง ICSP pin 9 นี่คือ MISO
สีเขียวเปลี่ยนจาก GPIO pin 16 เป็น ICSP pin 1 นี่คือ MOSI
สีน้ำเงินเปลี่ยนจาก GPIO pin 18 เป็น ICSP pin 7 นี่คือ SCK หรือ SCLK (SClock)
สีม่วง (ในภาพถ่ายของฉันเป็นสีน้ำตาล) เปลี่ยนจาก GPIO pin 32 เป็น ICSP pin 5 นี่คือการรีเซ็ต
สีแดงเปลี่ยนจาก GPIO pin 4 เป็น ICSP pin 2 นี่คือ Vcc (กำลังไฟ 5V)
ขั้นตอนที่ 3: เพิ่มพลัง RPi
ตอนนี้ไปข้างหน้าและเพิ่มพลังให้ RPi ส่วนโวลต์มิเตอร์ของ DIMP 2 หรือ DA PIMP 2 ควรเปิดเครื่องด้วย แต่คุณจะไม่รู้เมื่อดูที่จอแสดงผล หากมีข้อสงสัย ให้วัดแรงดันไฟฟ้าด้วยโพรบสีแดงที่พิน 20 บน ATMEGA48V-10PU และโพรบสีดำที่พิน 4, 6 หรือ 8 บนส่วนหัวของ ICSP ควรอยู่ที่ประมาณ 5VDC
ขั้นตอนที่ 4: ติดตั้ง Avrdude
คำแนะนำของฉันจะแสดงเฉพาะคำสั่งบรรทัดคำสั่ง หากคุณมี GUI ทำงานอยู่ คุณจะต้องเปิด Terminal เพื่อเรียกใช้คำสั่งบรรทัดคำสั่งเหล่านี้
เข้าสู่ระบบในฐานะผู้ใช้เริ่มต้น pi รหัสผ่านเริ่มต้นคือราสเบอร์รี่
ติดตั้งคำสั่ง avrdude โดยพิมพ์คำสั่งต่อไปนี้ที่พรอมต์คำสั่งเทอร์มินัล:
sudo apt-get ติดตั้ง avrdude
ขั้นตอนที่ 5: แก้ไขไฟล์กำหนดค่า Avrdude
แก้ไขไฟล์กำหนดค่า avrdude โดยพิมพ์:
sudo nano /etc/avrdude.conf
เพิ่มบรรทัดเหล่านี้ตรงกลางไฟล์ที่มีคำจำกัดความของโปรแกรมเมอร์อื่นๆ สิ่งที่ฉันทำคือคัดลอกส่วนโปรแกรมเมอร์ด้านบนสำหรับ id = "linuxgpio" จากนั้นวางด้านล่าง (ที่บรรทัด 1274) จากนั้นแก้ไขส่วนใหม่
โปรแกรมเมอร์
id = "pi_1"; desc = "ใช้อินเทอร์เฟซ Linux sysfs กับบรรทัด bitbang GPIO"; พิมพ์ = "linuxgpio"; รีเซ็ต = 12; สค = 24; โมซี = 23; มิโซะ = 18;;
จากนั้นบันทึกไฟล์โดยกด: Ctrl-O
จากนั้นออกจากโปรแกรมแก้ไข nano โดยกด: Ctrl-X
ขั้นตอนที่ 6: ดาวน์โหลดหรือคัดลอกไฟล์.hex Flash ไปยัง /home/pi
คัดลอกไฟล์.hex flash ไปยัง RPi ฉันคิดว่าคุณรู้วิธีการทำเช่นนี้ คำแนะนำ: ใช้คำสั่ง wget, curl, git หรือ scp เพื่อนำไฟล์ลงจากเว็บไปยัง RPi
ไฟล์.hex ของ DIMP 2 อยู่ที่นี่ พร้อมกับซอร์สโค้ด:
github.com/dchang0/dimp2
ไฟล์.hex ของ DA PIMP 2 เวอร์ชันปรับแต่งอยู่ที่นี่แล้ว ฉันยังไม่ได้ทดสอบสิ่งนี้!
github.com/jcwren/DaPimp2
หากไฟล์.hex ของ DA PIMP 2 เวอร์ชันข้างต้นใช้งานไม่ได้ ซอร์สโค้ดของ DA PIMP 2 ดั้งเดิมของ Mikey Sklar ก็อยู่ที่นี่ คุณจะต้องคอมไพล์เป็นไฟล์.hex ที่ใช้งานได้ด้วยตัวเอง ฉันไม่ครอบคลุมเรื่องนั้นในคำแนะนำเหล่านี้ เพราะมันจะเป็นกวดวิชาที่ยาว (แต่ไม่ยาก) ฉันตั้งโปรแกรม DA PIMP 2 ที่ใช้งานได้สำเร็จโดยใช้ซอร์สโค้ดนี้:
drive.google.com/open?id=0Bx5Als-UeiZbSUdH…
หรือคุณสามารถไปที่หน้าหลักของ DA PIMP 2 ที่นี่ และคลิกที่ลิงค์ไปยังซอร์สโค้ด
mikeysklar.blogspot.com/p/da-pimp-battery-…
วางไฟล์.hex ที่พาธนี้และชื่อไฟล์บน RPi…
สำหรับ DIMP 2:
/home/pi/dimp2.hex
สำหรับ DA PIMP 2:
/home/pi/da_pimp2.hex
ขั้นตอนที่ 7: ตรวจสอบว่า Avrdude สามารถพูดคุยกับ ATMEGA48V-10PU
รันคำสั่ง avrdude เพื่อให้แน่ใจว่าสามารถพูดคุยกับชิป ATMEGA48V-10PU บน DIMP 2 หรือ DA PIMP 2
cd /home/pi
sudo avrdude -c pi_1 -p m48 -v
คุณจะได้รับเกี่ยวกับหน้าของผลลัพธ์ ดูตอนจบ. หากคุณได้รับคำตอบเช่นนี้ คุณสามารถดำเนินการต่อได้
avrdude: อุปกรณ์ AVR เริ่มต้นและพร้อมที่จะยอมรับคำแนะนำ
การอ่าน | ####################################################### | 100% 0.00วินาที
ถ้าไม่เช่นนั้นมีบางอย่างผิดปกติและคุณควรเข้าใจ เป็นไปได้มากว่ามันคือการเดินสายผิด แต่ข้อร้องเรียนทั่วไปอีกอย่างหนึ่งที่ฉันเคยเห็นคือชิป ATMEGA48V-10PU เป็นของปลอม ดูเหมือนว่าหลายคนที่ขายใน Amazon หรือ ebay เป็นของปลอม สินค้าที่จำหน่ายโดย Mouser หรือ Digikey และตัวแทนจำหน่ายที่ได้รับอนุญาตอื่นๆ เป็นของแท้
ขั้นตอนที่ 8: แฟลชไฟล์.hex ไปที่ ATMEGA48V-10PU
รันคำสั่งนี้เพื่อทำการโปรแกรมชิป…
สำหรับ DIMP 2:
cd /home/pi
sudo avrdude -c pi_1 -p m48 -U flash:w:dimp2.hex
สำหรับ DA PIMP 2:
cd /home/pi
sudo avrdude -c pi_1 -p m48 -U flash:w:da_pimp2.hex
คุณจะได้รับเกี่ยวกับหน้าผลลัพธ์ มองหาบรรทัดเหล่านี้:
avrdude: เขียนแฟลช (1528 ไบต์):
การเขียน | ####################################################### | 100% 0.79s
avrdude: กำลังตรวจสอบ …
avrdude: 1528 ไบต์ของแฟลช ตรวจสอบแล้ว avrdude: safemode: ฟิวส์ตกลง (E:FF, H:DF, L:62)
หากคุณมาไกลถึงขนาดนี้ คุณจะเห็นจอ LED แสดงค่าแรงดันเป็นศูนย์ หากคุณเห็นเลขศูนย์ แสดงว่าคุณทำเสร็จแล้ว! ถ้าไม่ ให้ข้ามไปยังขั้นตอนถัดไป
หากคุณเห็นเลขศูนย์ ให้ปิด RPi ของคุณอย่างสง่างามด้วยคำสั่งนี้:
sudo ปิด -h ตอนนี้
เมื่อไฟแสดงการทำงานบน RPi ดับลง (DIMP 2 หรือ DA PIMP 2 จะยังคงเปิดอยู่) คุณสามารถถอดปลั๊กแหล่งจ่ายไฟออกจาก RPi ได้ จากนั้นถอดสายจัมเปอร์ระหว่าง RPi กับ DIMP 2 หรือ DA PIMP 2
ขั้นตอนที่ 9: การแก้ไขปัญหาอย่างง่ายหากแฟลชล้มเหลว
หากคุณไม่เห็นเลขศูนย์บนจอแสดงผลของ DIMP 2 หรือ DA PIMP 2 แสดงว่าได้เวลาแก้ไขปัญหาแล้ว
ตรวจสอบสายไฟของคุณอีกครั้งก่อน
จากนั้นตรวจสอบสถานะฟิวส์ที่แสดงโดย avrdude เป็นไปได้ว่าชิปของคุณมาพร้อมกับฟิวส์ที่ตั้งค่าไว้ต่างจากค่าเริ่มต้นจากโรงงาน ชิปอาจจำเป็นต้องรีเซ็ตฟิวส์ ซึ่งต้องใช้อุปกรณ์ฮาร์ดแวร์ที่แตกต่างกันโดยสิ้นเชิง นี่เป็นปัญหาของชิป ATMEGA48V-10PU ปลอมจำนวนมากที่จำหน่ายบน ebay ซึ่งเป็นชิปเก่าที่ดึงมาจากฮาร์ดแวร์ที่ทิ้งแล้ว และฟิวส์ได้รับการตั้งค่าแล้ว และผู้ขายก็ไม่กังวลที่จะรีเซ็ตฟิวส์
บางครั้งชิปก็ไม่ใช่แม้แต่ ATMEGA48V-10PU อาจเป็นชิปตัวอื่นที่ติดฉลากใหม่ โดยปกติคุณสามารถบอกของปลอมเหล่านี้ได้ด้วยการดูเครื่องหมายที่ด้านบนและด้านล่างของชิปอย่างละเอียด เป็นการฉลาดกว่าที่จะรับ ATMEGA48V-10PU ของคุณผ่านซัพพลายเออร์ที่เชื่อถือได้ เช่น Mouser หรือ Digikey
แนะนำ:
การควบคุม LED หลายดวงด้วย Python และ GPIO Pins ของ Raspberry Pi: 4 ขั้นตอน (พร้อมรูปภาพ)
การควบคุมไฟ LED หลายดวงด้วย Python และพิน GPIO ของ Raspberry Pi: คำแนะนำนี้สาธิตวิธีควบคุมพิน GPIO หลายอันบน RaspberryPi ของคุณเพื่อจ่ายไฟ 4 LEDs นอกจากนี้ยังจะแนะนำคุณเกี่ยวกับพารามิเตอร์และคำสั่งเงื่อนไขใน Python คำสั่งก่อนหน้าของเราโดยใช้ GPIO Pins ของ Raspberry Pi เพื่อต่อ
วิธีใช้ Neopixel Ws2812 LED หรือ LED STRIP หรือ Led Ring กับ Arduino: 4 ขั้นตอน
วิธีใช้ Neopixel Ws2812 LED หรือ LED STRIP หรือ Led Ring กับ Arduino: สวัสดีทุกคนเนื่องจาก Neopixel led Strip เป็นที่นิยมอย่างมากและเรียกอีกอย่างว่า ws2812 led strip เช่นกัน พวกเขาเป็นที่นิยมอย่างมากเพราะในแถบนำเหล่านี้เราสามารถระบุแต่ละ LED แยกจากกัน ซึ่งหมายความว่าหากคุณต้องการให้ไฟ LED สองสามดวงเรืองแสงเป็นสีเดียว
พอร์ต USB ของ NODEMcu ไม่ทำงาน? อัปโหลดโค้ดโดยใช้โมดูล USB เป็น TTL (FTDI) ใน 2 ขั้นตอน: 3 ขั้นตอน
พอร์ต USB ของ NODEMcu ไม่ทำงาน? อัปโหลดรหัสโดยใช้โมดูล USB เป็น TTL (FTDI) ใน 2 ขั้นตอน: เหนื่อยกับการเชื่อมต่อกับสายไฟจำนวนมากจากโมดูล USB เป็น TTL ไปยัง NODEMcu ให้ปฏิบัติตามคำแนะนำนี้เพื่ออัปโหลดรหัสในเวลาเพียง 2 ขั้นตอน หากพอร์ต USB ของ NODEMcu ใช้งานไม่ได้ อย่าเพิ่งตกใจ เป็นเพียงชิปไดรเวอร์ USB หรือขั้วต่อ USB
เปลี่ยนหลอดไฟนีออน 12V DC หรือ 85-265V AC เป็น LED - ส่วนที่ 1 (ภายใน): 7 ขั้นตอน
เปลี่ยนหลอดฟลูออเรสเซนต์ 12V DC หรือ 85-265V AC ของคุณเป็น LED - ส่วนที่ 1 (ภายใน): หนึ่งในบัลลาสต์หลอดฟลูออเรสเซนต์ 12V ของฉันใน RV ของฉันถูกไฟไหม้ ฉันตัดสินใจแทนที่ด้วย LED โดยใช้หลอด LED ราคาถูก 6 ดวง ไดรเวอร์ LED สองตัว และใช้ https://www.instructables.com/id/Replace-Low-Voltage-Bi-Pin-Halogens-with-LEDs/ เป็นแนวทาง . ปา
เปลี่ยนหลอดไฟนีออน 12V DC หรือ 85-265V AC เป็น LED - ตอนที่ 2 (ลักษณะภายนอก): 6 ขั้นตอน
เปลี่ยนไฟฟลูออเรสเซนต์ 12V DC หรือ 85-265V AC ของคุณเป็น LED - ตอนที่ 2 (ลักษณะภายนอก): นี่คือส่วนที่ 2 ในคำแนะนำของฉันในการนำหลอดไฟฟลูออเรสเซนต์มาแปลงเป็น LED และทำให้ดูน่าดึงดูดยิ่งขึ้น ในตอนที่ 1 ฉันได้ศึกษารายละเอียดภายในของการติดตั้ง LED และเชื่อมต่อเข้าด้วยกัน ในส่วนนี้ผมเ