ฉันชอบทางออกของคุณ เนื่องจากคำถามเกี่ยวกับการแก้ปัญหาอย่างง่ายฉันมีทางเลือกเล็กน้อย (โซลูชันบางอย่างที่ Microchip นี่มอบให้):
1) การเชื่อมต่อโดยตรง: ถ้า Voh (แรงดันไฟฟ้าเอาต์พุตระดับสูง) จากตรรกะ 3.3V ของคุณมากกว่า Vih (แรงดันไฟฟ้าอินพุตระดับสูง) สิ่งที่คุณต้องมีคือการเชื่อมต่อโดยตรง (มันเป็นสิ่งจำเป็นสำหรับโซลูชันนี้ที่ Vol (แรงดันไฟฟ้าเอาต์พุตระดับต่ำ) ของเอาต์พุต 3.3V น้อยกว่า Vil (แรงดันไฟฟ้าอินพุตระดับต่ำ) ของอินพุต 5V)
2) หากเงื่อนไขข้างต้นอยู่ใกล้คุณมักจะสามารถเพิ่มแรงดันไฟฟ้าเอาต์พุตระดับสูงเล็กน้อยด้วยตัวต้านทานแบบดึงขึ้น (ถึง 3.3V) และเชื่อมต่อสัญญาณโดยตรง
3) ตัวต้านทานแบบดึงขึ้นสามารถให้แรงดันไฟฟ้าระดับสูงเพิ่มขึ้นเล็กน้อย ยิ่งไปกว่านั้นคุณสามารถใช้ไดโอดและดึงได้ถึง 5V วงจรที่แสดงจะไม่ดึง 5V ชัดเจน แต่จะเพิ่มแรงดันไฟฟ้าอินพุตระดับสูงเป็นตรรกะ 5V โดยจำนวนแรงดันไดโอดหนึ่งอัน (appx 0.7v) ต้องใช้ความระมัดระวังด้วยวิธีนี้ที่คุณยังมีระดับต่ำที่ถูกต้องเช่นเดียวกับที่เพิ่มขึ้นโดยหนึ่งไดโอดลดลง ไดโอด Schottky อาจใช้สำหรับแรงดันไฟฟ้าระดับสูงเพิ่มขึ้นเล็กน้อยในขณะที่ลดแรงดันไฟฟ้าระดับต่ำที่ไม่ต้องการเพิ่มขึ้น อ้างถึงแอพที่กล่าวถึงข้างต้นสำหรับข้อมูลเพิ่มเติมเกี่ยวกับวงจรนี้:
จำลองวงจรนี้ - แผนผังที่สร้างโดยใช้CircuitLab
4) หากคุณสามารถจัดการกับการผกผันตรรกะ (และไม่จำเป็นต้องใช้งานแบบดึงขึ้น) อาจใช้ตัวต้านทาน mosfet และ pull-up:
จำลองวงจรนี้
5) ฉันรู้ว่าคุณไม่ได้กำลังมองหาวิธีแก้ปัญหาตรรกะ ic แต่สำหรับความสมบูรณ์ฉันจะพูดถึงหนึ่ง (อาจมาก) MC74VHC1GT125คือ "Noninverting บัฟเฟอร์ / CMOS ระดับลอจิก Shifter กับ LSTTL เข้ากันได้ปัจจัยการผลิต" ใน SOT23-5 หรือ SOT-353 แพคเกจ ขนาดเล็กเรียบง่ายและราคาถูก
เห็นได้ชัดว่าเรื่องนี้ถูกกล่าวถึงในวันอื่น: เพิ่มระดับ 3.3V ถึง 5V สำหรับ I / O ดิจิตอลแม้ว่าการแก้ปัญหาจะไม่ถูกต้อง (ขอบคุณ Dave Tweed)