เอกสารเกี่ยวกับการปรับเปลี่ยนของฉันไปยัง AVR transistortester
ผู้ทดสอบทรานซิสเตอร์เป็นอุปกรณ์ที่คุณสามารถแทรกส่วนประกอบอิเล็กทรอนิกส์ชนิดต่าง ๆ และวิเคราะห์ได้ ไม่เพียง แต่อ่านทรานซิสเตอร์และบอกคุณว่าเป็น NPN หรือ PNP แต่มันบอกคุณถึงความต้านทานของตัวต้านทานหรือความจุของตัวเก็บประจุและอื่น ๆ มีหลายประเภทและมักจะถูกมาก
ฉันมีชุด GM328 จาก Banggood ( ไม่มีให้บริการอีกต่อไป ) บางครั้งก็ระบุว่าเป็น ay-at
ฮาร์ดแวร์ที่โดดเด่น:
เพื่อปรับปรุงความแม่นยำของผู้ทดสอบมีการปรับเปลี่ยนง่าย ๆ ที่คุณสามารถทำได้
(รูปภาพจาก https://github.com/upcycle-electronics/avr-transistor-tester)
ดูโพสต์นี้ใน Eevblog
จาก readme ของ k-firmware:
" ตัวต้านทาน R1 ถึง R6 มีความสำคัญต่อการวัดและตัวต้านทาน680Ωและ470KΩนี้ควรเป็นตัวต้านทานประเภทการวัด (ความทนทานต่อ 0.1%) เพื่อให้ได้ความแม่นยำเต็ม "
" การอ้างอิงแรงดันไฟฟ้าความแม่นยำ 2.5V เพิ่มเติมที่เชื่อมต่อที่ PIN PC4 (ADC4) สามารถใช้เพื่อตรวจสอบและปรับเทียบแรงดันไฟฟ้า VCC แต่ไม่จำเป็นต้องใช้ LM4040-AIZ2.5 (0.1%), LT1004CZ-2.5 (0.1%) 0.8%) หรือ LM336-Z2.5 (0.8%) เป็นการอ้างอิงแรงดันไฟฟ้า ค่าความต้านทานที่สูงขึ้น (47KΩ)
จาก readme ของ M-firmware:
" การอ้างอิงแรงดันไฟฟ้า 2.5V ภายนอกควรเปิดใช้งานเฉพาะในกรณีที่มีความแม่นยำอย่างน้อย 10 เท่ากว่าตัวควบคุมแรงดันไฟฟ้ามิฉะนั้นมันจะทำให้ผลลัพธ์แย่ลงถ้าคุณใช้ MCP1702 โดยมีความอดทนทั่วไป 0.4% เป็นตัวควบคุมแรงดันไฟฟ้า ไม่จำเป็นต้องมีการอ้างอิงแรงดันไฟฟ้า 2.5V
ส่วนเกี่ยวกับ R16 ใน readme ของ K-firmware นั้นสับสนเนื่องจากไม่ได้กล่าวถึงใน readme ของ M-firmware โพสต์นี้ยืนยันว่าจำเป็นสำหรับ K-Firmware เท่านั้น:
" สำหรับการเรียกใช้ M-Firmware คุณสามารถข้ามขั้นตอน #3 หรือลบ R16 (ไม่จำเป็นต้องแทนที่) เมื่อ HW_REF25 ถูกปิดใช้งาน (การตั้งค่าเริ่มต้น) เฟิร์มแวร์จะละเว้นการอ้างอิงแรงดันไฟฟ้าภายนอกใด ๆ ที่แตกต่างกันและตรวจสอบการอ้างอิง 2.5V เสมอ (ไม่มีการตั้งค่าที่จะปิดการใช้งาน)
ฉันเลือกที่จะสั่งตัวต้านทาน 0.1% และเพียงตัวควบคุมแรงดันไฟฟ้า MCP1702 โดยข้ามการอ้างอิงแรงดันไฟฟ้า เพิ่มคริสตัล 16MHz เพื่อเพิ่มความเร็ว:
การเปลี่ยนแปลงที่เป็นรูปธรรมอ้างอิงถึงแผนผัง:
นี่คือลักษณะของการเปลี่ยนแปลงเหล่านี้ในสถานที่:
ตัวต้านทาน 0.1% (สีดำ) หนากว่าค่าเริ่มต้นเล็กน้อย (สีน้ำเงิน) ดังนั้นพวกเขาจึงทับซ้อนกันเล็กน้อย
มีตัวเลือกเฟิร์มแวร์ที่แตกต่างกัน 2 ตัวสำหรับผู้ทดสอบทรานซิสเตอร์ ต้นฉบับคือ K-Firmware เครื่องทดสอบมาพร้อมกับเวอร์ชัน 1.12K (ค่อนข้างเก่า) และใหม่ล่าสุดคือ 1.13K การพัฒนา K-Firmware นั้นถูกระงับไว้ มันถูกแยกออกเป็น M-firmware ซึ่งเขียนใหม่และมีคุณสมบัติเพิ่มเติมและยังอยู่ระหว่างการพัฒนาที่ใช้งานอยู่
แหล่ง K-Firmware มีให้บริการที่นี่พร้อมเฟิร์มแวร์ precompiled สำหรับ AY-AT ในไดเรกทอรี MEGA328_COLOR_KIT นอกจากนี้ยังมี makefile ที่มีพารามิเตอร์ที่ถูกต้อง แหล่งที่มาของ M-firmware มีอยู่ที่นี่ แต่เป็นเพียง tarballs ไม่มีเวอร์ชันที่คอมไพล์ล่วงหน้า นอกจากนี้ยังสามารถพบได้ที่นี่
ฉันเลือกที่จะใช้ M-Firmware เนื่องจากยังคงได้รับการพัฒนาอย่างแข็งขัน เวอร์ชันใหม่ล่าสุดในขณะที่เขียนคือ 1.42m
มี 3 ไฟล์การกำหนดค่าในเฟิร์มแวร์ที่ต้องปรับ ดูไฟล์ "โคลนนิ่ง" (จากเฟิร์มแวร์ TGZ) สำหรับการเปลี่ยนแปลงพื้นฐานที่จำเป็นในการสร้างเฟิร์มแวร์ที่เข้ากันได้สำหรับ AY-AT การเปลี่ยนแปลงเพิ่มเติมที่ฉันทำมีการบันทึกไว้ที่นี่ ไฟล์ยังมีอยู่ในไดเรกทอรีเฟิร์มแวร์
HW_REF25
เพราะฉันไม่ได้ใช้การอ้างอิงแรงดันไฟฟ้า TL431A หรือการเปลี่ยน LM4040 ที่แนะนำSW_IR_RECEIVER
เนื่องจากเฟิร์มแวร์มีขนาดใหญ่เกินไป (105%) และจะไม่พอดีกับ ATMEGA328P การสนับสนุน IR ไม่สำคัญสำหรับฉันดังนั้นจึงเป็นเรื่องปกติที่จะปิดการใช้งานUI_AUTOHOLD
เนื่องจากโหมดทดสอบอย่างต่อเนื่องน่ารำคาญ ฉันอยากจะใช้เวลาในการอ่านผลลัพธ์POWER_OFF_TIMEOUT
ดังนั้นจะปิดเมื่อไม่ได้ใช้งานSW_POWER_OFF
เพื่อให้ฉันสามารถปิดได้จากเมนู LCD_LATE_ON
เนื่องจากหน้าจออ่านไม่ออกมากเมื่อเริ่มต้นและการตั้งค่านี้ทำให้ดูดี FREQ
เป็น 16 เนื่องจากการเปลี่ยนแปลงของฉันจาก 8 เป็น 16MHz คริสตัล หากคุณต้องการสร้างเฟิร์มแวร์ใหม่และไม่สนใจการดัดแปลงฮาร์ดแวร์ใด ๆ ที่อธิบายไว้ที่นี่คุณสามารถติดตามตัวอย่างการกำหนดค่าได้ด้วยข้อยกเว้นเหล่านี้:
HW_REF25
FREQ
เป็น 8สิ่งนี้จะทำให้คุณมีเฟิร์มแวร์ที่ทำงานบน "หุ้น" GM328 AY-AT จาก Banggood
นอกเหนือจากเครื่องมือสร้างที่ติดตั้งแล้วฉันต้องเพิ่มแพ็คเกจต่อไปนี้ (ใน OpenSuse):
avr-libc
cross-avr-gcc9
จากนั้น make
เพื่อสร้าง
เมื่อสร้างเสร็จคุณควรมีไฟล์เหล่านี้ซึ่งประกอบขึ้นเป็นเฟิร์มแวร์:
ComponentTester.eep
ComponentTester.hex
และเอาต์พุตคอมไพเลอร์ควรจบลงด้วยสิ่งนี้:
AVR Memory Usage
----------------
Device: atmega328
Program: 32234 bytes (98.4% Full)
(.text + .data + .bootloader)
Data: 248 bytes (12.1% Full)
(.data + .bss + .noinit)
EEPROM: 738 bytes (72.1% Full)
(.eeprom)
หากสิ่งเหล่านี้เต็มมากกว่า 100% คุณมีการเปิดใช้งานมากเกินไปในเฟิร์มแวร์และจะไม่ทำงาน
เพื่อแฟลชเฟิร์มแวร์เราต้องการ 3 ไฟล์ ไฟล์เฟิร์มแวร์ 2 ตัวจากด้านบนและ ComponentTester.cfg ไฟล์สุดท้ายมีการกำหนดค่าของฟิวส์ของ ATMEGA328P การกำหนดค่าฟิวส์ถูกดึงออกมาจาก makefile หากต้องการดูว่าฟิวส์หมายความว่าคุณสามารถใช้เครื่องคิดเลขออนไลน์นี้ได้อย่างไร
AY-AT ไม่รองรับเฟิร์มแวร์ที่กระพริบออกมาจากกล่อง มี 2 วิธีรอบ ๆ นั้น
ตัวเลือกแรกไม่จำเป็นต้องมีการปรับเปลี่ยนให้กับผู้ทดสอบทรานซิสเตอร์อีกต่อไป แต่คุณต้องลบชิปออกจากซ็อกเก็ตและแทรกลงในโปรแกรมเมอร์ทุกครั้งที่คุณต้องการอัปเดตเฟิร์มแวร์
ฉันใช้โปรแกรมเมอร์ Universal TL866II Plus พร้อมกับซอฟต์แวร์ Minipro Open Source สำหรับ Linux ดู https://github.com/blurpy/minipro สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการใช้
ด้วยชิปในโปรแกรมเมอร์เพียงเรียกใช้คำสั่งเหล่านี้:
minipro -p "ATMEGA328P@DIP28" -E
minipro -p "ATMEGA328P@DIP28" -c data -w ComponentTester.eep -e
minipro -p "ATMEGA328P@DIP28" -c code -w ComponentTester.hex -e
minipro -p "ATMEGA328P@DIP28" -c config -w ComponentTester.cfg -e
นั่นควรจะเป็น
ตัวเลือกอื่นคือการบัดกรีพินที่ด้านหลังของแผงวงจรเพื่อเพิ่มส่วนหัว ICSP ที่หายไปซึ่งช่วยให้คุณสามารถแฟลชเฟิร์มแวร์ในวงจรได้ ทำงานได้มากขึ้น แต่มีประโยชน์มากหากคุณอัปเดตเฟิร์มแวร์บ่อยครั้ง
ฉันเพิ่มหมุดหัวมุมขวาแบบนี้:
นี่คือ pinout (มิเรอร์เปรียบเทียบกับด้านบน):
มีอุปกรณ์ต่าง ๆ มากมายที่สามารถใช้แฟลชกับส่วนหัว ICSP ได้เช่นตัวอย่างนี้โดยใช้ Arduino Uno เป็นโปรแกรมเมอร์ แต่ฉันจะใช้ TL866II Plus ที่กล่าวถึงข้างต้นเนื่องจากยังรองรับโหมด ICSP ด้วย pinout ต่อไปนี้ ::
ด้วยสายไฟติดอยู่ระหว่างเครื่องทดสอบทรานซิสเตอร์ (ที่ถูกลบออก) และโปรแกรมเมอร์เพียงเรียกใช้คำสั่งเหล่านี้:
minipro -p "ATMEGA328P@DIP28" -E -i
minipro -p "ATMEGA328P@DIP28" -c data -w ComponentTester.eep -e -i
minipro -p "ATMEGA328P@DIP28" -c code -w ComponentTester.hex -e -i
minipro -p "ATMEGA328P@DIP28" -c config -w ComponentTester.cfg -e -i
นั่นควรจะเป็น
นี่คือผลลัพธ์ที่เสร็จสิ้นหลังจากกระพริบเฟิร์มแวร์ใหม่:
คุณสามารถค้นหาเฟิร์มแวร์ดั้งเดิมได้ที่นี่หากคุณต้องการกู้คืนไปยังเฟิร์มแวร์ที่ทำงานที่รู้จัก
ตอนแรกฉันไม่ได้ให้ความสนใจกับผลลัพธ์หลังจากขั้นตอนการคอมไพล์:
AVR Memory Usage
----------------
Device: atmega328
Program: 34784 bytes (106.2% Full)
มันใช้งานได้ดีในการแฟลชเฟิร์มแวร์ แต่เมื่อพยายามเริ่มเครื่องทดสอบมันจะแฟลชสีขาวบนหน้าจออย่างรวดเร็วแล้วปิด ฉันคิดว่ามันเป็นปัญหาฮาร์ดแวร์ในตอนแรก แต่เมื่อทดสอบเฟิร์มแวร์ดั้งเดิมมันใช้งานได้ หลังจากปิดการใช้งานคุณสมบัติเพียงพอในเฟิร์มแวร์นี้เพื่อให้ได้หน่วยความจำต่ำกว่า 100% มันก็ใช้งานได้ดีเช่นกัน
เมื่อฉันลืมกำหนดค่าหน้าจอใน config_328.h
ก่อนที่จะรวบรวมและกระพริบผู้ทดสอบจะเปิดและแสดงหน้าจอสีขาวจนกว่าพลังงานจะถูกลบออก แก้ไขได้อย่างง่ายดายโดยการเพิ่มการกำหนดค่าที่ถูกต้องและลองอีกครั้ง
หลังจากกระพริบเฟิร์มแวร์ใหม่ขอแนะนำให้ทำตามขั้นตอนที่อธิบายไว้ใน readMe เพื่อเรียกใช้การปรับตัวเอง
สรุปสั้น ๆ ของขั้นตอน:
Adjustment
Save
ในเมนูและเลือกสล็อต #1เมื่อถูกขอให้สั้น ๆ โพรบฉันใช้ลวดเขียงหั่นขนมสั้นระหว่างจุดทดสอบ 1 และจุดทดสอบ 2 และระหว่างจุดทดสอบ 2 และจุดทดสอบ 3 ในซ็อกเก็ต ZIF