คำถามติดแท็ก attiny

ATtiny เป็นตระกูลของไมโครคอนโทรลเลอร์ RISC 8 บิตขนาดเล็กที่ใช้พลังงานต่ำจาก Atmel พบได้ทั่วไปในบอร์ดและโครงการแพลตฟอร์มต้นแบบ Arduino ที่มีขนาดเล็กกว่า

1
ทำไม AVR ของฉันรีเซ็ตเมื่อฉันโทร wdt_disable () เพื่อลองปิดตัวจับเวลาจ้องจับผิด?
ฉันมีปัญหาในการใช้งานตัวควบคุม watchdog ใน AVR ATtiny84A ที่กำลังรีเซ็ตชิปแม้ว่าตัวจับเวลาควรมีเวลาเหลืออีกมาก สิ่งนี้เกิดขึ้นอย่างไม่สอดคล้องกันและเมื่อใช้รหัสเดียวกันในหลายส่วนทางกายภาพ บางรีเซ็ตทุกครั้งบางรีเซ็ตบางครั้งและบางคนไม่เคย เพื่อแสดงให้เห็นถึงปัญหาฉันได้เขียนโปรแกรมง่าย ๆ ที่ ... เปิดใช้งานการจ้องจับผิดด้วยการหมดเวลา 1 วินาที รีเซ็ตสุนัขเฝ้าบ้าน กะพริบไฟ LED สีขาวเป็นเวลา 0.1 วินาที กะพริบไฟ LED สีขาวเป็นเวลา 0.1 วินาที ปิดใช้งานการจ้องจับผิด เวลารวมระหว่างการเปิดใช้งานและปิดใช้งานการเฝ้าระวังน้อยกว่า 0.3 วินาที แต่บางครั้งการเฝ้าระวังการตั้งค่าจะเกิดขึ้นเมื่อดำเนินการตามลำดับการปิดใช้งาน นี่คือรหัส: #define F_CPU 1000000 // Name used by delay.h. We are running 1Mhz (default fuses) #include <avr/io.h> #include <util/delay.h> …
34 arduino  avr  attiny  watchdog 

5
ทำให้แบตเตอรี่มีอายุการใช้งานนานในวงจรไมโครคอนโทรลเลอร์
ฉันหวังว่าจะใช้ ATtiny85V เป็นเวลานานสำหรับแบตเตอรี่ขนาดเล็กบางตัวอาจเป็นเซลล์แบบเหรียญ ฉันมองเข้าไปในด้านซอฟต์แวร์และรหัสของฉันคือตัวจับเวลาจ้องจับผิดที่ขับเคลื่อนได้มีการปิดตัวแปลงสัญญาณอนาล็อกและดิจิตอลที่ไม่ได้ใช้ชิปกำลังทำงานที่ 1MHz ฯลฯ แน่นอนว่าทั้งยุ่งและใหม่ที่นี่ฉันไม่แน่ใจอย่างแน่นอน ปัจจุบันมันวาดเท่าไร แต่ฉันหวังว่าฉันจะลดขนาดมันลง ทุกสองสามวินาทีที่มันตื่นขึ้นมาระดับแรงดันไฟฟ้าจะตรวจสอบ ADCs บันทึกลงใน RAM และกลับเข้าสู่โหมดสลีป หากตรวจพบว่ามีการเชื่อมต่อสายอนุกรมมันจะพ่นข้อมูลออก อย่างไรก็ตามตอนนี้ฉันกำลังดูวงจรโดยรวมและสงสัยว่ามีสิ่งที่ฉันควรทำอย่างไรเพื่อให้วงจรเป็นแบตเตอรี่ที่เป็นมิตรมากขึ้น? อะไรคือ dos พื้นฐานและ don'ts เมื่อมันมาถึงการออกแบบวงจร (ง่าย) ยาวนานที่หนึ่งองค์ประกอบ (ไมโครคอนโทรลเลอร์) มีซ้ำ แต่วาดปัจจุบันตัวแปร? ตัวอย่างเช่น LED แสดงสถานะเป็นเรื่องใหญ่หรือไม่? แบตเตอรี่ใช้แล้วสว่างหรือไม่? ฉันควรจะใส่ตัวต้านทานขนาดใหญ่ลงไปเพื่อทำให้สลัวหรือว่าเพียงแค่ทำให้ตัวต้านทานใช้แบตเตอรี่หรือไม่ ฉันควรใช้ตัวเก็บประจุบายพาส / ตัวแยกสัญญาณเพื่อดึงพลังงานออกจากแบตเตอรี่หรือตัวเก็บประจุจะสิ้นเปลืองพลังงานแบตเตอรี่หรือไม่ ไมโครคอนโทรลเลอร์ต้องการเพียง 1.8V แต่ฉันไม่มีแบตเตอรี่ 1.8V ฉันควรใช้แบตเตอรี่ 1.x สองก้อนและส่งแรงดันไฟฟ้ามากเกินไปหรือไม่ ฉันสามารถยืดอายุการใช้งานแบตเตอรี่โดยใช้ "ไม่ใช้โวลต์ให้มาก" ได้หรือไม่? ฉันจะทำอย่างไร ต้องใช้พลังงานเพิ่มเติมเพื่อตรวจสอบว่าพินสูงหรือต่ำ? เช่นเดียวกับเมื่อเปรียบเทียบกับ no-op หรือเลขคณิตมีการใช้พลังงานเพิ่มเติมมากมายในการตรวจสอบพิน I …

3
ใช้ AVR Watchdog เหมือน ISR ปกติ
ฉันพยายามล้อมหัวนาฬิกาจับเวลาในซีรีย์ ATTinyX5 ดังนั้นสิ่งที่ฉันได้อ่านทำให้ดูเหมือนว่าคุณสามารถใช้มันเพื่อทำให้โปรแกรมทำสิ่งที่เฉพาะเจาะจงตลอดเวลา N วินาที แต่ไม่เคยแสดงให้เห็นว่าจริงๆ คนอื่นทำให้ดูเหมือนว่ามันจะรีเซ็ตชิปเท่านั้นเว้นแต่บางสิ่งบางอย่างในการรีเซ็ตรหัสจะถูกนับในเวลาเดียวกัน (ซึ่งดูเหมือนจะเป็นการใช้ "ปกติ") มีวิธีการใช้ WDT เหมือนที่คุณต้องการ TIMER1_COMPA_vect หรือคล้ายกัน ฉันสังเกตเห็นว่ามันมีโหมดไทม์เอาต์ 1 วินาทีและฉันชอบที่จะใช้มันเพื่อทำให้บางสิ่งเกิดขึ้นทุก ๆ 1 วินาทีในโค้ดของฉัน (และควรนอนในระหว่างนั้น) คิด? * ปรับปรุง: *เนื่องจากมันถูกถามว่าสิ่งที่ผมหมายถึงคือส่วน 8.4 ของATTinyX5 แผ่นข้อมูล ไม่ใช่ว่าฉันเข้าใจอย่างถ่องแท้ซึ่งเป็นปัญหาของฉัน ...
17 avr  attiny  watchdog 

7
ฉันจะตั้งความเร็วนาฬิกาเป็นฟิวส์บน ATtiny85 เมื่อใช้ Arduino เป็นโปรแกรมเมอร์ได้อย่างไร
ฉันกำลังทำตามบทช่วยสอนนี้การเขียนโปรแกรม ATtiny85 กับ Arduino โดยใช้เพื่อเล่นเสียงบางอย่าง (ผ่านลำโพง piezo) ฉันกำลังดิ้นรนเพื่อให้ได้โทนที่ถูกต้อง (ฉันกำลังสร้างรูปคลื่นด้วยตนเองเนื่องจากฟังก์ชั่นโทน () ไม่ได้รับการสนับสนุนใน ATtiny85) ฉันเชื่อว่าปัญหาอาจลดลงตามความเร็วสัญญาณนาฬิกาของ Arduino และ ATtiny ฉันเข้าใจว่าความเร็วสัญญาณนาฬิกาสามารถเปลี่ยนแปลงได้ใน ATtiny ฉันจะทำสิ่งนี้ได้อย่างไรโดยใช้สภาพแวดล้อมของ Arduino

2
การเลือกที่อยู่บัส 4 บิตผ่านทางขาเข้าแบบอะนาล็อก: การจำลอง Monte Carlo แสดงค่าที่อยู่ที่ทับซ้อนกัน
ฉันออกแบบ PCB ตัวเซ็นเซอร์ขนาดเล็กสำหรับวิทยานิพนธ์ปริญญาโทของฉันด้วยไมโครคอนโทรลเลอร์ATtiny44 ฉันต้องการบอร์ดประมาณ 200 ตัวสำหรับแอปพลิเคชันของฉันและ 16 บอร์ดเชื่อมต่ออยู่กับบอร์ดควบคุมเสมอ เครือข่ายทั้งหมดมีลักษณะดังนี้: ในการสื่อสารระหว่างคอนโทรลเลอร์และแผงเซ็นเซอร์ฉันเขียนบัสพินของฉันเอง 1 ตัว (ตามเวลา) ปัญหาเดียวคือบอร์ดเซนเซอร์จะต้องมีที่อยู่เพื่อทราบตำแหน่งของมันในเครือข่ายเมื่อฉันส่งข้อมูลไปยังบอร์ดควบคุม เมื่อฉันเหลือ ATtiny เพียง 1 ขาฉันจึงได้วงจร DAC ที่เป็นจัมเปอร์ซึ่งควรสร้างแรงดันไฟฟ้าอะนาล็อกตามการตั้งค่าของจัมเปอร์สี่ตัว เนื่องจากวงจรเซ็นเซอร์ใช้ค่า (47, 470, 1k, 3k, 4k7, 10k, 100k และ 220k) และฉันต้องการเพิ่มประสิทธิภาพสำหรับการผลิตฉันใช้ค่าด้านล่างสำหรับ DAC (โดยทั่วไปคือ 100k, 50k, 20k และ 10k ) ซึ่งควรให้ฉันค่าที่ดีระหว่าง 0 V และ 760 mV ตามการตั้งค่าจัมเปอร์ สิ่งที่ฉันต้องการเพื่ออ่านเป็นแรงดันไฟฟ้าอะนาล็อกที่มีการอ้างอิง 1.1 V …

2
มือใหม่อนุกรม: ทำไมฉันไม่สามารถเชื่อมต่อสายได้?
ฉันพยายามส่งจาก ATtiny85 ไปยังพีซีโดยใช้รหัส Arduino-esque บนตัวแปลง USB-Serial โดยไม่ต้องเข้าใจอะไรมาก ฉันตกใจและตกใจว่ามันไม่ได้ผล ฉันยืนยันว่าตัวเล็ก ๆ กำลังกะพริบแรงดันไฟฟ้าที่ขาหนึ่งของมัน แต่เมื่อฉันเชื่อมต่อหมุดนั้นเพื่อส่งหรือรับบนสายเคเบิลอนุกรม USB และลองฟังโดยใช้โปรแกรมเทอร์มินัลฉันก็ไม่ได้อะไรเลย ฉันไม่แน่ใจว่าจะบอกได้อย่างไรว่าส่วนไหนเสีย ฉันต้องการมากกว่า VCC, GND และ TXD เพื่อส่งสัญญาณอนุกรมหรือไม่ รายละเอียด: รหัสสำหรับตัวจิ๋วนั้นถูกเขียนขึ้นในสภาพแวดล้อมของ Arduino และรหัสที่คล้ายกันก็สามารถใช้หมุด "PORTB" ทั้ง 4 ตัวได้ ฉันใช้รหัสจาก HLT และ Saporettiเพื่อให้ฉันใช้ภาษา Arduino ของ C ++ เพื่อเขียนโปรแกรม โปรแกรมยังมาในภายใต้เค #include <SoftwareSerial.h> SoftwareSerial s(0,1); //receive on "0", and transmit on "1" …
14 attiny  arduino  serial  ftdi  usb 

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

2
โปรแกรม AVR EEPROM โดยตรงจากแหล่ง C
เมื่อคุณรวมรหัสต่อไปนี้ในแหล่ง AVR C คุณสามารถตั้งโปรแกรมฟิวส์ได้โดยตรงโดยไม่ต้องใช้คำสั่งพิเศษหรือไฟล์. hex: #include <avr/io.h> FUSES = { .low = LFUSE_DEFAULT , .high = HFUSE_DEFAULT , .extended = EFUSE_DEFAULT , }; มีกลอุบายที่คล้ายกันกับค่าของโปรแกรมใน EEPROM หรือไม่ ฉันตรวจสอบแล้ว/usr/lib/avr/include/avr/fuse.hว่าฉันสามารถค้นหาความคิดเห็นเกี่ยวกับมาโครได้ที่ไหน แต่ฉันไม่พบความคิดเห็นที่คล้ายกัน/usr/lib/avr/include/avr/eeprom.hและการตีความสิ่งที่ตัวประมวลผลล่วงหน้ามีอยู่ในลีกของฉัน มันจะมีประโยชน์จริง ๆ ถ้าฉันสามารถรวมค่า EEPROM เริ่มต้นในซอร์สโค้ด C ใครรู้วิธีการทำเช่นนั้น? Edit1: เคล็ดลับ FUSES นี้ดำเนินการเฉพาะในเวลา ISP ไม่ใช่เวลา RUN ดังนั้นจึงไม่มีฟิวส์ที่ถูกตั้งโปรแกรมในรหัสแอสเซมบลีที่เป็นผลลัพธ์ในคอนโทรลเลอร์ แต่โปรแกรมเมอร์จะวนไปตามวงจรการเขียนโปรแกรม FUSES พิเศษโดยอัตโนมัติ edit2: ฉันใช้เครื่องมือ avr-gcc และ …
11 avr  c  attiny  eeprom 

2
ต้องการความช่วยเหลือในการทำความเข้าใจกับตัวจับเวลามิเรอร์ AVR ATMEGA / ATTINY
ฉันพยายามใช้ Timer1 ของไมโครคอนโทรลเลอร์ Atmel AVR ทั้ง AtMega328 ที่ใช้ใน Arduino หรือ ATTiny85 เพื่อส่งสัญญาณนาฬิกาสองสัญญาณซึ่งเป็นภาพสะท้อนของกันและกัน ความถี่ที่ฉันพยายามจะสร้างคือตัวแปร 1 MHz ถึง 2 MHz หรือสูงกว่าซึ่งสูงเกินไปที่จะทำเช่นนี้โดยใช้รหัสเพื่อสลับพินเอาต์พุตหากฉันไม่ต้องการทำสิ่งใดในคอนโทรลเลอร์ ดังนั้นฉันต้องการใช้เอาต์พุตไทม์เมอร์โดยตรงบนพินที่เกี่ยวข้อง ฉันใช้ GCC toolchain ดังนั้นไม่ จำกัด โดย arduino library หรือภาษา ตัวจับเวลา 1 ใน Atmega328 มีสองพินที่เชื่อมโยงกับมันและฉันสามารถรับสัญญาณ 1MHz ถึง 2MHz เหมือนกันได้ แม้ว่าแผ่นข้อมูลดูเหมือนว่าฉันจะได้รับรูปคลื่นคว่ำ แต่มันทำให้ฉันสับสน ฉันยังสามารถรับสัญญาณสองสัญญาณซึ่งมีวัฏจักรหน้าที่แตกต่างกันที่ 1 MHz โดยใช้การตั้งค่า PWM กับ Timer1 แต่สัญญาณทั้งสองไปสูงในเวลาเดียวกัน นี่ไม่ได้ให้บริการโครงการของฉัน ฉันไม่ต้องการแม้แต่ความผันแปรของความกว้างพัลส์ …

1
ATtiny: ไม่รองรับการคูณ
เป็นความจริงหรือไม่ที่ ATtiny AVRs ไม่รองรับฮาร์ดแวร์สำหรับการคูณ? ดูเหมือนว่าจะทำงานได้ดีเมื่อฉันคูณในรหัสของฉัน ฉันได้รวม math.h และมีการคำนวณบาปสองสามข้อและ cos () ฉันมีบทลงโทษ 800 รอบขนาดใหญ่สำหรับการคำนวณเหล่านี้ไม่มีใครรู้หรือไม่?
10 avr  attiny 

3
การใช้พลังงาน ATtiny85 คาดว่าจะเป็นสองเท่า
ฉันกำลังพยายามใช้ ATTiny85 เพื่อให้แบตเตอรี่หมด ฉันได้โอเวอร์คล็อกจากคริสตัล 16.384 MHz ด้วยชุดฟิวส์หารด้วย 8 Vcc คือ 3.3 โวลต์ รูปที่ 22-7 ในแผ่นข้อมูลบอกว่าที่ idle ( set_sleep_mode(SLEEP_MODE_IDLE); sleep_mode();) ควรวาดประมาณ 300 µA ในความเป็นจริงฉันเห็นมันวาดขึ้นเช่น 850 µA ฉันไม่สามารถเข้าใจได้ว่าทำไมการใช้พลังงานจึงเป็นสองเท่า ฉันได้ปิดทุกอย่างใน PRR ยกเว้นตัวจับเวลา 0 ซึ่งฉันได้กำหนดค่าให้ขัดจังหวะทุก ๆ 25 มิลลิวินาที ดังนั้นจึงควรใช้เวลาส่วนใหญ่ในสถานะว่างซึ่งเป็นสิ่งที่ดีที่สุดที่ฉันสามารถทำได้เนื่องจากฉันยังต้องการให้ตัวนับนับ ฟิวส์คือ 0x7f, 0xdf, 0xff นี่คือรหัสที่ใช้สำหรับการทดสอบนี้: #include <Arduino.h> #include <EEPROM.h> #include <avr/sleep.h> #include <avr/power.h> #define P0 …

2
วิธีการเพิ่มพลัง Attiny จากแบตเตอรี่ AA?
ฉันกำลังทำงานในโครงการที่ฉันต้องการเพิ่มพลังงานให้กับ RGB Led ในสถานการณ์แสงโดยรอบ ฉันได้ทำต้นแบบนี้โดยใช้ Arduino Leonardo และหัวหน้าทีม ขณะนี้โครงการเชื่อมต่อกับพอร์ต USB ของคอมพิวเตอร์ของฉันอย่างไรก็ตามฉันต้องการใช้แบตเตอรี่ Attiny 45 หรือ 84 และ AA ตอนแรกฉันคิดว่าจะใช้แบตเตอรี่แบบชาร์จซ้ำได้ 3 AA ซึ่งจะให้พลังงานประมาณ 4.8 โวลต์เมื่อชาร์จเต็ม ปัญหาคือแรงดันไฟฟ้าจะลดลงเมื่อเวลาผ่านไปและฉันต้องการให้ไฟ LED เป็นความสว่างคงที่ เครื่องควบคุมแรงดันไฟฟ้านึกถึง แต่มันจะต้องมีประสิทธิภาพเพราะฉันต้องการให้แบตเตอรี่ใช้งานได้นาน ฉันดูที่บางอย่าง แต่ไม่แน่ใจว่าดีที่สุดสำหรับสถานการณ์ของฉัน นำฉันใช้จาก SparkFun - SparkFun RGB นำ อีกเส้นทางหนึ่งคือการใช้แบตเตอรี่ AA สองก้อนและขั้นตอนแบบอัพเหมือนอยู่ที่นี่SparkFun 3.3v ฝ่าวงล้อมแต่อีกครั้งแบตเตอรี่อยู่ในคำถาม ฉันไม่แน่ใจว่าจะคำนวณการใช้แบตเตอรี่ผ่านบอร์ดขึ้นขั้นตอนได้อย่างไร อายุการใช้งานแบตเตอรี่ที่ยาวนานในสถานการณ์เช่นนี้หมายความว่าจะมีอายุการใช้งานเป็นสัปดาห์อาจเป็นเดือนเป็นเดือนเปิดและปิดการใช้งาน ฉันอาจจะถามหาสิ่งที่เป็นไปไม่ได้ด้วยแบตเตอรี่เพียง 2 หรือ 3 ก้อน ดังนั้นคำถามของฉันคือหนึ่งในตัวเลือกเหล่านี้จะดีกว่าคำถามอื่นหรือไม่ ความสว่างจะไม่เปลี่ยนไปมากขนาดนั้นด้วยแบตเตอรี่ …

5
ATTiny13 - avr-gcc Hello World ใช้มากกว่า 100 ไบต์?
ฉันพยายามเขียนโปรแกรมสำหรับ ATTiny13 ปัญหาของฉันคือมันมีข้อ จำกัด ขนาดใหญ่ เมื่อสร้างโปรแกรม Hello World ครั้งแรกของฉันมันใช้พื้นที่ของโปรแกรม 100 ไบต์เพื่อเปิดและปิดไฟ! มีตัวเลือกใดบ้างที่ฉันสามารถมอบให้ avr-gcc เพื่อย่อขนาดให้เล็กลงได้หรือไม่? นอกจากนี้อะไรใน crt0 ฉันไม่ค่อยกระตือรือร้นกับชุด AVR ดังนั้นฉันไม่เข้าใจมันมาก .. ฉันไม่ต้องการที่จะวางลงในการชุมนุมสำหรับโครงการนี้ ..
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.