- اختيار أدوات تطوير الأجهزة والبرامج
- تطوير STM8S103F3P6
- مبرمج STM8S103F3P6
- STM8S103F3P6 IDE والمجمع
- STM8S مع Arduino باستخدام Sduino
- تنزيل البرامج المطلوبة
- إعداد مترجم STVD و Cosmic C Compiler
- المكتبة الطرفية القياسية لـ STM8S103F3P6
- تجميع البرنامج الأول
- تحميل الكود من STVD إلى لوحة تطوير STM8S باستخدام ST-Link V2
و STM8 هو عبارة عن سلسلة من ميكروكنترولر 8 بت من تي مايكروإلكترونيكس التي أصبحت خيارا مشتركا للمتحكم لتطوير المنتجات الحساسة من حيث التكلفة. لقد عملت سابقًا مع AVR و PIC وعدد قليل من وحدات التحكم الدقيقة الأخرى من ARM Cortex ، ولكن بالتأكيد في بعض التطبيقات ، أصبحت مبالغة في الاستخدام وتزيد من تكلفة قائمة المواد بشكل كبير. في الآونة الأخيرة ، بعد هدم بعض المنتجات الصينية الرخيصة ، وجدت أن معظمها يحتوي على متحكم STM8 بداخله. إن IC ليس رخيصًا فحسب ، ولكنه يحتوي أيضًا على الكثير من الميزات والخيارات مما يجعله مناسبًا للاستخدام في العديد من التطبيقات المختلفة. على سبيل المثال ، STM8S سلسلة من وحدات التحكم (التي سنتعلمها في هذه السلسلة التعليمية) هي وحدة تحكم للأغراض العامة ولكن هناك سلسلة أخرى مثل STM8A لتصميمات السيارات و STM8L للتصميمات التي تعمل بالبطارية منخفضة الطاقة والتي توسع تطبيق وحدات التحكم هذه.
في هذه السلسلة من البرامج التعليمية ، سوف نتعلم كيفية برمجة وحدات التحكم الدقيقة STM8S ، وبشكل أكثر تحديدًا STM8S103F3P6. سبب البدء برقم الجزء المحدد هذا هو فقط عامل السعر إلى الأداء. مثل!! فقط انظر إليه مقابل 0.25 دولار (حوالي 20 روبية) نحصل على متحكم 8 بت مع مذبذب داخلي 16 ميجا هرتز ، 8 كيلو بايت فلاش ، 10 بت ADC ، UART ، SPI ، و I2C. من الذي لن يكون مفتونًا؟ أيضًا ، STM8S103F3P6 تحظى بشعبية كبيرة ، وبالتالي كمبتدئ ، ستجد دعمًا كافيًا إذا كنت بحاجة إلى مساعدة خارج الدروس التعليمية. بدءًا من هذا ، سيكون لدينا سلسلة من البرامج التعليمية ، على غرار دروس برمجة PIC حيث سنتعلم كيفية برمجة وحدة التحكم هذه من وميض أساسي إلى واجهات مختلفة للعرض والمستشعر. يمكنك أيضًا الاطلاع على البرنامج التعليمي STM32F103C8 والمشاريع إذا كنت مهتمًا بوحدات التحكم الدقيقة STM 32 بت.
اختيار أدوات تطوير الأجهزة والبرامج
الآن بعد أن أصبح لدينا إزالة الميكروكونترولر ، سيتعين علينا تحديد أدوات تطوير الأجهزة والبرامج لبدء عملية التعلم لدينا. هناك العديد من الخيارات ، هنا قمت بتحديد الخيارات المجانية للاستخدام والمتاحة بسهولة للجميع.
تطوير STM8S103F3P6
يُطلق على لوحة التطوير الرسمية لـ ST's 8-bit Microcontroller مجموعة STM8 Discovery ، ولكننا سنستخدم لوحة تطوير أخرى منخفضة التكلفة يمكنك العثور عليها بسهولة مع مورد محلي أو في متجر عبر الإنترنت. فيما يلي صورة لوحة التطوير STM8S103F3P6 التي سنستخدمها في هذا البرنامج التعليمي.
تتكون اللوحة فقط من الحد الأدنى من المكونات المطلوبة لبدء التطوير. إنه صديق اللوح ومناسب للتطبيقات المدمجة. يظهر أدناه مخطط الدائرة الداخلية للوحة التطوير.
عند إلقاء نظرة فاحصة ، ستلاحظ ، بصرف النظر عن وحدة التحكم STM8S103F3p6 ، لدينا زر إعادة تعيين لإعادة ضبط وحدة التحكم. تم توصيل التيار الكهربائي والاختبار بـ PB5 (Port B pin 5) ومنظم الجهد AMS1117 الذي يحول 5V من منفذ USB إلى 3.3V لوحدة التحكم. يمكن أيضًا جعل وحدة التحكم تعمل على 5 فولت إذا لزم الأمر. تم تمييز الأجزاء المختلفة الموجودة على وحدة التحكم أدناه. لدينا أيضًا 4 دبابيس مبرمج وهي 3.3V و GND و SWIM و NRST والتي يمكن استخدامها بسهولة لبرمجة وتصحيح وحدة التحكم الدقيقة الخاصة بنا.
مبرمج STM8S103F3P6
لبرمجة وحدة التحكم الخاصة بنا ، سنستخدم ST-LINK v2 وهو رخيص الثمن ومتاح بسهولة عبر الإنترنت. هناك العديد من المتغيرات (المعدن والبلاستيك والذهبي والوردي واللوح العاري) للوح ST-LINK v2 وجميعها تخدم نفس الغرض. يتم عرض المنجم أدناه ولكن يمكنك استخدام أي نوع من مبرمج ST-LINK ، وسوف يختلف pinout ، لذا تأكد فقط من قراءة pinouts على الغلاف بشكل صحيح. هناك أيضًا ST-LINK V3 من ST-Microelectronics نفسها والتي يمكن استخدامها لبعض تصحيح الأخطاء الجاد. لن نستخدم ذلك في الوقت الحالي لأنه مكلف بعض الشيء ، وسنوفره للمستقبل.
STM8S103F3P6 IDE والمجمع
يعد تحديد IDE والمترجم الصحيح لـ STM8S103F3P6 أمرًا محيرًا ، وذلك ببساطة لأن هناك الكثير من الخيارات للاختيار من بينها. الأدوات الرسمية المتوفرة لـ STM8 Microcontroller موضحة في الصورة أدناه.
من ناحية التكوين ، لدينا STM8CubeMx ، لقد جربت البرنامج وكان خيبة أمل كاملة بالنسبة لي. على عكس STM32Cube ، لا يمكن لـ STM8Cube إنشاء رمز تلقائيًا. يمكنه فقط إنشاء تعيين الدبوس لأغراض التصور وقد يكون مفيدًا إذا كنت تنقل الكود الخاص بك من وحدة تحكم إلى أخرى. بخلاف ذلك ، لن أستخدمه. لذلك في سلسلة البرامج التعليمية هذه ، لن نستخدم هذا.
بالنسبة إلى IDE و Compiler ، لدينا الكثير من الخيارات للاختيار من بينها. أفضل خيارين لـ IDE هما IAR workbench و ST Visual Develop (STVD) ، كلا البرنامجين يبدو أنهما من التسعينيات ولكن بعد بعض الوقت من اللعب به ، وجدت أن STVD هو خيار جيد فقط لأنه مجاني تمامًا. وبالمثل ، بالنسبة للمترجم ، سنستخدم مترجم Cosmic C ، مرة أخرى فقط لأنه مجاني تمامًا. سبب آخر لاختيار IDE و Compiler هذا هو أنه بمجرد أن نتعرف على البيئة ، يجب أن يكون من السهل استخدام أي متحكم 8 بت آخر من ST دون بذل الكثير من الجهد. سنتطرق إلى كيفية تثبيت وإعداد STVD مع مترجم Cosmic C لاحقًا في هذه المقالة.
بالنسبة إلى Flashing ، سنستخدم ST Visual Programmer (STVP) ، وسيتم تثبيت هذه الأداة تلقائيًا عندما نقوم بتثبيت STVD. سيتم دمجه في IDE نفسه ، مما يساعدنا على البرمجة بسرعة وتصحيح الأخطاء. سيكون البرنامج النهائي STMStudio وهو برنامج مراقبة STM8. يمكن أن يساعد البرنامج في تصحيح أخطاء STM8 في الوقت الفعلي ولديه بعض الميزات الرائعة مثل مراقبة القيمة المتغيرة ورسم الرسم البياني وما إلى ذلك. لم أجرب هذا البرنامج بشكل كافٍ. وعلى الأقل في الدروس القليلة الأولى ، لن نستخدم هذا البرنامج لأننا لن نحتاج إلى متطلبات تصحيح أخطاء كبيرة.
STM8S Standard Peripheral Library: STM8S Standard Peripheral Library: توفر ST Microelectronics مجموعة من المكتبات لتسهيل عملية تطوير الكود للمتحكمات الدقيقة STM8S ، وتسمى هذه المكتبة " مكتبة الأجهزة الطرفية القياسية " أو باختصار SPL. المكتبة رائعة باستثناء أنها مكتوبة من خلال مراعاة جميع وحدات التحكم الممكنة في عائلة STM8S / A ذات 8 بت وليس فقط وحدة التحكم STM8S103F3P6 التي سنستخدمها. وبالتالي ، يتعين علينا إجراء بعض التعديلات هنا وهناك لجعلها تعمل (والتي سأشاركها لاحقًا). لكن مع ذلك ، أعتقد أنه يستحق المحاولة لأنه يمكن أن يجعل التطوير سريعًا جدًا ، وبالتالي ، سنستخدمه في برنامجنا التعليمي.
إذا كنت لا ترغب في استخدام المكتبة ، فيجب عليك الوصول مباشرة إلى سجلات وحدة التحكم أو القيام ببرمجة تجميع المعادن. كلاهما ممتع ، بشرط أن يكون لديك الوقت لتعلمه واستخدامه. فكرتي هي استخدام مكتبة SPL أينما تعمل بشكل جيد ثم العمل أيضًا على مستوى التسجيل والتجميع إذا لزم الأمر. دعونا نحاول ألا نعيد اختراع العجلة!
STM8S مع Arduino باستخدام Sduino
لن تكتمل مناقشة خيارات البرنامج أبدًا إذا لم أذكر دعم Arduino IDE STM8S. نعم ، يمكن برمجة نفس لوحة STM8S103F3P6 مباشرة من Arduino IDE باستخدام Sduino ، وذلك بفضل Michael Mayer. لكن المشروع لا يزال في مرحلة التطوير وسيستغرق على الأرجح بعض الوقت ودعم المجتمع لـ Sduino لتقديم دعم كامل للمنصة. ومع ذلك ، في غضون دقائق قليلة من اللعب باستخدام Sduino ، بدأت في الإعجاب به ، وبالتالي قررت أيضًا عمل مقال منفصل حول كيفية برمجة STM8S Microcontroller مع Arduino. سأقوم بربط المقالة هنا عندما تكون جاهزة. ستناقش هذه المقالة لماذا ولماذا لا يجب عليك استخدام Arduino IDE لبرمجة وحدات التحكم الدقيقة STM8S الخاصة بك.
إذن ، هذه هي اختياراتي للبرامج والأجهزة ، اسمح لي أن أعرف في قسم التعليقات إذا كنت تعتقد أن بعض البرامج الأخرى كانت خيارًا أفضل ولماذا. أود استكشاف خيارات أخرى أيضًا.
تنزيل البرامج المطلوبة
الآن بعد أن قررنا البرنامج الذي سنستخدمه في هذا البرنامج التعليمي ، دعنا نمضي قدمًا وننزلها باستخدام الرابط التالي. جميع البرامج مجانية للتنزيل والاستخدام ، سيكون عليك فقط تسجيل حساب مجاني على ST و Cosmic إذا لم تكن قد قمت بذلك بالفعل.
- ST Visual Develop (STVD)
- مترجم كوزميك سي
- المكتبة الطرفية القياسية
- STM8Cube Mx (اختياري)
- STMStudio لـ STM8 (اختياري)
إعداد مترجم STVD و Cosmic C Compiler
بعد تنزيل كلا البرنامجين ، ما عليك سوى اتباع التعليمات التي تظهر على الشاشة لتثبيتهما. أوصي بتركهم في الدلائل الافتراضية لتجنب الارتباك في وقت لاحق. سيتم تثبيت STVD IDE دون أي جهد. بالنسبة لمترجم Cosmic C ، يجب أن تحصل على مفتاح ترخيص مجاني أثناء عمليات التثبيت. عليك فقط تزويد معلومات الشركة بمعرف البريد الإلكتروني ، إذا كنت طالبًا ، فقط اذكر ذلك. عمليات الحصول على مفتاح الترخيص فورية وتلقائية ، على الرغم من أن تعليمات الإعداد تنص على أن الأمر قد يستغرق يومًا أو يومين ، فقد تلقيت مفتاح الترخيص تلقائيًا على معرف البريد الإلكتروني الخاص بي بمجرد إرساله ، فقط تأكد من ذلك تحقق من الرسائل الاقتحامية. يظهر البريد الإلكتروني للتأكيد الخاص بي أدناه.
وفقًا لتعليمات البريد الإلكتروني ، ما عليك سوى نسخ ملف License.lic ولصقه في المجلد الفرعي "License" في مجلد التثبيت. بالنسبة لي ، كان المسار هو "C: \ Program Files (x86) COSMIC \ FSE_Compilers \ CXSTM8 \ License" . ما عليك سوى لصق الملف في الموقع كما هو موضح أدناه.
المكتبة الطرفية القياسية لـ STM8S103F3P6
كما ذكرنا سابقًا ، توفر ST Microelectronics مكتبات تسمى SPL والتي يمكن استخدامها لجميع وحدات التحكم الدقيقة STM8S / A ذات 8 بت. يمكنك إما تنزيل SPL الأصلي من ST Microelectronics وإجراء التغييرات المطلوبة أو تنزيل مكتبات SPL الخاصة بي STM8S103F3P6 واستخدامها على هذا النحو. أود أن أوصي لاحقا.
الأصل SPL من ST Microelectronics
STM8S103F3P6 SPL
أثناء وجودك هناك تأكد أيضًا من تنزيل دليل مستخدم SPL ، والذي سيكون مفيدًا جدًا عند برمجة وحدة التحكم.
تجميع البرنامج الأول
الآن بعد أن أصبح كل شيء جاهزًا ، دعنا نحاول تجميع برنامجنا الأول للتحقق مما إذا كانت IDE و Compiler و Library تعمل بالطريقة التي ينبغي لها. يمكنك أيضًا التحقق من الفيديو في أسفل الصفحة للحصول على إرشادات مفصلة.
ابدأ بفتح STVD وحدد File -> WorkSpace ، في النافذة المنبثقة ، حدد "مساحة عمل جديدة" وأدخل اسم المشروع والمسار حيث يجب حفظ البرنامج. أقوم بتسمية البرنامج الخاص بي BareMinimum وحفظه في مجلد على سطح المكتب. انقر فوق "موافق" وستحصل على مربع حوار مشروع جديد كما هو موضح أدناه.
أقوم بتسمية المشروع على أنه bareminimum مرة أخرى وتحت toolchain يجب علينا تحديد جذر toolchain للمسار حيث تم تثبيت مترجم STM8 Cosmic. عنوان المسار الافتراضي هو "C: \ Program Files (x86) COSMIC \ FSE_Compilers \ CXSTM8" . بعد ذلك فقط انقر فوق "موافق" للحصول على نافذة "تحديد MCU".
ابحث عن STM8S103F3P وحدده وانقر فوق موافق. سيؤدي هذا إلى فتح مشروع جديد لـ STM8S103F3P على STVD ، يجب أن تبدو النوافذ بهذا الشكل عند الانتهاء.
انقر بزر الماوس الأيمن على "ملف المصدر" وحدد "إضافة ملفات إلى مجلد" لتضمين جميع ملفات c من مكتبة SPL الخاصة بنا ، وبالمثل انقر بزر الماوس الأيمن على تضمين الملفات لتضمين جميع ملفات الرأس. إذا كان لديك أي أسئلة ، يمكنك الرجوع إلى الفيديو أدناه. بمجرد إضافة جميع الملفات ، انقر فوق إنشاء -> إعادة بناء d all ثم ترجمة للتحقق مما إذا كان المحول البرمجي و SPL يعملان كما هو متوقع. إذا سارت الأمور على ما يرام ، يجب أن ترى الشاشة التالية مع خطأ نتيجة الإنشاء 0 و 0 تحذير.
بعد القيام بذلك ، يمكننا الآن التأكد من أن جميع مكتبات SPL لدينا تعمل مع مترجم Cosmic و STVD. هذا هو الإجراء القياسي الذي سنتبعه لكل مشروع جديد. يمكنك أيضًا تضمين ملفات الرأس والمصدر الضرورية فقط اللازمة للمشروع لتقليل وقت الإنشاء إذا لزم الأمر.
تحميل الكود من STVD إلى لوحة تطوير STM8S باستخدام ST-Link V2
قم بتوصيل ST-Link V2 بلوحة التطوير كما هو موضح أدناه.
الاتصالات مباشرة إلى الأمام وأفضل جزء هو أنك لا تحتاج إلى مكونات خارجية. يظهر إعداد أجهزتي للبرمجة أدناه ، لقد استخدمت للتو أسلاك الرأس الأنثوية لإجراء الاتصال. ومع ذلك ، لاحظ أن pinout الخاص بـ ST-Link الخاص بك قد يختلف عن pinout الخاص بي ، تأكد من اتباع pinout على الجهاز قبل إجراء الاتصالات.
قم بإجراء الاتصال وتوصيل الجهاز بجهاز الكمبيوتر الخاص بك ، ويجب أن يبدأ تثبيت برنامج التشغيل تلقائيًا. يمكنك استخدام مدير الجهاز للتأكد من أن جهاز الكمبيوتر الخاص بك قد اكتشف ST-LINK V2 بشكل صحيح. ستلاحظ أيضًا وميض مؤشر LED للاختبار على اللوحة إذا كانت هذه هي المرة الأولى التي يتم فيها تشغيل اللوحة. بمجرد أن نكون قد نجحنا في تجميع الكود على STVD ، سنحصل على ملف الامتداد "S19" ضمن دليل التصحيح لمجلد المشروع. يظهر ملف S19 الخاص بي أدناه.
هذا S19 يشبه ملف Hex الذي يجب تحميله إلى وحدة التحكم. لتحميل البرنامج ، افتح ST Visual Programmer (STVP) الذي كان يجب تثبيته مع STVD. ثم في نافذة التكوين ، حدد كما هو موضح في الصورة أدناه وانقر فوق موافق.
ثم انقر فوق ملف-> فتح وانتقل إلى ملف S19 الذي عرضناه سابقًا. ثم وميض الجهاز ، اتبع البرنامج -> علامة التبويب الحالية . إذا كان الوميض ناجحًا ، يجب أن ترى الإخراج التالي.
بشكل افتراضي ، عند شراء STM8S ، سيكون به برنامج blin يومض مؤشر LED للاختبار. الآن بعد تحميل هذا الرمز الفارغ ، لن يومض مؤشر LED.
هام: لقد وجدت أن ST-Link الخاص بي لم يقم بإعادة ضبط اللوحة تلقائيًا بعد البرمجة. اضطررت إلى قطع الاتصال وإعادة الاتصال للتحقق من إخراج البرنامج الخاص بي. لست متأكدًا مما إذا كانت هذه مشكلة للجميع ، اسمح لي أن أعرف في قسم التعليقات. تحقق أيضًا من الفيديو الموجود في الأسفل والذي يشرح الحل لذلك.
مع هذا ، دعنا ننهي هذا البرنامج التعليمي ، لقد تعلمنا أساسيات الأجهزة ، وقمنا بإعداد بيئة التطوير وتعلمنا كيفية تجميع التعليمات البرمجية وتحميلها. نحن الآن جاهزون للتقدم وسنستخدم هذا في جميع البرامج التعليمية القادمة. إذا كان لديك أي أسئلة ، يرجى نشرها على منتدياتنا وترقب المزيد !!