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

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

3
รายละเอียดเกี่ยวกับเค้าโครง PCB สำหรับไมโครคอนโทรลเลอร์
อัปเดต : คำถามที่ตามมาแสดงให้เห็นว่าฉันจะทำอย่างไรกับโครงร่าง PCB ที่เกิดขึ้น ฉันวางบอร์ดแรกกับ uC (ฉันมีประสบการณ์ในการใช้และการเขียนโปรแกรมระบบฝังตัวอยู่พอสมควร แต่นี่เป็นครั้งแรกที่ฉันทำโครงร่าง PCB) STM32F103 นี่จะเป็น คณะกรรมการผสมสัญญาณใช้ทั้ง DAC ภายในของ STM และ DAC ภายนอกบางส่วนผ่าน SPI และฉันสับสนเล็กน้อยเกี่ยวกับการต่อสายดิน คำตอบสำหรับคำถามเหล่านี้: ตัวแยกแคปรูปแบบ PCB คำแนะนำเค้าโครงเค้าโครง PCB PCB ที่แข่งขันกัน เค้าโครง PCB สัญญาณผสมสำหรับ PSoC ระบุอย่างชัดเจนว่าฉันควรมีระนาบกราวน์ท้องถิ่นสำหรับยูซีซีเชื่อมต่อกับกราวด์โลก ณ จุดหนึ่งและเครือข่ายอำนาจในท้องถิ่นเชื่อมต่อกับกำลังทั่วโลกใกล้จุดเดียวกันนั้น นี่คือสิ่งที่ฉันทำ สแต็คเลเยอร์ 4 ของฉันคือ: เครื่อง + สัญญาณ GND ท้องถิ่น, uC, มันคือ 100nF decoupling caps, และ …

2
ขนาดหน่วยความจำแฟลชในตัวไม่เพียงพอ
ฉันกำลังใช้คอนโทรลเลอร์ TM4C1230C3PMI จากเครื่องมือ Texas ในโครงการของฉัน มีแฟลชภายใน 32KB ซึ่งไม่เพียงพอสำหรับแอปพลิเคชันของฉัน ไมโครคอนโทรลเลอร์ขนาดแฟลชที่สูงกว่านั้นมีอยู่ในตลาดซึ่งสามารถใช้ได้ แต่ฉันต้องการไปกับไมโครคอนโทรลเลอร์นี้เท่านั้น ตามความรู้ของฉันภายนอก EEPROM สามารถใช้เพื่อเพิ่มขนาดแฟลชทั้งหมด (หน่วยความจำโปรแกรม) ความคิดของฉันถูกต้องหรือไม่ ถ้าไม่โปรดแนะนำฉันจะเพิ่มขนาดหน่วยความจำแฟลชทั้งหมดของคอนโทรลเลอร์ได้อย่างไร?

4
ฉันควรสอบถาม RTC บ่อยแค่ไหน?
ฉันยังไม่ได้ใช้ RTC ดังนั้นฉันจึงไม่แน่ใจเกี่ยวกับวิธี "ปกติ" ในการอ่านนาฬิกาตามเวลาจริง มีวิธีการที่แตกต่างกันเล็กน้อยที่ฉันคิด แต่หวังว่าจะได้รับคำแนะนำ นี่คือวิธีที่ฉันคิดเกี่ยวกับการอ่านและการใช้เวลา: รับวันที่และเวลาเมื่อเปิดเครื่องและบันทึกลงใน RAM แล้วใช้ตัวจับเวลาขัดจังหวะการเพิ่มค่า RAM ทุกวินาทีเป็นต้นจากนั้นโค้ดจะใช้ค่าใน RAM ทุกครั้งที่จำเป็นต้องรู้วันที่ / เวลา ผ่านการใช้ตัวจับเวลาขัดจังหวะค้นหา RTC ทุกวินาทีและคัดลอกวันที่และเวลาที่ได้รับไปยัง RAM อีกครั้งรหัสจะใช้ค่าใน RAM ทุกครั้งที่จำเป็นต้องรู้วันที่ / เวลา ทุกครั้งที่ฉันต้องการทราบเวลาสอบถาม RTC และใช้การตอบกลับโดยตรง ซึ่งจะเป็นวิธีที่ดีที่สุด

1
ประวัติของ MSP430
คำถามนี้ทำให้ฉันคิดถึงวันนี้ ประวัติของ MSP430 คืออะไร? เมื่อไหร่ที่มันเริ่มขึ้นสิ่งที่มันวิวัฒนาการมาทำไมมันถูกสร้างขึ้นมา (นั่นคือเป้าหมายอะไรที่พยายามจะบรรลุ / ข้อ จำกัด ทางเทคนิคของ uC ปัจจุบันที่พยายามจะจัดการ) และทำไมเรียกว่า "MSP430" การค้นหาทางอินเทอร์เน็ตเพียงเปิดเผยจุดไฟนี้ซึ่งไม่พูดมาก

3
วงจรนี้ใช้สำหรับเชื่อมสัญญาณ 20V กับไมโครคอนโทรลเลอร์ 3v3 ได้อย่างไร
ฉันได้ออกแบบวงจรต่อไปนี้เพื่อเชื่อมต่อสัญญาณ 12-20V ไปยังไมโครคอนโทรลเลอร์ที่ทำงานบน 3.3 โวลต์ สัญญาณมีทั้ง 20V หรือวงจรเปิด ฉันต้องการให้วงจรมีความยืดหยุ่นมากที่สุด มันควรจะสามารถจัดการ EMI และ ESD R1 คือการ จำกัด กระแสและไบอัสทรานซิสเตอร์ C1 คือการใช้ตัวกรองสัญญาณความถี่ต่ำ R2 ใช้เพื่อดึงฐานทรานซิสเตอร์และปล่อยตัวเก็บประจุ C1 ที่อินพุต 20V เป็น 20V หรือวงจรเปิด D1 ใช้เพื่อป้องกันทรานซิสเตอร์จากแรงดันลบที่ฐาน R3 คือการดึงขาไมโครคอนโทรลเลอร์ขึ้น ยินดีต้อนรับความคิดเห็นและการปรับปรุงใด ๆ ในวงจรนี้ คำถามด้าน:อะไรคือแรงดันบวกสูงสุดที่ทรานซิสเตอร์นี้สามารถทนได้ แผ่นข้อมูลระบุสถานะสูงสุดในปัจจุบันเป็น 100mA หากฐานถูกรักษาไว้ที่ 0.7 โวลต์อินพุตอาจมีค่ามากถึง 1,000 โวลต์ (10k ohm * 100mA) แต่ถ้าอินพุทคือ 1,000 โวลต์ตัวแบ่งที่เป็นไปได้นั้นจะสร้างแรงดันไฟฟ้าที่ฐานที่ 500 …

4
AVR หน่วยความจำแฟลชเสียหาย
คำถามนี้เป็นคำถามที่เกี่ยวข้องกับAVR deprogramming ตัวเอง ข้อมูลโครงการ: เรามีผลิตภัณฑ์ที่ใช้พลังงานจากแบตเตอรี่โดยใช้ ATMEGA644P แอปพลิเคชั่นทำงานอย่างถาวรในโหมดสลีปและจะปลุกเพียงครั้งเดียวต่อวินาที (RTC) หรือเมื่อหนึ่งในสองอินเตอร์รัปต์ไลน์ถูกทริกเกอร์ อุปกรณ์มีบูทโหลดเดอร์ที่ใช้งานง่ายซึ่งสื่อสารผ่าน UART (โดยใช้อินเตอร์เฟส RS232 IC) เป็นเพียงวิธีการอำนวยความสะดวกในการอัปเดตเฟิร์มแวร์ดังนั้นจึงไม่จำเป็นต้องมีโปรแกรมเมอร์ ISP (บูตโหลดเดอร์คาดว่าจะตรวจสอบโทรเลขที่ปลอดภัย) อุปกรณ์ได้รับการออกแบบให้มีการปิดการใช้งานสีน้ำตาลภายในเนื่องจากเป็นสองเท่าของการใช้พลังงานและอายุการใช้งานแบตเตอรี่ที่ยาวนาน (ฉันเดาว่าควรใช้การตรวจจับสีน้ำตาลภายนอกภายนอก ปัญหา: ทุกๆสองสามเดือนที่อุปกรณ์หยุดทำงานไม่มีการอัพเดตเฟิร์มแวร์ในอุปกรณ์เหล่านั้น อย่างไรก็ตามหลังจากการตรวจสอบเพิ่มเติมเนื้อหาแฟลชของอุปกรณ์เหล่านั้นดูเหมือนจะเสียหาย นอกจากนี้แบตเตอรี่ของอุปกรณ์เหล่านั้นบางอย่างยังคงดี แต่ฉันไม่ต้องการแยกแยะสถานการณ์ภายใต้แรงดัน นี่คือการเปรียบเทียบเนื้อหาแฟลชต้นฉบับ (ซ้าย) กับเนื้อหาที่เสียหาย (ขวา): ข้อสังเกตบางอย่าง: บล็อกที่เสียหายประกอบด้วยอย่างน้อยหนึ่งหน้าแฟลช (256 ไบต์) และจัดเรียงหน้า กล่าวอีกนัยหนึ่ง: เฉพาะหน้าทั้งหมดที่ได้รับผลกระทบไม่ใช่ไบต์เดียว เนื้อหาที่เสียหายอ่าน 0xFF เป็นส่วนใหญ่ แต่อาจมีค่าอื่น ๆ หรือเป็น "สุ่ม" อย่างสมบูรณ์ แถบเล็ก ๆ ทางด้านซ้ายของภาพแสดงพื้นที่ที่ได้รับผลกระทบทั้งหมด สำหรับอุปกรณ์นี้ประมาณหนึ่งในสิบของเนื้อหาแฟลชทั้งหมด เรามีอุปกรณ์หนึ่งชิ้นที่มีเพียงหน้าเดียวที่ได้รับผลกระทบ เป็นไปได้อย่างมากที่สภาวะแรงดันไฟฟ้าต่ำในขณะที่เขียนหน่วยความจำแฟลชอาจทำให้เนื้อหาแฟลชเสียหาย อย่างไรก็ตามนี่หมายความว่าต้องมีการใช้งานคำแนะนำที่ละเอียดอ่อนสำหรับแฟลช …

3
BJTs กับ (MOS) FET เพื่อสลับโหลดจากไมโครคอนโทรลเลอร์
ฉันต้องการทราบสาเหตุของการเลือกไบโพลาร์จังก์ชั่นทรานซิสเตอร์ (BJT) กับทรานซิสเตอร์ภาคสนาม (FET) ( MOSFETหรือJFET ) เพื่อเปลี่ยนโหลดจากไมโครคอนโทรลเลอร์ ในสถานการณ์สมมุติของเราสมมติว่าโหลดต้องการกระแสมากกว่าไมโครคอนโทรลเลอร์ที่สามารถให้ได้และคำถามคือสิ่งที่การพิจารณาจะมีอคติต่อหรือ BJT และการออกแบบสวิตช์ FET โดยสันนิษฐานว่า "ใช้งานง่าย" ไม่ใช่การพิจารณา คำถามนี้เป็นรุ่นที่เฉพาะเจาะจงมากขึ้นว่า จะใช้คำถามทรานซิสเตอร์เมื่อใด

3
สภาพการแข่งขัน Sleep Microcontroller
รับไมโครคอนโทรลเลอร์ที่ใช้รหัสต่อไปนี้: volatile bool has_flag = false; void interrupt(void) //called when an interrupt is received { clear_interrupt_flag(); //clear interrupt flag has_flag = true; //signal that we have an interrupt to process } int main() { while(1) { if(has_flag) //if we had an interrupt { has_flag = false; //clear the interrupt flag …

1
แรงดึงภายในที่อ่อนแอของไมโครคอนโทรลเลอร์และความอ่อนแอของ EMI
ข้อเสียอะไรที่ฉันสามารถเรียกใช้เมื่อใช้ pullups ภายในที่อ่อนแอ (100k) บนไมโครคอนโทรลเลอร์ ฉันสงสัยว่าเส้นที่อ่อนไหว (มีเพียงความสามารถในการติดตาม / กาฝากที่เป็นส่วนประกอบของกาฝาก) กลายเป็น EMI ชั่วคราวด้วยการดึงแบบอ่อนเหล่านี้ ตัวกรองดิจิทัลที่มีหน้าต่าง 3-4ms อาจลดโอกาสของการเกิด transients แต่มีอะไรอีกบ้างที่ต้องคำนึงถึงใน PCB มืออาชีพ

1
Cortex M0 ใช้พลังงานต่ำจริงหรือ
ฉันใช้ซีพียู NXP LPC1100 series ซึ่งเป็น Cortex M0 ที่ประหยัดพลังงานที่สุด อย่างไรก็ตามในแผ่นข้อมูลระบุว่าภายใต้เงื่อนไขที่เหมาะสมที่สุด (โหมดสลีป + อุปกรณ์ต่อพ่วงทั้งหมดที่ปิดใช้งาน) มันยังคงใช้ 6 mA และการวัดของฉันยืนยันสิ่งนี้ เป็นไปได้อย่างไรที่สมาร์ทโฟนของฉัน (ซึ่งมีซีพียู 1Ghz และอุปกรณ์ต่อพ่วงจำนวนมาก) ใช้งานเพียง 3 mA ขณะอยู่ในโหมดสแตนด์บายเมื่อ Cortex 48Mhz นี้ใช้งานได้มากกว่าเมื่อไม่ได้ใช้งาน

5
อะไรคือความแตกต่างระหว่างการขัดจังหวะการเปลี่ยนแปลงและการขัดจังหวะภายนอกบน PIC
อะไรคือความแตกต่างของฟังก์ชั่นระหว่าง IOC และ EXT Interrupt บน PIC? ขณะนี้ฉันใช้ PIC12F1822 และนอกเหนือจากการตรวจสอบเลเยอร์เพิ่มเติมที่คุณต้องทำกับ IOC (เช่นพินที่ทำให้เกิดการขัดจังหวะ) ทั้งสองนั้นเหมือนกัน อะไรคือความแตกต่างในทางปฏิบัติถ้ามี? เมื่อไหร่ที่คุณจะใช้อันใดอันหนึ่ง?

2
การเลือกกำลังโหลดค่าตัวเก็บประจุสำหรับคริสตัล 32 kHz
ฉันต้องการความช่วยเหลือในการเลือกตัวเก็บประจุโหลดสำหรับ 32.768 kHz XTAL ในการออกแบบที่ฉันกำลังทำงานอยู่ นี่เป็นเวลาค่อนข้างนาน แต่คำถามใหญ่คือ: มันสำคัญหรือไม่ที่จะต้องรับค่าการบรรจุที่ถูกต้องและความสามารถของกาฝากในการติดตามและนำไปสู่ความสำคัญจะอยู่ที่การพิจารณาสิ่งนี้ อุปกรณ์ของฉันใช้ TI CC1111 SoC และขึ้นอยู่กับการออกแบบอ้างอิงสำหรับดองเกิล USB จาก TI CC1111 นั้นต้องการออสซิลเลเตอร์ความเร็วสูง (HS) 48 MHz และออสซิลเลเตอร์ความเร็วต่ำ 32 kHz (LS) การออกแบบอ้างอิงใช้คริสตัลสำหรับ HS oscillator และวงจร RC ภายในสำหรับ LS oscillator อย่างไรก็ตาม CC11111 สามารถเชื่อมต่อกับออสซิลเลเตอร์คริสตัล 32.768 kHz เพื่อความแม่นยำที่ดีกว่าซึ่งฉันต้องการ แผ่นข้อมูล CC1111 มีสูตร (หน้า 36) สำหรับการเลือกค่าสำหรับตัวเก็บประจุโหลด เป็นการตรวจสอบสติฉันใช้สูตรนั้นเพื่อคำนวณค่าสำหรับแคปที่ใช้กับ 48 MHz xtal ในการออกแบบอ้างอิง …

4
สวิตช์หรี่ไฟดิจิตอลพร้อมไมโครคอนโทรลเลอร์
ฉันต้องการสร้างสวิตช์หรี่ไฟดิจิตอลสำหรับโหลดตัวต้านทาน ฉันได้พบวงจรนี้เพื่อที่: แรงดันไฟฟ้าอินพุตคือ 220VAC 50Hz Zero Crossing Detectionกล่องสีแดงในภาพเป็น เมื่อแรงดันไฟฟ้ากระแสสลับผ่านศูนย์ไมโครคอนโทรลเลอร์จะถูกขัดจังหวะและตรวจจับการข้ามเป็นศูนย์ เพื่อให้คุณสามารถเข้าถึงแรงดันไฟฟ้าที่ต้องการโดยการเรียกTriacหลังจากที่เฉพาะDelayคุณแนะนำวงจรนี้หรือไม่? ถ้าเป็นเช่นนั้นโปรดแจ้งให้เราทราบหากมี IC ใด ๆ ที่จะแทนที่ด้วยRed Box(แสดงในภาพ) เพื่อตรวจสอบจุดศูนย์ของแรงดันไฟฟ้ากระแสสลับ (วงจรของฉันควรมีขนาดเล็กที่สุดเท่าที่จะทำได้)? ป.ล. ฉันต้องการวงจรนี้เพื่อลดพลังงานที่ใช้ไปของโหลดดังนั้นตัววงจรเองจึงต้องกระจายตัวไม่เกิน 5 วัตต์

6
วิธีการถอดรหัสสัญญาณอนุกรมที่ไม่ได้มาตรฐานอย่างมีประสิทธิภาพ
ฉันเป็นสมาชิกระดับปริญญาตรีของทีมวิจัยที่ทำงานในโครงการที่เกี่ยวข้องกับ ASIC ที่ส่งสัญญาณ RF และตัวรับสัญญาณไร้สายซึ่งควรส่งข้อมูลไปยังพีซีในที่สุด รับผลลัพท์ที่รวดเร็วอย่างต่อเนื่องไม่ตรงกันสัญญาณอนุกรมที่ไม่ได้มาตรฐาน (เช่นไม่ SPI, I2C, UART ฯลฯ ) เพื่อให้งานของฉันคือการเขียนซอฟต์แวร์ไมโครคอนโทรลเลอร์เพื่อติดต่อรับสัญญาณไปยังเครื่องคอมพิวเตอร์ ขณะนี้วิธีการของฉันคือการใช้การขัดจังหวะแบบ Edge-Trigger เพื่อวางข้อมูลในบัฟเฟอร์แบบวงกลมและทำกระบวนการถอดรหัสแบบทีละบิตในลูปหลัก ไมโครคอนโทรลเลอร์จะต้องส่งออกข้อมูลนี้พร้อมกันโดยใช้ USB (พอร์ต com เสมือน) ไปยังคอมพิวเตอร์ นี่คือปัญหาที่ฉันมีและสิ่งที่ฉันคาดการณ์ไว้: ฉันไม่สามารถประมวลผลข้อมูลบัฟเฟอร์ได้เร็วพอแม้จะใช้โปรเซสเซอร์ ARM Cortex M3 ที่ทรงพลังมากของฉัน บิตเรตคือ 400 Kbps (2.5 us / bit) สำหรับการอ้างอิงที่เหลือเพียง 180 รอบต่อบิต (รวมถึงการถอดรหัสและ ISR ซึ่งมี ~ 30 รอบอุ๊ยค่าใช้จ่าย!) นอกจากนี้ MCU ยังต้องจัดการกับงานอื่น ๆ อีกมากซึ่งจะทำการสำรวจในการวนซ้ำหลัก ไดรเวอร์พอร์ตเสมือนของ …

6
อะไรเป็นสาเหตุที่ทำให้เคอร์เนล RTOS มัลติทาสกิ้ง PIC16 ของฉันไม่ทำงาน?
ฉันพยายามที่จะสร้าง RTOS กึ่งร่วมมือ (pre-emptive) สำหรับไมโครคอนโทรลเลอร์ PIC x16 ในคำถามก่อนหน้านี้ฉันได้เรียนรู้ว่าการเข้าถึงตัวชี้สแต็กของฮาร์ดแวร์ไม่สามารถทำได้ในแกนประมวลผลเหล่านี้ ฉันดูที่หน้านี้ใน PIClist และนี่คือสิ่งที่ฉันพยายามนำไปใช้โดยใช้ C คอมไพเลอร์ของฉันคือ Microchip XC8 และขณะนี้ฉันกำลังทำงานกับ PIC16F616 ด้วย RC oscillator ภายใน 4MHz ที่เลือกในบิตกำหนดค่า ฉันได้เรียนรู้ว่าฉันสามารถเข้าถึงการลงทะเบียน PCLATH และ PCL ด้วย C โดยดูที่ไฟล์ส่วนหัวของคอมไพเลอร์ของฉัน ดังนั้นฉันจึงพยายามที่จะใช้งานสลับง่าย ทำงานตามที่ต้องการในตัวดีบักถ้าฉันหยุดการดีบักหลังจากรีสตาร์ทรีเซ็ตและตั้งค่าพีซีที่เคอร์เซอร์เมื่อเคอร์เซอร์ไม่อยู่ในบรรทัดแรก ( TRISA=0;) แต่อยู่บนอีกบรรทัดหนึ่ง (เช่นANSEL=0;) ในการเริ่มต้นดีบั๊กฉันได้รับข้อความเหล่านี้ในDebugger Console: Launching Programming target User program running No source code lines were found …

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