بوم وميض LED بسلاسة

16.07.2019

السمات المميزة:

  • توليد إشارات تناظرية باستخدام PWM
  • توقيت PWM قابل للتطوير عالي التردد

مقدمة

هذه "التوصيات..." هي إرشادات لاستخدام مُعدِّل عرض النبضة عالي التردد (PWM) الموجود في بعض وحدات التحكم الدقيقة AVR. يتضمن الدليل نموذجًا لرمز التجميع الذي يوضح كيفية استخدام وحدة التحكم الدقيقة PWM عالية التردد ATtiny26. يتوفر أيضًا مؤقت PWM عالي التردد في ATtiny15.

لتوليد نبضات، يتم استخدام وضع PWM سريع مع ملء نبض متغير عند خرج OC1A (PB1). للحصول على موجة جيبية من إشارة PWM الرقمية، يجب توفير مرشح تناظري عند الإخراج.

تتمثل مزايا PWM عالية السرعة في توسيع نطاق تردد إشارة الخرج التناظرية وإمكانية استخدام مكونات أكثر إحكاما وغير مكلفة في المرشح بسبب التردد العالي.

1. مبدأ التشغيل

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

يؤدي حساب متوسط ​​الإشارة التناظرية خلال فترة واحدة (باستخدام مرشح تناظري) إلى إنشاء إشارة تناظرية. عند ملء النبض بنسبة 50%، تساوي الإشارة التناظرية نصف جهد الإمداد، وعند ملء النبض بنسبة 75%، تساوي الإشارة التناظرية 75% من جهد الإمداد. يتم عرض أمثلة لتصفية المخرجات في نهاية هذا المستند.

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

الشكل 1. مرشح RC منخفض التمرير

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

يوضح الشكل 2 مخطط الذبذبات الحقيقي لإشارة PWM مع ملء نبض متغير.


الشكل 2. إشارة PWM مع تعبئة نبضية متغيرة

تستخدم وحدات التحكم الدقيقة AVR عدادات المؤقت لتوليد إشارات PWM. لتغيير تردد الموجة الحاملة PWM، يتم تغيير تردد توقيت المؤقت وأعلى العد. تؤدي الزيادة في تردد الساعة و/أو النقصان في أعلى العد إلى زيادة تردد تجاوز المؤقت، ونتيجة لذلك، يزداد تردد PWM. يتوافق الحد الأقصى للدقة (العدد الأعلى 255) مع الحد الأقصى لتردد PWM البالغ 250 كيلو هرتز. من الممكن زيادة أخرى في تردد PWM عن طريق تقليل الدقة، ولكن في هذه الحالة يتم تقليل عدد الخطوات عند ضبط ملء النبض من 0 إلى 100٪.

يؤثر تغيير محتويات سجل المقارنة (OCR) على ملء النبض. تؤدي زيادة قيمة التعرف الضوئي على الحروف إلى زيادة تعبئة النبض. حتى يصل العداد إلى القيمة من سجل OCR، يكون خرج PWM في حالة عالية، ثم ينخفض ​​حتى يتم الوصول إلى قمة العد، وبعد ذلك يذهب العداد إلى حالة الصفر وتتكرر الدورة. طريقة التوليد هذه في متحكمات AVR تسمى PWM السريع.


الشكل 3. قيم العداد وإخراج PWM

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

2. التطبيقات البديلة

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

الحد الأقصى لتردد الساعة لمؤقت المتحكم الدقيق ATtiny26 هو 64 ميجا هرتز (بدون التقسيم المسبق). عند تردد PWM يبلغ 16 ميجاهرتز (العد الأعلى 3)، يمكن كتابة سجل التعرف الضوئي على الحروف إلى 0 أو 1 (تعبئة 25%)، أو 2 (تعبئة 50%، الشكل 4أ) أو 3 (تعبئة 100%). يوضح هذا أنه من خلال تقليل قمة العد، يزداد تردد الموجة الحاملة لـ PWM.

لتحقيق الحد الأقصى لتردد الإخراج من جهاز ضبط الوقت، يجب تحويله إلى وضع غير PWM. يجب أن يكون الجزء العلوي من العد ومحتويات التعرف الضوئي على الحروف مساوياً لـ 0. ثم يعلق العداد عند 0. يؤدي تعيين إجراء المطابقة إلى "تبديل الإخراج" إلى عكس (تبديل) الإخراج في كل علامة مؤقت. ونتيجة لذلك، يتم تحقيق تردد 32 ميغاهيرتز (الشكل 4ب).


الشكل 4: الإخراج الرقمي عالي التردد

3. مثال التطبيق

يوضح الشكل 4 كيفية توليد موجة جيبية من إشارة PWM عالية التردد.

يتكون رمز البرنامج من 3 أجزاء: التهيئة، وروتين المقاطعة الفائضة للمؤقت 1، وحلقة السكون. يفترض هذا المثال أن وحدة التحكم الدقيقة تعمل بسرعة 8 ميجا هرتز.


الشكل 5. رسم تخطيطي للدورة الرئيسية لبرنامج توليد الإشارة الجيبية

3.1. التهيئة

يجب تكوين مخرج Timer Comparator 1 (OC1A) كمخرج.

بعد ذلك، يتم تعيين الموقت 1: يتم إعداد مصدر ساعة الموقت - يتم تشغيل دائرة PLL، والتي يجب أن تدخل المزامنة (التقاط) مع تردد ساعة النظام. يتطلب PLL حوالي 100 مللي ثانية للالتقاط على ساعة النظام وبالتالي يجب الانتظار حتى يتم تعيين علامة التقاط PLL قبل المتابعة. بمجرد التقاط PLL، يجب تحديده كمصدر ساعة المؤقت.

بعد ذلك، يتم تحديد وضع PWM مع عكس إخراج OC1A عن طريق الصدفة ويتم ضبط أعلى العد على 0xFF. تحدد قيمة قمة العد الدقة وتردد الموجة الحاملة لـ PWM - كلما ارتفعت قيمة القمة، زادت الدقة وقل تردد الموجة الحاملة.

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


الشكل 6. إجراء التهيئة (تهيئة الدبوس والمؤقت 1 لتشغيل PWM السريع)

3.2. روتين المقاطعة

عندما يصل المؤقت 1 إلى القيمة من OCR1C (0xFF)، يتم استدعاء روتين مقاطعة تجاوز سعة المؤقت. وبما أن قيمة OCR1C ثابتة، فإن هذا الحدث يحدث بتردد ثابت. تحدد هذه الفترة تردد الموجة الحاملة لإشارة PWM الناتجة.

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

يستغرق الأمر 13 دورة على مدار الساعة لإكمال روتين معالجة المقاطعة. يستغرق استدعاء الإجراء والعودة منه وقتًا أيضًا - ويلزم إجمالي 21 دورة. نظرًا لأن المؤقت 1 هو 8 بت، فإن المقاطعة تحدث كل 256/(PWM_Frequency/System_Frequency) دورة على مدار الساعة. يفترض هذا المثال تسجيل الوقت بواسطة مذبذب RC داخلي بتردد 8 ميجاهرتز. إذا تم استخدام الحد الأقصى لتردد ساعة PWM وهو 64 ميجاهرتز، فسيحدث تجاوز للمؤقت كل 32 ساعة نظام.

على الرغم من أنه يمكن تسجيله بتردد أقصى يبلغ 64 ميجاهرتز، في هذا المثال، يُفترض أن تردد ساعة المؤقت هو 4...16 ميجاهرتز لمزيد من توضيح التشغيل باستخدام مقياس أولي.


الشكل 7. مخطط تخطيطي لإجراء معالجة مقاطعة تجاوز سعة المؤقت

3.3. تسكع

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

4. مخططات الذبذبات

توضح الأشكال التالية مخططات الذبذبات لتوليد الإشارات الجيبية باستخدام متحكم ATtiny26. تُظهر الأشكال الموجية إشارتين: إشارة رقمية من مخرج OC1A وإشارة PWM مُعالجة/مصفاة. لتوليد إشارة جيبية تناظرية، تم استخدام مرشح RC بسيط مع المعلمات R = 10 كيلو أوم وC = 100 nF، والتي تتوافق مع تردد ضبط المرشح بمقدار 1 كيلو هرتز. وبالتالي، يتم تمرير الموجة الجيبية من خلاله ويتم قمع تردد الموجة الحاملة عالي التردد.


الشكل 8. OC1A الإخراج المصفاة وغير المصفاة


الشكل 9. المخرجات المفلترة وغير المفلترة OC1A (كبيرة الحجم)

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

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

نحتاج إلى ضبط ساق MK معينة على 1 أو 0 في بداية فترة إشارة PWM (اعتمادًا على نوع الإشارة التي نحتاجها)، وبعد ذلك، عند الوصول إلى مدة النبضة المحددة، نقوم بعكس قيمة الساق. الطريقة الأكثر ملاءمة للقيام بذلك هي مقاطعة تجاوز السعة. وهذا ما سنفعله، سوف نستخدم مقاطعة تجاوز سعة المؤقت T0. سوف نتحكم في RGB LED، لذلك سنجعل أسماء المتغيرات وتعريفات الماكرو للمنافذ قابلة للقراءة.

/*تعريف الكتلة********************************************** ******** **************************************** ** */ #define RED PORTB.0 #define GREEN PORTB.1 #define BLUE PORTB.2 /***************************** ******** **************************************** ** **************************************/ /*الإعلان عن التغييرات********* ** ******************************************************************************************************************************************************************** ********************/ شار أحمر غير موقع = 255، أخضر، أزرق؛ // متغيرات لتغيير دورة عمل PWM في البرنامج unsigned char red_b, green_b, blue_b; // متغيرات للتخزين المؤقت لقيم دورة العمل PWM عدد الأحرف غير الموقعة؛ // متغير - عداد استدعاء معالج المقاطعة unsigned char temp=1; // متغير لتشغيل خوارزمية تغيير اللون /*************************************** ******************************************************************************************************************************************************************* **********************/

عند حدوث مقاطعة، تحتاج إلى زيادة عداد البرنامج بمقدار 1 والتحقق مما إذا كان قد فاض. إذا كان المؤقت ممتلئًا، فأنت بحاجة إلى إخراج المنطقي 1 إلى جميع الأطراف التي يتم إخراج PWM عليها، وكذلك حفظ المتغيرات في المخزن المؤقت. يتم حفظ المتغيرات في المخزن المؤقت بحيث يتم تحديث بيانات دورة العمل مرة واحدة في بداية كل فترة، وهذا يلغي السلوك غير المتوقع للمخرجات. بعد ذلك، نقوم بمقارنة قيمة العداد مع قيمة المخزن المؤقت لدورة العمل لكل قناة. إذا وصل العداد إلى هذه القيمة، فإننا نخرج القيمة المنطقية 0 إلى الضلع MK المقابل.

/ * معالج المقاطعة ******************************************* ************************************************** *******/ المقاطعة void timer0_ovf_isr( void) ( count++; if (count == 0)( // إذا فاض العداد وأخذ القيمة 0 red_b = red; // حفظ القيمة في المخزن المؤقت green_b = blue_b = blue; RED =1; // اضبط الأرجل المقابلة لـ PWM على 1 GREEN =1; دورة العمل، الإخراج المنطقي 0 إلى طرف MK if (green_b == count) ( GREEN = 0 ;) if (blue_b == count) ( BLUE = 0;) ) /************ ****************************************************** *****************************************/

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

/*الوظيفة الأساسية********************************************** **** **************************************** */ void main(void ) ( PORTB=0x08; // تكوين المنفذ DDRB=0x07; TCCR0=0x01; // إعداد المؤقت TCNT0=0x00; TIMSK=0x01; // السماح بإنشاء مقاطعة على مؤقت T0 overflow #asm("sei ") // تمكين المقاطعات عالميًا /* حلقة لا نهاية لها ****************************************** **************************************** *******/ بينما ( 1) (إذا (درجة الحرارة == 1) (إذا (أخضر< 255) green += 1; else temp = 2;} if (temp==2) {if (red >0) أحمر -= 1؛ درجة الحرارة الأخرى = 3؛) إذا (درجة الحرارة == 3) (إذا (أزرق< 255) blue += 1; else temp = 4;} if (temp==4) {if (green >0) أخضر -= 1؛ درجة الحرارة الأخرى = 5؛) إذا (درجة الحرارة == 5) (إذا كانت (حمراء< 255) red += 1; else temp = 6;} if (temp==6) {if (blue >0) أزرق -= 1؛ درجة الحرارة الأخرى = 1;) تأخير_ms(2); ); /*************************************************** * ****************************************************** ***/ ) /********************************* ************ ****************************************************** ********/

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

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

أولا، دعونا نتذكر ما هو PWM. إشارة PWM هي إشارة نبضية ذات تردد ودورة عمل معينة:

التردد هو عدد الفترات في ثانية واحدة. دورة العمل هي نسبة مدة النبضة إلى مدة الفترة. يمكنك تغيير كليهما، ولكن للتحكم في مصابيح LED يكفي التحكم في دورة العمل. في الصورة أعلاه نرى إشارة PWM مع دورة تشغيل 50%، حيث أن مدة النبضة (عرض النبضة) هي نصف المدة بالضبط. وفقًا لذلك، سيعمل مؤشر LED بالضبط نصف الوقت ونصف الوقت. تردد PWM مرتفع جدًا ولن تلاحظ العين وميض LED بسبب القصور الذاتي لرؤيتنا، لذلك يبدو لنا أن LED يتوهج بنصف السطوع. إذا قمنا بتغيير دورة التشغيل إلى 75%، فإن سطوع LED سيكون 3 أرباع كاملة، وسيبدو الرسم البياني كما يلي:

اتضح أنه يمكننا ضبط سطوع LED من 0 إلى 100٪. الآن دعونا نتحدث عن معلمة PWM مثل الدقة. القرار هو عدد التدرجات (الخطوات) لتعديل دورة العمل، وسوف نعتبر القرار 256 خطوة.

يبدو أننا قمنا بفرز المعلمات، والآن دعونا نتحدث عن كيفية الحصول على PWM من المتحكم الدقيق.نأخذ مكواة لحام ساخنة حادة ونبدأ في تعذيب عضو الكنيست، وفي نفس الوقت نربط ساقيه باستخدام راسم الذبذبات ونتحقق من وجود إشارة دورة العمل التي نحتاجها عليها. تتمتع المتحكمات الدقيقة بدعم أجهزة لـ PWM وعدة قنوات لها، في حالتنا 3. بعض أطراف المتحكم الدقيق مسؤولة عن إصدار PWM، في حالتنا OC2، OC1A، OC1B (15،16،17 ساق في حزمة DIP). يتم أيضًا استخدام مؤقتات المتحكم الدقيق لهذا الغرض، في حالتنا TC1، TC2. فكيف يتم تكوين MK لإخراج إشارة دورة العمل المطلوبة؟ كل شيء بسيط للغاية، فلنقم أولاً بتكوين أرجل الإخراج التي نحتاجها:

بورتب=0x00; DDRB=0x0E; // 0b00001110

بعد ذلك، لنبدأ في تكوين أجهزة ضبط الوقت. بالنسبة للمؤقت TC1 نحتاج إلى مسجلين: TCCR1A وTCCR1B. افتح ورقة البيانات واقرأ كيفية تكوين هذه السجلات. لقد قمت بتكوينه لإشارة PWM 8 بت، والتي تتوافق مع دقة 256 خطوة:

TCCR1A=0xA1; TCCR1B=0x09;

بالنسبة للمؤقت TC2 سوف نستخدم السجل TCCR2=0x69;. يبدو الإعداد الخاص به كما يلي:

TCCR2=0x69;

هذا كل شيء، تم تكوين أجهزة ضبط الوقت. سيتم تعيين دورة العمل عن طريق السجلات OCR1A، OCR1B، OCR2:

لنقم بتعيين دورات العمل المطلوبة:

OCR1A=0x32; // 50 خطوة OCR1B=0x6A; // 106 خطوات OCR2=0xF0; //240 خطوة

حسنًا، لنضع الزيادة والنقصان في هذه السجلات في حلقة لا نهائية:

بينما (1) ( OCR1A++؛ OCR1B--؛ OCR2++؛ تأخير_ms(50); )

برنامج الاختبار الأول جاهز وبالنسبة لـ CVAVR يبدو كما يلي:

#include "mega8.h" #include "delay.h" void main(void) ( PORTB=0x00; DDRB=0x0E; // 0b00001110 TCCR1A=0xA1; TCCR1B=0x09; TCCR2=0x69; OCR1A=0x32; //50 خطوات OCR1B=0x6A; // 106 خطوات OCR2=0xF0; // 240 خطوة while (1) ( OCR1A++; OCR1B--; OCR2++; Delay_ms(50); )

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

1. مبدأ توليد إشارة تناظرية باستخدام PWM (PWM)

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


وبالتالي، باستخدام هذا المعامل، من الممكن توليد إشارات تناظرية ذات شكل تعسفي. علاوة على ذلك، كلاهما متغير، على سبيل المثال، موجة جيبية، منشار أو خطاب بشري، وثابت (مستوى الجهد التعسفي).

1.1 خصائص الإشارة

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

الحد الأدنى لخطوة تغيير الإشارة التناظرية(القرار) سيتم تحديده بالتعبير:


دوا = أوماكس / 2 ^ ن،


حيث Umax هو السعة القصوى للإشارة التناظرية (V)، وn هو عمق البت للعداد الذي يطبق PWM.

على سبيل المثال، يتم إنشاء إشارة PWM باستخدام عداد برمجي 8 بت. عدد تدرجات إشارة PWM التي يمكن الحصول عليها باستخدام هذا العداد هو 2^8 = 256. ثم ستكون دقة الإشارة التناظرية عند Umax = 5 V مساوية لـ


الدعاء = 5/256 = 0.0195 فولت.


تردد إشارة PWMسيتم تعريفها على النحو التالي:


Fpwm = Fcpu/(K*2^n)،


حيث Fcpu هو تردد الساعة لوحدة التحكم الدقيقة (هرتز)، وK هو معامل مقياس العداد المسبق، وn هو حجم بت العداد.

على سبيل المثال، تردد الساعة لوحدة التحكم الدقيقة هو 8 ميجا هرتز، ومعامل القياس المسبق هو 8، وعرض العداد هو 8 بت. عندها سيكون تردد إشارة PWM للخرج مساوياً لـ:

Fpwm = 8000000/(8*256) = ~3906 هرتز


تردد الإخراج التناظريسيتم تحديده من خلال التعبير:

فا = Fpwm/Ns = Fcpu/(K*2^n*Ns)،


حيث Fpwm هو تردد إشارة PCB، وNs هو عدد عينات الإشارة التناظرية.

على سبيل المثال، يتم تنفيذ إشارة PWM على عداد 8 بت مع معامل مقياس مسبق قدره 8 وتردد ساعة متحكم دقيق يبلغ 8 ميجا هرتز. تخزن ذاكرة المتحكم الدقيق 32 عينة من الإشارة الجيبية والتي تمثل إحدى فتراتها. عندها سيكون تردد الخرج الجيوب الأنفية مساوياً لـ:

فا = 8000000/(8*2^8*32) = ~122 هرتز

إن قدرة DAC المصنوعة على أساس PWM تعادل سعة العداد المستخدم.

1.2 تنفيذ الأجهزة لـ PWM

تشتمل جميع وحدات التحكم الدقيقة الحديثة على مؤقتات/عدادات. تم تصميم واحد أو أكثر من أوضاع هذه المؤقتات لتوليد إشارة PWM. عادة، يتم إنشاء هذه الإشارة عند دبابيس خاصة. على سبيل المثال، يحتوي المتحكم الدقيق Mega16 من Atmel على مؤقت/عداد T0 ذو 8 بت والذي يحتوي على وضعين لتوليد إشارة PWM (PWM سريع وPWM مع طور دقيق)، ويتم استخدام منفذ المنفذ B - OC0 (PINB3) لـ إخراج الإشارة.

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

1.3 تنفيذ برمجيات PWM

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

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

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

يوجد أدناه مثال على التعليمات البرمجية التي تؤدي وظيفة إنشاء إشارة تناظرية باستخدام تعديل عرض النبض للأجهزة والبرامج. الكود مكتوب لوحدة التحكم الدقيقة atmega16، تردد الساعة 8 ميجا هرتز، مترجم IAR. عند المخرجين PB2 وPB3، يتم إنشاء اثنين من الجيوب الأنفية (بترددات مختلفة) مكونة من 32 عينتين.


#يشمل
#يشمل
#يشمل

#تعريف SPWM_PIN 2

// جيب الجدول
__flash uint8_t tableSin =
{
152,176,198,218,234,245,253,255,
253,245,234,218,198,176,152,128,
103, 79, 57, 37, 21, 10, 2, 0,
2, 10, 21, 37, 57, 79,103,128
};

uint8_t softCount = 0;
uint8_t softComp = 0;

إنت الرئيسي (باطل)
{
// إعدادات المنفذ
بورتب = 0;
DDRB = 0xff؛

// تمكين المقاطعة عن طريق الصدفة T0
تيمسك = (1<// وضع FastPWM، غير inv. إشارة PWM، مقياس مسبق 8
تكر0 = (1< (0<

// إعادة تعيين سجل العد
TCNT0 = 0;
التعرف الضوئي على الحروف0 = 0؛

Enable_interrupt();
بينما(1);
العودة 0؛
}

// مؤقت المقاطعة T0
#pragma Vector = TIMER0_COMP_vect
__المقاطعة باطلة Timer0CompVect(باطل)
{
ثابت uint8_t i = 0؛
ثابت uint8_t j = 0;

OCR0 = tableSin[i];
أنا = (أنا + 1) & 31؛

// برنامج PWM
softCount++;
إذا (softCount == 0)(
بورتب |= (1<softComp = tableSin[j];
ي = (ي + 1) & 31؛
}

إذا (softCount == softComp)(
بورتب &= ~(1< }
}

1.4 مرشح PWM

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

لنلقي نظرة على مثال. يتم إنشاء إشارة PWM بواسطة عداد أجهزة 8 بت مع عامل مقياس مسبق قدره 8، وتردد ساعة المتحكم الدقيق هو 8 ميجا هرتز، وعدد عينات الإشارة التناظرية هو 32.

تردد إشارة PWM سيكون مساوياً لـ:

Fpwm = Fcpu/(K*2^n) = 8000000/(8*256) = ~3906 هرتز

تردد الإشارة التناظرية سيكون مساوياً لـ:

فا = Fpwm/Ns = 3906/32 = 122 هرتز

دعونا نختار تردد قطع قدره 200 هرتز ونحسب تصنيفات مرشح RC السلبي منخفض التمرير. يتم تحديد تردد القطع لمثل هذا المرشح بالتعبير:

FC = 1/(2*بي*R*C)،

حيث R هي قيمة المقاوم (أوم)، وC هي سعة المكثف (F).

بعد تحديد قيمة أحد المكونات، يمكنك حساب قيمة الثانية. بالنسبة للمقاوم الذي تبلغ قيمته الاسمية 1 كيلو أوم، فإن سعة المكثف ستكون مساوية:


C = 1/(2*Pi*Fc*R) = 1/(6.28 * 1000*200) = ~0.8 ميكروفاراد


نختار القيمة الأقرب من سلسلة E12 - 0.82 درجة فهرنهايت. مع قيم المرشح هذه، سنحصل على إشارة تناظرية مماثلة.

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

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

ما هو PWM؟

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

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

تشكيل إشارات PWM

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

تفترض دائرة التحكم PWM القياسية المخرجات التالية:

  • الناتج المشترك (GND). يتم تنفيذه على شكل ساق متصلة بالسلك المشترك لدائرة إمداد الطاقة بالجهاز.
  • دبوس الطاقة (VC). المسؤول عن إمدادات الطاقة للدائرة. من المهم عدم الخلط بينه وبين جارته التي تحمل اسمًا مشابهًا - دبوس VCC.
  • دبوس التحكم في الطاقة (VCC). كقاعدة عامة، تتولى شريحة التحكم PWM التحكم في ترانزستورات الطاقة (ثنائية القطب أو التأثير الميداني). إذا انخفض جهد الخرج، سيتم فتح الترانزستورات جزئيًا فقط، وليس بالكامل. تسخين سريع، سوف يفشلون قريبًا، غير قادرين على التعامل مع الحمل. من أجل استبعاد هذا الاحتمال، من الضروري مراقبة جهد الإمداد عند مدخل الدائرة الدقيقة وعدم السماح له بتجاوز علامة التصميم. إذا انخفض الجهد عند هذا الدبوس عن المستوى المحدد خصيصًا لوحدة التحكم هذه، فسيتم إيقاف تشغيل جهاز التحكم. عادة، يتم توصيل هذا الطرف مباشرة بمنفذ VC.

جهد التحكم في الإخراج (خارج)

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

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

يمكن أيضًا أن تحتوي وحدات التحكم PWM الخاصة بمصادر الطاقة عالية الطاقة على عناصر تحكم في مفتاح الإخراج (برامج التشغيل). يوصى باستخدام ترانزستورات IGBT كمفاتيح إخراج.

المشاكل الرئيسية لمحولات PWM

عند تشغيل أي جهاز، من المستحيل القضاء تماما على احتمال الانهيار، وهذا ينطبق أيضا على المحولات. لا يهم تعقيد التصميم، فحتى وحدة التحكم TL494 PWM المعروفة يمكن أن تسبب مشاكل تشغيلية. الأعطال لها طبيعة مختلفة - بعضها يمكن اكتشافه بالعين، بينما يتطلب اكتشاف البعض الآخر معدات قياس خاصة.

لاستخدام وحدة تحكم PWM، يجب عليك التعرف على قائمة أعطال الجهاز الرئيسية، وفقط لاحقًا - مع خيارات القضاء عليها.

استكشاف الأخطاء وإصلاحها

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

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

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

أخيراً

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

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