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

อุปกรณ์ซึ่งรวมถึงหน่วยประมวลผลกลาง (CPU) หน่วยความจำและ (โดยทั่วไป) ชุดอุปกรณ์ต่อพ่วง I / O (UART, ADC, DAC, I / O วัตถุประสงค์ทั่วไป, I2C และอื่น ๆ ) ในสแตนด์อะโลน บรรจุภัณฑ์

5
สิ่งใดที่ทำให้ไมโครคอนโทรลเลอร์รีเซ็ตโดยไม่คาดคิด
ข้อผิดพลาดที่หลากหลายที่น่ารำคาญเป็นพิเศษในระบบที่ควบคุมด้วยไมโครโปรเซสเซอร์คือให้ไมโครโปรเซสเซอร์ทำการรีเซ็ตโดยไม่คาดคิด เครื่องมือสำคัญสำหรับการดีบักปัญหาประเภทนี้คือรายการสาเหตุที่เป็นไปได้ สิ่งใดที่ทำให้ไมโครคอนโทรลเลอร์รีเซ็ตโดยไม่คาดคิด


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

5
วิธีการเรียนรู้การควบคุมแบบ PID
ฉันต้องการเรียนรู้การควบคุมแบบ PID (สัดส่วน - รวม - อนุพันธ์) ส่วนใหญ่สำหรับอุณหภูมิ ฉันต้องการที่จะเรียนรู้อย่างยิ่งผ่านโครงการง่ายที่จะทำ คุณช่วยแนะนำสิ่งที่จะใช้เวลาเรียนสองสามสัปดาห์? แก้ไข:ฉันต้องการควบคุมอุณหภูมิของถังเก็บน้ำ ความร้อนจะทำโดยตัวต้านทาน

2
การกัดบิตคืออะไร
ฉันใหม่สำหรับการเขียนโปรแกรมไมโครคอนโทรลเลอร์ ฉันใช้ ATmega32-A คอนโทรลเลอร์และคอมไพเลอร์ CodeVisionAVR ฉันใช้เครื่องกำเนิดสัญญาณ (AD9833) เพื่อสร้างสัญญาณคลื่นไซน์โดยใช้การสื่อสารแบบ SPI ฉันสามารถสร้างคลื่นไซน์ได้สำเร็จ ตอนนี้ฉันกำลังส่งสัญญาณนั้นไปยังเซ็นเซอร์ เอาต์พุตเซ็นเซอร์ถูกเลือกผ่านมัลติเพล็กเซอร์แล้วส่งไปยัง ADC ตอนนี้ฉันต้องการอ่านค่า ADC โดยใช้การสื่อสาร SPI ฉันพยายามอย่างมากในการตั้งค่าการลงทะเบียนของ ADC มันยังไม่ทำงาน หากต้องการดู SPI สื่อสารรหัสมีลักษณะที่ฉันโพสต์ก่อนหน้านี้ติดตั้ง ADC ลงทะเบียนใช้การสื่อสาร ฉันใช้การสื่อสาร USART (RS232) เพื่อพิมพ์ค่าบนพีซี (PuTTY) มีบางคนแนะนำให้ฉันใช้การกัดบิต ฉันใหม่สำหรับแนวคิดนั้น ผู้ใดสามารถส่งรหัสตัวอย่างของการสื่อสารบิต SPI ให้ฉันได้ จะเริ่มขั้นตอนนั้นได้อย่างไร? ใครช่วยได้บ้างเป็นวัสดุที่ดี ฉันต้องการฮาร์ดแวร์ภายนอกหรือไม่ ฉันได้เขียนสิ่งนี้รวมถึงการเชื่อมต่อพิน: #define ADC_CS PORTB.3 #define MOSI PORTB.5 #define MISO PINB.6 #define SCK …

5
เหตุใดอุปกรณ์ที่ค่อนข้างเรียบง่ายเช่นไมโครคอนโทรลเลอร์จึงช้ากว่า CPU มาก
เมื่อพิจารณาจากจำนวนขั้นตอนการส่งท่อและโหนดการผลิตเดียวกัน (เช่น 65 nm) และแรงดันเท่ากันอุปกรณ์ที่เรียบง่ายควรทำงานได้เร็วกว่าขั้นตอนที่ซับซ้อนมากขึ้น นอกจากนี้การรวมขั้นตอนไปป์ไลน์หลายขั้นตอนเข้าด้วยกันไม่ควรทำให้ช้าลงโดยปัจจัยที่เป็นปัจจัยมากกว่าจำนวนขั้นตอน ตอนนี้ใช้ซีพียูอายุห้าขวบทำงานไปป์ไลน์ 14 ขั้นที่ 2.8 GHz สมมติว่าหนึ่งผสานขั้นตอน; ที่จะช้าลงต่ำกว่า 200 MHz ตอนนี้เพิ่มแรงดันไฟฟ้าและลดจำนวนบิตต่อคำ จริงๆแล้วมันจะเร่งความเร็วให้เร็วขึ้น นั่นเป็นเหตุผลที่ฉันไม่เข้าใจว่าทำไมไมโครคอนโทรลเลอร์ที่ผลิตในปัจจุบันจำนวนมากเช่น AVL ทำงานที่ความเร็วสูงสุด (เช่น 20 MHz ที่ 5 V) แม้ว่า CPU ที่ซับซ้อนกว่าปีที่แล้วมีความสามารถในการรัน 150x เร็วขึ้นหรือเร็วขึ้น 10 เท่า ถ้าคุณหมุนไปป์ไลน์ทั้งหมดเป็นหนึ่งเดียวที่ 1.2 V-ish จากการคำนวณแบบ back-of-the-envelope ที่หยาบที่สุดไมโครคอนโทรลเลอร์ - แม้ว่าผลิตโดยใช้เทคโนโลยีที่ล้าสมัยของเส้นขอบ - ควรรันเร็วกว่า 10x อย่างน้อย 10 เท่าของแรงดันไฟฟ้าที่พวกเขาจัดหาให้ ดังนั้นคำถาม: อะไรคือสาเหตุของอัตรานาฬิกาไมโครคอนโทรลเลอร์ช้า?

5
อะไรคือความแตกต่างและความคล้ายคลึงกันระหว่าง FPGA, ASIC และไมโครคอนโทรลเลอร์ทั่วไป?
ฉันได้อ่านโพสต์นี้และไม่ได้ตอบคำถามของฉันทั้งหมด: ฉันคิดว่าไมโครคอนโทรลเลอร์เป็นสิ่งที่มีหน่วยความจำลงทะเบียนและสามารถประมวลผลชุดคำสั่งเช่น LOAD, STORE และ ADD มันมีลอจิกประตูและเช่นนั้นเพื่อทำหน้าที่ของมัน แต่หน้าที่หลักของมันคือการเป็นโปรเซสเซอร์สากลของบิต ฉันคิดว่า Microntroller เป็นระบบของการออกแบบ ASIC ที่เชื่อมต่อระหว่างกันเพื่อสร้างความสามารถในการจัดเก็บและประมวลผลคำสั่ง ฉันคิดว่าอุปกรณ์ ASIC เป็นวงจรที่สร้างขึ้นเป็นพิเศษโดยใช้ส่วนประกอบแบบลอจิคัลและไฟฟ้าเพื่อทำงานชิ้นเดียวโดยไม่มีงานอื่น ๆ ฉันคิดว่าอุปกรณ์ FPGA เป็นอุปกรณ์ ASIC (อุปกรณ์ระดับต่ำ) + สิ่งของที่ไม่ได้ใช้เหลืออยู่จำนวนมากใช้เพื่อสร้างตารางความจริงที่เฉพาะเจาะจง แม้จะมีชื่อ FGPA ก็ให้ความรู้สึก "เฉพาะแอปพลิเคชัน" มากเนื่องจากต้องทำการเดินสายใหม่เพื่อทำงานใหม่และแตกต่าง สิ่งนี้นำไปสู่ความสับสนกับ ASIC ถึงแม้ว่าในกรณีของการเดินสายไฟใหม่ FPGA ควรมีฮาร์ดแวร์ที่จำเป็นทั้งหมด นอกจากนี้ FPGA ยังมีวัตถุประสงค์ที่จะตั้งโปรแกรม แต่นั่นไม่ใช่สิ่งที่ไมโครคอนโทรลเลอร์มีไว้สำหรับ โพสต์ข้างต้นที่ฉันอ้างถึงยังกล่าวถึง HDL ซึ่งฉันคุ้นเคย ไม่สามารถใช้ HDL สำหรับทั้ง ASIC และ FPGA และโดยพร็อกซีเพื่อออกแบบไมโครคอนโทรลเลอร์ทั้งหมดได้หรือไม่

3
อะไรคือสิ่งที่อยู่ในหน่วยความจำชนิดต่าง ๆ ของไมโครคอนโทรลเลอร์?
มีเซ็กเมนต์หน่วยความจำที่แตกต่างกันซึ่งข้อมูลชนิดต่าง ๆ ถูกใส่ลงในรหัส C หลังจากการคอมไพล์ เช่น: .text, .data, .bssกองและกอง ฉันแค่อยากรู้ว่าแต่ละเซ็กเมนต์เหล่านี้จะอยู่ในหน่วยความจำไมโครคอนโทรลเลอร์ นั่นคือข้อมูลใดที่จะเข้าสู่หน่วยความจำประเภทใดเนื่องจากประเภทหน่วยความจำคือ RAM, NVRAM, ROM, EEPROM, FLASH เป็นต้น ฉันได้พบคำตอบของคำถามที่คล้ายกันที่นี่ แต่พวกเขาไม่สามารถอธิบายได้ว่าเนื้อหาของหน่วยความจำแต่ละประเภทแตกต่างกันอย่างไร ความช่วยเหลือใด ๆ ที่ชื่นชมอย่างมาก ขอบคุณล่วงหน้า!

5
มีความแตกต่างระหว่างการใช้โมดูล SPI ในตัวและการกัดบิตหรือไม่?
มีความแตกต่างระหว่างทั้งสองหรือเป็นเพียงเรื่องของนามธรรม? สัญชาตญาณของฉันบอกว่าไม่มีความแตกต่าง แต่ฉันชอบที่จะผิด

4
จะวางตัวเก็บประจุแยกใน PCB สี่ชั้นได้อย่างไร?
ฉันค้นหาเอกสารเทคโนโลยีเกี่ยวกับการจัดวางตัวเก็บประจุแยกและแนวคิดหลักที่แสดงในภาพต่อไปนี้: ฉันคิดว่ามันสมเหตุสมผล แต่ฉันต้องใส่ตัวเก็บประจุแยกและ MCU ในชั้นเดียวกันหรือไม่ ฉันไม่สะดวกที่จะวางอุปกรณ์อื่น ดังนั้นฉันเลือกที่จะวางตัวเก็บประจุแยกในชั้นล่าง PCB ของฉันเป็นหนึ่งในสี่ชั้น (signal-power-gnd-signal) หนึ่งและเมื่อฉันแยกพลังงานและชั้น gnd จุดแวะทั้งสองปิดไปที่หมุดของ MCU ในภาพด้านบนจะไม่รวมอยู่ในสุทธิของพลังงานและชั้น gnd มันมีประสิทธิภาพที่ดีเหมือนกับกรณี f ในภาพหรือไม่? ฉันจำเป็นต้องมีการเหนี่ยวนำของจุดอ่อนในกรณีนี้หรือไม่?

6
ทำไม Atmel AVR จึงเป็นที่นิยม
คำถามล่าสุดถามเกี่ยวกับข้อดี / ข้อเสียของ MCU ชนิดต่าง ๆ AVRs ดูเหมือนจะไม่คุ้มค่าที่จะกล่าวถึงเมื่อได้รับคำตอบ ทำไมคนภายนอกถึงดูเหมือนว่า AVR กำลังประสบกับความนิยมอย่างมาก? นี่เป็นเพียงเพราะ Arduino หรือมีอย่างอื่นที่ทำให้ AVR เป็นไมโครคอนโทรลเลอร์ที่ดีเป็นพิเศษหรือไม่?

3
อะไรคือความแตกต่างระหว่างซีรี่ส์ Cortex-M และซีรี่ส์ Cortex-R
มันน่าสนใจ! ฉันค้นหาบทความที่ชัดเจน แต่ฉันไม่พบบทความที่ชัดเจนเกี่ยวกับเรื่องนี้ นอกจากนี้ฉันยังพบลิงค์นี้: ARM Cortex-Rและลิงค์นี้: Cortex-R ซีรี่ส์แต่มันไม่ชัดเจนอย่างแน่นอน ในหน้า wiki เขียนว่า: แกนมีไว้สำหรับการใช้งานแบบเรียลไทม์ที่มีประสิทธิภาพ และในหน้าของ Cortex-R เขียนว่า: โปรเซสเซอร์ ARM Cortex®-R แบบเรียลไทม์นำเสนอโซลูชั่นการประมวลผลประสิทธิภาพสูงสำหรับระบบฝังตัวที่ต้องการความน่าเชื่อถือความพร้อมใช้งานสูงการยอมรับข้อบกพร่องการบำรุงรักษาและการตอบสนองแบบเรียลไทม์ และเหล่านี้: ประสิทธิภาพสูง: การประมวลผลที่รวดเร็วรวมกับความถี่สัญญาณนาฬิกาสูง เรียลไทม์: การประมวลผลตรงตามข้อ จำกัด แบบเรียลไทม์ในทุกโอกาส ปลอดภัย: ระบบที่ไว้วางใจได้และเชื่อถือได้พร้อมความต้านทานข้อผิดพลาดสูง ประหยัดค่าใช้จ่าย: ฟีเจอร์เพื่อประสิทธิภาพพลังงานและพื้นที่ สำหรับอันดับหนึ่ง: ตัวอย่างเช่น Cortex-M เมื่อเร็ว ๆ นี้ NXP ได้สร้างซีรี่ส์ NXP_LPC4XXX ที่มีอัตรานาฬิกา 200Mhz และสำหรับ Cortex-R คุณสามารถเห็นสิ่งนี้: ARM Cortex ™ -R4 Microcontrollers TMS570LSมันตลกเพราะมันมี …

4
การขับ MOSFET จากขาออกของไมโครคอนโทรลเลอร์ปลอดภัยหรือไม่?
ฉันใช้ BJT ที่มีอยู่ทั่วไปเช่น 2N2222 และ 2N3904 เป็นสวิตช์โดยใช้งานมันใน "โหมดความอิ่มตัว" จาก MCU ของฉัน ฉันเชื่อว่าสำหรับแอพพลิเคชั่นประเภทนี้ MOSFET เป็นอุปกรณ์ที่เหมาะสมกว่า อย่างไรก็ตามฉันมีคำถามสองสามข้อ 1) MOSFET มี "โหมดความอิ่มตัว" เหมือน BJT หรือไม่? "ความอิ่มตัว" นี้ทำได้โดยเพียงแค่ให้แรงดันไฟฟ้าสูงเพียงพอบนฐานที่ MOSFET นั้นสมบูรณ์แบบ "เปิด"? 2) การขับ MOSFET นั้นปลอดภัยจาก MCU โดยตรงหรือไม่? ฉันเข้าใจว่าประตูของ MOSFET นั้นทำงานเหมือนตัวเก็บประจุดังนั้นจึงดึงกระแสในขณะที่ "กำลังชาร์จ" และหลังจากนั้นก็ไม่มีใครเลย การชาร์จกระแสนี้สูงพอที่จะทำให้พินเสียหายหรือไม่? ด้วยการวางตัวต้านทานแบบอนุกรมกับเกตฉันสามารถป้องกันพินได้ แต่สิ่งนี้จะทำให้สวิทช์ช้าลงซึ่งอาจทำให้ MOSFET กระจายความร้อนได้สูงหรือไม่ 3) "งานอดิเรก" MOSFET ทั่วไปคืออะไรเหมาะสำหรับสถานการณ์พลังงานต่ำต่าง ๆ IE, MOSFET …

4
คุณทราบได้อย่างไรว่าแฟลช / RAM ที่คุณต้องการสำหรับไมโครคอนโทรลเลอร์เป็นอย่างไร
สมมติว่าคุณกำลังเริ่มต้นโครงการที่ฝังตัวด้วยฟังก์ชันการทำงานที่รู้จัก เมื่อคุณเลือกไมโครคอนโทรลเลอร์คุณจะเลือกแรมที่คุณต้องการได้อย่างไร คุณใช้บอร์ดนักพัฒนาซอฟต์แวร์และรหัสโครงการของคุณก่อนแล้วดูว่าคุณใช้หน่วยความจำเท่าไรแล้วเลือกไมโครคอนโทรลเลอร์ที่เหมาะสมที่เหมาะกับหน่วยความจำนั้น คุณเพิ่งเลือกไมโครคอนโทรลเลอร์ขนาดเล็กสำหรับต้นแบบแล้วลดขนาดลงหลังจากที่คุณมีผลิตภัณฑ์ที่ใช้งานได้หรือไม่? คุณเพิ่งเลือกบางสิ่งที่คุณแน่ใจว่าจะเพียงพอและถ้าคุณไม่มีพื้นที่เหลือเพียงอัพเกรดเป็นความหนาแน่นของหน่วยความจำที่สูงขึ้นอย่างใดอย่างหนึ่งคุณเพียงเก็บไมโครคอนโทรลเลอร์ที่มีอยู่หรือไม่ การปฏิบัติที่ดีคืออะไร?

7
หนึ่งไมโครคอนโทรลเลอร์ขนาดใหญ่หรือไมโครคอนโทรลเลอร์ขนาดเล็กจำนวนมาก?
ฉันคุ้นเคยกับการทำสิ่งพื้นฐานและตรงไปตรงมากับไมโครคอนโทรลเลอร์ สิ่งต่าง ๆ เช่นการขับขี่ LED, การวิ่งมอเตอร์, กิจวัตรพื้นฐาน, GUIs บนตัวอักษร LCD และอื่น ๆ แต่มักจะมีเพียงหนึ่งภารกิจสำคัญที่มีงานด้านน้อยที่สุด สิ่งนี้ได้ผลักไสฉันไปสู่ผลิตภัณฑ์ระดับล่างเนื่องจากเป็นสิ่งที่จำเป็นจริงๆในกรณีเหล่านี้ ฉันต้องการเริ่มต้นออกแบบสิ่งที่ซับซ้อนมากขึ้น แต่ด้านบนของไมโครคอนโทรลเลอร์ที่ต่อเนื่องไม่ใช่สิ่งที่ฉันได้สัมผัสมาอย่างดี ดังนั้นฉันจึงมีช่วงเวลาที่ท้าทายมากที่พยายามเลือกไมโครคอนโทรลเลอร์ที่ฉันจะทำงานหลายอย่างพร้อมกัน - ฉันไม่สามารถบอกได้ด้วยหมายเลข MIPS และ pinout ที่น่าพอใจถ้ามันมีแรงม้ามากพอที่จะทำสิ่งที่ฉันต้องการ ทำ. ตัวอย่างเช่นฉันต้องการควบคุมมอเตอร์ BLDC จำนวน 2 ตัวด้วยการทำงานของ PI ควบคู่ไปกับการสื่อสารแบบอนุกรมและ USB บางส่วน GUI และงานอื่น ๆ ฉันถูกล่อลวงให้มีเพียงไมโครคอนโทรลเลอร์สำหรับแต่ละมอเตอร์และอีกอันสำหรับงานเบ็ดเตล็ดดังนั้นฉันสามารถรับประกันได้ว่าค่าใช้จ่ายจากสิ่งอื่น ๆ จะไม่ทำให้การทำงานของมอเตอร์มีความสำคัญ แต่ฉันไม่รู้ว่าจริง ๆ แล้วเป็นความคิดที่ดีหรือเป็นวิธีที่ไร้เดียงสาในการทำสิ่งต่าง ๆ ฉันเดาคำถามของฉันเป็นสองเท่าจริง ๆ : วิธีการแบบ all-in-one เป็นความคิดที่ดีเมื่อต้องทำมัลติทาสกิ้งจำนวนมากหรือดีกว่าที่จะแบ่งส่วนและแยกและ ฉันจะรู้ได้อย่างไรว่าไมโครคอนโทรลเลอร์ที่ฉันกำลังดูมีพลังในการคำนวณเพียงพอที่จะทำสิ่งที่ฉันต้องการจากรายการงานของฉันได้อย่างไร …

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