ESP8266/ESP32 ขา GPIO จัดวงจรภายในเป็นแบบไหน

เคยสงสัย และยังสงสัยอยู่ ขา GPIO ที่เราสามารถใช้งาน โดยการสั่งให้เป็น Input , Input_pullup หรือ Output มีท่านไหนรู้บ้างไหม จริงๆแล้ว ขา GPIO เหล่านั้นเป็นแบบไหน คือ จัดวงจรภายในเป็นแบบ Sink หรือ Source current ??

เชิงลึกๆ ผมก็ไม่ได้รู้มากแต่วงจรภายในก็น่าจะประมาณนี้

GPIO สามารถอยู่ในสถานะเป็นอินพุตหรือเอาต์พุตก็ได้ สถานะของ GPIO จะถูกกำหนดโดยบิตการกำหนดค่า ในสถานะเอาต์พุต GPIO จะขับระดับสูงหรือต่ำขึ้นอยู่กับสถานะเอาต์พุต ในสถานะอินพุต GPIO สามารถเป็น pulled highได้โดยตัวต้านทานแบบ pull-up.

1 Like

Simulate การทำงาน 3.3V GPIO to relay

1 Like

ขอบคุณครับ @Remy_Martin
เห็นน้องๆมือใหม่ มักจะถาม ขา output จ่ายไฟได้เท่าไหร่ ( ความหมายน่าจะถามเกี่ยวกับกระแสจ่าย มากกว่า ) จะเอาไฟไปจ่ายให้ อุปกรณ์ต่างๆ ซึ่ง จริงๆแล้ว ผู้ออกแบบขา GPIO มีความตั้งใจที่ออกแบบให้ยื่นหยุ่น แต่ความยื่ดหยุ่น ก็มีข้อจำกัด เพราะ 1 ขา ทำหน้าที่ หลายๆอย่าง ผมหาข้อมูลจากผู้ผลิตไม่ค่อยเจอ สังเกตุผู้ผลิตจะบอกข้อจำกัดบางขาไว้ เช่น GPIO ขานี้ป็น OUTPUT ได้อย่างเดียว น่าจะจัดวงจรภายในแบบ Source Current จ่ายกระแสได้เยอะกว่า ขาอื่นๆ หรือ GPIO ขานี้ป็น INPUT ได้อย่างเดียว น่าจะจัดวงจรภายในแบบ Sink Current รับกระแสได้เยอะกว่าขาอื่นๆ แต่ก็ต้องอยู่ในพิกัดที่ผู้ผลิตออกแบบ เพราะ IC ตัวเล็กเกิน แต่สิ่งถ้าผู้ใช้งานยากเพิ่มการจ่ายกระแส ก็ต้องออกแบบวงจรจ่ายกระแสไฟเพิ่ม
เคยลองวัดไฟที่ขา MCU โดยยังไม่ได้โปรแกรม จะวัดไฟได้ ประมาณ 3 Volt กว่า ( ความคิด ขานี้ น่าจะเป็นการจัดขาแบบ Source Current ) บางขา ไม่มีไฟ ขานี้ น่าจะเป็นการจัดขาแบบ Sink Current แต่ต้องดูหมายเหตุ ผู้ผลิตด้วยว่า เขาระบุอะไรเป็นพิเศษ สำหรับขานั้นๆ

1 Like

อ่อ น่าสนใจดีนะครับ ถ้าต้องการประสิทธิภาพ ของงานเต็มๆ ก็ต้องมาไล่กันอย่างงี้แหละ

น่าสนใจทั้ง Source Current และ Sink Current

unnamed