أرشيفات الإلكترونيات الرقمية Uncategorized مصفوفات LED RGB مع STM32 و DMA

مصفوفات LED RGB مع STM32 و DMA

قبل بضع سنوات، [Frans-Willem] حصلت على عدد قليل من ألواح LED RGB. تعد عشرة لوحات 32 × 16 الكثير من المصابيح، ولديها جميع هذه الألواح تتطلب بعض الأجهزة القوية بما فيه الكفاية. حاول العمل مع لوحة تطوير FPGA، لكن هذا لم يكن لديه ذاكرة كافية للون 24 بت. لا يمكن أن لا يمكن الحصول على أكثر من 16 بت من 16 بت دون الخفقان. مع مجموعة من المصابيح ولكن بأي حال من الأحوال لطردها، [Frans-Willem] ضع الألواح في صندوق في مكان ما، في انتظار اليوم يمكن استخدامها على أكمل وجه.

جاء هذا اليوم عندما تم تقديم [Frans-Willem] إلى سلسلة STM32 من الرقائق مع لوحة اكتشاف F1. أثناء محاولة العثور على بعض Playings الإلكترونية لاستخدامها مع هذا اللوحة، تعثر على لوحات LED وأعطتها لهم تجربة أكثر بكثير. النتائج مذهلة، مع 33 بت من الألوان، مع الرسوم المتحركة تدفقت عبر جهاز توجيه عبر WiFi.

اللوحات المعنية هي لوحات LED HUB75. في لوحات 32 × 8، هناك ستة دبابيس بيانات – اثنان لكل لون – أربعة صف حدد دبابيس، وثلاثة دبابيس التحكم. صف Pines Pins حدد أي صف من البكسل نشط في أي وقت واحد. دورة من خلالها بسرعة كافية، وسوف تبدو وكأنها كلها في وقت واحد. تعمل دبابيس التحكم مثل دبابيس التحكم في سجل التحول، مع ملء دبابيس البيانات الدور الواضح.

يحدث الكود الذي يدفع في الواقع LEDs كل شيء على STM32F4 بمساعدة DMA و FSMC، أو وحدة تحكم الذاكرة الثابتة المرنة الموجودة على الشريحة. يعتني هذا الطرف المحيط بخطوط التحكم الموجودة في الذاكرة، لذلك عندما تقوم بتبديل القوية الكتابة، سوف تفريغ الرقاقة مهما كانت موجودة على خطوط البيانات إلى عنوان معين في الذاكرة. إنها طريقة رائعة لرعاية توليد إشارة الساعة.

لإرسال وحدات البكسل إلى برنامج تشغيل العرض هذا، يستخدم [Frans-Willem] HRD703N شعبية TP-Link WR703N. كان يخطط أصلا لإرسال جميع بيانات البكسل عبر منفذ USB، ولكن كان هناك الكثير من النفقات العامة، وهو USB 1.1 ليس سريعا بما فيه الكفاية. تم إصلاح ذلك باستخدام UART على جهاز التوجيه باستخدام سائق جديد وإصدار تم إعادة ترجمة من OpenWrt.

يتوفر جميع البرامج لتكرار هذا المشروع على Github، وهناك فيديو رائع يظهر ما يمكن أن يفعله المشروع المكتمل. يمكنك التحقق من ذلك أدناه.

Leave a Reply

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