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

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

10
ไมโครคอนโทรลเลอร์พร้อม Java API
ทีมฮาร์ดแวร์ของฉันวางแผนที่จะใช้ไมโครคอนโทรลเลอร์ Atmel AVR 8 บิตสำหรับโครงการในอนาคต เท่าที่ฉันรู้มันจะต้องตั้งโปรแกรมใน C. ฉันได้พบJVMสำหรับ AVR แม้ว่ามันจะมีข้อ จำกัด มากกว่าไลบรารี่ C ดั้งเดิมจาก Atmel คุณช่วยแนะนำไมโครคอนโทรลเลอร์ 8 บิตที่สนับสนุน Java ได้ไหม PS ฉันไม่รู้ C และฉันไม่มีประสบการณ์ในการเขียนโปรแกรมไมโครโปรเซสเซอร์

3
ฉันจะวัดกระแสปัจจุบันไปยังองค์ประกอบได้อย่างไร
ฉันกำลังสร้างหุ่นยนต์ hexapod โดยใช้เซอร์โวแบบง่าย ๆ และฉันก็สงสัยว่าเป็นไปได้อย่างไรที่จะวัดกระแสปัจจุบันไปยังแต่ละเซอร์โว (5-6V DC ถึงสูงสุด 0.25-1A (ฉันไม่พบสเป็คสำหรับแผงขายของเซอร์โว) ปัจจุบัน)) ใช้, พูด, ATMega168 ฉันต้องสร้างวงจรแบบใดในซีรีย์กับสายไฟของเซอร์โวแต่ละเส้นเพื่อให้การอ่านค่าที่เป็นประโยชน์แก่ฉัน ฉันคิดว่าฉันจะได้แรงดันตกคร่อมวงจรนี้มันมีแนวโน้มเป็นอย่างไร เป็นต้น

2
การกู้คืน ATtiny13
ฉันกำลังเล่นกับ ATtiny13 และฉันคิดว่ามันจะดีถ้าจะใช้กับ oscillator เซรามิกภายนอก 8Mhz แทนที่จะเป็น 1.2 Mhz ในตัวเครื่องเดียว (ฉันต้องการทำ soft-uart ที่ 9600 bps ดังนั้นฉันคิดว่า 1.2 Mhz ช้าเกินไป) หากต้องการเปลี่ยนเป็น oscillator ภายนอกฉันใช้งาน 'avrdude -c usbtiny -p attiny13 -U lfuse: w: 0x70: m -U hfuse: w: 0xff: m' น่าเสียดายที่ตอนนี้ฉันไม่สามารถเข้าถึงอุปกรณ์ได้อีกต่อไป โปรแกรม 'กะพริบไฟ LED บน PB0' ที่อยู่ในนั้นไม่ทำงานอีกต่อไปและโปรแกรมเมอร์ไม่สามารถเชื่อมต่อได้ ไม่แน่ใจว่าจะทำอย่างไรที่นี่ ฉันสามารถทิ้งชิปนี้หรือช่วยชีวิตได้ไหม?


3
พฤติกรรมเปรียบเทียบแบบอะนาล็อกสุ่มและไม่แน่นอน
ฉันกำลังทำงานในโครงการ "เรียบง่าย" ที่ฉันต้องการวัดความถี่ของคลื่นไซน์ที่แตกต่างกันไปตามแอมพลิจูดและความถี่ เพื่อลดความซับซ้อนของสิ่งต่าง ๆ ตอนนี้ฉันมีเพียงอินพุตคลื่นไซน์ (27Hz) ความถี่คงที่ (อินพุตลบของตัวเปรียบเทียบ) ซึ่งสามารถเปลี่ยนแปลงได้ในแอมพลิจูดเท่านั้น (โดยใช้โพเทนชิออมิเตอร์) อินพุตเชิงบวกของตัวเปรียบเทียบถูกตั้งค่าเป็น Vcc / 2 เอาต์พุตของตัวเปรียบเทียบจะถูกป้อนเข้าสู่รีจิสเตอร์การจับการป้อนข้อมูลของไมโครคอนโทรลเลอร์ atmega2560 เพื่อวัดความถี่ ปัญหาคือที่แอมพลิจูดบางอย่างของสัญญาณอินพุตฉันได้รับการสลับค่อนข้างรุนแรง (หรือบางครั้งแถบแบนด์ตาย) บนเอาต์พุตซึ่งมีลักษณะดังนี้: โดยที่ผลลัพธ์ที่คาดไว้ควรมีลักษณะดังนี้: สิ่งที่ฉันได้ลองไปแล้ว: ใช้ตัวเปรียบเทียบภายในของ atmega2560 ใช้ตัวเปรียบเทียบภายนอก แนะนำ hysteresis โดยใช้ซอฟต์แวร์และวงจรทริกเกอร์ Schmitt พยายามตั้งค่าอินพุตที่หลากหลายรวมถึงการตั้งค่าการอ้างอิงแบบคงที่และการตั้งค่าตัวแบ่งข้อมูล ลองใช้ atmega2560 ที่แตกต่างกัน ลองใช้ความเร็วสัญญาณนาฬิกาที่แตกต่างกัน วิธีแก้ปัญหาบางอย่างมีความเสถียรมากกว่าโซลูชันอื่น ๆ แต่ก็ไม่มีวิธีใดใกล้เคียงที่ยอมรับได้ ฉันได้ตัดสินด้วยการกำหนดค่าที่เสถียรที่สุดแล้ว: ด้วยการตั้งค่านี้บางสิ่งปรับปรุง / เปลี่ยนแปลงเสถียรภาพ แต่ก็ยังไม่มีที่ไหนใกล้เคียงที่สมบูรณ์แบบ: การเปลี่ยนค่าของ R5 เพื่อเพิ่มฮิสเทรีซิส นำ C2 ออกอย่างสมบูรณ์ (ไม่รู้เลยว่าทำไม) …

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

3
การเก็บข้อมูลบนไมโครคอนโทรลเลอร์
เพียงแค่อ่านแผ่นข้อมูลของ attiny13มันบอกว่ามันสามารถเก็บข้อมูลเป็นเวลา 20 ปีที่ 85 องศาเซลเซียสและ 100 ปีที่ 25 องศาเซลเซียส นี่คือการอ่านและเขียนบนไมโครโดยไม่คำนึงถึงตัวอย่างเช่นฉันปิดและเก็บไว้ที่อุณหภูมิคงที่ 85 องศาเซลเซียสเป็นเวลา 20 ปีและจะทำให้ข้อมูลหลวมหรือไม่ มันจะ "หลวม" ข้อมูลได้อย่างไร? ฉันไม่เห็นแนวคิดนี้ นอกจากนี้ยังมีหน่วย ppm (ส่วนต่อล้านส่วน) ที่กล่าวถึงในหน้า 6 ในส่วนการเก็บข้อมูล แต่ไม่เข้าใจสิ่งที่พูดถึง ฉันเคยเห็นเป็นประจำเมื่อพูดถึงออสซิลเลเตอร์คริสตัล แต่ไม่เข้าใจว่าทำไมมันถึงใช้
10 avr  data 

4
PoE Ethernet Chip / Micro / Design ที่ง่ายและดีที่สุดสำหรับ DIY Interface พร้อมบอร์ด Arduino เอง (โซลูชั่น AVR)
ฉันกำลังมองหาชิป PoE Ethernet ที่ฉันสามารถรวมไว้ในการออกแบบที่ฉันวางแผนที่จะใช้พร้อมกับคุณสมบัติ Arduino บางอย่าง ฉันต้องการใช้ mcu แบบสแตนด์อโลนสำหรับอุปกรณ์อีเทอร์เน็ตที่สามารถให้บริการอีเธอร์เน็ตได้ โซลูชันที่เป็นไปได้ทั้งหมดต้องสนับสนุน PoE เพื่อเพิ่มกำลัง Micro ฉันไม่ได้วางแผนที่จะซื้อ Arduino หรือฉันต้องการเกราะป้องกันใด ๆ ฉันกำลังมองหาชิป PoE Ethernet ที่สามารถใช้งานได้กับเฟิร์มแวร์ Arduino และตัวควบคุมไมโคร ชิปที่ฉันสามารถรวมเข้ากับบอร์ด Arduino ของฉันเองได้ ฉันยังสนใจที่จะใช้ชิป AVR ที่ให้ความสามารถเหมือนกัน (pin wise) กับ Arduino ATMega168 / etc ที่มีอีเธอร์เน็ตติดตั้งอยู่ แพลตฟอร์ม devel ของฉันน่าจะเป็น AVRStudio หรืออะไรทำนองนั้นกับ Jtag ICE MKII ฉันไม่มีความสามารถในการใช้ PIC เนื่องจากฉันไม่มีโปรแกรมเมอร์ซอฟต์แวร์หรือเงินลงทุนในแพลตฟอร์มอื่น ขอบคุณล่วงหน้าสำหรับความช่วยเหลือของคุณ แก้ไข …
10 avr  power-supply  poe 

4
ทำไมคอมไพเลอร์ GCC จึงไม่ใช้รหัสบางอย่าง
ฉันไม่สามารถเข้าใจว่าทำไม GCC คอมไพเลอร์ตัดส่วนของรหัสของฉันในขณะที่มันรักษารหัสเดียวกันในละแวก? รหัส C: #define setb_SYNCO do{(PORTA|= (1<<0));} while(0); ISR(INT0_vect){ unsigned char i; i = 10; while(i>0)i--; // first pause - omitted setb_SYNCO; setb_GATE; i=30; clrb_SYNCO; while(i>0)i--; // second pause - preserved clrb_GATE; } ส่วนที่สอดคล้องกันของ LSS (ไฟล์แอสเซมเบลอร์ที่สร้างโดยคอมไพเลอร์): ISR(INT0_vect){ a4: 1f 92 push r1 a6: 0f 92 push r0 a8: …
9 avr  c  avr-gcc  optimization  gcc 

3
เฟิร์มแวร์และวงจรของ ATtiny45 direct USB 2.0 Connection
ฉันต้องการสร้างอุปกรณ์ USBแบบแยกส่วนของตัวเองโดยใช้ ATtiny45ที่เพียงแค่ส่งข้อมูลไปยังพีซีผ่านทาง USB ฉันไม่ได้อ่านข้อมูลดังนั้นการเชื่อมต่อทางเดียว (ATtiny -> PC) ก็ไม่เป็นไร ฉันใช้Arduino Uno เป็น ISPพร้อมร่าง ArduinoISP มาตรฐานที่โหลดจากภายในซอฟต์แวร์ Arduino ฉันคิดว่าจะใช้ AVRDUDE เพื่อเขียนโปรแกรม ATtiny45 กับ Arduino เป็น ISP เพราะฉันต้องการที่จะใช้รหัส C ที่คอมไพล์กับ HEX เพราะมันเป็นขั้นสูงกว่า Arduino Programming Langue ความคิดพื้นฐานของฉันเกี่ยวกับวงจร: อย่างที่คุณเห็นฉันต้องการการเชื่อมต่อ USB "โดยตรง" จนถึงตอนนี้ฉันรู้ว่าฉันต้องใช้โซลูชันซอฟต์แวร์พื้นฐานสำหรับเรื่องนี้ ฉันจัดการSoftwareSerialเพื่อทำงานกับ ATtiny45 ของฉันแล้ว สำหรับสิ่งนี้ฉันได้ใช้ซอฟต์แวร์ Arduino เพื่อเขียนโปรแกรม ATtiny45 ด้วยรหัสต่อไปนี้: #include <SoftwareSerial.h> #define rxPin 3 …

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 

2
การพิจารณาว่าพินใดที่เรียกใช้การขัดจังหวะของ PCINTn
ฉันคิดถูกไหมถ้าคุณมีสองพินที่ทำให้เกิดการขัดจังหวะ AVR PCINT แบบเดียวกัน (เช่นเวกเตอร์ PCINT0 ที่เกิดจากพิน PCINT0 หรือ PCINT1 - ฉันคิดว่าการตั้งชื่อซ้อนทับกันของเวกเตอร์และพินนั้นสับสน) วิธีเดียว (s) ที่ทำให้เกิดการขัดจังหวะคือการบันทึกสถานะของพวกเขาหลังจากการขัดจังหวะแต่ละครั้งและเปรียบเทียบค่าก่อนหน้าและปัจจุบันของหมุดทั้งหมดที่เปิดใช้งานใน PCMSKn?
9 avr  interrupts  atmel 

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 : …

3
AVR รีจิสเตอร์และพอร์ตจำเป็นต้องเริ่มต้นเป็นศูนย์หรือไม่
ระหว่างรูทีนการเริ่มต้นของรหัสของฉันฉันใช้เพื่อทำสิ่งต่าง ๆ เช่น: clr r0 ; will always stay zero และ: out PORTA, r0; initialize ports out DDRA, r0 out PORTB, r0 ... สิ่งนี้จำเป็นจริงหรือ หรือฉันจะแน่ใจว่าสิ่งนี้จะทำโดยอัตโนมัติเมื่อรีเซ็ต? โดยเฉพาะอย่างยิ่งฉันสามารถวางใจได้กับพอร์ตทั้งหมดที่จะตั้งค่าเป็นอินพุตตามค่าเริ่มต้นดังนั้นจึงไม่มีปัญหากับการลงคะแนนภายนอกเมื่อไม่มีการใช้รหัส?
9 avr  reset  port  register 

3
โปรเซสเซอร์ / นาฬิกาที่เร็วขึ้นสามารถรันโค้ดเพิ่มเติมได้หรือไม่
ฉันกำลังเขียนโปรแกรมเพื่อทำงานบน ATmega 328 ซึ่งทำงานที่ 16Mhz (เป็น Arduino Duemilanove ถ้าคุณรู้ว่ามันเป็นชิป AVR) ฉันมีกระบวนการขัดจังหวะที่ทำงานทุกๆ 100 microseconds เป็นไปไม่ได้ที่ฉันจะบอกได้ว่าต้องใช้ "โค้ด" เท่าไหร่คุณสามารถประมวลผลในหนึ่งวน 100 microseconds (ฉันกำลังเขียนใน C ซึ่งสันนิษฐานว่าถูกแปลงเป็นแอสเซมบลีแล้วเป็นภาพไบนารี?) นอกจากนี้สิ่งนี้จะขึ้นอยู่กับความซับซ้อนของโค้ด (ตัวอย่างเช่นสายการบินหนึ่งอาจวิ่งช้ากว่าเส้นสั้น ๆ หลายเส้น) ความเข้าใจของฉันถูกต้องหรือไม่ในกรณีที่โปรเซสเซอร์ของฉันมีอัตรานาฬิกาหรือ 16Mhz มีประสิทธิภาพ 16 ล้านรอบต่อวินาที (ซึ่งหมายถึง 16 รอบต่อไมโครวินาที 16,000,000 / 1,000 / 1,000); และถ้าฉันต้องการเพิ่มในวงวน 100 microsecond ของฉันการซื้อรุ่นที่เร็วกว่าเช่นรุ่น 72Mhz จะให้ 72 รอบต่อ microsecond (72,000,000 / 1,000 …

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