لوحة FPGA إلى Raspberry Pi


منذ بعض الوقت ، ظهرت لوحة Raspberry Pi3 تحت تصرفي. قدراته مثيرة للإعجاب حقًا: معالج سريع رباعي النواة ، وبرامج ترميز / أجهزة فك ترميز مدمجة لأجهزة الصوت / الفيديو / jpeg ، Ethernet / WIFI ، USB2 ، HDMI ... إنه جهاز كمبيوتر حقيقي. من الرائع جدًا أن يكون هناك موصل GPIO ، والذي يسمح للحرفيين المختلفين بتوصيل شيء خاص بهم غير قياسي وخاص. هناك عدد كبير من لوحات التوسع المختلفة المثبتة على هذا الموصل: شاشات العرض ، شاشات LED ، المحولات للمحركات ، لوحات ADC ...

أود أن أتحدث قليلاً عن لوحة FPGA للوحة Mars rover2RPI ، والتي ، مثل بطاقات التوسيع الأخرى ، تتصل بفتحة GPIO للتوت ، وتضيف خصائص جديدة تمامًا إلى الكمبيوتر المصغر لدينا.

الرسوم بسيطة للغاية. مثبتة عليه:

  1. FPGA Cyclone IV EP4CE6E22C8
    • العناصر المنطقية 6272 ؛
    • ذاكرة مدمجة 270 كيلوبت في الثانية ؛
    • المضاعفات 15 (18 × 18) ؛
    • PLL 2 ؛
  2. أربعة مصابيح LED
  3. ثلاثة أزرار
  4. مذبذب بلوري 100 ميجا هرتز.
  5. إمكانية تثبيت شريحة EPCS4 (في حالة استخدام اللوحة بشكل مستقل) ؛
  6. موصل JTAG (في حالة استخدام اللوحة بشكل مستقل) ؛
  7. اثنان من موصلات 40 دبوس في كل من 28 مستخدم GPIO - موصلات متوافقة مع Raspberry ؛
  8. موصل واحد من 40 سنًا للاتصال بـ Raspbery ، حيث يمكنك استخدام 24 أو 20 GPIOs (بناءً على ما إذا كانت شريحة EPCS4 مثبتة أم لا).

لم يتم تثبيت لوحة Mars rover2RPI فوق لوحة Raspberry Pi ، ولكن من الجانب ، من خلال محول خاص. يتم ذلك عمدا. Raspberry Pi3 ساخن بالفعل عند تحميل 4 نوى ؛ لتغطية اللوحة من الأعلى لا يبدو إنسانيًا للغاية من حيث التبريد.

حتى تتمكن من توصيل لوحة Raspberry Pi2 / Pi3:



وهنا Pi-zero:



من الممكن (ولكن هذا ليس دقيقًا) ، يمكن استخدام نفس بطاقة التوسيع مع OrangePi.

أول تطبيق لهذه اللوحة يتبادر إلى الذهن هو مضاعفة عدد إشارات GPIO: كان هناك موصل واحد ، وكان هناك اثنان. تحتاج فقط إلى إنشاء وتحميل المشروع المطلوب إلى FPGA ، حسنًا ، سيكون عليك إدارة المدخلات والمخرجات بطريقة خاصة ، وهناك العديد من الخيارات: المنفذ التسلسلي ، SPI ، GPIO ، يمكنك استخدام DMA ...

يمكنك تنزيل FPGA للوحة Mars rover2RPI مباشرة من Raspberry عبر إشارات JTAG ، والتي يتم عرضها بالطبع في GPIO

  • تك ← GPIO7
  • tms → GPIO0
  • tdi → GPIO11
  • tdo ← GPIO1

هناك مثل هذا المشروع مفتوح المصدر OpenOCD ، المصحح والمصحح ، والذي يسمح لك باستخدام Raspberry كمبرمج JTAG. OpenOCD هو خادم ، يمكنك تشغيله ، ثم الاتصال به حتى عن بعد بواسطة telnet وباستخدام الأمر "svf" ، يمكنك تحميل صورة المشروع المترجمة إلى FPGA. تعرف على المزيد حول OpenOCD على التوت .

هنا مجرد عرض فيديو:



أول مشروع "اختبار" للوحة مارس rover2RPI جاهز بالفعل ، على الرغم من أنه لا يزال غير مثير للإعجاب في وظائفه. عادة ما يكون أول مشروع لـ FPGAs هو "وميض LED" ، مثل هذا النوع من "hello World!" متحكم العالم و FPGA.
يمكن أخذ مصدره على github: github.com/marsohod4you/m2rpi_first

ولكن هنا ، حتى في هذه الحالة البسيطة ، هناك بالفعل تفاعل بين FPGA والحاسوب الصغير. من التوت ، يمكنك إرسال وحدات البايت من خلال المنفذ التسلسلي إلى FPGA لتغيير سرعة وميض الصمام. علاوة على ذلك ، فإن أول "مشروع اختبار" FPGA يقبل وحدات البايت من المنفذ التسلسلي ، ويعدلها (يضيف واحدًا) ، ويرسلها مرة أخرى. بالطبع ، بدائية إلى حد ما ، ولكن بالفعل تفاعل النظامين FPGA والمعالج.

عرض الفيديو:



هذه أول تجربة لي في الوصول إلى Raspberry FPGA. أعتقد أنه سيكون من المثير للاهتمام محاولة القيام بمشاريع معقدة حقًا ، مثل التقاط الإطارات من كاميرا فيديو في التوت ونقلها عبر DMA إلى FPGA للمعالجة. أعتقد أنه يمكن أن يكون هناك العديد من المشاريع المثيرة للاهتمام مع لوحة التوسع هذه.

Source: https://habr.com/ru/post/ar408645/


All Articles