Uncategorized

Matrices LED RGB พร้อม STM32 และ DMA

เมื่อไม่กี่ปีที่ผ่านมา [Frans-Willem] ได้รับแผง LED RGB สองสามตัว แผงสิบ 32 × 16 เป็นไฟ LED จำนวนมากและขับเคลื่อนแผงเหล่านี้ทั้งหมดต้องใช้ฮาร์ดแวร์ที่มีประสิทธิภาพเพียงพอ เขาพยายามทำงานกับบอร์ดพัฒนา FPGA แต่ไม่มีหน่วยความจำเพียงพอสำหรับสี 24 บิต ไมโครคอนโทรลเลอร์ Du Jour – TI Stellaris – ไม่สามารถรับสีได้มากกว่า 16 บิตมากนักโดยไม่ต้องกะพริบ ด้วย LED จำนวนมาก แต่ไม่มีวิธีขับรถ [Frans-willem] วางแผงไว้ในกล่องที่ไหนสักแห่งรอให้วันที่พวกเขาสามารถใช้ในการผลิตอย่างเต็มที่

วันนี้มาเมื่อ [Frans-Willem] ได้รับการแนะนำให้รู้จักกับชิป STM32 กับคณะกรรมการการค้นพบ F1 ในขณะที่พยายามค้นหาบทละครอิเล็กทรอนิกส์บางอย่างที่จะใช้กับบอร์ดนี้เขาสะดุดบนแผง LED และให้พวกเขาลองอีกมากมาย ผลลัพธ์ที่น่าตื่นเต้นมีสี 33 บิตพร้อมภาพเคลื่อนไหวที่สตรีมเหนือเราเตอร์เหนือ WiFi

แผงที่เป็นปัญหาคือแผง LED HUB75 ใน 32 × 8 แผงมีหกหมุดข้อมูล – สองตัวสำหรับแต่ละสี – สี่แถวเลือกพินและพินควบคุมสามแถว Pins เลือกแถวเลือกแถวของพิกเซลที่ใช้งานอยู่ในครั้งเดียว วนรอบผ่านเร็วพอและดูเหมือนว่าพวกเขาทั้งหมดอยู่ในครั้งเดียว หมุดควบคุมทำงานได้ดีเหมือนหมุดควบคุมของการลงทะเบียนกะด้วยหมุดข้อมูลที่เติมในบทบาทที่เห็นได้ชัด

รหัสที่ผลักดันไฟ LED ทั้งหมดที่เกิดขึ้นใน STM32F4 ด้วยความช่วยเหลือของ DMA และ FSMC หรือตัวควบคุมหน่วยความจำแบบคงที่ที่ยืดหยุ่นที่พบในชิป อุปกรณ์ต่อพ่วงนี้ดูแลสายการควบคุมที่พบในหน่วยความจำดังนั้นเมื่อคุณสลับการเขียน STROBE ชิปจะทิ้งสิ่งที่อยู่ในบรรทัดข้อมูลไปยังที่อยู่ที่แน่นอนในหน่วยความจำ มันเป็นวิธีที่ดีในการดูแลการสร้างสัญญาณนาฬิกา

สำหรับการส่งพิกเซลไปยังไดรเวอร์จอแสดงผลนี้ [Frans-willem] กำลังใช้ TP-Link WR703N ที่เป็นที่นิยมตลอดกาล เขาวางแผนที่จะส่งข้อมูลพิกเซลทั้งหมดผ่านพอร์ต USB แต่มีค่าใช้จ่ายมากเกินไป USB 1.1 ไม่เร็วพอ ที่ได้รับการแก้ไขโดยใช้ UART บนเราเตอร์กับผู้ขับขี่รถยนต์ใหม่และ OpenWrt รุ่นที่คอมไพล์ใหม่

ซอฟต์แวร์ทั้งหมดที่จะทำซ้ำโครงการนี้มีอยู่ใน GitHub และมีวิดีโอที่ยอดเยี่ยมที่แสดงว่าโครงการที่เสร็จสมบูรณ์สามารถทำได้ คุณสามารถตรวจสอบได้ด้านล่าง

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *