การออกแบบ USB Type C

Aug 23 2020

ฉันต้องการคำตอบเกี่ยวกับการใช้งานอุปกรณ์ USB Type C เมื่อเปรียบเทียบกับ USB 2.0 ซึ่งต้องใช้ตัวต้านทานแบบดึงขึ้นบน D + เพื่อเลือกความเร็วในการสื่อสารฉันไม่พบข้อมูลจำเพาะสำหรับ Type C คำถามของฉัน: จำเป็นต้องใช้ตัวต้านทานแบบดึงขึ้นบน D + (DP1 และ DP2) หรือสามารถตั้งค่าเป็นภาพร้อง?

ที่นี่ในหมายเหตุการใช้งาน ST สำหรับฮาร์ดแวร์ USB (https://www.st.com/resource/en/application_note/dm00296349-usb-hardware-and-pcb-guidelines-using-stm32-mcus-stmicroelectronics.pdf) เป็นไปได้ที่จะอ่านว่า VBUS เป็น MANDATORY สำหรับอุปกรณ์ที่ขับเคลื่อนด้วยตัวเองบนพิน PA9 (นั่นคือกรณีของฉัน):

นอกจากนี้ในเอกสารเดียวกันระบุว่าชิปมีตัวต้านทานแบบดึงขึ้นอยู่แล้ว:

ในภาพดังกล่าวแสดงให้เห็นว่าจำเป็นต้องมีการเทียบเคียง VBUS กับ STM32F405 เพื่อตั้งค่าสถานะเมื่อเชื่อมต่อสาย USB

สุดท้ายบนแผ่นข้อมูล (https://www.st.com/resource/en/reference_manual/dm00031020-stm32f405-415-stm32f407-417-stm32f427-437-and-stm32f429-439-advanced-arm-based-32-bit-mcus-stmicroelectronics.pdf) ฉันพบว่าจำเป็นต้องเชื่อมต่อ VBUS กับชิปเพื่อตั้งค่าสถานะการเชื่อมต่อสายเคเบิล:

โดยสรุปไม่จำเป็นสำหรับ STM32F405 ตัวต้านทานแบบดึงขึ้นบน D + และจำเป็นต้องมีตัวแบ่งตัวต้านทาน VBUS เพื่อแจ้งให้ชิป STM32 ทราบว่าเสียบสาย USB ไปยังโฮสต์แล้วแก้ไขฉันถ้าฉันผิด!


[แก้ไข: เวอร์ชันสุดท้ายที่ไม่มีตัวควบคุม USB] บางประเด็นต้องขอบคุณผู้ที่พยายามช่วยเหลือ:

  1. เป้าหมายของการออกแบบนี้คือการสื่อสารผ่าน USB-C เป็นอุปกรณ์ต่อพ่วงเฉพาะอุปกรณ์และบวกกับการใช้ VBUS ของโฮสต์เพื่อจ่ายไฟให้ทั้งระบบด้วยแรงดันไฟฟ้า VBUS ที่แตกต่างกันดังนั้นพิจารณาว่า VBUS สามารถเปลี่ยนจาก 0v ถึง 20v ซึ่งจะนำมาใช้ในภายหลังด้วย ชิปควบคุม USB ระบบมีแหล่งจ่ายไฟของตัวเองเรียกว่า VM บนแผนผังของฉันดังนั้น VBUS สามารถจ่ายไฟให้ระบบหรือไม่ขึ้นอยู่กับผู้ใช้จะ
  2. เพิ่ม Z1 zener diode (บวก R48 และ R49) เพื่อหลีกเลี่ยงไม่ให้ VBUS สูงกว่า 3.3v โดยสมมติว่า VBUS อาจแตกต่างกันไปตั้งแต่ 4v ถึง 20v (ฉันกำลังวางแผนที่จะใช้คอนโทรลเลอร์ USB-C เพื่อให้ทำงานได้ดีสำหรับรูปแบบที่อาจเกิดขึ้น ของแรงดันไฟฟ้า VBUS)
  3. T1 เป็นไดโอด TVS 20v Vrwm เพื่อหลีกเลี่ยงชั่วคราว เหมือนกับ T2 และ T3 ไดโอด TVS 3.6v Vrwm ทั้งคู่
  4. Z2 และ Z3 เป็นเพียงซีเนอร์ไดโอดเพื่อหลีกเลี่ยงปัญหาเกี่ยวกับสาย usb ที่ผิดกฎหมายซึ่งมีค่า Rp ที่ไม่ถูกต้อง สมมติว่าสาย CC สามารถเข้าถึงได้ถึง 10.4v ในกรณีที่เลวร้ายที่สุด แต่มีขีด จำกัด สูงสุดที่ 6v ทั้ง Z2 และ Z3 ป้องกันสาย CC
  5. ป้าย VBUS ไปที่พิน PA9 ของชิป STM32F405 เพื่อตรวจจับแรงดันไฟฟ้า VBUS (พินจะรับแรงดันไฟฟ้า 0 ถึง 3.3 แม้ว่า VBUS จะเปลี่ยนจาก 0v ถึง 20v)


[แก้ไข: เวอร์ชันสุดท้ายพร้อม USB CONTROLLER]

ที่นี่ฉันโพสต์เวอร์ชันเต็มเพื่อทำงานเป็นระบบขับเคลื่อนด้วยตัวเองของอุปกรณ์เท่านั้นโดยที่ VM คือพลังงานของระบบซึ่งสามารถจัดหาได้จาก VBUS หรือแบตเตอรี่ FUSB302B แผ่นข้อมูลแสดงให้เห็นว่าวงจรทั่วไปแอพลิเคชันและAN6102แสดงให้เห็นว่ามัน complementation ที่ไดโอดซีเนอร์ 5v1 ถูกเพิ่มเพื่อ จำกัด แรงดันไฟฟ้าแรงดันไฟฟ้า CC หลีกเลี่ยงการเพิ่มขึ้นดังกล่าวข้างต้น 6V - เมื่อสายที่ผิดกฎหมายถูกนำมาใช้

คำตอบ

2 Ale..chenski Aug 23 2020 at 04:01

การดึงขึ้นกำหนดความเร็ว USB2 เป็นหน้าที่ของอุปกรณ์เอง (ซึ่งควรอยู่ทางด้านขวาของแผนผังของคุณ) Type-C โดยตัวมันเองไม่สนใจเกี่ยวกับการสื่อสาร USB เป็นข้อกำหนดของตัวเชื่อมต่ออิสระ การดึงลง 5.1k สองครั้งบนแผนผังของคุณกำหนดฟังก์ชันของอุปกรณ์ก็เพียงพอแล้ว