جدول المحتويات:

كيفية قياس التردد العالي ودورة العمل في نفس الوقت باستخدام متحكم: 4 خطوات
كيفية قياس التردد العالي ودورة العمل في نفس الوقت باستخدام متحكم: 4 خطوات

فيديو: كيفية قياس التردد العالي ودورة العمل في نفس الوقت باستخدام متحكم: 4 خطوات

فيديو: كيفية قياس التردد العالي ودورة العمل في نفس الوقت باستخدام متحكم: 4 خطوات
فيديو: مغير سرعة يتحكم فى ٣ محركات فى نفس الوقت | المهندس محمد الشرقاوى 2024, شهر نوفمبر
Anonim
كيفية قياس التردد العالي ودورة العمل في نفس الوقت باستخدام متحكم
كيفية قياس التردد العالي ودورة العمل في نفس الوقت باستخدام متحكم
كيفية قياس التردد العالي ودورة العمل في نفس الوقت باستخدام متحكم
كيفية قياس التردد العالي ودورة العمل في نفس الوقت باستخدام متحكم
كيفية قياس التردد العالي ودورة العمل في نفس الوقت باستخدام متحكم
كيفية قياس التردد العالي ودورة العمل في نفس الوقت باستخدام متحكم

أعرف ما هو رأيك: "هاه؟ هناك الكثير من التعليمات حول كيفية استخدام ميكروكنترولر لقياس تردد الإشارة. تثاؤب." لكن انتظر ، هناك حداثة في هذا: أصف طريقة لقياس الترددات أعلى بكثير مما يمكن أن يتحمله متحكم دقيق (MCU) ودورة عمل الإشارة - كل ذلك في نفس الوقت!

يمتد نطاق تردد الجهاز من ~ 43 هرتز إلى ~ 450 كيلو هرتز ، بينما تتراوح دورة العمل من 1٪ إلى 99٪.

اسمحوا لي أن أشرح الجزء "يمكن أن تتحمل": يقيس MCU فترة إشارة الموجة المربعة ، T ، عن طريق تتبع الوقت بين حدثين انتقاليين لاحقين. على سبيل المثال ، يقفز الجهد المنخفض إلى العالي على أحد منافذ الإدخال / الإخراج الخاصة به. إنها تفعل ذلك عن طريق حساب عدد النبضات في ساعتها الداخلية. بشكل ساذج ، يجب أن يتوافق الحد الأعلى للترددات المُقاسة مع نظرية أخذ العينات نيكفيست-شانون. أي أنه سيساوي تقريبًا نصف تردد ساعة MCU. في الواقع ، يكون الحد أقل بكثير ، لأنه يجب على MCU تنفيذ التعليمات البرمجية للتعامل مع المقاطعات ، وحفظ المتغيرات ، والقيام بعمليات حسابية ، وعرض النتائج ، وما إلى ذلك. حوالي 106. ومن ثم ، فإن الحد الأعلى لمدى التردد القابل للقياس في هذه الحالة سيكون 48000/212/2 = 226.4 kHz.

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

واجب = 100٪ * P / T.

تمامًا كما في حالة التردد ، هناك حد عملي لعرض النبضة. باستخدام المثال أعلاه ، ستحد 106 دورة من عرض النبضة بما لا يقل عن 2.21 ميكروثانية. أو ما لا يقل عن 50٪ عند 226.4 كيلوهرتز.

تتمثل إحدى طرق زيادة الحد الأعلى للتردد لإشارات الموجة المربعة في تطبيق المقسمات الرقمية التي تستخدم flip-flops. قسمة تردد الإدخال على n من شأنه أن يوسع النطاق الأعلى القابل للقياس n مرة. هذه أخبار رائعة ، فالفواصل الرقمية بها عيب أساسي واحد: الإشارة المقسمة تفقد عرض النبضة (ودورة العمل) المعلومات! نظرًا للطريقة التي تعمل بها المقسمات ، فإن إنتاجها دائمًا ما يكون 50 ٪ من دورة العمل. المشكله …

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

الخطوة 1: قسم التردد الرقمي

قسم التردد الرقمي
قسم التردد الرقمي
قسم التردد الرقمي
قسم التردد الرقمي
قسم التردد الرقمي
قسم التردد الرقمي

تستخدم فواصل التردد الرقمية التقليدية شبشب ؛ يشرح هذا البرنامج التعليمي بشكل جيد المبادئ حول كيفية إنشاء فواصل باستخدام JK flip-flops. هذا يحل مشكلة ترددات الإدخال العالية جدًا بالنسبة إلى MCU ، ولكن لها عيبًا رئيسيًا واحدًا: الإشارة المقسمة لها دورة عمل بنسبة 50 ٪ بغض النظر عن واجب إشارة الإدخال! لمعرفة سبب ذلك ، انظر إلى أول رقمين. يتم تغذية الإشارة الأصلية ذات الفترة T وعرض النبضة P في دبوس الساعة الخاص بـ JK flip-flop بينما يتم تثبيت دبابيس J و K عالياً في جميع الأوقات (الشكل الأول). 3.3V منطق يفترض طوال الوقت. لنفترض أن flip-flop يتم تشغيله بواسطة الحافة الإيجابية (أي الصاعدة) للساعة. في ظل هذه الظروف ، تحدث تغييرات في حالة دبوس الإخراج ("تقلبات" فردية و "يتخبط") في كل مرة ينتقل فيها دبوس الساعة من الأقل إلى الأعلى. يتم تجاهل انتقال الساعة من الأعلى إلى المنخفض (أي الحافة السلبية) تمامًا. انظر الشكل الثاني. يصدر دبوس الخرج Q إشارة تبلغ مدتها ضعف الفترة الأصلية ، أي أن ترددها ينخفض إلى النصف. يكون عرض النبضة الناتج دائمًا مساويًا لـ T. وبالتالي ، يتم فقد عرض النبضة الأصلي ، P.

إضافة JK flip-flop آخر في التكوين الموضح في الشكل الثالث يقسم التردد الأصلي على 4. إضافة المزيد من flip-flops بنفس الطريقة المتسلسلة تقسم التردد على القوى اللاحقة 2: 8 ، 16 ، 32 ، إلخ.

المشكلة: كيف نقسم تردد الموجة المربعة مع الحفاظ على عرض النبضة؟

الفكرة هي إضافة حافة سلبية بشكل صحيح تثيرها JK flip-flop إلى المزيج. دعنا نسميها "Neg FF" ؛ انظر الشكل الرابع. هنا ، تعني كلمة "بشكل صحيح" أن دبابيس J و K في flip-flop الجديد مرتبطة بدبابيس إخراج Q و Qbar ، على التوالي ، للمقسم بمقدار 4 ("Pos FF") الموضح في الشكل السابق. (هنا ، "الشريط" هو الشريط الأفقي فوق رمز Q الذي يشير إلى النفي المنطقي.) لمعرفة ما يحققه هذا ، ألق نظرة على جدول الوظائف لـ "Neg FF" في الشكل الخامس: دبابيس إخراج Neg ، Q و Qbar ، تعكس حالة دبابيس الإدخال ، J و K ، على التوالي. مما يعني أنها تعكس حالة Pos 'Q و Qbar. ولكن ، يجب أن تنتظر حركة Neg flip-flop حتى الحافة السلبية للإشارة الأصلية ، والتي تصل في الوقت P بعد الحافة الإيجابية. آها!

يتم توضيح الأشكال الموجية الناتجة في الشكل السادس. "Pos Q" ينتج إشارة عند 1/4 ، "Pos Qbar" هو معكوس ، "Neg Q" يتبع "Pos Q" متحركًا بواسطة عرض النبضة P ، و "Neg Qbar" هو معكوسها. يمكنك التحقق من أن منطقي AND لـ "Pos Qbar" و "Neg Q" ينتج قطار نبضي يتميز بعرض النبضة الأصلي P و 1/4 التردد. بنغو!

في البداية ، استخدمت إشارة الإخراج هذه لتغذية MCU. ومع ذلك ، فقد تبين أنه يمثل مشكلة بالنسبة لعروض النبض القصيرة جدًا بسبب الحد من دورات MCU البالغ 106 دورات المذكورة في المقدمة. لقد قمت بحل هذه المشكلة الصغيرة باختيار ناتج آخر: "Pos Qbar" و "Neg Qbar" بدلاً من ذلك. يجب أن تقنعك نظرة واحدة على أشكال الموجة أن عرض النبضة لهذا الشكل الموجي المعين ، P '، يختلف بين T و 2T بدلاً من النطاق (0 ، T) لـ P. يمكن استرداد P بسهولة من P' عن طريق:

P = 2T - P '

الخطوة 2: الأجهزة الموصى بها

الأجهزة الموصى بها
الأجهزة الموصى بها
الأجهزة الموصى بها
الأجهزة الموصى بها
الأجهزة الموصى بها
الأجهزة الموصى بها

أنا حقًا أحب الوافد الجديد نسبيًا للهواة الإلكترونية: Atmel SAM D21 MCUs استنادًا إلى معالج ARM Cortex M0 + 32 بت الذي يعمل بمعدل ساعة 48 ميجاهرتز ، أعلى بكثير من Atmels الأقدم. لهذا المشروع اشتريت:

  • لوحة ItsyBitsy M0 Express MCU من Adafruit
  • تصادف أن لدي بطارية LiPo قابلة لإعادة الشحن من Adafruit
  • شاشة OLED أحادية اللون 128 × 32 SPI (لقد خمنت ذلك: Adafruit)
  • JK flip-flop SN74HC109 ذو الحافة الموجبة المزدوجة من شركة Texas Instruments
  • JK flip-flop SN74HC112 مزدوج الحافة المشغلة من شركة Texas Instruments
  • الرباعي والبوابة CD74AC08E من شركة Texas Instruments
  • رباعية أو بوابة CD74AC32E من شركة Texas Instruments

الخطوة 3: الدائرة

الدائرة
الدائرة
الدائرة
الدائرة

يوضح الشكل الأول مخططًا مبسطًا لمقياس التردد / العمل. يفترض منطق 3.3 V CMOS طوال الوقت. وبالتالي ، يجب أن يكون اتساع الموجة المربعة للإدخال بين V المقابلIH المستوى (أي 2 فولت) و 3.3 فولت إذا لم يكن كذلك ، فأنت بحاجة إلى توسيعه أو خفضه وفقًا لذلك. في معظم الحالات ، يكفي استخدام مقسم جهد بسيط. إذا كنت ترغب في تصميم نسختك من المقياس على مستوى منطقي مختلف ، فعليك استخدام وحدة تحكم صغيرة أخرى (MCU) وبطارية وشاشة تعمل بالمستوى المطلوب. تعمل البوابات المنطقية والوجه المتأرجح المستخدمة في هذا المشروع بمستويات منطقية في أي مكان بين 2 و 6 فولت ويجب أن تكون على ما يرام في معظم الحالات.

كما هو موضح ، يستخدم ItsyBitsy MCU دبابيس 9-13 للتواصل مع الشاشة من خلال بروتوكول SPI الخاص بالبرنامج. يوفر دبوس 3V الطاقة إلى الدائرة بأكملها. يقبل دبوس الإدخال الرقمي 3 الإشارة التي تم تحليلها ، بينما يتحكم الطرفان 2 و 4 في مصدر الإشارة: إما إشارة مباشرة تأتي عبر البوابة AND3 (ترددات دخل منخفضة) ، أو إشارة مقسمة على 4 عبر البوابة AND4 (ترددات دخل عالية) كما هو موضح في الخطوة 2 يكتشف الرمز ، الذي تمت مناقشته في الخطوة التالية ، تلقائيًا نطاق التردد الوارد ويقوم بتبديل مصدر الإشارة بشكل مناسب.

لا يُظهر المخطط التعقيد الحقيقي لاتصالات الرقاقة الرقمية. تُظهر الصورة الثانية كيف سيبدو المشروع على لوح التجارب. تأتي إشارة الإدخال عبر سلك أحمر إلى دبوس 2CLK من الحافة المزدوجة الموجبة. تنبيه: في العادة ، يجب أن تكون جميع دبابيس J و K لهذا flip-flop عالية ، لكن SN74HC109 يتميز على وجه الخصوص بدبوس Kbar - دبوس K مقلوب - بدلاً من ذلك. ومن ثم ، يجب تأريض هذا الدبوس! أول قلب ذو حافة سلبية في SN74HC112 له دبوس 1K و 1J متصل بدبابيس 1Q و 1Qbar من SN74HC109. التقليب الثاني في SN74HC112 غير مستخدم ودبابيس الإدخال (2K ، 2J ، 2CLRbar) مؤرضة. يجب توصيل جميع المسامير الإضافية الأخرى PREbar (معدة مسبقًا) و CLRbar (الشفافة) في جميع flip-flops بارتفاع منطقي. الساعة غير المستخدمة ودبابيس الإخراج تترك غير متصلة. وبالمثل ، يتم تأريض دبابيس الإدخال غير المستخدمة في جميع البوابات ، بينما تُترك دبابيس الإخراج غير المستخدمة غير متصلة. كما ناقشت في "Invisible Killer of the Phone Ring" Instructable ، فإن تأريض دبابيس الإدخال غير المستخدمة للرقائق المنطقية يزيل التذبذبات العشوائية ويوفر طاقة البطارية.

الخطوة الرابعة: الكود وقياس الترددات المنخفضة

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

تلاحظ وحدة المعالجة المركزية هذه التحولات عبر مقاطعات الأجهزة. يحتوي SAMD21 على عدة ساعات ؛ يستخدم الكود الخاص بي TC3 واحد. في البداية ، بدأت بقراءة ورقة بيانات M0 التي تستعد لبذل الكثير من الجهد في ترميز معالج المقاطعة ، ولكن سرعان ما اكتشفت رمزًا ذا صلة إلى حد كبير في منشورات منتدى Arduino بواسطة المستخدمين electro_95 و MartinL و Rucus الذين تكون مساهمتهم هي اعترف على النحو الواجب. لقد قمت بدمج وتعديل كودهم المدمج في كود خاص بي ؛ يوفر لي الكثير من الوقت!

كما ذكرت سابقًا ، فإن دقة الإشارة محدودة بـ ~ 106 دورة لوحدة المعالجة المركزية لتنفيذ التعليمات البرمجية بين المقاطعات. يعتني التقسيم الرقمي مع الحفاظ على عرض النبضة بالترددات العالية. من ناحية أخرى ، تشكل الترددات المنخفضة تحديًا آخر: نظرًا لأن عداد الساعة TC3 يبلغ طوله 16 بتًا ، فإنه يفيض بعد تجاوز حد التهم البالغ 65،536. يمكن للمرء التعامل مع هذا الموقف عن طريق إضافة مقاطعة تجاوز السعة ، ولكن اختار حلاً مختلفًا: يمكن لـ TC3 استخدام ساعة وحدة المعالجة المركزية (أي مقسمة بالبرمجيات) مسبقًا بدلاً من الجهاز 48 ميجاهرتز. وبالتالي ، إذا اقتربت فترة الإشارة من حد الفائض ، يمكن للكود أن يوجه TC3 لاستخدام عدد 24 ميغاهيرتز للفترة التالية ، وفويلا ، ينخفض العداد إلى أقل من 32 ، 768 عددًا. بالنسبة للترددات الأقل ، يمكن توجيه TC3 لعد نبضات MHz 12 ، وما إلى ذلك. يتم تحديد المقياس المسبق المناسب تلقائيًا بناءً على تردد الإشارة ، مع التباطؤ ، من أجل الحفاظ على عداد TC3 ضمن حد الفائض. نتيجة لذلك ، يبلغ الحد الأدنى لنطاق الجهاز حوالي 43 هرتز.

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

رابط إلى الكود.

موصى به: