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

ATMega เป็นตระกูลในซีรีย์ AVR ของไมโครคอนโทรลเลอร์ Atmel นี่คือไมโครคอนโทรลเลอร์หลักของแพลตฟอร์มการสร้างต้นแบบ Arduino โปรดระบุหมายเลขชิ้นส่วนเฉพาะในคำถามของคุณ

2
ชิป Atmega328 มีรหัสปลอมหรือไม่
ฉันต้องการ Atmega328s สองสามตัวเพื่อเรียกใช้โปรแกรมเดียวกัน แต่พวกเขากำลังจะติดต่อกันและต้องการ ID ที่ไม่ซ้ำกัน มีรหัสหรือหมายเลขซีเรียลดังกล่าวเข้ารหัสบนชิปหรือไม่

2
มีเหตุผลใดที่จะไม่ใช้ Timer0 บน AVR?
เป็นเพียงคำถามพื้นฐาน ... สำหรับ arduino / avr / ATMega328 ฉันพบตัวอย่างจำนวนมากโดยใช้ Timer1 (มีห้องสมุดทั้งหมดสำหรับมัน) แต่ไม่ค่อยมีใครใช้ Timer0 (หรือ Timer2) ตอนนี้ฉันรู้ว่าการใช้ตัวนับใด ๆ เหล่านี้เพื่อควบคุมวิธี ISR จะปิดการใช้งาน PWM บนหมุดที่เกี่ยวข้อง แต่มีเหตุผลเฉพาะที่ผู้คนดูเหมือนจะอยู่ห่างจาก Timer0 หรือไม่? มันใช้สำหรับอย่างอื่นภายในที่ไม่ควรยุ่งกับ? แอปพลิเคชันปัจจุบันของฉันใช้งาน Timer1 ได้ดีฉันแค่อยากรู้อยากเห็นหากฉันคิดถึงบางสิ่งเกี่ยวกับตัวจับเวลาที่ถูกละเลย

3
อะไรคือชุดชิ้นส่วนที่น้อยที่สุดสำหรับวงจรที่ใช้ไมโครคอนโทรลเลอร์ AVR นี้?
Arduino Uno ของฉันมีไมโครคอนโทรลเลอร์ ATMEGA328P-PU และสิ่งอื่น ๆ อีกมากมายบนกระดาน ฉันต้องการเขียนโปรแกรมชิปโดยไม่ต้องใช้ซอฟต์แวร์ Arduino และส่วนประกอบขั้นต่ำเท่านั้น ในที่สุดฉันก็ต้องการสร้างสิ่งต่าง ๆ โดยไม่ต้องเสียค่าใช้จ่ายจาก Arduino และฉันต้องการเรียนรู้เกี่ยวกับส่วนอื่น ๆ บนกระดานและเพิ่มกลับเข้าไปได้ตามต้องการ ฉันสบายกับ C และ gcc ดังนั้นฉันจึงสามารถหาส่วนซอฟต์แวร์ได้ แต่ถ้ามีอะไรนอกเหนือจากผลิตภัณฑ์ทั้งสองด้านล่างนี้ฉันต้องมีไมโครคอนโทรลเลอร์ไว้ในเขียงหั่นขนมหรือไม่? Atmel โปรแกรมเมอร์ ไมโครคอนโทรลเลอร์

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 แต่สัญญาณทั้งสองไปสูงในเวลาเดียวกัน นี่ไม่ได้ให้บริการโครงการของฉัน ฉันไม่ต้องการแม้แต่ความผันแปรของความกว้างพัลส์ …

4
การใช้คริสตัล 16 MHz บน ATMega328p
ฉันจะต้องตั้งค่าฟิวส์ของฉันบน ATMega328p เพื่อใช้คริสตัล 16MHz ได้อย่างไร ฉันลองมันด้วยตัวเองและฆ่า atmega สุดท้ายที่ฉันมี ฉันต้องการคำแนะนำในครั้งนี้ คริสตัลที่ฉันใช้อยู่อันนี้ ฉันสมมติว่านี่คือ "Full Swing Crystal Oscillator" ตามที่ระบุไว้ในแผ่นข้อมูลดังนั้น CKSEL3..1 ควรเป็น 011 จากนั้นฉันต้องตั้งเวลาเริ่มต้น ฉันสมมติว่า "Crystal Oscillator พลังงานที่เพิ่มขึ้นอย่างช้าๆ" เป็นตัวเลือกที่ปลอดภัยกว่าดังนั้น CKSEL0 ควรเป็น 1 และ SUT1..0 ควรเป็น 11 ฉันไม่ต้องการหารเวลาด้วย 8 ดังนั้น CKDIV8 ควรเป็น 1 CKOUT ฉันจะออกจากค่าเริ่มต้นของ 1 หากสมมติฐานของฉันถูกต้อง (และฉันจะยืนยันได้อย่างไร) การตั้งค่าบิต lfuse ของฉันจะเป็น 0xf7 ฉันทำถูกไหม สิ่งนี้ไม่ทำงาน ดูที่นี่
10 atmega 

2
ATMega328 การเชื่อมต่อ AREF ภายนอก
จากแผ่นข้อมูล ATMega328ส่วน 24.9.1: ตัวเลือกการอ้างอิงแรงดันไฟฟ้าภายในอาจไม่สามารถใช้ได้หากมีการใช้แรงดันอ้างอิงภายนอกกับขา AREF จากหน้าอ้างอิง Arduino : หรือคุณสามารถเชื่อมต่อแรงดันอ้างอิงภายนอกกับขา AREF ผ่านตัวต้านทาน 5K ช่วยให้คุณสามารถสลับระหว่างแรงดันอ้างอิงภายนอกและภายใน โปรดทราบว่าตัวต้านทานจะเปลี่ยนแรงดันไฟฟ้าที่ใช้เป็นข้อมูลอ้างอิงเนื่องจากมีตัวต้านทาน 32K ภายในบนขา AREF ทั้งสองทำหน้าที่เป็นตัวแบ่งแรงดันดังนั้น 2.5V ที่ใช้ผ่านตัวต้านทานจะให้ผล 2.5 * 32 / (32 + 5) = ~ 2.2V ที่ขา AREF แผ่นข้อมูล ATMega328 ยืนยันการอ้างอิง "ตัวต้านทาน 32k ภายใน" ในตารางที่ 29.16 ลักษณะของ ADC ด้วย: ความต้านทานอินพุตอ้างอิง = 32 kOhm ที่ถูกกล่าวว่าทั้งสองงบข้างต้นดูเหมือนจะค่อนข้างตรงกันข้ามกับอีกคนหนึ่ง ฉันมีแอปพลิเคชันที่มีเซ็นเซอร์บางตัวที่ส่งออกเต็มสเกล 0-5V …

1
สายพันธุ์“ PB” ใหม่ของ ATmega มีข้อบกพร่องในตัวตรวจจับสีน้ำตาลหรือไม่?
เราใช้ไมโครคอนโทรลเลอร์ ATmega48 / 88/168/328 เป็นเวลาหลายปีในผลิตภัณฑ์ของเรา ขณะนี้เราได้พิจารณาเปลี่ยนจากตัวแปร A และ PA เป็นตัวแปร PB ใหม่ (เพราะเราจะต้องใช้พินเสริมตัวจับเวลาและ UART ในผลิตภัณฑ์ใหม่เนื่องจากราคาถูกกว่าและเนื่องจากดูเหมือนว่าตัวแปรเก่าจะถูกยกเลิก) ดังนั้นเราจึงเปลี่ยน ATmega328A เป็น ATmega328PB มันดูเหมือนว่าจะไปยุ่งเหยิงมากมักจะหลังจากที่หยุดชะงักอำนาจ ปัญหาดังกล่าวไม่เคยเกิดขึ้นกับตัวแปรรุ่นเก่า การขัดจังหวะพลังงานอย่างสม่ำเสมอเป็นเรื่องปกติสำหรับ usecase ของผลิตภัณฑ์ของเรา เราใช้แหล่งจ่ายไฟแบบสวิตช์ (เช่นนี้ ) ตั้งไว้ที่ 5V และมีตัวเก็บประจุในช่วง 220µF บน Vm ของ ATmega เพื่อให้ SRAM มีชีวิตอยู่เพื่อการหยุดชะงักของพลังงานในช่วงหลายนาทีเพื่อเก็บสถานะภายในซึ่งไม่ใช่ภารกิจ สำคัญ แต่เพิ่มประสบการณ์ผู้ใช้อย่างมากด้วยการพร้อมใช้งานทันทีเมื่อรีสตาร์ท (สถานะเหล่านี้เปลี่ยนบ่อยพอที่จะทำให้ EEPROM ไม่เหมาะสม) สิ่งนี้ได้ผลเสมอ อย่างไรก็ตามด้วย ATmega328PB ใหม่หลังจากการขัดจังหวะพลังงานชิปจะถูกรีเซ็ตโดยไม่มีเงื่อนไขการรีเซ็ตใน MCUSR และดูเหมือนว่านาฬิกาจะยุ่งเหยิง เครื่องตรวจจับสีน้ำตาลถูกตั้งค่าต่อฟิวส์ …

1
AVR จับเวลาเพิ่มความเร็วใน ATmega328
เมื่อทำงานที่ Prescaler นาฬิกา 64 ใน ATmega328 หนึ่งในตัวจับเวลาของฉันเร็วขึ้นด้วยสาเหตุที่ไม่ทราบเวลาในการดำเนินการ ฉันใช้ตัวจับเวลาสองตัวบน ATmega328 เพื่อสร้างการตอกบัตรที่ต้องการโดยTLC5940 (ดูด้านล่างว่าทำไมเพราะนี่คือสิ่งสำคัญสำหรับคำถาม) TIMER0สร้างสัญญาณนาฬิกาโดยใช้ Fast PWM OC0Bและตั้งค่าดังนี้: TCCR0A = 0 |(0<<COM0A1) // Bits 7:6 – COM0A1:0: Compare Match Output A Mode |(0<<COM0A0) // |(1<<COM0B1) // Bits 5:4 – COM0B1:0: Compare Match Output B Mode |(0<<COM0B0) |(1<<WGM01) // Bits 1:0 – WGM01:0: Waveform …
9 avr  atmega  spi  timer 

1
การจำลองม้านั่งทดสอบอย่างง่ายด้วยแกน ROM สังเคราะห์
ฉันใหม่กับโลกของ FPGA อย่างสมบูรณ์และคิดว่าฉันจะเริ่มต้นด้วยโครงการที่ง่ายมาก: ตัวถอดรหัส 7 บิตแบบ 4 บิต รุ่นแรกที่ฉันเขียนอย่างหมดจดใน VHDL (โดยทั่วไปเป็น combinatorial เดียวselectไม่จำเป็นต้องใช้นาฬิกา) และดูเหมือนว่าจะทำงานได้ แต่ฉันก็อยากจะทดลองกับ "IP Cores" ใน Xilinx ISE ดังนั้นตอนนี้ฉันใช้ GUI "ISE Project Explorer" และฉันสร้างโครงการใหม่ด้วย ROM core รหัส VHDL ที่สร้างขึ้นคือ: LIBRARY ieee; USE ieee.std_logic_1164.ALL; -- synthesis translate_off LIBRARY XilinxCoreLib; -- synthesis translate_on ENTITY SSROM IS PORT ( clka : …

5
เริ่มต้นด้วย C ที่ฝังตัวพร้อม ATmega32 (ATmega AVR series)
ฉันมีบอร์ด ATmega32 วางอยู่รอบ ๆ และฉันคิดว่ามันสมบูรณ์แบบที่จะเริ่มต้นด้วยไมโครคอนโทรลเลอร์ ฉันเคยพูดพล่ามใน C ที่ฝังอยู่ (นั่นคือเมื่อฉันได้รับบอร์ดนี้) แต่การไหลก็หยุดเนื่องจากบางสิ่ง ตอนนี้ฉันมีสองคำถาม: ทรัพยากรฟรีที่ดีที่สุดในการเริ่มต้นด้วย C สำหรับซีรีส์ avr คืออะไร ฉันรู้จัก AVR-GCC แล้ว แต่กำลังมองหาบทเรียนหรือหนังสือฟรีเพื่อเริ่มต้นฉัน ฉันควรข้ามไปที่ C โดยตรงหรือผ่าน ASM ก่อนหรือไม่ ฉันเห็นว่ามีหนังสือ asm มากมายอยู่รอบตัว ดังนั้นตัวเลือกที่ดีกว่าคืออะไร? ในขณะที่ค้นหาอินเทอร์เน็ตฉันพบ Arduino bootloader สำหรับ ATmega32 ที่นี่http://retrointerfacing.com/?p=30แต่ปัญหาคือฉันลังเลที่จะทำการแก้ไขด้วยฟิวส์และทั้งหมด ปลอดภัยไหมที่จะทำเช่นนั้น?
9 avr  atmega  books  c 

2
ATMega328 ความเร็วต่ำสุดด้วย UART
ฉันกำลังมองหาการออกแบบโครงการที่ใช้พลังงานต่ำซึ่งจะทำให้ ATMega328 ทำงานที่ความเร็วต่ำเพื่อลดการใช้พลังงาน แผนปัจจุบันคือให้ UART เชื่อมต่อกับตัวรับสัญญาณ RF ลิงก์เพื่อการสื่อสารที่ 1200 baud สิ่งที่ฉันสงสัยคือความเร็วขั้นต่ำคือสิ่งที่ฉันสามารถเรียกใช้ ATMega328 ที่และยังคงมี UART 1200 baud 1MHz เร็วพอหรือไม่
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.