طريقة مخصصة لتكوين صداقات مع STM32: ليس Arduino أو Discovery

إلى كل من يستخدم أو يهتم بأجهزة التحكم الدقيقة من شركة STMicroelectronics ، أريد أن أقدم مشروع هوايتي الصغير.


يحتوي كل من Habré و geektimes بالفعل على الكثير من المقالات المخصصة للمتحكم الدقيق من سلسلة STM32F ، على سبيل المثال: لوح STM32 رخيص + Arduino IDE ، محاولة تكوين صداقات مع STM32 والإجابة عليه كيفية تكوين صداقات مع STM32 وغيرها الكثير. في المجمل ، تغطي هذه المسألة بشكل جيد للغاية ، ولكن هناك شيء واحد ولكن ... في جميع هذه المقالات ، تعتبر الألواح الجاهزة ووحدة تحكم معينة موجودة في هذا المنتدى. وماذا عن أولئك الذين يريدون اللعب مع وحدات تحكم مختلفة ، وحتى على لوحة التوصيل؟ على سبيل المثال ، لا يمكن إدخال العديد من اللوحات التي أعرفها باستخدام وحدة تحكم STM32F4 (نفس STM32F4-Discovery) في لوحة التوصيل. لكني شخصياً أريد شيئًا مثل هذا (الانتباه ، جميع الصور قابلة للنقر):



في الوقت نفسه ، كما كتبت بالفعل ، لا أريد أن أكون متصلًا بوحدة تحكم معينة ، لكنني أريد أن أتمكن من استبدالها بسهولة. بالنسبة لأولئك المهتمين بكيفية إدراك هذه الرغبات غير العادية تمامًا ، أطلب القط.


مقدمة (مستوحاة من التعليقات على المقال ، لذا يرجى التخطي قبل قراءتها)

يعد استخدام ألواح توصيل بالموصلات أم لا نقطة خلاف. بالطبع ، بدءًا من عدد معين من المكونات ، تصبح غير مريحة. ولكن في حين أن المكون ليس كبيرًا جدًا ، ولا يزال عدد التجارب في المرحلة الأولية من النماذج الأولية كبيرًا ، فإن الألواح ، في رأيي ، مريحة. وهنا ، إذا كنت ترغب في استخدام STM32 ، فإن الكمين ينتظرنا - فهي ببساطة ليست في حزم DIP ، على عكس Atmega. يمكنك شراء لوحات تجريبية جاهزة ، ولكن هنا مرة أخرى هناك كمين - معظم هذه اللوحات مع وحدات تحكم قديمة لا يمكن أن تعلق في لوحة الخبز بسبب الأمشاط المزدوجة . أي ، باستخدام لوحات العرض التوضيحي الجاهزة ، نحن مضطرون للعمل مع وحدات التحكم الأصغر في السلسلة (انظر نفس Nucleo في إصدار DIP أو Blue Pill ). الطريقة الثانية هي صنع محولات متخصصة. تتناول هذه المقالة هذا المسار الثاني.


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



مجموعة واحدة (على اليمين) هي ببساطة محولات بسيطة للوحة التوصيل لحالات LQFP32 / 48/64 ، ولكن المجموعة الثانية (على اليسار) هي أيضًا محولات ، ولكن مع موصل JTAG ، والطاقة ، والكوارتز عالي التردد وعالي التردد وزر إعادة الضبط. جميع دبابيس التحكم الأخرى على المشط. بشكل عام ، الحد الأدنى. لسوء الحظ ، موصل JTAG ليس قياسيًا ، لذلك يتم تضمين لوحة المحول من JTAG-20 إلى نفس JTAG-10.


هذه الألواح ملحومة بسهولة بما يكفي بواسطة مجفف شعر في المنزل ، لذلك إذا كان لديك العديد من وحدات التحكم ، والعديد من اللوحات والمكونات السلبية من الحجم 0805 ، يمكنك الحصول على شيء مثل هذا في فترة زمنية معقولة:



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


لكني أريد أن أخبرك أيضًا خطوة بخطوة كيفية الوصول إلى مثل هذه الحياة. صورة لجذب الانتباه (بيان بياني للمشكلة):



هناك تناثر وحدات التحكم (سلسلة L0 ، F3 ، F4) ، الطاقة ، محول USART-USB ، اللوح. أريد وميض أضواء LED. هذه الخطوة سهلة للغاية. نأخذ أي وحدة تحكم ، بطاقة محول من المجموعة الأولى ، نحن لحام بمجفف شعر. بعد ذلك ، تحتاج إلى وثائق حول توصيل الطاقة ، مبرمج ، كوارتز. هنا ST لديه ترتيب كامل ، كل شيء موجود على الصفحة مع وثائق وحدة التحكم المحددة. على سبيل المثال ، بالنسبة لـ STM32F303K8 ، نحتاج إلى مستند واحد فقط: AN4206: الشروع في تطوير أجهزة سلسلة STM32F3 ، حيث توجد دوائر إمداد طاقة ومذبذبات ومبرمج ، بناءً على ذلك يمكنك بناء مثل هذا النموذج:



لا تحتوي وحدة التحكم هذه على كوارتز خارجي منخفض التردد ، لذا قمت بتوصيل تردد عالي فقط عند 16 ميجاهرتز. للبرمجة ، يتم استخدام موصل JTAG-20 قياسي ، وهو مجهز بمبرمج قياسي من ST ST-LINK / V2 .


إذا كنت تستخدم Linux

هناك بالفعل برامج تشغيل في kernel ، لكنك تحتاج إلى إضافة بعض القواعد يدويًا إلى ملف /etc/udev/rules.d ، انظر على سبيل المثال ، هنا


نظرًا لأن المقالة مخصصة بشكل أساسي لجزء الأجهزة ، فسوف أذكر جزء البرنامج لفترة وجيزة فقط. نظام التشغيل: Fedora 25. بيئة التطوير: System Workbench لـ STM32 هو نظام مجاني تمامًا يعتمد على Eclipse من مجتمع OpenSTM32. الوقت الوحيد - للتنزيل ، يجب عليك التسجيل في http://www.openstm32.org . من الملائم استخدام الأداة الرسومية STM32CubeMX لنمذجة وتوثيق وتوليد الأمثلة. على سبيل المثال ، يبدو تكوين وحدة التحكم في الصورة أعلاه كما يلي:



توجد ملفات بهذه المخططات أيضًا في المستودع. على سبيل المثال ، بالنسبة لـ STM32F303K8 ، انظر هنا


يحتوي System Workbench لـ STM32 على معالج مشروع مدمج ومتقدم إلى حد ما يولد هيكل المشروع الأولي ، ويمكن أن يتضمن بشكل اختياري في المشروع: برامج تشغيل وحدة التحكم ذات المستوى المنخفض (CMSIS) ومكتبة HAL (طبقة تجريد الأجهزة) و FatFS و FreeRTOS. أنا نفسي أستخدم مكتبة برامج التشغيل الموجهة للكائنات ، والتي يتم تشغيلها أعلى HAL. من يهتم ، انظر هنا .


فيما يلي مثال لرمز يستخدم هذه المكتبة ، والذي يومض مؤشرات LED على جهاز ضبط الوقت (أثناء الانقطاع) والسجلات (عبر محول USART-USB إلى وحدة تحكم محطة العمل) حالة العداد المتصل بالساعة في الوقت الحقيقي. كل هذا يشبه إلى حد ما أيديولوجية أردوينو ، لكني أحب برمجة هذه الأشياء بنفسي.


فيما يلي مثال على استخدام وحدة تحكم STM32F410RB قوية إلى حد ما:



وبالمثل ، فإن المستند الرئيسي هو AN4488: الشروع في تطوير الأجهزة STM32F4xxxx MCU ، حيث توجد جميع أنظمة الاتصال الضرورية. الوثيقة المهمة الثانية هي AN2867: دليل تصميم المذبذب للمتحكم الدقيق STM8AF / AL / S و STM32 ، والذي يوضح تفاصيل مخطط الاتصال لمذبذب عالي التردد.


بطبيعة الحال ، المبارزة باستمرار مثل هذه المخططات تستغرق وقتًا إلى حد ما ، لذلك قررت صنع الأوشحة العالمية المحتملة التالية ، والتي تدرك هذه المخططات. يتم تحقيق تعددية الاستخدامات نظرًا لأن وحدات التحكم في سلسلة مختلفة ، ولكن في نفس الحالة (على سبيل المثال ، STM32F303RB و STM32F410RB ، كلاهما في حالة LQFP64) لها نفس الاستنتاجات (باستثناء الاختلافات الصغيرة في دائرة إمداد الطاقة). تؤدي هذه الاختلافات إلى ما يلي:



جميع العناصر ذات الفئات الموقعة مشتركة بين وحدات التحكم المختلفة ، ولكن يجب تحديد عناصر مثل P30 و P31 و P47 ، حيث يعني الرقم رقم الدبوس اعتمادًا على الطراز المحدد. ونتيجة لذلك ، سيبدو اللوح كما يلي:



هنا مثل هذا التحسن الصغير.


مشروع على جيثب
الترخيص: رخصة جنو العمومية العامة ، الإصدار 3


الدوائر ولوحات الدوائر التي أعدتها Eagle Cad. يحتوي DiHalt الذي يحظى باحترام كبير على سلسلة رائعة من المقالات حول هذا النظام . يمكن تنزيل النسخة المجانية من Eagle Cad للاستخدام المنزلي من الموقع الرسمي .


أدعو الجميع للانضمام إلى المشروع.

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


All Articles