ATtiny85 เป็นไมโครคอนโทรลเลอร์ขนาดเล็ก 8 บิตที่ออกแบบมาสําหรับงานควบคุมอย่างง่ายซึ่งพื้นที่และการใช้พลังงานมีความสําคัญ รวมหน่วยความจํา ตัวจับเวลา อินพุตแบบอะนาล็อก และการสื่อสารแบบอนุกรมไว้ในแพ็คเกจ 8 พิน บทความนี้ให้ข้อมูลโดยละเอียดเกี่ยวกับข้อมูลจําเพาะ พินเอาต์ โครงสร้างภายใน การตั้งค่าพลังงานและนาฬิกา การเขียนโปรแกรม วงจร และปัญหาทั่วไป
ค 1. ภาพรวม ATtiny85
ค 2. ข้อมูลจําเพาะทางเทคนิคของ ATtiny85
ค 3. การกําหนดค่า ATtiny85 Pinout
ค 4. ATtiny85 บล็อกไดอะแกรม
ค 5. ATtiny85 การตั้งค่าพลังงาน นาฬิกา และฟิวส์
ค 6. ขีดจํากัด ATtiny85 GPIO และการทํางานที่ปลอดภัย
ค 7. ATtiny85 ADC และความสามารถแบบอะนาล็อก
ค 8. ATtiny85 การสื่อสารแบบอนุกรมกับ USI
ค 9. การเขียนโปรแกรม ATtiny85 ผ่าน Arduino IDE
ค 10. วงจร ATtiny85 ที่เชื่อถือได้น้อยที่สุด
ค 11. ATtiny85 ปัญหาทั่วไปและการตรวจสอบด่วน
ค 12. สรุป
ค 13. คําถามที่พบบ่อย [FAQ]

ภาพรวม ATtiny85
ATtiny85 เป็นไมโครคอนโทรลเลอร์ 8 บิตขนาดกะทัดรัดที่ออกแบบมาสําหรับงานควบคุมอย่างง่าย ซึ่งต้องรักษาพื้นที่ การใช้พลังงาน และจํานวนส่วนประกอบให้ต่ํา ฟอร์มแฟคเตอร์ 8 พินช่วยลดขนาดวงจร ความซับซ้อนในการเดินสาย และต้นทุนของระบบในขณะที่ยังคงมีฟังก์ชันการควบคุมพื้นฐาน
แม้จะมีอยู่ในตลาดมานาน แต่ ATtiny85 ยังคงใช้กันอย่างแพร่หลายเนื่องจากความเสถียร เอกสารประกอบที่แข็งแกร่ง และความเข้ากันได้กับเครื่องมือพัฒนาทั่วไป ทํางานในช่วงแรงดันไฟฟ้าที่กว้างและรองรับตัวเลือกนาฬิกาหลายแบบ ทําให้เหมาะสําหรับการออกแบบขนาดกะทัดรัดและใช้พลังงานต่ําที่ต้องการพฤติกรรมที่เชื่อถือได้และคาดเดาได้
ข้อมูลจําเพาะทางเทคนิคของ ATtiny85
| ไม่ใช่ จํานวนพิน | 8 | |||
|---|---|---|---|---|
| ซีพียู | RISC 8 บิต AVR | RISC | ||
| แรงดันไฟฟ้าที่ใช้งาน | 1.8 ถึง 5.5 V | |||
| หน่วยความจําโปรแกรม | 8K | |||
| ประเภทหน่วยความจําโปรแกรม | แฟลช | |||
| แรม | 512 ไบต์ | |||
| EEPROM | อีปรอม 512 ไบต์ | |||
| จํานวน ADC ของช่อง ADC | 10 บิต 4 | |||
| เครื่องเปรียบเทียบ | 1 | |||
| แพ็คเกจ | PDIP (8 ขา) SOIC (8 ขา) TSSOP (8 ขา) QFN/MLF (20 ขา) | |||
| ออสซิลเลเตอร์ | สูงสุด 20 MHz | |||
| ตัวจับเวลา (2) | ตัวจับเวลา 8 บิต | |||
| ปรับปรุงการรีเซ็ตพลังงาน | ใช่ | |||
| ตัวตั้งเวลาเปิดเครื่อง | ใช่ | |||
| พิน I/O | 6 | |||
| ผู้ผลิต | ไมโครชิพ | ไมโครชิพ | ||
| SPI | สปอนซิส ใช่ | |||
| I2C | ไอทูซี ใช่ | |||
| ตัวจับเวลาสุนัขเฝ้าระวัง | ใช่ | |||
| การตรวจจับสีน้ําตาลออก (BOD) | ใช่ | |||
| รีเซ็ต | ใช่ | |||
| USI (Universal Serial Interface) | ยูเอสไอ ใช่ | |||
| อุณหภูมิใช้งานต่ําสุด | มิซูมิ -40 องศาเซลเซียส | |||
| อุณหภูมิใช้งานสูงสุด | 125 องศาเซลเซียส | |||
![]() | ||||
| หมุด | ชื่อ | ฟังก์ชั่นหลัก | ||
| 1 | PB5 | RESET, GPIO (หากฟิวส์เปลี่ยน) | ||
| 2 | 2 | PB3 | พีบี 3 GPIO, ADC | GPIO |
| 3 | PB4 | พีบี 4 GPIO, ADC | GPIO | |
| 4 | จีเอ็นดี | พื้นดิน | ||
| 5 | PB0 | GPIO, PWM, MOSI | ||
| 6 | PB1 | GPIO, PWM, มิโซะ | ||
| 7 | PB2 | พีบีทู GPIO, ADC, SCK | จีพีโอ, เอดีซี, เอสเค | |
| 8 | บัตรเครดิต VCC | พาวเวอร์ซัพพลาย |
ATtiny85 มีจําหน่ายในแพ็คเกจ PDIP-8 และ QFN/MLF-20 ทั้งสองใช้วงจรภายในเดียวกัน แต่การจัดเรียงพินแตกต่างกัน แพ็คเกจ PDIP-8 เผยให้เห็นเฉพาะพินพื้นฐานและใช้งานง่ายกว่าในวงจรพื้นฐาน ในขณะที่แพ็คเกจ QFN/MLF-20 มีพินเพิ่มเติมที่ทําเครื่องหมายว่าไม่ได้เชื่อมต่อ
หมุดส่วนใหญ่รองรับหลายฟังก์ชัน พินเดียวสามารถทําหน้าที่เป็นอินพุตหรือเอาต์พุตดิจิตอลอ่านสัญญาณแอนะล็อกสร้างเอาต์พุต PWM หรือรองรับการสื่อสารแบบอนุกรม การออกแบบมัลติฟังก์ชั่นนี้ช่วยให้ ATtiny85 ยังคงมีขนาดเล็กในขณะที่ให้ความยืดหยุ่น พิน RESET ยังสามารถกําหนดค่าเป็นพินได้โดยการเปลี่ยนการตั้งค่าฟิวส์ แม้ว่าจะลบความสามารถในการรีเซ็ตภายนอก
แผนภาพบล็อก ATtiny85

ATtiny85 สร้างขึ้นจากแกนประมวลผล AVR ที่ดําเนินการคําสั่งที่จัดเก็บไว้ในหน่วยความจําแฟลช SRAM ใช้สําหรับข้อมูลชั่วคราวระหว่างการทํางาน ในขณะที่ EEPROM จัดเก็บข้อมูลแบบไม่ลบเลือนที่ต้องเก็บไว้เมื่อถอดพลังงานออก ตัวนับโปรแกรม ตัวชี้สแต็ก และรีจิสเตอร์จัดการโฟลว์คําสั่งและการประมวลผลข้อมูล
ฟังก์ชันจับเวลาได้รับการจัดการโดยตัวจับเวลา 8 บิตภายในสองตัวและตัวจับเวลาสุนัขเฝ้าระวัง สุนัขเฝ้าระวังปรับปรุงความน่าเชื่อถือโดยการรีเซ็ตอุปกรณ์หากการทํางานของโปรแกรมปกติหยุดลง ออสซิลเลเตอร์ภายในให้สัญญาณนาฬิกา และการควบคุมเวลาแบบรวมศูนย์จะซิงโครไนซ์โมดูลภายในทั้งหมด
การดําเนินการอินพุตและเอาต์พุตได้รับการจัดการผ่านการลงทะเบียนพอร์ตที่เชื่อมต่อโดยตรงกับพินภายนอก อุปกรณ์นี้ยังรวมวงจรแอนะล็อก เช่น ADC และตัวเปรียบเทียบ บล็อกภายในทั้งหมดเชื่อมโยงผ่านเส้นทางข้อมูลที่ใช้ร่วมกัน ทําให้สามารถสื่อสารระหว่างหน่วยความจํา ตรรกะการประมวลผล และ I/O ได้อย่างมีประสิทธิภาพ
ATtiny85 การตั้งค่าพลังงาน นาฬิกา และฟิวส์
• ATtiny85 มีออสซิลเลเตอร์ RC ภายใน ทําให้สามารถทํางานได้โดยไม่ต้องใช้ส่วนประกอบนาฬิกาภายนอก
• อาจใช้แหล่งสัญญาณนาฬิกาภายนอกหรือคริสตัลเมื่อต้องการความแม่นยําของเวลาที่สูงขึ้น
• การตั้งค่าฟิวส์ควบคุมแหล่งสัญญาณนาฬิกา ความล่าช้าในการเริ่มต้น ระดับการตรวจจับไฟดับ และพฤติกรรมของพินรีเซ็ต
• การทํางานที่ความเร็วสัญญาณนาฬิกาที่ต่ําลงช่วยลดการใช้พลังงานและสัญญาณรบกวนทางไฟฟ้า
• การตรวจจับแสงไฟดับช่วยเพิ่มเสถียรภาพที่แรงดันไฟฟ้าต่ํา แต่เพิ่มการดึงกระแสไฟเล็กน้อย
ขีดจํากัด ATtiny85 GPIO และการทํางานที่ปลอดภัย
• พิน GPIO มีไว้สําหรับควบคุมสัญญาณและต้องไม่จ่ายไฟให้กับโหลดภายนอก
• ไฟ LED ที่เชื่อมต่อกับพิน GPIO ต้องใช้ตัวต้านทานจํากัดกระแสเพื่อป้องกันความเสียหาย
• มอเตอร์ รีเลย์ และอุปกรณ์กระแสสูงอื่นๆ ต้องควบคุมโดยใช้ทรานซิสเตอร์ภายนอกหรือ MOSFET
•สามารถเปิดใช้งานตัวต้านทานแบบดึงขึ้นภายในเพื่อลดความซับซ้อนของการเชื่อมต่อปุ่มและสวิตช์
• แรงดันไฟฟ้า GPIO ทั้งหมดต้องอยู่ภายในขีดจํากัดที่กําหนดเพื่อหลีกเลี่ยงความเสียหายถาวร
ATtiny85 ADC และความสามารถแบบอะนาล็อก
| คุณสมบัติ | คําอธิบาย |
|---|---|
| ความละเอียด ADC | ADC 10 บิต |
| ช่องสัญญาณเข้า | สูงสุด 4 |
| ตัวเลือกอ้างอิง | VCC หรือการอ้างอิงภายใน |
| โหมดพิเศษ | ADC การนอนหลับลดเสียงรบกวน |
| ATtiny85 มีตัวแปลงอนาล็อกเป็นดิจิตอลในตัวที่วัดระดับแรงดันไฟฟ้าที่เปลี่ยนแปลงและแปลงเป็นค่าดิจิทัล คุณภาพการวัดขึ้นอยู่กับแรงดันอ้างอิงที่เสถียร การเชื่อมต่อพลังงานที่สะอาด และการกําหนดเส้นทางสัญญาณที่เหมาะสม การใช้โหมดสลีปลดเสียงรบกวน ADC ช่วยลดเสียงรบกวนภายในระหว่างการแปลง ซึ่งช่วยเพิ่มความสม่ําเสมอในการอ่านและความน่าเชื่อถือโดยรวม | |
| ATtiny85 รองรับการสื่อสารแบบอนุกรมผ่าน Universal Serial Interface (USI) อินเทอร์เฟซที่ยืดหยุ่นนี้สามารถกําหนดค่าผ่านเฟิร์มแวร์เพื่อทํางานในโหมด SPI หรือรองรับการสื่อสารแบบ I²C ด้วยการใช้บล็อกฮาร์ดแวร์ที่ใช้ร่วมกันเพียงบล็อกเดียว อุปกรณ์จะรักษาขนาดที่กะทัดรัดในขณะที่ยังคงเปิดใช้งานการแลกเปลี่ยนข้อมูลพื้นฐาน | |
| เนื่องจาก USI พึ่งพาการควบคุมซอฟต์แวร์เป็นอย่างมาก จึงจําเป็นต้องมีการจัดการเวลาอย่างระมัดระวัง เหมาะสําหรับงานสื่อสารที่เรียบง่ายและความเร็วต่ํา แต่มีคุณสมบัติการทํางานอัตโนมัติน้อยกว่าอุปกรณ์ต่อพ่วง SPI หรือ I²C เฉพาะที่พบในไมโครคอนโทรลเลอร์ขนาดใหญ่ | |
![]() | |
| • สามารถตั้งโปรแกรม ATtiny85 ใน Arduino IDE ได้หลังจากติดตั้งคอร์ที่เข้ากันได้กับ ATtiny | |
| • การเขียนโปรแกรมทําได้โดยใช้โปรแกรมเมอร์ USB หรือ Arduino ที่ตั้งค่าเป็น ISP | |
| • การตั้งค่าบอร์ดใน Arduino IDE ต้องตรงกับความเร็วสัญญาณนาฬิกาที่เลือกและปริมาตรการทํางาน tage ของ ATtiny85 | |
| • PIN ที่ใช้ในรหัสนั้นแตกต่างจากเค้าโครงพินจริง ดังนั้นจึงต้องตรวจสอบอย่างรอบคอบก่อนเดินสาย | |
![]() | |
| วงจรนี้ใช้เฉพาะส่วนประกอบพื้นฐานที่จําเป็นสําหรับการทํางานที่มั่นคง พิน VCC และ GND จ่ายไฟ ทําให้ตรรกะภายในทํางานได้อย่างถูกต้อง ออสซิลเลเตอร์ภายในควบคุมเวลา ดังนั้นจึงไม่จําเป็นต้องใช้ส่วนประกอบนาฬิกาภายนอก | |
| ไฟ LED ที่เชื่อมต่อผ่านตัวต้านทาน 47 Ω แสดงให้เห็นถึงการควบคุมเอาต์พุตในขณะที่ปกป้องทั้ง LED และพิน GPIO พิน RESET ยังคงสามารถเข้าถึงได้สําหรับการตั้งโปรแกรมใหม่หรือรีสตาร์ทอุปกรณ์ ด้วยส่วนประกอบภายนอกน้อยมากการตั้งค่านี้จึงเป็นรากฐานที่เรียบง่ายและเชื่อถือได้สําหรับการใช้งานพื้นฐาน | |
| ปัญหา | สิ่งที่ต้องตรวจสอบหรือแก้ไข? |
| การอัปโหลดโค้ดล้มเหลว | ตรวจสอบการเดินสาย ISP และยืนยันการตั้งค่าฟิวส์ RESET |
| เวลาไม่ถูกต้อง ตรวจสอบแหล่งสัญญาณนาฬิกาที่เลือกและการกําหนดค่าฟิวส์ |
| การอ่านค่า ADC ไม่เสถียร | ปรับปรุงการต่อสายดินและเพิ่มตัวเก็บประจุแบบแยกส่วนที่เหมาะสม
| ข้อผิดพลาดในการสื่อสาร | ตรวจสอบการตั้งค่า USI และการตั้งค่าเวลา | USI
| หมุดร้อนเกินไป ลดกระแสโหลดและใช้ส่วนประกอบไดรเวอร์ภายนอก | Uka AG
สรุป
ATtiny85 รวบรวมคุณสมบัติการควบคุมหลักในรูปแบบที่กะทัดรัดมาก ข้อมูลจําเพาะ ฟังก์ชันพิน บล็อกภายใน และการตั้งค่าพลังงานอธิบายวิธีการทํางานในวงจรจริง ด้วยการจัดการ GPIO ที่เหมาะสม การใช้ ADC การตั้งค่าแบบอนุกรม และวงจรที่น้อยที่สุด ATtiny85 จึงสามารถเข้าใจได้อย่างชัดเจนและนําไปใช้ในการออกแบบที่เสถียรและใช้พลังงานต่ํา
คําถามที่พบบ่อย [FAQ]
ATtiny85 ใช้พลังงานเท่าไร?
การใช้พลังงานขึ้นอยู่กับแรงดันไฟฟ้า ความเร็วสัญญาณนาฬิกา และคุณสมบัติที่ใช้งานอยู่ ความเร็วสัญญาณนาฬิกาที่ต่ําลงและการปิดใช้งานอุปกรณ์ต่อพ่วงที่ไม่ได้ใช้จะช่วยลดการใช้กระแสไฟ
ATtiny85 ต้องการนาฬิกาภายนอกหรือไม่?
ไม่ใช่ ATtiny85 มีออสซิลเลเตอร์ RC ภายในและสามารถทํางานได้โดยไม่ต้องใช้ส่วนประกอบนาฬิกาภายนอก นาฬิกาภายนอกจําเป็นสําหรับความแม่นยําในการจับเวลาที่สูงขึ้นเท่านั้น
สามารถใช้พิน RESET เป็นพิน I/O ปกติได้หรือไม่?
ใช่. พิน RESET สามารถกําหนดค่าเป็น GPIO ได้โดยใช้การตั้งค่าฟิวส์ การดําเนินการนี้จะปิดใช้งานการเขียนโปรแกรม ISP มาตรฐานและต้องใช้การตั้งโปรแกรมไฟฟ้าแรงสูงเพื่อตั้งโปรแกรมอุปกรณ์ใหม่
ATtiny85 สามารถขับเคลื่อนมอเตอร์หรือรีเลย์ได้โดยตรงหรือไม่?
ไม่ใช่ พิน ATtiny85 GPIO ใช้สําหรับควบคุมสัญญาณเท่านั้น มอเตอร์และรีเลย์ต้องขับเคลื่อนโดยใช้ทรานซิสเตอร์ภายนอกหรือ MOSFET
เหตุใดการอ่าน ATtiny85 ADC จึงไม่เสถียร
การอ่านค่า ADC ที่ไม่เสถียรมักเกิดจากเสียงรบกวนจากพลังงานหรือการต่อสายดินไม่ดี การเพิ่มตัวเก็บประจุแบบแยกส่วนที่เหมาะสมและการใช้โหมดลดเสียงรบกวน ADC ช่วยเพิ่มความเสถียร


