UART ตรึงหมุดให้กับ MCU ที่ไม่ได้ใช้งานหรือไม่


11

ฉันใช้ USB-UART IC กับ MCU ซึ่งใช้พลังงานจากแบตเตอรี่

USB-UART IC นั้นใช้พลังงานจากตัวเชื่อมต่อ USB ไม่ใช่จากแบตเตอรี่ดังนั้นฉันจึงไม่จำเป็นต้องเปิดคอนโซลทุกครั้งเมื่อสวิตช์เปิดและปิด

แผนผัง

จำลองวงจรนี้ - แผนผังที่สร้างโดยใช้CircuitLab

แก้ไข: ฉันไม่ได้วาดลงบนรูป แต่ IC มีตัวควบคุม 3.3V ภายในและ VDD ทุกตัวอยู่ในระดับ 3.3V เมื่อสวิตช์เปิดอยู่

ตอนนี้ฉันกังวลเกี่ยวกับการเสียบ USB และสวิตช์ยังคงปิดอยู่

เอกสาร MCU กล่าวว่าคะแนนสูงสุดของทุกอินพุตขาเข้าคือ VDD + 0.3 ซึ่งจะเป็น 0.3 V เมื่อไม่มีการขับเคลื่อน MCU

หากคู่ TX / RX ที่ด้าน USB-UART สูงขึ้นมันจะทำลายหมุดที่ด้าน MCU หรือไม่

ถ้าเป็นเช่นนั้นฉันต้องมีอะไรบ้างระหว่างคู่ TX / RX


@Toor "tbh" หมายถึงอะไร
Elliot Alderson

1
มันอาจจะไม่เป็นไรประตูควรจะสามารถทนต่อแรงดันไฟฟ้าสูงสุดได้ทุกเมื่อเนื่องจากพวกเขาจำเป็นต้องทำเช่นนั้นเพื่อให้สามารถทำงานได้ที่ปลายด้านบนของช่วงแรงดันไฟฟ้าของพวกเขา Vdd + 0.3 อ้างอิงถึงแคโทด ESD ใน MCU แต่ถ้า MCU ไม่ทำงานไฟไดโอดเหล่านั้นจะไม่มีรางสำหรับหนีบ หาก MCU ที่มีความสามารถ 5V ถูกปิดการทำงาน 3V และคุณใช้ 5V กับ I / O ไดโอดเหล่านั้นจะพยายามและยึดกับราง 3.3V แต่นั่นไม่ได้หมายความว่ามันจะระเบิดหากไม่มี 5V คุณสามารถใช้ตัวต้านทานแบบอนุกรมเพื่อ จำกัด กระแสผ่านไดโอดดังกล่าว
DKNguyen

3
@ElliotAlderson "tbh" เป็นอินเทอร์เน็ต - ism ทั่วไปสำหรับ "ความซื่อสัตย์"
Hearth

7
@ ประตูไดโอดจะสร้างรางไฟ เห็นyoutube.com/watch?v=2yFh7Vv0Paw
CL

5
นี่อาจเป็นปัญหา - ไม่เพียง แต่ความเสี่ยงทางทฤษฎีของความเสียหาย แต่มีชิ้นส่วนที่จะไม่ทำความสะอาดพลังงานเมื่อรีเซ็ตหากก่อนหน้านี้ "sorta" ขับเคลื่อนโดย I / Os ก่อนที่จะใช้พลังงานจริง หากคุณพบว่ากำลังไฟสุทธิของบอร์ดดึงขึ้นมาเป็น. 5v - .6v เมื่อ "ปิด" คุณอาจตกอยู่ในปัญหา
Chris Stratton

คำตอบ:


14

มันขึ้นอยู่กับ MCU แต่ในกรณีส่วนใหญ่มันจะเพิ่มพลังให้กับ MCU และอาจเป็นส่วนที่เหลือของบอร์ดผ่าน MCU MCU จะพยายามเรียกใช้และทำสิ่งแปลก ๆ บอร์ดของคุณจะทำสิ่งอื่น ๆ หากบอร์ดของคุณมีกระแสไฟเพียงพอมันจะสร้างความเสียหายให้กับขาของ MCU

คุณต้องจัดให้สัญญาณ UART อยู่ที่ 0V เมื่อปิดการทำงานของ MCU หากชิป UART (หรือ UART) ที่คุณใช้ไม่มี pin เปิดใช้งาน (ชิป USB UART ที่ฉันได้ทำงานด้วยสามารถกำหนดค่าให้ตรงกับกรณีที่คุณกำลังอธิบาย) ดังนั้นและ UART จะแสดงผลลัพธ์ด้วย VCC ของไมโครโปรเซสเซอร์


5

วิธีแก้ปัญหาอาจง่ายเหมือน NMOS ระหว่าง TX pin ของ USB-UART (ระบาย) และ RX pin ของ MCU (แหล่งที่มา) โดยมีเกตเชื่อมต่อกับ MCU VDD

นี่หมายความว่า USB-UART จะสามารถขับได้สูงถึง 3.3 V ลบแรงดันขีด จำกัด ของทรานซิสเตอร์ คุณจะต้องตรวจสอบว่ามันยังเพียงพอที่จะตอบสนอง V_IH ของ MCU ของคุณ

ฉันสงสัยโซลูชันที่เกี่ยวข้องกับ Logic gate powered (โดยทางอ้อม) โดย VBUS ตราบใดที่ประตูลอจิกขับอินพุตสูง MCU MCU VCC อาจไม่ไกลพอที่จะปิดไดรเวอร์ TX ด้วยโซลูชัน NMOS ขา TX สามารถขับเคลื่อนด้วยแรงดันไฟฟ้าต่ำกว่า VCC เท่านั้นทำให้ไม่สามารถป้อนกลับความคิดเห็นนี้ได้

อย่างไรก็ตามคุณควรพิจารณาทิศทางกลับกันด้วย: หากใช้พลังงานจาก MCU แต่ USB-UART ไม่ใช่คุณจะต้องแน่ใจว่าคุณไม่ได้ให้พลังงานกับ USB-UART โดยไม่ตั้งใจ แบตเตอรี่เร็วกว่าที่คุณคาดไว้ วิธีแก้ปัญหาเฉพาะซอฟต์แวร์ควรเพียงพอสำหรับสิ่งนี้


2

ฉันมีทางออกที่แตกต่างอย่างสิ้นเชิงซึ่งขึ้นอยู่กับชิป USB ที่คุณใช้

บางคนมี VBUS และ VCCIO ที่แตกต่างกัน ในกรณีนี้คุณอาจสามารถใช้พลังงานส่วน IO ของชิปนั้นพร้อมกับ uC


1
นี่เป็นความคิดที่ดี แต่โปรดอ่านแผ่นข้อมูลของตัวรับส่งสัญญาณ USB อย่างระมัดระวัง ไอซีบางตัวจะมีการล้มเหลวอื่น ๆ หากไม่ได้ใช้แหล่งจ่ายไฟ ส่วนการจัดอันดับสูงสุดของ Absloute ซึ่งอยู่ใกล้กับจุดเริ่มต้นของแผ่นข้อมูลควรครอบคลุมถึงสิ่งนี้
jherbold

1

ทางออกที่ง่ายคือการใส่ตัวต้านทานบางตัวระหว่างขา I / O สิ่งนี้จะ จำกัด การไหลของกระแสในพินเพื่อให้ตัวรับส่งสัญญาณไม่สามารถจ่ายกำลังไฟยูซีซีได้ ค่าตัวต้านทานคือความสมดุลระหว่างการ จำกัด แบนด์วิดท์ระหว่างชิปและการ จำกัด กระแส

ลอจิกบัฟเฟอร์ที่ขับเคลื่อนโดย USB แต่เปิดใช้งานเอาต์พุตโดย uC สิ่งนี้ทำเช่นเดียวกับการเปิดใช้งานตัวรับส่งสัญญาณเอาท์พุทของคำตอบอื่น ๆ

มีข้อดีที่จะปิด uC เมื่อเชื่อมต่อกับคอมพิวเตอร์หรือไม่ หากไม่ใช่คุณสามารถจ่ายไฟให้กับ uC ได้จากกำลังไฟ USB 5 V วิธีในการทำเช่นนี้คือ:

  1. สวิตช์ SPDT ที่เลือกพลังงาน USB เมื่อปิดพลังงานแบตเตอรี่ แทนที่สวิตช์ SPST ในแผนภาพวงจรของคุณ
  2. ไดโอดไดโอดวงจรรวมไดโอดในอุดมคติหรือ MOSFET ควบคุมโดย uC เพื่อเลือกพลังงาน USB เมื่อมี ตอนนี้คุณต้องพิจารณาว่าจะเกิดอะไรขึ้นเมื่อปิดสวิตช์แบตเตอรี่และเชื่อมต่อ USB แล้ว การเปลี่ยนแบตเตอรี่ที่ไม่สามารถควบคุมได้นั้นเป็นสิ่งที่ดี

7
คุณอาจจะคิดอย่างนั้น - แต่ตัวต้านทานเพียงอย่างเดียวจะไม่ได้ทำงานจริง แม้แต่ตัวต้านทานแบบอนุกรมขนาดใหญ่บนสายรับ UART ก็ไม่ทำเช่นนั้น (แม้ว่าอาจป้องกันความเสียหายได้) ปัญหาคือว่าจนกว่าคุณจะมีแรงดันไฟฟ้าเกินขีด จำกัด ต่ำมากจะไม่มีสิ่งใดดึงดูดกระแสในปัจจุบันและแม้แต่น้อยมากหากไม่มีนาฬิกา ดังนั้นแม้จะมีตัวต้านทานแบบอนุกรมรางไฟของบอร์ดก็สามารถดึงขึ้นไปยังจุดที่สิ่งต่าง ๆ เพิ่งเริ่มมีสถานะที่ไม่เหมาะสมซึ่งอำนาจการตั้งค่าที่ตั้งไว้ไม่น่าเชื่อถืออีกต่อไป
Chris Stratton

ตกลง ขอบคุณที่ให้รายละเอียดเพิ่มเติมกับคำตอบของฉัน ฉันหวังว่าจะให้บริการโซลูชันต้นแบบที่รวดเร็วและควรจะกล่าวอย่างนั้น มันไม่ได้เป็นวิธีแก้ปัญหาคนโง่และจะทำงานเฉพาะเมื่อกระแสเริ่มต้น uC สูงพอที่จะสร้างแรงดันตกคร่อมพอที่ตัวต้านทานเพื่อรักษาแรงดันไฟฟ้าที่ uC ต่ำพอที่จะไม่หลุดออกจากบราวน์
jherbold

0

คุณเคยคิดไหมว่าถ้ามีบัฟเฟอร์ไตรสถานะสองอันจะเป็นทางออกที่ดี? คุณสามารถผูกหมุดเปิดใช้งานกับสวิทช์ของคุณแล้วตรวจสอบให้แน่ใจว่าขั้วจาก tx ถึง rx ถูกต้องซึ่งให้การป้องกันที่คุณต้องการอย่างมีประสิทธิภาพ

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