สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
ในการออกแบบบอร์ดไมโครคอนโทรลเลอร์แบบ all-in-one นี้มีวัตถุประสงค์เพื่อให้ใช้งานได้มากกว่า Arduino หลังจากประมาณ 100 ชั่วโมงของการออกแบบ ฉันได้ตัดสินใจแชร์กับชุมชน ฉันหวังว่าคุณจะขอบคุณสำหรับความพยายามและสนับสนุน (มีคำถามใดๆ หรือ ข้อมูลจะยินดี)
ขั้นตอนที่ 1: วัตถุประสงค์
โครงการใด ๆ มีความต้องการที่แตกต่างกัน: เซ็นเซอร์ แอคทูเอเตอร์ และการคำนวณ วิธีที่ประหยัดที่สุดคือไมโครคอนโทรลเลอร์เช่น Arduino ใด ๆ ในกรณีนี้ ฉันใช้ไมโครคอนโทรลเลอร์ช่วง PIC16F ตัวใดตัวหนึ่งเนื่องจากฉันคุ้นเคยดีกว่า
ข้อมูล PIC16F1829:
ทางเศรษฐกิจ;)
ภายใน 32 MHz
อินเทอร์เฟซ UART หรือ USB (ch340)
SPI หรือ I2C x2
ตัวจับเวลา (8/16 บิต) x4 x1
ADC 10 บิต x12
I / O's x18
และอื่นๆ อีกมากมาย (ข้อมูลในแผ่นข้อมูล)
มีแพ็คเกจที่แตกต่างกัน แต่เมื่อทำการผลิต PCB ที่ไม่ได้ทำด้วยมือ แพ็คเกจที่เล็กที่สุดก็ถูกที่สุดเช่นกัน
ขั้นตอนที่ 2: อัปเกรดสำหรับ MCU
ไมโครคอนโทรลเลอร์ต้องการตัวเก็บประจุและการกำหนดค่าฮาร์ดแวร์สำหรับพินรีเซ็ต แต่ไม่เพียงพอ
- วงจรจ่ายไฟ
- การอัพเกรดฮาร์ดแวร์
- บูตโหลดเดอร์
- ส่วนต่อประสานกับมนุษย์
- การกำหนดค่าพิน
ขั้นตอนที่ 3: วงจรพาวเวอร์ซัพพลาย
- การป้องกันการขั้วของพาวเวอร์ซัพพลาย (MOSFET-P)
ฉันใช้ประโยชน์จากไดโอดภายในของมอสเฟตเพื่อขับและเมื่อเกิดเหตุการณ์นั้น Gate Voltage ก็เพียงพอที่จะมี RDSon link_info ที่ต่ำมาก
- ตัวควบคุมแรงดันไฟฟ้า (VCO) ตัวควบคุมทั่วไป ฉันใช้ LD1117AG และบรรจุ TO-252-2(DPAK) เหมือนกับ lm7805 แต่ราคาถูกกว่าและ LDO
- ฟิลเตอร์ capacitive ทั่วไป (100n)
- ฟิวส์สำหรับจ่ายไฟ USB
เพื่อป้องกันมากกว่า 1A
- ตัวกรองเฟอร์ไรต์สำหรับไฟ USB
อยู่ระหว่างการทดสอบ
ขั้นตอนที่ 4: การอัพเกรดฮาร์ดแวร์
เพื่อวัตถุประสงค์ทั่วไปฉันตัดสินใจเพิ่ม:
- การรีเซ็ตซอฟต์สตาร์ทหากมีการควบคุมสิ่งอื่น ๆ ด้วยความล่าช้าในการรีเซ็ตเริ่มต้น ไมโครคอนโทรลเลอร์จะไม่เริ่มทำงาน หลังจากเปิดเครื่องและความเสถียรแล้ว แรงดันไฟฟ้าจะปลอดภัยเพื่อควบคุมสิ่งอื่น ๆ
พินรีเซ็ตถูกปฏิเสธ ซึ่งจะรีเซ็ต MCU เมื่อเป็น 0V วงจร RC (ความต้านทานของตัวเก็บประจุ) ทำให้พัลส์ยาวขึ้น และไดโอดจะคายประจุตัวเก็บประจุเมื่อ VCC เป็น 0V
- N-Channel Mosfet AO3400A
เนื่องจากไมโครคอนโทรลเลอร์มาตรฐานไม่สามารถให้มากกว่า 20mA หรือ 3mA ต่อพิน บวกกับกำลังจำกัดการใช้พลังงานทั้งหมดไว้ที่ 800mA และมอสเฟตสามารถใช้การสื่อสารการแปลง 5V ถึง 3.3V ได้
- OP-AMP LMV358A
เพื่อขยายสัญญาณที่อ่อนมาก เอาต์พุตที่มีความต้านทานต่ำและเครื่องมือวัดเพื่อตรวจจับกระแส ฯลฯ …
ขั้นตอนที่ 5: Bootloader
bootloader ให้เขียนคำสั่งได้ แต่โดยสรุปแล้วหน้าที่ของมันคือโหลดโปรแกรม ใน Arduino One เช่น มีไมโครคอนโทรลเลอร์อีกตัวหนึ่งที่รองรับ USB ดั้งเดิม ในกรณีของ PIC ทั้งหมด bootloader คือ PICKIT3 แม้ว่าเราจะมี CH340C (ไม่ใช่ bootloader จะเป็น USB to Serial microcontroler ที่เรียกว่า UART)
PICKIT3 -> bootloader ผ่าน ICSP (การเขียนโปรแกรมอนุกรมในวงจร)
CH340C -> การสื่อสาร USB แบบอนุกรม
ทั้งหมดอยู่ในระหว่างการพัฒนา แต่ bootloader ใช้งานได้
ขั้นตอนที่ 6: ส่วนต่อประสานกับมนุษย์
- รองรับ USB
CH340C เป็นตัวแปลง USB เป็น Serial แบบฝัง
การกำหนดค่ามาตรฐานของซีเรียลที่ 9600 บอด, 8 บิต, 1 บิตหยุด, ไม่มีพาริตี, บิตที่มีนัยสำคัญน้อยที่สุดส่งก่อนและไม่กลับด้าน
- ปุ่มรีเซ็ต
ใช้ในวงจร Soft-Start Reset เพื่อรีเซ็ตไมโครคอนโทรลเลอร์ แต่ ICSP RST เหนือกว่า
- ปุ่มผู้ใช้
ทั่วไป 10k เพื่อดึงลงในพินเอาต์พุต
- ไฟ LED สีน้ำเงิน 3 มม. x8 5V - 2.7 Vled = 2.3 Vres
2.3 Vres / 1500 Rres = 1.5 mA (คุณสามารถรับความสว่างได้มากขึ้น)
2.3 Vres * 1.5 mA => 4 mW (น้อยกว่า 1/8W)
ขั้นตอนที่ 7: การกำหนดค่าพิน
วิธีแก้ปัญหาที่มีพื้นที่น้อยคือการระบุชั้นพินและประสานพวกมันขนานกับบอร์ด, พินสองแถวและความหนาที่สอดคล้องกันของบอร์ด, คล้ายกับขั้วต่อ pci express
แต่พินกลางทั่วไปที่จะพินคือ 100mils = 2.55mm
ระยะห่างประมาณ 2 มม. = 2.55 - 0.6 (พิน)
ความหนาของบอร์ดก็ 1.6 เช่นกันครับ
นี่คือตัวอย่างที่มี 2 แผง 1mm
ขั้นตอนที่ 8: จุดจบ
แต่ละส่วนที่ฉันรวมเข้าด้วยกันได้รับการทดสอบแยกต่างหากกับส่วนประกอบอื่นๆ (TH) และเวอร์ชันต้นแบบ ฉันออกแบบด้วยแพลตฟอร์ม easyEDA และสั่งซื้อใน JLC และ LCSC (เพื่อให้คำสั่งมารวมกันก่อน คุณต้องสั่งซื้อใน JLC และเมื่อสั่งซื้อ ด้วยเซสชันเดียวกันกับที่คุณทำการซื้อใน LCSC และเพิ่ม)
น่าเสียดายที่ฉันไม่มีรูปถ่ายและฉันไม่สามารถพิสูจน์ร่วมกันได้ถึงเวลาที่ต้องสั่งซื้อไปยังประเทศจีนและทำเอกสารทั้งหมด แต่สำหรับคำแนะนำต่อไปนี้เนื่องจากครอบคลุมการออกแบบทั่วไป ที่นี่ คำถามใด ๆ ที่คุณสามารถทิ้งไว้ในความคิดเห็น
และนี่คือเมื่อคำสั่งมาถึง ฉันจะประสานมัน ลองใช้ร่วมกัน รายงานปัญหา อัปเดต เอกสารประกอบ โปรแกรม และอาจสร้างวิดีโอ
ขอบคุณ ลาก่อน และสนับสนุน !
ลิงค์: easyEDA, YouTube, คำแนะนำที่ชัดเจน