สารบัญ:

วิธีใช้ GPIO Pins ของ Raspberry Pi และ Avrdude เป็น Bit-bang-program DIMP 2 หรือ DA PIMP 2: 9 ขั้นตอน
วิธีใช้ GPIO Pins ของ Raspberry Pi และ Avrdude เป็น Bit-bang-program DIMP 2 หรือ DA PIMP 2: 9 ขั้นตอน

วีดีโอ: วิธีใช้ GPIO Pins ของ Raspberry Pi และ Avrdude เป็น Bit-bang-program DIMP 2 หรือ DA PIMP 2: 9 ขั้นตอน

วีดีโอ: วิธีใช้ GPIO Pins ของ Raspberry Pi และ Avrdude เป็น Bit-bang-program DIMP 2 หรือ DA PIMP 2: 9 ขั้นตอน
วีดีโอ: Raspberry PI 2, GPIO, SPI, I2C and OneWire Setup 2024, พฤศจิกายน
Anonim
วิธีใช้ GPIO Pins ของ Raspberry Pi และ Avrdude เป็น Bit-bang-program DIMP 2 หรือ DA PIMP 2
วิธีใช้ GPIO Pins ของ Raspberry Pi และ Avrdude เป็น Bit-bang-program DIMP 2 หรือ DA PIMP 2

เหล่านี้เป็นคำแนะนำทีละขั้นตอนเกี่ยวกับวิธีใช้ 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

แนะนำ: