كيف ولماذا تقرأ أوراق البيانات إذا كانت هوايتك هي المتحكمات الدقيقة؟

كيف ولماذا تقرأ أوراق البيانات إذا كانت هوايتك هي المتحكمات الدقيقة؟

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

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

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

سأبدأ بالتقليدية

وميض LED على اردوينو

وعلى الفور الكود:

void setup() {
DDRB |= (1<<5);
}

void loop() {
PINB = (1<<5);
for (volatile uint32_t k=0; k<100000; k++);
}

"ما هذا؟ - سوف يسأل القارئ المتطور. - لماذا تكتب شيئًا ما في سجل إدخال PINB؟ إنها للقراءة فقط!" حقًا، وثائق اردوينو، مثل معظم المقالات التعليمية على الإنترنت، تنص على أن هذا السجل للقراءة فقط. اعتقدت ذلك بنفسي حتى أعدت قراءته ورقة البيانات إلى Atmega328p، إعداد هذه المقالة. و هناك:

كيف ولماذا تقرأ أوراق البيانات إذا كانت هوايتك هي المتحكمات الدقيقة؟

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

لماذا قراءة أوراق البيانات؟

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

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

لو بدلًا من هذا النشاط المثير، قضيت بضعة أيام في دراسة وثائق Atmega328، لكنت قد وفرت قدرًا كبيرًا من الوقت. بعد كل شيء، هذا هو متحكم بسيط إلى حد ما.

وبالتالي، تحتاج إلى قراءة أوراق البيانات على الأقل لتتخيل كيفية عمل وحدة التحكم الدقيقة بشكل عام وما يمكنها القيام به. ومزيد من:

  • للتحقق من مكتبات الآخرين وتحسينها. غالبًا ما يكتبها نفس الهواة الذين يعيدون اختراع العجلة؛ أو على العكس من ذلك، يتعمد المؤلفون جعلها مضمونة بشكل مفرط. فليكن أكبر بثلاث مرات وأبطأ، لكنه سيعمل بالتأكيد؛

  • لتكون قادرًا على استخدام الرقائق في مشروع لم يكتب له أحد مكتبة؛

  • لتسهيل عليك الانتقال من خط MK إلى آخر؛

  • لتحسين الكود القديم الخاص بك، والذي لا يتناسب مع Arduino؛

  • لتتعلم كيفية التحكم في أي شريحة مباشرة من خلال سجلاتها، دون الاهتمام بدراسة بنية مكتباتها إن وجدت.

لماذا الكتابة إلى السجلات مباشرة عندما يكون هناك HAL وLL؟

قاموس مصطلحات
هال، طبقة التجريد العالية - مكتبة للتحكم في المتحكم الدقيق بمستوى عالي من التجريد. إذا كنت بحاجة إلى استخدام واجهة SPI1، فما عليك سوى تكوين SPI1 وتمكينه دون التفكير في السجلات المسؤولة عن ماذا.
LL، واجهة برمجة التطبيقات ذات المستوى المنخفض - مكتبة تحتوي على وحدات ماكرو أو بنيات ذات عناوين تسجيل، مما يسمح لك بالوصول إليها بالاسم. DDRx، PORTx، PINx على Atmega هي LL.

الخلافات حول موضوع "HAL أو LL أو السجلات" تحدث بانتظام في التعليقات على حبري. دون المطالبة بالوصول إلى المعرفة النجمية، سأشارك ببساطة تجربتي وأفكاري مع الهواة.

بعد أن اكتشفت Atmega بشكل أو بآخر وقرأت مقالات حول روعة STM32، اشتريت ستة لوحات مختلفة - Discovery وBlue Pills، وحتى مجرد رقائق لمنتجاتي محلية الصنع. لقد جمعوا جميعًا الغبار في صندوق لمدة عامين. في بعض الأحيان قلت لنفسي: "هذا كل شيء، بدءًا من نهاية هذا الأسبوع سأتقن STM،" أطلقت CubeMX، وأنشأت إعدادًا لـ SPI، ونظرت إلى جدار النص الناتج، المنكه بسخاء بحقوق الطبع والنشر لـ STM، وقررت أن هذا كان بطريقة ما أمرًا مبالغًا فيه. كثيراً.

كيف ولماذا تقرأ أوراق البيانات إذا كانت هوايتك هي المتحكمات الدقيقة؟

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

لقد مرت سنتان، وما زلت ألعق شفتي مكتشف ST MCU لجميع أنواع لذيذ، ولكن أبعد من فهمي، ورقائق البطاطس، وجاء عن طريق الخطأ مقالة رائعة، وإن كان حول STM8. و فجأة أدركت أنني كنت أطرق الباب المفتوح طوال هذا الوقت: تم ترتيب سجلات STM بنفس الطريقة مثل سجلات أي MK آخر، وليس من الضروري العمل مع Cube معهم. وهل كان ذلك ممكنا أصلا؟..

تعد HAL وبالتحديد STM32CubeMX أداة للمهندسين المحترفين الذين يعملون بشكل وثيق مع شرائح STM32. الميزة الرئيسية هي المستوى العالي من التجريد، والقدرة على الانتقال بسرعة من وحدة MCU إلى أخرى وحتى من نواة إلى أخرى، مع البقاء ضمن خط STM32. نادرًا ما يواجه الهواة مثل هذه المشكلات - فاختيارنا لوحدات التحكم الدقيقة، كقاعدة عامة، يقتصر على تشكيلة AliExpress، وغالبًا ما ننتقل بين شرائح مختلفة جذريًا - ننتقل من Atmega إلى STM، ومن STM إلى ESP، أو أي شيء جديد أصدقائنا الصينيين رمي علينا. لن يساعد HAL هنا، وسوف تستهلك دراسته الكثير من الوقت.

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

بالإضافة إلى ذلك، هناك فارق بسيط مع STM32F103 الشهير - هناك إصداران غير متوافقين من LL، أحدهما رسمي من STM، والثاني من Leaf Labs، المستخدم في مشروع STM32duino. إذا كنت تكتب مكتبة مفتوحة المصدر (وكان لدي بالضبط مثل هذه المهمة)، يجب عليك إما إنشاء نسختين، أو الوصول إلى السجلات مباشرة.

أخيرًا، فإن إزالة LL، في رأيي، تجعل الهجرة أسهل، خاصة إذا كنت تخطط لذلك منذ بداية المشروع. مثال مبالغ فيه: لنكتب وميض Arduino في Atmel Studio بدون LL:

#include <stdint.h>

#define _REG(addr) (*(volatile uint8_t*)(addr))

#define DDR_B 0x24
#define OUT_B 0x25

int main(void)
{
    volatile uint32_t k;

    _REG(DDR_B) |= (1<<5);

    while(1)
    {
        _REG(OUT_B) |= (1<<5);
        for (k=0; k<50000; k++);
        _REG(OUT_B) &= ~(1<<5);
        for (k=0; k<50000; k++);
    } 
}

لكي يومض هذا الرمز مؤشر LED الموجود على اللوحة الصينية باستخدام STM8 (من ST Visual Desktop)، يكفي تغيير عنوانين فيه:

#define DDR_B 0x5007
#define OUT_B 0x5005

نعم، أستخدم ميزة توصيل مؤشر LED على لوحة معينة، وسيومض ببطء شديد، لكنه سيحدث!

ما هي أنواع أوراق البيانات الموجودة؟

في المقالات والمنتديات باللغتين الروسية والإنجليزية، تعني "أوراق البيانات" أي وثائق فنية للرقائق، وأنا أفعل الشيء نفسه في هذا النص. رسميًا، فهي مجرد نوع واحد من هذه الوثائق:

ورقة البيانات – خصائص الأداء والخصائص التكتيكية والفنية. إلزامية لأي مكون إلكتروني. من المفيد الاحتفاظ بالمعلومات الأساسية في متناول اليد، ولكن ليس هناك الكثير مما يمكن قراءته بشكل مدروس. ومع ذلك، غالبًا ما تقتصر الرقائق الأبسط على ورقة بيانات حتى لا تنتج مستندات غير ضرورية؛ في هذه الحالة الدليل المرجعي تم تضمينه هنا.

الدليل المرجعي – التعليمات نفسها، كتاب صحي يضم أكثر من 1000 صفحة. يتم وصف عمل كل ما يتم حشره في الشريحة بالتفصيل. الوثيقة الرئيسية لإتقان المتحكم الدقيق. على عكس ورقة البيانات، التعليمات مكتوبة لمجموعة واسعة من أعضاء MK، وهي تحتوي على الكثير من المعلومات حول الأجهزة الطرفية غير المتوفرة في طرازك المحدد.

دليل البرمجة أو دليل مجموعة التعليمات - تعليمات لأوامر المتحكم الدقيق الفريدة. مصممة لأولئك الذين يبرمجون بلغة التجميع. يستخدمه مؤلفو المترجمات بشكل نشط لتحسين التعليمات البرمجية، لذلك في الحالة العامة لن نحتاج إليه. لكن البحث هنا مفيد لفهم عام، لبعض الأوامر المحددة مثل الخروج من المقاطعة، وكذلك لاستخدام مصحح الأخطاء بشكل فعال.

ملاحظة التطبيق – نصائح مفيدة لحل مشكلات محددة، غالبًا مع أمثلة التعليمات البرمجية.

ورقة Errata - وصف حالات سلوك الشريحة غير القياسية مع خيارات الحل البديل، إن وجدت.

ماذا يوجد في أوراق البيانات

مباشرة في ورقة البيانات قد نحتاج الأقسام التالية:

ملخص الجهاز – الصفحة الأولى من ورقة البيانات تصف الجهاز بإيجاز. مفيد جدًا في المواقف التي عثرت فيها على شريحة في مكان ما (رأيتها في متجر، أو قمت بلحامها، أو صادفت إشارة إليها) وتريد أن تفهم ما هي.

الوصف العام – وصف أكثر تفصيلاً لقدرات الرقائق من الخط.

دبوس الموصل - مخططات pinout لجميع حزم الرقائق الممكنة (أي دبوس موجود على أي ساق).

دبوس الوصف - وصف الغرض وقدرات كل دبوس.

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

تسجيل الخريطة - جدول عناوين كتل التسجيل، كقاعدة عامة، موجود في ورقة البيانات، وفي دليل المرجع - التحولات فقط (تعويضات العنوان).

الخصائص الكهربائية - في هذا القسم نحن مهتمون في المقام الأول الحد الأقصى لالتقييمات المطلقة، مع إدراج الحد الأقصى للأحمال لكل شريحة. على عكس Atmega328p غير القابل للتدمير، لا تسمح لك معظم MKs بتوصيل الأحمال الخطيرة إلى المسامير، والتي تصبح مفاجأة غير سارة ل Arduinists.

حزمة معلومات - رسومات للحالات المتوفرة، مفيدة عند تصميم لوحاتك.

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

نبذة, المُقدّمة, المميزات - نظرة عامة على القدرات الطرفية؛

وصف وظيفي, دليل الاستخدام أو ببساطة الجزء الرئيسي من القسم - وصف نصي مفصل لمبادئ الجهاز الطرفي وكيفية استخدامه؛

يسجل – وصف سجلات التحكم. في الحالات البسيطة مثل GPIO أو SPI، قد يكون هذا كافيًا لبدء استخدام الأجهزة الطرفية، ولكن في كثير من الأحيان لا يزال يتعين عليك قراءة الأجزاء السابقة.

كيفية قراءة أوراق البيانات

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

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

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

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

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

إذا التقيت كلمة غير مألوفةلا تحاول ترجمتها باستخدام قاموس إنجليزي-روسي. إذا كنت في حيرة من أمرك التخلفية نزعة المادة الممغنطة إلي البقاء في حالة مغناطيسيةفإن الترجمة "التباطؤ" لن تجعلك أكثر دفئًا. استخدم Google وStack Overflow وWikipedia والمنتديات حيث سيكون المفهوم المطلوب وأوضح بكلمات بسيطة مع الأمثلة.

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

إنها عادة جيدة أن تبقي ورقة البيانات الخاصة بك في متناول يدك عندما قراءة البرنامج التعليمي لشخص ما أو دراسة مكتبة شخص آخر. من الممكن أن تجد فيه حلاً أفضل لمشكلتك. والعكس صحيح - إذا لم تتمكن من فهم كيفية عمل السجل فعليًا من ورقة البيانات، فابحث عنه في Google: على الأرجح، قام شخص ما بالفعل بوصف كل شيء بكلمات بسيطة أو ترك رمزًا واضحًا على GitHub.

قاموس مصطلحات

بعض الكلمات والرموز المفيدة لمساعدتك على التعود بسرعة على أوراق البيانات. ما تذكرته في اليومين الماضيين، الإضافات والتصحيحات موضع ترحيب.

كهرباء
VCC, حقيقي - "زائد" الطعام
VSS, مخروطى - "ناقص" الأرض
تيار - حاضِر
الجهد االكهربى - الجهد االكهربى
لإغراق التيار - العمل "كأرضية" للحمل الخارجي
لمصدر التيار – تحميل الطاقة الخارجية
ارتفاع بالوعة/دبوس المصدر - دبوس مع زيادة "التسامح" للتحميل

IO
ح، عالية - على دبوس Vcc
لام، منخفض - على دبوس Vss
مقاومة عالية, مرحبا- Z, يطفو على السطح - لا يوجد شيء على الدبوس، "مقاومة عالية"، فهو غير مرئي تقريبًا للعالم الخارجي.
سحب ضعيف, هدم ضعيف - مقاوم سحب لأعلى/لأسفل مدمج، يعادل تقريبًا 50 كيلو أوم (انظر ورقة البيانات). يتم استخدامه، على سبيل المثال، لمنع دبوس الإدخال من التعلق في الهواء، مما يسبب نتائج إيجابية كاذبة. ضعيف - لأنه من السهل "مقاطعته".
دفع سحب - وضع إخراج الدبوس، والذي يتم من خلاله التبديل بين مرتفع и منخفض – الإخراج المنتظم من اردوينو.
استنزاف مفتوح - تعيين وضع الإخراج الذي يمكن أن يكون فيه الدبوس أيضًا منخفضأو مقاومة عالية/عائمة. علاوة على ذلك، في أغلب الأحيان تقريبًا لا يكون هذا استنزافًا مفتوحًا "حقيقيًا"، فهناك صمامات ثنائية واقية ومقاومات وما إلى ذلك. هذا مجرد تعيين للوضع الأرضي/لا شيء.
استنزاف مفتوح حقيقي - ولكن هذا استنزاف مفتوح حقيقي: الدبوس يؤدي مباشرة إلى الأرض إذا كان مفتوحًا، أو يبقى في طي النسيان إذا كان مغلقًا. وهذا يعني أنه، إذا لزم الأمر، يمكن تمرير جهد أكبر من Vcc من خلاله، ولكن لا يزال الحد الأقصى محددًا في ورقة البيانات في القسم الحد الأقصى المطلق للتقييمات/الجهد.

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

كل أنواع الأشياء
بريسكالر - مقياس التردد
لتعيين قليلا - اضبط البت على 1
لمسح/إعادة تعيين قليلا - إعادة تعيين البت إلى 0 (إعادة تعيين – ميزة ورقة بيانات STM)

ما هي الخطوة التالية

بشكل عام، تم التخطيط هنا لجزء عملي مع عرض توضيحي لثلاثة مشاريع على STM32 وSTM8، تم إعدادها خصيصًا لهذه المقالة باستخدام أوراق البيانات، مع المصابيح الكهربائية، وSPI، والمؤقتات، وPWM والمقاطعات:

كيف ولماذا تقرأ أوراق البيانات إذا كانت هوايتك هي المتحكمات الدقيقة؟

ولكن هناك الكثير من النص، لذلك يتم إرسال المشاريع إلى الجزء الثاني.

ستساعدك مهارة قراءة أوراق البيانات في هوايتك، ولكن من غير المرجح أن تحل محل التواصل المباشر مع زملائك الهواة في المنتديات والمحادثات. ولهذا الغرض، لا تزال بحاجة إلى تحسين مستواك في اللغة الإنجليزية أولاً. لذلك، سيحصل أولئك الذين أنهوا القراءة على جائزة خاصة: درسين مجانيين في Skyeng مع الدفع الأول باستخدام الكود HABR2.

المصدر: www.habr.com

إضافة تعليق