บทความ › อิเล็กทรอนิกส์

บอร์ด USB-C ไม่ติดเมื่อใช้สาย C ถึง C เพราะขาด ตัวต้านทาน 5.1 kΩ ที่ขา CC

บอร์ดพอร์ต USB-C ที่เสียบสาย A-to-C ติด แต่สาย C-to-C ไม่ติด เพราะไม่มี 5.1 kΩ ที่ขา CC1 และ CC2 แยกกันคนละตัว ทำไมที่ชาร์จไม่จ่ายไฟ วัดยังไง และแก้ยังไง

เริ่มต้น อ่าน 6 นาที 23 ตุลาคม 2569 ของใหม่ที่ช่างควรลอง 2026 · บทที่ 12/20

อ่านจบแล้วจะรู้
  • พอร์ต USB-C ฝั่งจ่ายไฟปล่อย VBUS เป็น 0 V จนกว่าจะเห็นตัวต้านทาน Rd ที่ขา CC ของอุปกรณ์ บอร์ดที่ไม่มี Rd จึงไม่ได้ไฟเลย
  • อุปกรณ์รับไฟต้องมี 5.1 kΩ ลงกราวด์ที่ CC1 หนึ่งตัว และ CC2 อีกหนึ่งตัว แยกกัน ห้ามใช้ตัวเดียวร่วมกัน
  • สาย A-to-C ใช้ได้เพราะพอร์ต USB-A จ่าย 5 V ตลอด และในหัวสายมีตัวต้านทาน 56 kΩ อยู่แล้ว
  • วัดง่าย ๆ ด้วยมัลติมิเตอร์ตอนถอดไฟ CC1 กับ CC2 ถึงกราวด์ควรได้ราว 5.1 kΩ ทั้งคู่

บอร์ด ESP32 หรือโมดูลราคาประหยัดหลายตัวมีพอร์ต USB-C แต่พอเสียบสาย C-to-C กับที่ชาร์จมือถือหรือโน้ตบุ๊ก ไฟไม่ติดเลย ขณะที่สาย A-to-C เส้นเก่าใช้ได้ปกติ สาเหตุคือบอร์ดไม่มีตัวต้านทาน 5.1 kΩ ที่ขา CC ทั้งสองขา ที่ชาร์จ USB-C จึงไม่รู้ว่ามีอุปกรณ์เสียบอยู่ และไม่ยอมปล่อยไฟออกมา

บทนี้อธิบายกลไก วิธีวัด และวิธีแก้ ทุกอย่างอยู่ที่ไฟ 5 V จาก USB ถ้ายังไม่แน่ใจเรื่องไฟเลี้ยงบอร์ด อ่านจ่ายไฟ ESP32 ให้ถูก ประกอบ

ขา CC คืออะไร

หัว USB-C มีขา Configuration Channel สองขา คือ CC1 และ CC2 (เพราะเสียบกลับด้านได้) ใช้ให้สองฝั่งรู้จักกันก่อนจ่ายไฟ

  • ฝั่งจ่ายไฟ (source) เช่นที่ชาร์จ มีตัวต้านทาน Rp ดึงขึ้นที่ CC
  • ฝั่งรับไฟ (sink) เช่นบอร์ดของเรา มีตัวต้านทาน Rd = 5.1 kΩ ดึงลงกราวด์ที่ CC

เมื่อเสียบ Rp กับ Rd ต่อกันเป็นวงจรแบ่งแรงดัน ที่ชาร์จเห็นแรงดันที่ CC ตกลงมา จึงรู้ว่ามีอุปกรณ์รับไฟเสียบอยู่ แล้วค่อยเปิด VBUS

พอร์ต USB-C ที่ทำตามข้อกำหนด ไม่มีอะไรเสียบ VBUS ต้องเป็น 0 V และจะจ่าย 5 V ก็ต่อเมื่อเห็นอุปกรณ์รับไฟผ่านขา CC เท่านั้น

ทำไมสาย A-to-C ใช้ได้ แต่ C-to-C ไม่ได้

สาย A-to-Cสาย C-to-C
ฝั่งจ่ายไฟพอร์ต USB-A จ่าย 5 V ตลอดพอร์ต USB-C รอเห็น Rd ก่อน
Rp อยู่ที่ไหนในหัวสาย 56 kΩ ต่อกับ VBUSในที่ชาร์จ
บอร์ดไม่มี Rdยังได้ไฟได้ 0 V
บอร์ดมี Rd ครบได้ไฟได้ไฟ

สาย A-to-C แบบเก่าถูกกำหนดให้มี Rp 56 kΩ อยู่ในหัวสาย ค่านี้บอกว่าแหล่งจ่ายเป็นพอร์ต USB ธรรมดา ส่วนพอร์ต USB-A ไม่มีขา CC และปล่อยไฟตลอดอยู่แล้ว บอร์ดที่ไม่มี Rd จึงดูเหมือนปกติ จนวันที่เปลี่ยนมาใช้สาย C-to-C

ตัวอย่าง: ที่ชาร์จอ่านแรงดันที่ CC ยังไง

ค่า Rp ที่ใช้ดึงขึ้นไป 5 V บอกว่าที่ชาร์จจ่ายกระแสได้เท่าไร: 56 kΩ = ค่าเริ่มต้นของ USB, 22 kΩ = 1.5 A, 10 kΩ = 3 A บอร์ดของเรามี Rd 5.1 kΩ แรงดันที่ CC คำนวณแบบวงจรแบ่งแรงดัน

V_CC = 5 V × 5.1 ÷ (Rp + 5.1)

  1. Rp 56 kΩ: 5 × 5.1 ÷ 61.1 = 0.42 V อยู่ในช่วง 0.20–0.66 V = ค่าเริ่มต้นของ USB
  2. Rp 22 kΩ: 5 × 5.1 ÷ 27.1 = 0.94 V อยู่ในช่วง 0.66–1.23 V = ได้ถึง 1.5 A
  3. Rp 10 kΩ: 5 × 5.1 ÷ 15.1 = 1.69 V สูงกว่า 1.23 V = ได้ถึง 3 A
  4. ไม่มี Rd: CC ไม่มีทางลงกราวด์ แรงดันไม่ตก ที่ชาร์จถือว่าไม่มีอะไรเสียบ VBUS = 0 V

ช่วงแรงดันข้างบนมาจากตารางสรุปที่ใช้กันทั่วไป ต่ำกว่า 0.20 V ถือว่าไม่มีแหล่งจ่ายต่ออยู่ สำหรับบอร์ด ESP32 ทั่วไปไม่ต้องอ่านค่านี้ แค่มี Rd ก็ได้ 5 V แล้ว แต่ถ้าบอร์ดจะดึงกระแสเกินค่าเริ่มต้น (500 mA สำหรับ USB 2.0) ต้องอ่านแรงดัน CC ก่อนว่าที่ชาร์จจ่ายไหว

ฝั่งที่ชาร์จ (Rp)แรงดันบน Rd 5.1kหมายถึง56 kΩ0.42 Vค่าเริ่มต้น USB22 kΩ0.94 V1.5 A10 kΩ1.69 V3 Aไม่มี Rd0 Vไม่จ่ายไฟ
แรงดันบน Rd 5.1 kΩ บอกที่ชาร์จว่าจ่ายได้แค่ไหน

ต้องแยกคนละตัว ห้ามใช้ตัวเดียวร่วมกัน

ข้อกำหนดให้ CC1 และ CC2 มี Rd ของตัวเองแยกกัน บอร์ด Raspberry Pi 4 (ปี 2019) เคยต่อ CC1 กับ CC2 เข้าหากันแล้วลงตัวต้านทาน 5.1 kΩ ตัวเดียว ผลคือกับสายธรรมดาใช้ได้ แต่กับสายที่มีชิป e-marker (สายรองรับข้อมูลเร็วหรือกระแส 5 A) ที่ชาร์จอาจตีความผิดและไม่จ่ายไฟ บทความวิเคราะห์เรื่องนี้บน kernel.org ชี้ว่าเป็นความผิดพลาดที่เจอบ่อย และแนะนำให้ลอกวงจรตามข้อกำหนดแบบตรงตัว

วงจรฝั่งรับไฟที่ถูกต้อง สำหรับบอร์ด USB 2.0:

  • CC1 → 5.1 kΩ → GND
  • CC2 → 5.1 kΩ → GND (อีกตัว)
  • ขา D+ สองขา (A6, B6) ต่อเข้าหากัน และขา D− สองขา (A7, B7) ต่อเข้าหากัน เพื่อให้เสียบด้านไหนก็ได้ข้อมูล
  • ขา SuperSpeed ปล่อยไว้ไม่ต่อ ชิป ESP32 รองรับแค่ USB 2.0

วัดบอร์ดด้วยมัลติมิเตอร์

ถอดสายออกจากบอร์ดก่อน ตั้งมัลติมิเตอร์โหมดวัดความต้านทาน (ถ้ายังไม่คล่อง ดูใช้มัลติมิเตอร์)

วัดระหว่างค่าที่ควรได้ถ้าไม่ใช่
CC1 กับ GNDราว 5.1 kΩไม่มีค่า (เปิดวงจร) = ไม่มี Rd
CC2 กับ GNDราว 5.1 kΩเหมือนกัน
CC1 กับ CC2ราว 10.2 kΩ (สองตัวอนุกรมผ่านกราวด์)ใกล้ 0 Ω = ต่อรวมกัน แบบ Pi 4

จุดวัด CC บนบอร์ดเล็กหาได้จากผังวงจรของบอร์ด หรือใช้บอร์ดแยกขา USB-C (breakout) เสียบแทน อีกวิธีที่ง่ายกว่าคือลองเสียบสาย C-to-C กับที่ชาร์จ USB-C ถ้าไฟไม่ติดแต่สาย A-to-C ติด เกือบแน่นอนว่าขาด Rd

แก้ยังไง

  1. ใช้สาย A-to-C กับพอร์ต USB-A ทางที่ง่ายสุดและไม่ต้องแก้บอร์ด
  2. เติม Rd ถ้าบัดกรีชำนาญ เติม 5.1 kΩ จาก CC1 ลงกราวด์ และอีกตัวจาก CC2 ลงกราวด์ ขาบนหัว USB-C เล็กมาก ระวังลัดขาข้างเคียง
  3. ออกแบบบอร์ดเอง ใส่ 5.1 kΩ 1% สองตัวทุกครั้ง
  4. ซื้อบอร์ดใหม่ ดูผังวงจรของบอร์ดก่อนซื้อ ว่ามีตัวต้านทาน 5.1 kΩ ที่ CC1 และ CC2 แยกกัน

ข้อผิดพลาดที่เจอบ่อย

  • ใช้ตัวต้านทานตัวเดียวให้ CC สองขา ใช้ได้กับสายบางเส้น แต่พังกับสาย e-marker
  • เปลี่ยนค่าเป็น 10 kΩ เพราะมีอยู่ในลิ้นชัก ที่ชาร์จอ่านแรงดันผิด ใช้ 5.1 kΩ
  • คิดว่าสาย C-to-C เสีย ลองสายอีกเส้นก็ไม่ติดเหมือนกัน ปัญหาอยู่ที่บอร์ด ไม่ใช่สาย
  • ต่อ D+ หรือ D− แค่ชุดเดียว เสียบด้านหนึ่งแฟลชโค้ดได้ กลับด้านแล้วคอมไม่เห็นบอร์ด
  • คาดหวังไฟ 9 V หรือ 20 V มี Rd อย่างเดียวได้แค่ 5 V ถ้าต้องการแรงดันสูงต้องมีชิป PD และบทนี้อยู่ที่ไฟต่ำ 5 V เท่านั้น

แหล่งข้อมูล

คำถามที่พบบ่อย

ใช้ 4.7 kΩ หรือ 10 kΩ แทน 5.1 kΩ ได้ไหม

อย่าเปลี่ยน ค่า Rd ที่ข้อกำหนดใช้คือ 5.1 kΩ ที่ชาร์จวัดแรงดันบนตัวต้านทานนี้เพื่อตัดสินว่ามีอุปกรณ์เสียบและจ่ายได้เท่าไร ค่าที่ต่างไปทำให้ผลการตรวจเพี้ยนได้ ใช้ 5.1 kΩ ความคลาดเคลื่อน 1%

บอร์ดได้ไฟ 9 V หรือ 20 V จากที่ชาร์จเร็วไหม

ไม่ได้ ถ้ามีแค่ Rd ที่ชาร์จจะจ่าย 5 V เท่านั้น แรงดันสูงกว่านั้นต้องเจรจาผ่าน USB Power Delivery ซึ่งต้องมีชิปควบคุม PD แยก ชิป ESP32 เองทำ PD ไม่ได้

บอร์ดที่ซื้อมาไม่มี Rd ต้องทิ้งไหม

ไม่ต้อง ใช้สาย A-to-C ต่อกับพอร์ต USB-A ของคอมหรือที่ชาร์จก็ใช้ได้ หรือถ้าบัดกรีเป็น เติม 5.1 kΩ จากแต่ละขา CC ลงกราวด์ได้ แต่ขาบนบอร์ดเล็กมาก ทำเฉพาะเมื่อมั่นใจ

วงจรและโค้ดในบทความทดสอบกับบอร์ดตัวอย่าง บอร์ดต่างรุ่นอาจใช้ขาต่างกัน ตรวจ pinout ของบอร์ดที่ใช้ก่อนต่อไฟเสมอ

อ่านต่อ

#วงจรเริ่มต้น

เซอร์โว SG90 และ MG90S กับ ESP32: สัญญาณ PWM 50 Hz และไฟเลี้ยงแยก

เซอร์โวจิ๋วหมุนตามความกว้างพัลส์ 1–2 ms ทุก 20 ms ต่อกับ ESP32 ยังไง ทำไมต้องใช้ไฟเลี้ยงแยกและกราวด์ร่วม กระแสตอนติดขัดเท่าไร และเขียนด้วย ESP32Servo หรือ LEDC

อ่าน 7 นาที
#วงจรเริ่มต้น

ปุ่มสัมผัส บนชิ้นงานพิมพ์ 3 มิติ ด้วยขา touch ของ ESP32 กับ สีนำไฟฟ้า

ทำปุ่มแตะบนของเล่นพิมพ์ 3 มิติ ด้วยขา touch ของ ESP32 กับสีหรือฟิลาเมนต์นำไฟฟ้า ตั้งค่า threshold จาก baseline และจำไว้ว่า ESP32 ค่าลดเมื่อแตะ แต่ S2/S3 ค่าเพิ่ม

อ่าน 9 นาที
#วงจรเริ่มต้น

เบรดบอร์ด กับสาย จัมเปอร์ แถวไหนต่อกัน และทำไม ESP32 ไม่พอดีบอร์ด

ข้างในเบรดบอร์ดต่อกันยังไง แถวละ 5 รู ร่องกลาง รางไฟที่บางบอร์ดขาดกลาง ทำไมบอร์ด ESP32 DevKit เสียบแล้วไม่เหลือรู แก้ยังไง และข้อผิดพลาดการต่อสายที่เจอบ่อย

อ่าน 6 นาที