ฉันได้รับ ATmega328-PU ฉันจะแก้ไขได้อย่างไร


12

ในอดีตที่ผ่านมาฉันกำลังเขียน bootloaders ในATmega328-PUจำนวน 4 ชุดใหม่โดยใช้ Arduino IDE (สังเกตว่าไม่มีPหลังจาก 328 - เป็นรุ่น MCU ที่ไม่ใช่ picopower ที่ถูกกว่าเล็กน้อยเพื่อไม่ให้สับสนกับATmega328P- PU ที่มีP ) และรู้สึกประหลาดใจกับข้อความต่อไปนี้จาก avrdude:

avrdude: Device signature = 0x1e950F 
avrdude: Expected signature for ATMEGA328 is 1E 95 14 
Double check chip, or use -F to override this check. 

นั่นหมายความว่า avrdude คิดว่าชิปไม่ใช่สิ่งที่ฉลากระบุ จากนั้นฉันก็เปลี่ยนชนิดชิปบน Arduino IDE ของฉันเป็นATmega328P-PUและ avrdude ก็เผา bootloader โดยไม่มีการร้องเรียน สิ่งที่หมายถึงคือชิปถูกระบุว่าเป็นหนึ่ง MCU และตอบสนองภายในเป็นอื่นแตกต่างเล็กน้อย

สิ่งที่ฉันอยากรู้คือ:

  • เหตุการณ์นี้เกิดขึ้นได้ยากเพียงใด? มีใครมีประสบการณ์คล้ายกันบ้างไหม? ( คำถามดั้งเดิมนอกหัวข้อ )

  • เป็นไปได้ไหมที่จะแก้ไขปัญหานี้? ฉันจะแก้ไขลายเซ็นเพื่อให้ avrdude รู้จักชิปอย่างถูกต้องได้อย่างไร

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


1
ดูเหมือนว่าผู้ขายของคุณจะติดฉลากผิด 328P (ซึ่งเป็นลายเซ็นนี้) เป็น 328s
microtherion

คำตอบ:


4

ในขณะที่กำลังดู sparkfun ฉันได้พบโพสต์ข่าวหลายรายการที่แสดงการต่อสู้ของพวกเขาด้วยชิปติดฉลากผิด นี่คือบางส่วน:

Sparkfun ได้รับการจัดส่งที่น่าสงสัยถ้า IC จากผู้ขายใหม่ในประเทศจีน พวกเขาตัดสินใจที่จะทดสอบพวกเขาก่อนที่จะส่งพวกเขาไปสู่การผลิตและไม่มีกระดานทดสอบของพวกเขาทำงาน ใช้กรดไนตริกพวกเขาสามารถลบกรณีของไอซีและก้อนโลหะที่ดูเหมือนทองแดง

ในบทความอื่นพวกเขาได้ทำการตัดวงจรไอซีที่น่าสงสัยบางส่วนจาก Atmel และพบว่ามีแผ่นซิลิคอน ON ของสารกึ่งตัวนำภายใน ชิปนั้นไม่สามารถใช้งาน ATmegas ได้ แต่มีซิลิกอนแตกต่างจากชิปอื่น


3
คุณเอาคำตอบนี้ออกมาหน่อยได้ไหม? การสรุปบทความที่คุณเชื่อมโยงจะเป็นการเริ่มต้นที่ดีตอนนี้ถ้า sparkfun ลดลงไม่ว่าด้วยเหตุผลใดก็ตามคำตอบของคุณจะไร้ค่า
Shog9

@ Shog9 ทำไม คำถามคือวิธีปิดฐาน คำตอบนี้เป็นบทสรุปของกรณีของผู้ที่รับชิปที่ติดฉลากผิด ( โดยทั่วไปผู้ใช้แบ่งปันประสบการณ์ ) ใครจะช่วยได้บ้าง
asheeshr

ฉันสามารถถามคุณเหมือนกัน @AsheeshR - ทำไมต้องกังวลเกี่ยวกับคำตอบเมื่อคำถามคือปัญหา? อย่างไรก็ตามขอขอบคุณสำหรับการเพิ่มรายละเอียด TheDoctor
Shog9

3

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

อย่างไรก็ตามวิธีการตั้งค่าไบต์ของลายเซ็นคอนโทรลเลอร์มีดังต่อไปนี้ (ยังไม่ทดลองฉันไม่มี AVR สำรองไว้):

avrdude -p atmega328 -c arduino -P /dev/ttyUSB003 -b 19200 -v -U signature:w:0x1E,0x95,0x14:m

2
ฉันรู้ว่ามันสายมาก แต่ฉันไม่คิดว่ามันเป็นความคิดที่ดีที่จะปล่อยให้คำตอบนี้เป็นคำตอบที่ยอมรับได้: ลายเซ็นบน atmega328 นั้นไม่สามารถเขียนได้และสำหรับความรู้ของฉัน attiny
microtherion

2
ฉันได้ลองใช้วิธีการข้างต้นซึ่งเป็นที่ยอมรับในแง่หนึ่ง: avrdude: writing signature (3 bytes)- แต่มันก็ล้มเหลวที่จะทำ:avrdude: verification error, first mismatch at byte 0x0002: 0x14 != 0x0f
นิคแกมม่อน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.