ATtiny ทำอะไรไม่ได้บ้างที่ Arduino สามารถทำได้?


12

ได้รับแรงบันดาลใจจากวิดีโอ YouTube ของ Make Magazineนี้ฉันต้องการใช้ชิป ATtiny แทน Arduino สำหรับโครงการส่วนใหญ่ของฉัน ผู้เขียนวิดีโอเตือนว่าบางฟังก์ชั่น Arduino ไม่สามารถใช้งานได้กับ ATtinys มีรายการที่สมบูรณ์ของสิ่งที่เป็นและไม่ได้รับการสนับสนุน?


1
จากสิ่งที่ฉันอ่าน (ซึ่งไม่ได้รับการยอมรับอย่างมาก) ATtinys ไม่ทุกคนมีแฟลชเพียงพอสำหรับ bootloader ของ Arduino คุณยังสามารถคอมไพล์ผ่าน Arduino และอัพโหลดผ่าน AVRdude แยกต่างหากได้
Ignacio Vazquez-Abrams

1
มันไม่เกี่ยวกับ bootloader ที่นี่ (คุณสามารถใช้โปรแกรมเมอร์ภายนอก) แต่บางไลบรารีก็ไม่ได้คอมไพล์รหัสการทำงาน (ฉันเข้าใจดีว่าฉันไม่เข้าใจเลยว่าจะมีข้อผิดพลาดเกิดขึ้น) ความรู้ที่ดีที่สุดของฉันไม่มีรายการของฟังก์ชั่นที่ใช้งานได้และไม่ทำอะไร แต่มันไม่เจ็บที่จะเรียนรู้วิธีการตั้งโปรแกรมฮาร์ดแวร์โดยตรงเพราะฟังก์ชั่น Arduino ส่วนใหญ่มาพร้อมกับค่าใช้จ่ายเล็กน้อย คุณต้องไม่ต้องการฟังก์ชั่นเหมือนpinMode();และdigitalWrite();บน ATtiny เพียงสิทธิในการลงทะเบียนที่เหมาะสมDDRx, PORTxโดยตรง สามารถพบฟังก์ชั่นที่คล้ายกันหลายอย่าง
jippie

1
สำหรับโครงการ Arduino ส่วนใหญ่ที่ฉันได้เห็น ATtiny ชิปจะมีความสามารถมากมาย ส่วนใหญ่คุณจะเขียนโปรแกรมผ่าน SPI แทน bootloader และเขียนโค้ดใน C หรือ Assembly แทนการคัดลอกและวาง Arduino ทั่วไปจากบทเรียน
เคิร์ตอี. Clothier

@Kurt ที่จริงแล้วมีพอร์ตของไลบรารีรันไทม์ Arduino จำนวนมากและแม้แต่ซอฟต์แวร์ USB - แต่แน่นอนว่ามันมีค่าใช้จ่าย
Chris Stratton

1
@ChrisStratton จุดที่ดี ฉันแค่คิดว่าคนที่ไม่รู้จักความแตกต่างระหว่าง ATtiny เปลือยหรือแม้แต่ชิป ATmega และบอร์ด Arduino ก็ไม่รู้ว่ามันหมายถึงอะไร (พอร์ต, การดีบักรันไทม์, USB ซอฟต์แวร์ ฯลฯ ) ดังนั้นฉันจึง สงสัยว่าพวกเขาจะต้องใช้พวกเขา ถ้าเป็นเช่นนั้นพวกเขาจำเป็นต้องเรียนรู้เพิ่มเติมเล็กน้อยเกี่ยวกับสิ่งที่พวกเขากำลังทำอยู่ดังนั้นพวกเขาจึงสามารถแก้ปัญหาง่ายๆได้เมื่อพบ จากนั้นอีกครั้งฉันคิดว่ามันเป็นความคิดของคนต่อต้านอาร์ดิโนทั้งหมดเช่นตัวฉันเอง
Kurt E. Clothier

คำตอบ:


10

อัปเดต: เพื่อตอบคำถามได้ดีขึ้น ATTiny สามารถทำทุกอย่างที่ไม่ต้องการฮาร์ดแวร์ที่ ATTiny ขาดหายไปซึ่งรวมถึงพอร์ตอนุกรมฮาร์ดแวร์ฮาร์ดแวร์ i2c หรืออินเตอร์รัปต์หลายตัว เนื่องจากสิ่งนี้ถูกซ่อนอยู่ในไลบรารี Arduino เว้นแต่คุณจะมีความเข้าใจในวิธีการทำงานหรืออ่านไฟล์ไลบรารีจริงสิ่งต่าง ๆ เช่นห้องสมุดลวด (ฮาร์ดแวร์ i2c) จะไม่ทำงาน

จากhttp://forum.arduino.cc/index.php/topic,5582.0.html :

ตัวอย่างเช่น ATTINY84 มี 1 การขัดจังหวะไม่มีฮาร์ดแวร์ UART (อนุกรมหรือ i2c) และเข็ม GPIO จำนวนเล็กน้อยหยิบพื้นที่โปรแกรมน้อยและ RAM น้อยกว่ามาก แต่มาในแพ็คเกจ 14 พิน

ATMEGA328 มี 2 อินเตอร์รัปต์, 1 ฮาร์ดแวร์ UART, พื้นที่โปรแกรมมากขึ้นและ GPIO มากขึ้นซึ่งยอดเยี่ยมมากถ้าคุณต้องการมันจริงๆ

นอกจากนี้ ATTiny ส่วนใหญ่ไม่มีการคูณฮาร์ดแวร์ดังนั้นคอมไพเลอร์จะต้องทำการคูณที่ไม่ใช่เบส -2 ในซอฟต์แวร์

ในที่สุด Arduinos พึ่งพา bootloader แทนการเขียนโปรแกรม spi ดังนั้นคุณต้องใช้ ATTiny พร้อม atleast 4 ~ 8kb แฟลชเพื่อให้พวกมันทำงานร่วมกับ Arduino bootloader

ATTiny44 / 45/84/45/2313 เป็นที่นิยมในฐานะไมโคร - อารดู พวกเขามีหน่วยความจำหนึ่งในสี่หรือแปดของ RAM และแฟลชของ ATMega328 ที่ Arduino Uno ใช้อย่างเป็นทางการ

มี ATTiny จำนวนมากดังนั้นจึงไม่มีคำพูดใด ๆ เกี่ยวกับพวกเขาทั้งหมด

ดูที่นี่: http://hlt.media.mit.edu/?p=1695


5

attinys ส่วนใหญ่ไม่มีโมดูล USART ของฮาร์ดแวร์ดังนั้นคุณจะไม่สามารถสื่อสารกับพวกเขาผ่านทางอนุกรม สำหรับ attinys บางตัวแทนที่จะใช้อุปกรณ์ต่อพ่วงฮาร์ดแวร์ I2C และ SPI โดยเฉพาะมีอุปกรณ์ต่อพ่วง USI แบบง่ายซึ่งคุณต้องเขียนรหัสกาวเล็กน้อยเพื่อติดตั้ง SPI หรือ I2C บาง attinys ไม่มี ADC

โดยทั่วไปคุณจะต้องระมัดระวังมากขึ้นเมื่อเลือก attiny สำหรับโครงการของคุณเพราะสิ่งเหล่านั้นมักจะไม่มีคุณสมบัติครบชุดที่มีอยู่ใน atmega328 ของ Arduino ตัวอย่างเช่น attiny2313 มี UART แต่ไม่มี ADC, attiny44 มี ADC แต่ไม่มี UART เป็นต้น

เพียงตรวจสอบตารางการเลือกไมโครคอนโทรลเลอร์ Atmel และแผ่นข้อมูลที่จุดเริ่มต้น


1
การขาดฮาร์ดแวร์ UART! = จะไม่สามารถสื่อสารผ่านซีเรียล
Chris Stratton

@ChrisStratton จริงคุณบิตสามารถปังมันเลียนแบบผ่าน USI
miceuz

1

ประเด็นเล็ก ๆ น้อย ๆ ที่เกี่ยวข้องประเด็นที่ได้รับคำตอบที่ดีเยี่ยมแล้วและเหนือกว่า:

บอร์ด Arduino ส่วนใหญ่ไม่นับ Pro Mini / Pro Micro และอาจหายากอื่น ๆ นอกเหนือจากไมโครคอนโทรลเลอร์หลักไม่ว่าจะเป็น AVR ตัวที่สองหรือส่วนต่อประสาน USB อื่น ๆ สิ่งนี้ช่วยให้ไม่เพียง แต่ตั้งโปรแกรมของ Arduino จากคอมพิวเตอร์เท่านั้น แต่ยังทำการดีบักเทอร์มินัลอนุกรมขณะใช้งาน การเชื่อมต่อ USB เดียวกันยังให้พลังงานกับ Arduino

แม้ว่าความต้องการพลังงานของ ATTiny จะได้รับการระบุในการออกแบบของคุณอย่างชัดเจน แต่การดีบั๊กโค้ดในเวลาทำงานโดยใช้ซอฟต์แวร์เทอร์มินัลนั้นค่อนข้างสะดวก


1
บอร์ด attiny บางอันแก้ปัญหาดังกล่าวด้วยซอฟต์แวร์ USB
Chris Stratton
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.