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

AVR เป็นแกนไมโครคอนโทรลเลอร์ขนาด 8- และ 32 บิตที่พัฒนาโดย Atmel AVR ได้รับเลือกให้เป็นไมโครคอนโทรลเลอร์สำหรับ Arduino SBC ยอดนิยม

3
เปลี่ยนจาก PIC เป็น AVR [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันทำงานกับ PIC16 และ PIC18s มานานกว่าสามปีแล้วและอยากรู้จัก AVR เช่นกัน ฉันไม่มีโครงการที่เฉพาะเจาะจง แต่อยากจะลองกับสถาปัตยกรรมที่แตกต่างกัน ฉันต้องการรับรายงานความเข้ากันได้กับ PIC และ AVR ซอฟต์แวร์ของ uC ฉันคุ้นเคยกับ Assembly และ C สำหรับ PIC16 และ PIC18 ชุดประกอบและตัวควบคุม C สำหรับไมโครคอนโทรลเลอร์ AVR แตกต่างจากชุดรูปแบบอย่างไร มีความแตกต่างกันมากไหม? ซอฟต์แวร์ของพีซี ฉันต้องใช้ซอฟต์แวร์อะไรในการรวบรวมและประกอบโปรแกรมสำหรับชิป AVR? ฟรีและฉันจะดาวน์โหลดได้ที่ไหน ฮาร์ดแวร์การเขียนโปรแกรม ฉันใช้Wisp648ของ VOTI ในการเขียนโปรแกรม PICs แต่บอร์ดนั้นไม่สามารถเขียนโปรแกรม AVR ได้ ฉันต้องซื้อโปรแกรมเมอร์หรือมีวงจรใด …

4
คำสั่ง AVR SEI
คำสั่ง AVR SEI ( http://www.atmel.com/webdoc/avrassembler/avrassembler.wb_SEI.html ) รอให้คำสั่งถัดไปเสร็จสิ้นก่อนที่จะเปิดใช้อินเทอร์รัปต์ ถ้าฉันใช้คำสั่งอื่นเพื่อตั้งค่าสถานะ I ใน SREG สิ่งนี้จะรอ 1 คำสั่งด้วยหรือไม่ กล่าวอีกนัยหนึ่ง: การรอคุณลักษณะของคำสั่ง SEI หรือการลงทะเบียนสถานะหรือไม่ ถ้ามันเป็นคุณสมบัติของคำสั่ง SEI ดังนั้นธงจะตั้งค่าในจุดใดในรอบที่เรียกใช้ SEI หรือด้วยคำสั่งต่อไป

3
ไซต์การเลือกไมโครคอนโทรลเลอร์ที่ไม่ใช่ผู้ผลิต?
ฉันกำลังมองหาไซต์ที่ฉันสามารถป้อนคุณสมบัติไมโครคอนโทรลเลอร์ที่ต้องการได้ ฉันได้พบเว็บไซต์ผู้ผลิต ... แต่เว็บไซต์เหล่านั้นจะแสดงไมโครคอนโทรลเลอร์ของพวกเขาเท่านั้น IE มีไซต์สำหรับ PICS และไซต์สำหรับ AVR ฯลฯ แต่ฉันกำลังมองหาที่จะเลือกความเป็นไปได้จากผู้ผลิตทั้งหมดนอกเหนือจากที่เป็นเพียงแค่วิ่งไปรอบ ๆ ในที่มืด ...

2
งานอดิเรกสโคปขึ้นอยู่กับ AVR วิธีลบเสียง op-amp
ฉันกำลังสร้างออสซิลโลสโคปงานอดิเรกบนไมโครคอนโทรลเลอร์ ATmega16 ปัญหาหลักคือฉันได้รับเสียงจำนวนมากในขณะที่วัดสัญญาณ ฉันใช้แอมพลิฟายเออร์LF353เพื่อเปลี่ยนแรงดันไฟฟ้าและฉันสงสัยว่าอาจเป็นสาเหตุของเสียงรบกวน นี่คือแผนผังที่มี op-amp สัญญาณจะไปที่ 'อินพุท' และ 'เอาท์พุท' ตรงไปที่พิน ADC ของไมโครคอนโทรลเลอร์ และนี่คือสัญญาณที่ฉันได้รับเมื่อลูกค้าเป้าหมายไม่ได้เชื่อมต่อ:

4
ตื่นขึ้นจากโหมดหลับลึก
ไมโครคอนโทรลเลอร์ส่วนใหญ่ (เช่น AVR, MSP430s, PICs และอื่น ๆ ) สนับสนุนโหมดสลีปจำนวนหนึ่ง โหมดสลีป "ที่ลึกที่สุด" เป็นโหมดที่ให้พลังงานต่ำที่สุด (เช่น "ปิดเครื่อง", "ปิดเครื่อง") แต่โดยทั่วไประบบนาฬิกาจะหยุดในโหมดเหล่านี้และดูเหมือนว่าฉันจะเป็นวิธีเดียวที่จะ " ตื่นขึ้น "จากพวกเขาคือผ่านการกระตุ้นภายนอก (เช่นการขัดจังหวะการเปลี่ยนพินการรีเซ็ตชิป) ฉันพลาดอะไรไปรึเปล่า? มีวิธีพลังงานต่ำอย่างไม่น่าเชื่อในการสร้างสัญญาณปลุกเป็นระยะสำหรับ MCU หรือไม่ สมมติว่าเป้าหมายของฉันคือลดการใช้พลังงานให้น้อยที่สุด (เช่นนอนหลับให้ลึกที่สุดเท่าที่จะเป็นไปได้ตื่นตัวให้สั้นที่สุดเท่าที่จะทำได้) ในขณะที่ตื่นขึ้นมาทำงานฟังก์ชั่นเป็นระยะ ๆ เพื่อให้เรื่องต่าง ๆ ง่ายขึ้นสมมติว่าหน้าที่ของฉันไร้สัญชาติ (ฉันไม่ต้องจำอะไรจากอดีตเพื่อที่จะทำมัน) ฉันประสบความสำเร็จในการใช้ WDT ใน MSP430 เพื่อรับผลกระทบนี้ ฉันเพิ่งทำกิจวัตรหลักของฉันเป็นหน้าที่ของฉันด้วยบรรทัดสุดท้ายที่ทำให้ตัวจับเวลาจ้องจับผิดจะหมดอายุหลังจากระยะเวลาหนึ่งและเข้าสู่ LPM4.5 หรืออะไรก็ตามที่เรียกว่าโหมด "Deep sleep" ผลลัพธ์สุทธิคือการใช้งานฟังก์ชั่น, MCU หลับ, WDT หมดอายุและชิปรีเซ็ต, คลื่นไส้โฆษณา ดูเหมือนว่าจะทำงานแค่สงสัยว่ามีวิธี "ดีกว่า" …

4
สถาปัตยกรรม Harvard มีประโยชน์อย่างไร
ฉันอ่านเกี่ยวกับ arduino และสถาปัตยกรรม AVR และติดอยู่ที่จุดที่ว่าไปป์ไลน์หรือ bubbling ได้รับการแก้ไขโดยการแนะนำสถาปัตยกรรม Harvard ใน AVR.I หมายความว่า Harvard ทำหน้าที่จัดเก็บข้อมูลหน่วยความจำข้อมูลและหน่วยความจำของโปรแกรมที่แตกต่างกันอย่างไร ทำให้สามารถโหลดโปรแกรมโดยไม่มีโอเปอเรเตอร์ แต่มันช่วยแก้ปัญหาข้างต้นได้อย่างไร

6
หลีกเลี่ยงตัวแปรโกลบอลเมื่อใช้อินเตอร์รัปต์ในระบบฝังตัว
มีวิธีที่ดีในการใช้การสื่อสารระหว่าง ISR และส่วนที่เหลือของโปรแกรมสำหรับระบบฝังตัวที่หลีกเลี่ยงตัวแปรทั่วโลกหรือไม่? ดูเหมือนว่ารูปแบบทั่วไปคือการมีตัวแปรทั่วโลกซึ่งใช้ร่วมกันระหว่าง ISR และส่วนที่เหลือของโปรแกรมและใช้เป็นธง แต่การใช้ตัวแปรทั่วโลกนี้ขัดแย้งกับธัญพืชให้ฉัน ฉันได้รวมตัวอย่างง่ายๆโดยใช้ ISR สไตล์ avr-libc: volatile uint8_t flag; int main() { ... if (flag == 1) { ... } ... } ISR(...) { ... flag = 1; ... } ฉันไม่สามารถเห็นสิ่งที่เป็นปัญหาในการกำหนดขอบเขต ตัวแปรใดที่สามารถเข้าถึงได้โดยทั้ง ISR และส่วนที่เหลือของโปรแกรมจะต้องเป็นสากลโดยแท้จริง? แม้จะมีสิ่งนี้ฉันก็มักจะเห็นคนพูดถึงสิ่งต่าง ๆ ตามแนว "ตัวแปรทั่วโลกเป็นวิธีหนึ่งในการนำการสื่อสารระหว่าง ISRs และส่วนที่เหลือของโปรแกรม" (เน้นที่เหมือง) ซึ่งดูเหมือนจะบ่งบอกว่ามีวิธีอื่น ๆ ถ้ามีวิธีอื่นพวกมันคืออะไร?

3
ปลอดภัยหรือไม่ที่จะลบพลังงาน Arduino ทันที? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับการแลกเปลี่ยนกองวิศวกรรมไฟฟ้า ปิดเมื่อปีที่แล้ว หากฉันมี Arduino ฉันสามารถเปิดและปิดเครื่องได้ทันทีโดยไม่ทำให้เสียหายหรือไม่? หากฉันออกแบบผลิตภัณฑ์ที่มีสวิตช์เปิด / ปิดฉันต้องรวมการหน่วงเวลาก่อนที่จะปิดเครื่องเพื่อให้ไมโครคอนโทรลเลอร์สามารถปิดการทำงานบางอย่างได้หรือไม่? หรือมันโอเคที่จะเชื่อมต่อสวิตช์ SPST กับสายไฟของ Arduino? (โดยการออกแบบผลิตภัณฑ์ฉันหมายถึงการใช้ ATmega กับรหัส Arduino อย่างอิสระบนบอร์ดที่กำหนดเองพร้อมส่วนประกอบอื่น ๆ ) แก้ไข: โดย Arduino ฉันแค่หมายถึงกระพริบ bootloader Arduino เพื่อให้ฉันสามารถเขียนโปรแกรมใน Arduino แทน AVR ชิปที่ฉันต้องการใช้คือ Atmel atmega328P ฉันไม่ต้องการการใช้งาน EEPROM ใด ๆ
12 arduino  power  avr 

2
1 MHz เร็วแค่ไหน?
ความเร็ว 1 MHz ในไมโครคอนโทรลเลอร์ AVR เป็นอย่างไร จริง ๆ แล้ว 1,000,000 Hz หรือเป็น 1,048,576 Hz (1,024 Hz * 1,024)?

6
คำติชมเกี่ยวกับแผนผังแรกของฉัน
เพื่อฝึกฝนการออกแบบแผนงาน (และอาจทำให้เป็นเช่นนั้นด้วย) ฉันได้ออกแบบไฟกระพริบที่ใช้ AVR อย่างง่ายโดยสมมติว่ามันถูกตั้งโปรแกรมไว้ล่วงหน้าแล้ว แผนผังอยู่ที่นี่: ฉันเคยเห็น Atmega / arduino มากมายเหมือน schematics แตกต่างกันมากบางแห่งแยกตัวเก็บประจุแยกออกจากกัน (เพราะฉันพยายามดูว่ามันดูอย่างไร) นำคริสตัลลงมาเพราะฉันต้องกำหนดตัวเก็บประจุได้ง่ายขึ้นหรือแยกมันเข้าไป มุ้งทั้งหมดเข้าด้วยกัน แบตเตอรี่ที่นี่ในกรณีนี้คือที่ใส่แบตเตอรี่และมีขนาด pcb ที่กำหนดเอง คำถามหลักของฉันคือ: แผนผังของฉันจะเป็นอย่างไรกับมืออาชีพในสาขา? ไม่สนใจสิ่งที่บอบบาง (PE ไม่ใช่ GND แต่เป็นเพียงสัญลักษณ์เดียวที่ดูเหมือน gndish) มันมีลักษณะเป็นแผนผังที่สามารถเผยแพร่ได้หรือไม่ ฉันได้พิจารณาใส่ฝาครอบ decoupling ไว้ทางขวาของที่ใส่แบตเตอรี่แล้ว แต่ก็ไม่แน่ใจว่าจะเอาออกไปจากที่ (4 องค์ประกอบของคอลัมน์!) หรือเพียงแค่เพิ่มเข้าไปเพราะมันง่ายมาก คำติชมของคุณคืออะไร? ปรับปรุง ฉันได้จ่ายไฟเสร็จแล้วและทำความสะอาดข้อความและการเชื่อมต่อเป็นส่วนใหญ่ (อาจเป็นรูปขนาดย่อคุณสามารถดูภาพได้โดยตรงสำหรับขนาดใหญ่ขึ้น) ฉันเชื่อว่าฉันได้แก้ไขสิ่งที่เรียบง่ายเช่นตัวต้านทาน pullup ฉันไม่แน่ใจว่าข้อความควรตรงไหน (ฉันใส่ไว้ในเลเยอร์ "ข้อมูล" เพื่อไม่ให้เป็นสีเขียวและทำให้มันอยู่ในตำแหน่งที่เหมาะสม) และฉันเชื่อว่าการติดฉลากแหล่งจ่ายไฟเป็นสิ่งที่จำเป็นเพราะเมนบอร์ด ชัดเจน ฉันอาจต้องลองตั้งค่ามุ้งเพื่อให้แหล่งจ่ายไฟเชื่อมต่อกับราง + 5V …
12 avr  schematics 

2
เชื่อมต่ออีเธอร์เน็ตกับ AVR
ฉันเริ่มคุ้นเคยกับไมโครคอนโทรลเลอร์และตอนนี้ต้องการเชื่อมต่อกับอินเทอร์เน็ต ข้อกำหนดขั้นต่ำสำหรับไมโครคอนโทรลเลอร์ในการทำสิ่งนี้โดยเฉพาะคือ AVR ถ้าเป็นไปได้ ประการที่สองจำเป็นต้องมีอะไรอีกบ้าง? ฉันอ่านเกี่ยวกับตัวควบคุมอีเธอร์เน็ต แต่ฉันไม่แน่ใจว่าสิ่งที่พวกเขาทำและวิธีการที่พวกเขาจะถูกเชื่อมต่อกับ micocontroller ส่วนประกอบที่จำเป็นในการรับ micocontroller ออนไลน์ (ไม่มี Arduino shields) คืออะไร
12 avr  ethernet 

2
การใช้พลังงานเชิงทฤษฎีของฉันของ avr นี้ถูกต้องหรือไม่?
หลังจากได้รับแรงบันดาลใจจากสัญญาณเตือนความมืดที่เรียบง่ายจากATMEGA 168ที่มีอายุการใช้งานทางทฤษฎีนาน 3 ปีสำหรับแบตเตอรี่ที่ใช้โหมดนอนหลับฉันจึงตัดสินใจทำสิ่งที่คล้ายกันของตัวเอง (ปลุกปลุกโดยใช้ oscillator เพื่อความแม่นยำ เบา) ความสับสนของฉันคือวิธีการคำนวณอายุการใช้งานแบตเตอรี่ (ดูส่วน "การคำนวณเวลาสดของแบตเตอรี่") ดังนั้นฉันจึงตัดสินใจคำนวณเอง เห็นได้ชัดว่า AVR อยู่ที่ 1.8V ในโหมดปิดเครื่องใช้พลังงาน 0.1µA ในโหมดแอ็คทีฟ 250µA สมมติว่าออสซิลเลเตอร์ภายนอก 1MHz ( แผ่นข้อมูลที่นี่ ) ตอนนี้แบตเตอรี่ AA บางตัว (ในอุดมคติ) อาจมี 1200 mAh ดังนั้น 1200 / 0.001 / 24 / 365 = ~137 years standby life time 1200 / 0.250 / …
12 power  avr  batteries  timer 

5
“ โอเวอร์คล็อก” AVR
ในเอกสารข้อมูลของ AVR ภายใต้หัวข้อลักษณะไฟฟ้าคุณจะพบกราฟเช่นนี้ (อันนี้มาจาก ATMega328): ฉันเคยเห็นการออกแบบที่ดูเหมือนจะ "ทำงาน" แต่ทำงานนอกซองสีเทา โดยเฉพาะฉันได้เห็นการออกแบบ 3.3V (Arduino) ที่รันนาฬิกาจากคริสตัล 16MHz ภายนอก เห็นได้ชัดว่านี่เป็นข้อมูลจำเพาะ อะไรคือผลกระทบเชิงลบที่เกิดขึ้นจริงจากการทำงานนอกซองจดหมายนี้?

8
Arduino ด้วยชุดประกอบ?
เนื่องจากการลงทุนของฉันในการประมวลผลขนาดเล็กฉันตัดสินใจไปกับ Atmel AVR เนื่องจากทรัพยากรที่มีอยู่มากมาย และ Arduino ดูเหมือนว่าจะมีจำนวนมากเช่นกันไม่พูดถึงชุดเลขหมายของพวกเขาดูเหมือนจะ "ในระดับของฉัน" ปัญหาคือฉันต้องการเรียนรู้ใน Assembly ก่อนจากนั้นไปที่ C / C ++ หรือ w / e Arduino ใช้ แต่ ive ได้ยินว่า Arduino ไม่ใช้ชุดประกอบ AVR? มันเป็นเรื่องจริงเหรอ? เป็นวิธีของพวกเขารอบ ๆ ที่? ขอบคุณ แก้ไข: ฉันจะไปกับ ATMEL STK500 แต่ .. สำหรับตัวจับเวลาแรกมันดูซับซ้อนมากใช่ไหม มีเหตุผลใดบ้างที่ฉันไม่สามารถรับ AVR 8 บิตและวางมันไว้บนบอร์ดและทดลองได้ (ฉันเดาว่าฉันต้องคิดวิธีการเชื่อมต่อพวกเขาเช่น .... ) edit2: นี่คือสิ่งที่ฉันคิด http://www.adafruit.com/index.php?main_page=product_info&cPath=17&products_id=193
12 arduino  avr  assembly 

3
ฉันจะวางแผนในการเขียนโปรแกรมวงจรของ AVR ได้อย่างไร
วิธีปกติของฉันในการสร้างโปรแกรมใหม่ AVR (จำกัด จนถึง ATtiny13 และ ATtiny2313) คือการตัดการเชื่อมต่อชิปจากวงจรโฮสต์เสียบเข้ากับเขียงหั่นขนมปังอีกอันหนึ่งด้วย ICSP hookups ในสถานที่โปรแกรมแล้วแทนที่ อย่างไรก็ตามฉันได้ยินอยู่เสมอว่าสามารถเขียนโปรแกรมชิปให้เข้าที่ (นั่นคือฉันเข้าใจจุดทั้งหมดของ ICSP) มีสิ่งใดที่ต้องพิจารณาเป็นพิเศษเกี่ยวกับฮาร์ดแวร์ก่อนที่จะเขียนโปรแกรมชิปในแหล่งกำเนิด? ตัวอย่างเช่นฉันกังวลว่ากระบวนการ ICSP อาจสร้างความเสียหายให้กับส่วนประกอบวงจรที่เชื่อมต่อกับขา AVR เดียวกันซึ่งใช้สำหรับ ICSP ในบางครั้งจำเป็นต้องเพิ่มไดโอดหรือการบัฟเฟอร์ชนิดอื่นเพื่อป้องกันส่วนประกอบเหล่านี้หรือไม่? ฉันรู้ว่าคำถามนี้ฟังดูคลุมเครือและฉันเดาว่ามันเป็น - แต่ฉันไม่ได้ให้รายละเอียดเกี่ยวกับวงจรเฉพาะของฉันเพราะฉันสนใจกฎทั่วไปมากขึ้น คือไม่ต้องกังวลเกี่ยวกับเรื่องนี้หรือคำตอบนั้นขึ้นอยู่กับวงจรเฉพาะที่ MCU เป็นส่วนหนึ่งหรือไม่?
12 avr  isp 

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