แก้ปัญหาไอซี Fusebit เสีย ด้วยเครื่อง Chuprog – อุปกรณ์เบิร์นไอซีแบบ HighVolt

Posted by | July 11, 2010 | Arduino-Hacking | 2 Comments

เปิดหัวมาสักแรง เหมือนจะแอบโฆษณา วันนี้ก้อเอาเหตุการณ์สำหรับคนเล่นไมโครฯ คงจะได้เจอกันบ้างครับ อาการ “Fusebit -Lockbit” อาการที่จะเกิดขึ้นได้ ถึงจะไม่บ่อยแต่ชวนให้ปวดหัว ปวดใจอย่างแน่นอน อยู่ไอซีที่เรามี หรือ บอร์ดที่เรามี ดันไป set fusebit หรือ ดันไป lockbit เข้าไป burn ไม่ได้

ขยายความอาการ Fusebit Lock เป็นอาการเรียกไอซีของ AVR ครับ ที่วันนี้ไอซีมันไม่ต่อสนองกับเครื่องเบิร์น จะ flash ไม่ได้ จะอ่านก้อไม่ได้ มันอาจจะเกิดได้จาก

  • บางครั้งเราก้อเผลอ ไป lockbit ไอซีจริงๆ ก้อแก้ไม่ได้
  • บางที่เราก้อไป set fusebit เกี่ยวกับ Clock อาจะทำให้มันให้ ext-clock มันก้อเลยอ่านไม่ได้
  • บางที่ใช้งานอยู่ มันก้อ hang แล้ว fusebit กับ flash เสียไปก้อมีครับ (เจอแบบนี้ รีบไปแก้ไข PCB ด่วนครับ อาการเข้าขั้นหนักครับ)

ในรอบนี้ผมจะถือว่า อาการ FuseBit Lock ถือได้ว่าเป็นปัญหาระดับชาติกันเลยที่เดียวครับ (เว่อมาก) เพราะว่าทางผมเคยเจอเหตุการณ์มาครั้งหนึ่งตัว ตัวสมัยยังเป็นวันรุ่น ยังมีประสบการณ์น้อยนิด ตอนนนั้นผมใช้เครื่องเบิร์นหรือเครื่อง programming (ขอเรียกว่าเครื่องเบิร์น แล้วกันนะครับ) เครื่องเบิร์นที่ผมใช้มีปัญหา check หา AVR มันดันเจอผิคเบอร์ แต่ทางผมก้อ force flash เข้าไป ตกลงไอซี AVR หลายตัวตอนนั้นก้อก้อเสียหมด ตอนโน่นเจอ LockBit ซื้อไอซีใหม่อย่างเดียว เพราะเรายังไม่มีเครื่องโปรแกรม High Volt ใช้กัน ก้อเป็นเรื่องตรวจใจ ถ้าเจออาการแบบนี้ อย่าไปพยายามใช้ครับ ต้องให้ชัวส์ ว่าเราเจอสาเหตุของปัญหาสักก่อนครับ อย่างน้อยก้อให้เครื่องเบิร์นมันเจอไอซี ซึ่งทางผมเองคาดว่าตัวเครื่องเบิร์นฯ มันไม่ดีครับ (โทษไปเรื่อย) ตอนนั้นผมจะใช้เครื่องเบิร์น แบบผ่านสาย LPT มันคงควบคุม timing ได้ไม่ดีครับ เศร้าไปหลายวันเลยที่เดียว

สำหรับตอนนี้ประสบการณ์เยอะขึ้น แต่ก้อยังเผลอไป lockbit เหมือนเดิม ไหนก้อแก้ไม่ได้แล้ว ก้อหาเครื่องโปรแกรม HighVolt มาใช้เผื่อไว้เลยดีกว่าวันนี้เราจะมาดูกันว่า เครื่องเบิร์นแบบ HighVolt ดีอย่างไงครับ

(สนใจอ่านต่อคลิกเลยครับ)

สำหรับกระบวนการ Flash ไอซี AVR ผมเคยอธิบายวิธี การเบิร์นแบบ ISP ไปแล้ว ใครอยากทบทวนลองเข้าไปอ่านก่อน

เครื่องเบิร์น หรือเครื่องโปรแกรมแบบ Parallel ที่จะมาแนะนำ เหมาะกับนักพัฒนาคนยากอย่างพวกเรานะครับ เป็นผลงานของเพื่อนสมาชิก electoday ครับ นามว่า เครื่องเบิร์น “Chuprog” ดังรูปที่เห็นดังบนเลย ให้เราหาเครื่องเบิร์นแบบ High Volt ส่งข้อมูลแบบ Parallel มาใช้กันครับ (วิธีการ flash แบบ parallel นะครับ ไม่ใช่ผ่าน parallel port /printer port)

สำหรับเครื่องโปรแกรมนี้ พัฒนาต่อโดยคนไทย เพื่อให้หาอุปกรณ์ที่เหมาะกับท้องถิ่นคับ อย่างเช่นใช้ไอซี PIC ตัวเล็กมาทำเป็น USB to Serial ครับ เพื่อใช้เบิร์น AVR มันช่างเป็นการทำลายเกียรติยศของ AVR สักจิงๆ เดี่ยวรอบหน้าจะขอให้ PIC โดน AVR เบิร์นบ้าง (ตึง…)

โดยเครื่องเบิร์นผมได้ทดสอบ การใช้งานโดยทั่วไปๆ ใช้ในโหมด ISP ไม่รู้จะเทียบกันอย่างไง เล่าเป็นประสบการณ์การใช้งานแล้วกันนะครับ เทียบการเครื่อง AVRISP (อีเขียว รูปบน) จากการใช้ AVRISP ตัว Clone ที่ซื้อมาจากจีน มันเจอไอซีบ้าง ไม่เจอบ้างครับ อย่างเช่น ผมต่อสาย ISP เข้ากับบอร์ด mega128 แล้ว Read Signature บางที่มันไม่เจอ แต่เอาไปใช้อ่าน mega8/mega168/mega328 มาก้อเจอดี เรื่องนี้ยังสับสนอยู่ว่า เป็นได้ไง แต่ไปยืมเครื่อง AVRISP MKII ของเพื่อนมาลองเจอมัน (แต่มันแพงนะ) มันก้อแปลดีครับ แต่สำหรับ Chuprog นี้ไม่ค่อยเจอปัญหาดังกล่าวครับ

สำหรับเครื่องเบิร์นแบบ HighVolt ตัวนี้ มีสรรพคุณดังนี้ครับ

  • สามารถเบิร์นผ่าน ISP mode ได้ (เหมือนเครื่องเบิร์นปกติตามท้องตลาด)
  • สามารถเบิร์นผ่าน HVSP/PP และยังช่วยให้เข้าไปแก้ Fusebit และ Lockbit ได้ครับ
  • ใช้งานผ่าน USB ได้ มันจะจำลองตัวเอง เป็น serial ใช้งานกับโปรแกรมอื่นได้ง่ายครับ
  • วงจรใช้ไฟแค่ +5Volt จาก USB เท่านั้น อันนี้ สะดวกครับไม่ต้องไปหา Adaptor ให้ยุ่งยาก โดยที่วงจร High-Volt เป็นวงจร Switching จะ Up ไฟจาก 5v เป็น 12v
  • มีโปรโตคอทชุดคำสั่ง STK500 V2 สามารถใช้กับโปรแกรม AVRStudio หรือจะเอาไปใช้กับโปรแกรมอื่นๆก้อยังได้ (คาดว่า Arduino ก้อใช้ได้)

มาดูการใช้จริง

สำหรับการทดสอบนี้ ผมเน้นไปทางแก้ Fusebit แล้วกันครับ เนื่องจากถ้าไอซีมัน Lock จะมีเหลือวิธีเดียว หาเครื่องโปรแกรม High Volt เข้ามาอ่าน มาเขียนข้อมูลแทน การทำงานของเครื่อง HighVolt ก้อคือ มันจะจ่ายไฟ +12 Volt เข้าที่ขา Reset ครับ ทำให้ไอซี อนุญาติให้เข้าเขียน Flash ได้

สำหรับบอร์ดที่นำมาใช้ เป็นบอร์ดที่โดนล๊อคจริง ผมได้บอร์ดของ ETT BASE -AVR MEGA128 มาครับ แต่ก่อนก้อเราส่ง claim ล่ะครับ แป็บเดียวก้อได้ แต่เราอยู่ไกลจากพระโขนง( ETT อยู่พระโขนงนะ) นานๆจะไปที่ สำหรับรอบนี้ น้องๆ ก้อส่งบอร์ดมาให้ลองของนี้ถ้า chuprog ทำไม่ได้ ผมมีเผามันแน่แท้ อิอิ

สำหรับการต่อใช้งานในโหมดแบบ Parallel จะยุ่งยากกว่าเดิมมากนะสักหน่อย เพราะว่าเราต้องการส่งข้อมูล Parallel เข้าไปยังไอซี จึงใช้สายสัญญาณเยอะครับ ดังรูป

ซึ่งการต่อสายนิ ต้องทำใจครับเพราะว่าการflash แบบ paralell ใช้สายเยอะ และมันก้อยังไม่มีเป็น Port มาตราฐานสักด้วย แต่ใครวางแผนใส่ไว้เผื่อซ่อมก้อดีครับ อย่างบอร์ด MEGA128 ผมก้อได้ต่อตัวรูปข้างล่างครับ ใช้ Port B สำหรับรับส่ง DATA และ Port D เป็นตัวส่งค่า Control แต่เพิ่มขา PA0 ต่อกับ BS2 และเพิ่ม CLK จิ่มลงที่บอร์ด (บอร์ดมันไม่มี pin Xtal1 ออกมาให้)

สำหรับ XTAL สามารถจิ่มหาได้หลังบอร์ด ดังภาพครับ

เมือเสียบสายสำเร็จ ให้ปรับโหมด Programming เป็น PP/HVSP ครับ แล้วลองตรวจสอบไอซี ว่าถูกต้องหรือป่าวครับ ข้อควรระวังผมเสียบสาย DATA ผิคเรียงกลับกัน มันก้อยังอ่าน Signature ออกมาเป็น 0x00 ,0x00 ,0x00 อันนี้ให้ไปไปแก้ไขสายก่อนนะครับ

จากนั้นเข้าไปแก้ไข Fusebit หรือ LockBit ที่ให้เป็น Default เราก้อสามารถกลับมาใช้งานแบบ ISP ได้ตามปกติแล้ว สำหรับคนที่ทำถึงขั้นตอนนี้แล้วไอซียังใช้งานไม่ได้ ส่งกลับ claim ผู้ผลิตครับ อาจจะเสียแล้วนะครับ

สรุป สิ่งที่ประทับใจกันหน่อยนะครับ

ประทับใจ

  • เราสามารถแก้ไข Fuse bit,lock bit ไ้ด้แล้ว แถมเป็นเครื่องโปรแกรมใช้งานปกติได้อีก
  • วงจรของเครื่องโปรแกรมสามารถจ่ายไฟ +5V และ +12V สำหรับโหมด HV ผมว่าสะดวกมากครับ ไม่ต้องพก adaptor
  • หาโปรแกรมที่มาใช้งาน ง่ายมันใช้ โปรโตคอล STK500v2 มาตราฐานดี

ไม่ประทับใจ

  • คงหาซื้อยาก สำหรับคนทั่วไป ตอนนี้ซื้อได้ทางเน็ทอย่างเดียว
  • Design Package ต้องปรับครับ เกือบดีแล้ว

เอาล่ะ คราวนี้เราก้อแก้ไขบอร์ด AVR ด้วยตัวเองได้แล้ว หรือไม่ก้อพอเห็นวิธีการแก้ไขบ้างล่ะ ขอบคุณที่เข้ามาติดตาม ใครใช้งานเจอปัญหาอะไรก้อ share ก้อได้นะครับ

About chang

ชื่อ “ช้าง” ส่วนมากเขาจะเรียกว่า “พี่ช้าง” แล้ว มีความสนใจทางเทคโนโลยีทางคอมพิวเตอร์ อิเล็กทรอนิกส์ และ หุ่นยนต์ เป็นทั้งนักคิด นักประดิษฐ์ ชอบทดลองเล่น จนเดี่ยวนี้รู้สึกว่าจะเล่นมากกว่ามืออาชีพไปสักแล้ว

  • แหล่มเลยครับ แต่ของผมมันลง pcb แล้วแก้ไขไม่ได้เลยต้องถอดมันออกมาทำ บัดกรีสายคงลำบากมากๆ atmega128

    • บอร์ดอะไรเอยยย บอร์ด ett ผมก้อ ดูวงจรแล้ว ต่อสายตามป๋า ชู ก้อแก้ได้นะครับ