في تقريري الأخيرين ، تحدثت عن وحدة الطاقة ولوحة التحكم استنادًا إلى متحكم STM32F334R8T6 ، الذي تم إنشاؤه خصيصًا لتنفيذ أنظمة التحكم لمحولات الطاقة ومحركات الطاقة الكهربائية. تم النظر في مثال على محول التيار المتردد / التيار المتردد ، والذي كان مظاهرة ، وليس بناء مكتمل. الآن حان الوقت للقيام بشيء بسيط ، لكنه مفيد ، والأهم من ذلك أنجز.
ترتبط معظم المشكلات المتعلقة بالمشروع وإلكترونيات الطاقة بطبولوجيا محددة: شخص مهتم بمعرفة خوارزمية التحكم في PFC ، يريد شخص ما أن يتعلم كيفية بناء شركة ذات جسر نصف ، ولكن الطبولوجيا الأكثر شعبية هي بلا شك. بعد كل شيء ، فإن محول باك (المعروف أيضا باسم باك باك) هو المحول الرئيسي لمشاريع الأكثر إثارة للاهتمام: هذا هو السائق لمصابيح LED ، أساس وحدة تحكم MPPT للألواح الشمسية وأجهزة الشحن وأكثر من ذلك بكثير.
تحتوي الشبكة على الكثير من المعلومات حول باك ، بما في ذلك أوراق البيانات ، لكنها مبعثرة وأنا شخصياً لم أجد مواد تصف بالتفصيل عملية إنشاء محول باك مع التحكم الرقمي. حان الوقت لإصلاحها. لا يوجد عمليا أي رياضيات ، والتفسير هو "على الأصابع" ، لذلك سيكون من المثير للاهتمام لكل شخص مرتبط بطريقة ما بالإلكترونيات.

مقدمة
تحتاج أولاً إلى فهم ما نريد الحصول عليه في النهاية وما هو التمهيدي الذي لدينا. طوبولوجيا باك تنحني ، وهذا يسمح لك ببناء محول جهد تنحي. كما سترى لاحقًا ، فإن الجهد في إخراج محول باك يعتمد بشكل خطي تقريبًا على الجهد عند الإدخال ، لذلك تحتاج إلى إضافة ملاحظات. سأتحدث اليوم عن التغذية المرتدة للجهد البسيط ، وهو الأكثر سهولة ويسمح لك بفهم مبدأ التشغيل ، في حين أن هذه التعليقات كافية لك لتنفيذ معظم المهام.
في نهاية المقال ، سوف نحصل على مصدر جهد ثابت وفقًا لطوبولوجيا "باك باك" التي تعمل على تردد عالٍ إلى حد ما مع التحكم الرقمي ، ويتم تنفيذها على STM32F334R8T6 باستخدام High Resolution PWM (HRPWM). نطاق جهد الدخل هو 15 ... 60V ، الجهد الناتج هو 12V ، والحد الأقصى للإخراج الحالي هو 2A.
الفصل 1. مبدأ باك طوبولوجيا
سأبدأ في التعرّف على البداية من الأساسيات وسأحسّن تدريجياً المحول لدينا "باك المتزامن" هو نسخة من نسخة محسنة مع زيادة الكفاءة وتعقيد التحكم. الإصدار الأساسي من الهيكل الذي ربما استخدمته هو كما يلي:

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

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

عندما تعرفت على هذه الطوبولوجيا في الصف السادس إلى السابع ، لم أفهم على الفور سبب عدم عمل الصمام الثنائي الحالي في المرحلة الأولى ، ويبدو الآن أنه أمر شائع ، لكنني أعتقد أنه من الجدير بالذكر. عندما يكون VT1 مفتوحًا ، يتم تطبيق + VIN المحتملة ، على سبيل المثال ، + 20V ، على الكاثود الخاص بالديود VD1 ، والإمكانات الأرضية ، على التوالي ، عند أنود الصمام الثنائي. لكي يتدفق التيار من خلال الصمام الثنائي ، يجب أن يكون عكس ذلك تمامًا: يجب أن تكون الإمكانات الموجودة في القطب الموجب أكبر من الإمكانات الموجودة في الكاثود ، وبالتالي ، في مرحلة تخزين الطاقة ، يكون الصمام الثنائي "مغلقًا". في مرحلة التفريغ ، يغلق الصمام الثنائي الدائرة بالفعل ، لا يعمل + VIN على الكاثود الخاص به ولا "يقفله". آمل أن أوضح بوضوح.
ثم يجب أن يكون لديك سؤال: "وما الجهد سيكون في الإخراج ، إذا طبقنا 20V على المدخلات؟". كالعادة ، كل شيء بسيط:

كما يتضح من الصيغة ، فإن جهد الخرج يعتمد خطيًا على عامل الواجب لإشارة PWM التي نوفرها إلى الترانزستور VT1. إذا كان شخص ما لا يعرف أو ينسى "عامل الواجب" ، فهذه هي نسبة الوقت الذي يكون فيه الترانزستور في حالة مفتوحة إلى طول الفترة. يمكن أن يأخذ هذا المعامل قيمة من 0 إلى 1 أو من 0 إلى 100٪. علاوة على ذلك ، سوف نعمل مع هذا الرقم المحدد عند التحكم في المحول ، ولكن لفهم الجوهر ، دعنا نستبدل هذه العلاقة في الصيغة:

تردد تشغيل محول باك ثابت ويتم تحديده أثناء التصميم ، لا يتغير أثناء التشغيل ، وبالتالي فإن الفترة (T) ثابتة. اتضح أن الجهد الناتج يعتمد مباشرة على كميتين المادية:
- من الوقت الذي نفتتح فيه الترانزستور العلوي (VT1) - كلما كان مفتوحًا ، زادت الطاقة المتراكمة في مرشح LC ، وبالتالي ، يكون جهد الخرج أعلى ؛
- من الجهد الكهربي للإدخال ، على سبيل المثال ، إذا قمنا بتثبيت التعبئة بنسبة 50٪ وتغيير Vin من 20 إلى 40 فولت ، فسوف يتغير الجهد الناتج أيضًا من 10 إلى 20 فولت.
أعتقد أن الصورة العامة ومبدأ العمل قد بدأا في جذبكم ، دعونا نصلحها الآن ونلقي نظرة على التذبذبات الحقيقية ونتحقق من هذه النسبة في الممارسة العملية. لقد قمت بتجميع تخطيط باك الذي تم تحميله بـ 10 وات LED. لقد استخدمت 3 قنوات من الذبذبات ، والتي يتم تضمينها في النقاط التالية:
تجربة رقم 1 - إدخال الجهد (فين) ثابت 20V ، تتغير دورة العمل- Vin = 20V ، D = 25 ٪ ، Vout = D * Vin = 0.25 * 20V = 5V

- فين = 20V ، D = 50 ٪ ، Vout = D * Vin = 0.5 * 20V = 10V

كما ترون في الطول الموجي ، فإن العلاقة بين الجهد الناتج ودورة العمل صحيحة. بالطبع ، كانت هذه تجربة "مثالية" ؛ في الواقع ، فإن جهد الدخل غير مستقر ويطفو في نطاق واسع إلى حد ما. دعونا الآن نرى ما سيكون الاعتماد على الجهد المدخلات في ملء ثابت.
تجربة رقم 2 - الجهد الإدخال (فين) يتغير ، ودورة العمل ثابتة وتساوي 50 ٪- فين = 15V ، D = 50 ٪ ، Vout = D * Vin = 0.5 * 15V = 7.5V

- فين = 20V ، D = 50 ٪ ، Vout = D * Vin = 0.5 * 20V = 10V

- فين = 30V ، D = 50 ٪ ، Vout = D * Vin = 0.5 * 30V = 15V

لقد رأينا الآن من الناحية العملية أن جهد الخرج يعتمد أيضًا خطيًا على جهد الدخل في دورة العمل الثابتة. هل تفهم بالفعل كيف ستستقر المخرجات؟ مبدأ التثبيت بسيط مثل الصيغة نفسها - Vout تبلغ 12 فولتًا وثابتًا ، يمكننا تغيير دورة التشغيل بمساعدة متحكم دقيق ، لذلك إذا زادت فين ، زادت فولطية الخرج أيضًا وفي هذه اللحظة نقوم بتقليل عامل التشغيل حتى يصبح 12 فولتًا مرة أخرى. وفقًا لذلك ، عندما تنقص Vin ، نبدأ في زيادة دورة التشغيل حتى يصبح الجهد Vout 12 فولت.
ماذا أود أن ألفت الانتباه في القسم النظري ... آه ، نعم! بالتأكيد أنت تتساءل كيف تحولت PWM بسعة 20 فولت بعد ترانزستور في نهاية المطاف إلى جهد ثابت مع تموجات هزيلة؟ في الواقع ، إذا وضعنا مسبار أحمر من مرسمة الذبذبات في مصدر الترانزستور VT1 ، التحقيق الأخضر بعد مرشح LC ، فسوف نرى الصورة التالية:

يمكنك أن ترى كيف يقوم مرشح LC "بتليين" الجهد المتناوب إلى جهد ثابت ، ولكن الشيء هو أن الطاقة المخزنة في الحث والسعة لا يمكن أن تستهلك على الفور ، وبالتالي لا يمكن تغيير الجهد على الفور. نحصل على ذلك في الوقت الذي يصبح فيه PWM أمام المحث 0V ، يتم توفير الجهد الناتج من الطاقة المخزنة في المرشح ، الذي لا يمتص على الفور ويكفي للحفاظ على الجهد في وقت إغلاق VT1. كل شيء على الأصابع بالطبع ، إذا كان من المثير للاهتمام الخوض في أعمق ، فأنا كما هو الحال دائمًا أنصح
B. Yu. Semenova "إلكترونيات الطاقة: من البسيط إلى المعقد" ، هناك فصل كامل عن باك (المروحية).
الكفاح من أجل الكفاءة
كما كتبت قبل قليل ، كانت هذه هي النسخة الأساسية من الطوبولوجيا. العيب الرئيسي هو خسائر كبيرة في الصمام الثنائي قفل. ما هو التيار في الأنظمة البسيطة التي تعمل على MK و CPLD؟ عادةً ما يكون خلال 1A ، وأحيانًا 2A ، إذا كان هناك نوع من شاشة TFT. في هذه الحالة ، ستكون الخسارة حتى عند استخدام الصمام الثنائي شوتكي 0.4V * 2A = 0.8 واط. من حيث المبدأ ، يمكن تبديد الكثير على حزمة SMA / SMB دون مشاكل ، على الرغم من أن الجهد الكهربي 3.3 فولت و 2 أمبير ، لا يزال فقدان 0.8 فولت كفاءة بنسبة 12٪!
الآن تخيل الحالة عندما يكون التيار لدينا هو 20A. يمكن أن يكون جهاز تحكم MPPT ونظام طاقة FPGA كبيرًا وغير ذلك الكثير. في هذه الحالة ، ستكون الخسارة 0.4V * 20A = 8 W! ماذا يعني هذا؟ على سبيل المثال ، في حالة MPPT ، سيكون لديك طاقة أقل مخزنة في البطارية ، في حالة طاقة FPGA ستكون 8 واط إضافية من الحرارة ، والتي يجب أن تتبدد في مكان ما وفي كلتا الحالتين هذا هو فقدان الكفاءة الكلية. ما الذي يمكن عمله؟ ودعونا نستبدل ديود VD1 بموصليت N-channel آخر ونحصل على هذه الدائرة:

الآن يعمل الترانزستور VT2 كصمام ثنائي ، أي أنه يجري التيار عند إغلاق VT1. لم يكن الصمام الثنائي ، الذي كان في الإصدار الأساسي ، بحاجة إلى التحكم ، والآن نحن مضطرون إلى دفع قناة تحكم إضافية بإشارة PWM لتحسين الأداء.
أولاً ، دعنا نحسب مقدار تخفيضنا للخسائر. إن مقاومة قناة mosfet الحديثة هي عدة ميغا أوم. على سبيل المثال ، لنأخذ ترانزستورًا من وحدة الطاقة الخاصة بي ، والتي تحدثت عنها في مقالات سابقة -
IPP083N10N5AKSA1 مع مقاومة قناة تبلغ 8.3 مللي أمبير. نحصل على خسائر ثابتة تساوي 0.0083 * 20A * 20A = 3.32 واط. بالطبع ، ستكون هناك خسائر ديناميكية ، والتي مع سائق مصمم بشكل مناسب لن يكون أكثر من 20 ٪ ، أي أن إجمالي الخسائر بالنسبة لنا ستكون 4 واط. لقد حصلنا على أن الانتقال من باك التقليدية إلى واحد متزامن يمكن أن يقلل من فقدان الصمام الثنائي.
الآن دعونا نلقي نظرة على الإدارة الأكثر تعقيدًا. كما فهمنا بالفعل ، كان الصمام الثنائي للقفل يعمل عند إغلاق VT1. من هذا ، يجب إغلاق VT2 عندما يكون VT1 مفتوحًا ، وبالتالي ، يكون VT2 مفتوحًا عند إغلاق VT1. إذا كان الأمر أكثر بساطة ، فإن الترانزستورات تعمل بالتناوب: إما أن يكون أحدهما مفتوحًا أو الآخر ، وإذا كان كلا الترانزستورات مفتوحًا ، فسيكون هناك تيار من خلال ، لأن فهي مترابطة بين VIN و GND. دعونا نرى ما يجب أن تكون عليه الإشارة ، حيث "القناة الصفراء" هي الترانزستور VT1 و "القناة الخضراء" هي الترانزستور VT2:

كما ترون ، إذا تم تعيين المنطق "1" في القناة الصفراء (على VT1) ، فيجب حينئذٍ تعيين "0" المنطقي في القناة الخضراء (على VT2). نحصل على VT1 التي تضخ الطاقة في مرشح LC ، ويغلق VT2 الدائرة في مرحلة التفريغ.
هناك نقطة أخرى سمعتها أو قرأت عنها أعلاه - من
خلال الحالية . والحقيقة هي أن الترانزستور الحقيقي ، وليس المثالي (mosfet) لديه بعض السعة على البوابة ، وهذا في الواقع ، لا ينتقل على الفور من log.0 إلى log.1 ، والطاقة في الترانزستور لا تذوب على الفور ، مما يؤدي إلى الترانزستورات لفترة قصيرة في وقت التبديل ، قد يكون كلاهما مفتوحًا. هذا يمكن أن يؤدي ، في أحسن الأحوال ، إلى زيادة الخسائر ، مما يعني التدفئة ، وفي أسوأ الأحوال ، إلى باباه ، لأن خلال الحالي هو ماس كهربائى مشترك (ماس كهربائى). لتجنب ذلك ، يتم تقديم تأخير أو ما يسمى بالوقت المميت بين إيقاف تشغيل الترانزستور وتشغيل الآخر. يبدو مثل هذا:

أعتقد أنك لاحظت وجود فجوة صغيرة في حدود تبديل الإشارة. لقد قمت بتثبيته كبيرًا عن قصد (حوالي 3٪) حتى تتمكن من رؤيته ، في الحقيقة إنه أصغر بكثير. بشكل عام ، يتم تعيين وقت التوقف (المشار إليه فيما يلي باسم dt) بأقصر وقت ممكن ، ولكن في الوقت نفسه يكفي للسماح لإغلاق الترانزستورات. يمكن حسابه ، أو يمكن تحديده بشكل تجريبي ، وأعتقد شخصياً أن هذا الخيار وهذا طبيعي ، لكن من المحتمل أن يقول لك جيدي الملتحي: "من الضروري التفكير فيه ، ولكن من الأفضل وضع نموذج له!" هذا صحيح بالتأكيد ، لكن قرر بنفسك - إذا لم تكن كسولًا جدًا ، فقم بطراز LTspice مع الأخذ في الاعتبار الحث الطائش والسعة للموصلات والمكونات.
بالنسبة للموقف في هذه المقالة ، قمت بتعيين dt إلى ~ 100 ns (في الواقع 104). الوحدة الخاصة بي تسمح لك بتثبيته بشكل أقل ، لأن يتم تطبيق برنامج التشغيل بشكل قاسي للغاية ، ولكن بالتأكيد سيقوم الكثير منكم بتصميم المخطط الخاص بك بدون وحدتي ، مما يعني أنه من المحتمل أن يكون هناك مخاط. حتى لا تتعثر بسبب المخاطرة ، سأتركه بهامش وإذا كان لديك سلك عادي على اللوحة ، فيمكنك أنت بنفسك تقليله - ثم في الفصل الموجود في الكود سوف ترى كيف ، الآن ، نرى ما إذا كان هناك بالفعل:

يمكن ملاحظة أن dt تدوم 2.5 تقسيمًا وأن كل قسم هو 40 ns ، مما يعني أن المدة هي ~ 100 ns ، كما كان مقصودًا. آمل أن تفهم سبب الحاجة إلى dt ، والمدة التي يجب أن تكون في المدة ، وكيف يعمل المحول وفقًا لطوبولوجيا باك. إذا لم تفهم ، فعادة كالعادة ، يتم قبول الأسئلة الواردة في التعليقات و PM والبريد ، بينما يبدو أنني أجيب على الجميع.
الفصل 2. حساب المكونات الرئيسية
في هذا الجزء من المقالة ، سأوضح كيفية حساب مكونات الطاقة الرئيسية بسرعة وبسرعة لمحول باك متزامن ، وهي: المكثفات مغو ، المدخلات والمخرجات ، الترانزستورات.
دعني أذكرك ببيانات الإدخال:- مساهمة الجهد: 15 ... 30V
- انتاج التيار الكهربائي: 12V
- الانتاج الحالي تقييمه: 2A
- تردد التبديل: 100 كيلو هرتز
يتم اختيار الجهد الناتج من 12V ل أخطط لاستخدام مصباح 12V 20W كحمل ، والذي تبين أنه في متناول اليد وهو حمل واضح للغاية. استباقًا لأسئلة "الخبراء" في التعليقات - نعم ، أنا مدرك أن مؤشر LED يحتاج إلى التثبيت الحالي ، لكننا نقوم بعد ذلك بتثبيت الجهد الكهربائي وأن مؤشر LED هو مجرد عبء.
يتم اختيار جهد الدخل من الجرافة ، يمكنك القيام بـ 15 ... 60V ، لذلك إذا كنت مهتمًا بمجموعة مختلفة ، فيمكنك حساب قيمة المكونات لنفسك. تم اختيار تيار مقنن من 2A للحصول على طاقة إخراج تصل إلى 12V * 2A = 24 W ، أي أكثر بقليل من المطلوب لمصباح LED. الصمام نفسه في 12V يستهلك حوالي 1.82 ... 1.9A.
ظلت المعلمة الأكثر إثارة للاهتمام - تردد التشغيل للمحول. ما ينبغي أن يكون؟ سوف تضطر إلى الإجابة هنا بنفسك ، في حالتي فهو 100 كيلو هرتز. يعتمد الاختيار على نقطتين:
- تؤدي الزيادة في التردد إلى انخفاض في الحث الضروري لمكثف المحث والإدخال والإخراج. ببساطة - مع زيادة في التردد ، تنخفض أبعاد الجهاز. مع تناقص التردد ، تزداد الأبعاد.
- انخفاض في التردد يؤدي إلى زيادة في الكفاءة ، منذ ذلك الحين يتم تقليل الخسائر الديناميكية عند تبديل الترانزستورات. زيادة التردد يزيد المكون الديناميكي للترانزستورات وبالتالي يقلل من الكفاءة.
الآن لن أناقش اختيار التردد ، فقط افترض أن 100 كيلو هرتز. بعد عرض منهجية الحساب ، سنعود إلى هذا السؤال ، لأن وفقًا للصيغ ، سيكون اعتماد تصنيفات المكونات الرئيسية على تردد التشغيل أكثر وضوحًا.
الخطوة 1. اختيار الترانزستوراتسنهتم بشكل أساسي بثلاثة معلمات: الحد الأقصى للجهد "مصدر الصرف" ، ومقاومة القناة في الحالة المفتوحة وسعة البوابة. يتم تطبيق الإمكانات الكاملة لمصدر الجهد (Vin) على الترانزستور ، وهناك أيضًا طفرات في وقت التبديل. لديك خياران: خذ الترانزستور VT1 و VT2 بهامش جهد أو قصة جهاز sn RC في VT2. في حالتي ، تحتوي وحدة الطاقة على ترانزستورات 100 فولت ، وبمدخل 30 فولت ، يمثل هذا هامشًا كبيرًا من الجهد ، حتى 60 فولت كان كافيًا للاستغناء عن السنانير وحماية الترانزستور من الانهيار.
قناة المقاومة - أصغر كلما كان ذلك أفضل ، ولكن هناك واحد ولكن. مع انخفاض في مقاومة القناة ، نقوم بتقليل الخسائر الثابتة (I
2 * R) ، لكن التكنولوجيا تزيد من زيادة سعة البوابة ، وهذا يؤدي إلى زيادة في الخسائر الديناميكية. عليك أن تجد أرضية وسط بين "مقاومة القناة" و "سعة الغالق". بالنسبة إلى الفولتية التي تصل إلى 100 فولت ، أنصحك أن تنتبه إلى الترانزستورات سلسلة Infineon OptiMOS ، وأنظر بالفعل في الفولتية العالية بنفسك من خلال البحث حدودي أو حتى باتجاه الترانزستورات IGBT. يتم دعم هذا الأخير أيضًا بواسطة وحدة الطاقة الخاصة بي ولا تتطلب أي تغييرات على برنامج التشغيل.
الخطوة 2. حساب محاثة محثمن الضروري حساب الحد الأدنى لقيمة الحث ، والذي سيتيح لمحول التيار المستمر / المستمر لدينا العمل في الوضع الحالي المستمر (L
min ):

من حيث المتغيرات ، أعتقد أن كل شيء واضح باستثناء - k
ind . هذه هي التيارات المموج المسموح بها في المحث ، وعادة ما تختار قيمة 20 ... 50 ٪ ، لكنني دائما تقريبا تعيين 30 ٪. كلما كانت تموج التيار أصغر ، كلما كنا بعيدًا عن حدود تشبع القلب الذي أصيب عليه المحث ، ولكن كما يتضح من الصيغة ، هناك حاجة إلى محث كبير للمحث.
الآن نحسب الحد الأدنى لقيمة الحث ، والتي ستكون ضرورية لبيانات الإدخال الخاصة بي ، وتموج سأضع 30 ٪ كما كتبت أعلاه:

يجب أن يكون مفهوما أن هذا هو الحد الأدنى من الحث المطلوب لمحول باك للعمل في وضع التيارات التي لا تنفصم ، ولكن مرة أخرى هناك فارق بسيط. في عملية زيادة التيار المؤثر في اللف ، نفاذية القلب ومحث الحث دون التيار والتيار مختلفان إلى حد ما ، يختلف الاعتماد على المواد المختلفة. , L
min dc/dc , , . 10-15% Kool Mu, .
3.«», , , . R26/14/11 (R — , — ) Kool Mu 60, —
ليبكوس .
الآن تحتاج إلى حساب عدد المنعطفات والأسلاك التي تحتاج إلى الرياح. لنبدأ بعدد الأدوار ربما. هناك مثل هذه المعلمة مريحة في وثائق لب - A L ، والتي تساوي 75 نانومتر / بدوره 2 . هنا بعناية - يتحول في مربع! للعثور على الحث الأساسي ، اضرب A L بعدد المنعطفات في المربع. من هنا ، تبدو صيغة العثور على عدد المنعطفات كما يلي:
للحصول على الحد الأدنى المطلوب من الحث ، من الضروري أن يتم تشغيل 40 دورة ، لكن كما ناقشنا بالفعل ، من الضروري زيادة الحث قليلاً ، دعنا نضيف 3 دورات. نأخذ الحلقة والرياح 43 المنعطفات ، نحصل على مثل هذا الخنق:
الآن ، من أجل الاهتمام ، نحسب ما يجب أن يتحول
الحث:
وللموثوقية ، نتحقق من محاثة المحث بالملقط : 137 μH ، عظيم! تقاربت النتائج، خطأ في حدود ± 8٪ إلى A L . تجدر الإشارة هنا - إذا لم يكن لديك القدرة على قياس الحث ، ثم لا تشتري النوى من أجل aliexpress ، في ChiDa ، الكمبيوتر والإلكترونيات وغيرها من "المطاعم" - هناك فرصة للحصول على جوهر من مادة أخرى أو مع نفاذية خاطئة ، ولكن مع وضع العلامات الصحيحة - التحقق منها. من دون القدرة على قياس الحث ، فلن تتمكن من التحقق من A L وستكون قادرًا على تعذيب نفسك بحثًا عن سبب "babakh" الخاص بالمحول.هذا يطرح سؤالاً معقولاً - "هل سيكون لدينا ما يكفي من النواة وأبعادها؟ ربما كان من الضروري أكثر من ذلك؟ ". بالنسبة إلى مادة Kool Mu ، يبلغ الحد من الحث المغنطيسي 0.5 طن ؛ وفي الممارسة ، من الأفضل عدم الزحف إلى ما وراء عتبة تزيد عن 0.45 طن دون أن يكون ذلك ضروريًا بشكل واضح. اتضح أن الجرح الملولب على القلب ليس من الضروري أن يحدث تحريضًا في كل نقطة من النواة بأكثر من 0.45 طن ، لذلك نحن نتحقق من ذلك:
كما ترون ، فإن قيمة الحث المغناطيسي 0.06 T أقل بكثير من الحد 0.5 T. يمكن استخلاص استنتاجين من هذا: أولاً ، لن يذهب الخانق إلى التشبع ، وثانيًا ، النواة كبيرة جدًا وقوية في اتخاذ حلقة أصغر كثيرًا. أخذت حلقة R26 ببساطة لأن لدي صندوقها بالكامل ، لا يوجد معنى سري آخر.يبقى تحديد أي جزء من السلك سيأخذ للمحث. أولاً ، أنصحك بشدة بعدم أخذ سلك يبلغ قطره أكثر من 1 ... 1.2 مم في مثل هذه الترددات العالية ، لأن تأثير الجلد بالفعل له تأثير كبير ويقلل من المقطع العرضي الفعال. ثانياً ، يجب تحديد الكثافة الحالية في السلك استنادًا إلى ظروف التبريد والطاقة. في القوى المنخفضة (حتى 10-20 واط) ، يمكنك وضع كثافة تيار بأمان قدرها 8..10 A / mm 2 حتى بدون تدفق الهواء. عند تشغيل ما يصل إلى عدة كيلووات ، من الأفضل وضع الكثافة الحالية في حدود 5 ... 6 A / mm 2 ، وعند القدرة من 10 كيلو واط فصاعداً سيكون من المعقول تخفيض الكثافة الحالية إلى 3 ... 4 A / mm 2 .في متناول يدي كان سلك ملمع قطره 0.8 مم. المقطع العرضي ، على التوالي ، هو ~ 0.5 مم 2 . عند تيار 2A ، نحصل على كثافة تيار في لف حوالي 4 A / mm 2 . يمكنني استخدام سلك يحتوي على نصف المقطع العرضي ، لكن جوهري كبير بما يكفي ، وبالتالي فإن سلك المقطع العرضي الأكبر مناسب دون أي مشاكل. عندما تقوم بتحسين جهازك ، سيتعين عليك أولاً الاعتماد ، ثم شراء سلك المقطع العرضي المطلوب ، ثم يمكنك الحصول على الأبعاد المثلى للمحث.الخطوة 4. حساب مكثف الإخراجفي هذه المرحلة ، كما في حالة الحث ، سننظر في الحد الأدنى لقيمة السعة التي يجب تثبيتها في مرشح LC عند إخراج محول باك. وفقًا لذلك ، إذا قمت بتثبيت المزيد ، فسيكون أفضل ومن ثم معرفة السبب. دعنا نحسب السعة:
بالطبع ، يجب أن توضع السعة أيضًا مع بعض الهامش ، خاصةً إذا كنت تستخدم السيراميك فقط في منفذ البيع ، لأن يتم تقليل قدرتها إلى حد كبير اعتمادًا على الجهد المطبق عليها. يجدر الانتباه أيضًا إلى الاعتماد على النبضات - نبض V المتغير. هذا هو الحد الأقصى لقيمة تموج عند الإخراج ، وهذا هو ، من الناحية المثالية ، بسعة 147.8 درجة فهرنهايت ، وسعة تموج سيكون 0.2V ، وهذا هو ، سوف تطفو الجهد الناتج في النطاق 11.9 ... 12.1V. تريد تقليل تموج؟ ثم قم بتقليلها في الصيغة وستزداد قيمة السعة الناتجة وفقًا لذلك ، بالطبع ، لن تحصل على مصدر طاقة مختبري ببساطة عن طريق زيادة سعة الإنتاج. من الضروري أيضًا مراعاة الحاجة إلى وجود ESR منخفض ، ولهذا عادةً ما يضعون 1-2 شوارد في موازاة ويعلقون سيراميك عليها في عدد قليل من microfarads مع عازل X7R ، ويفضل. إذا سمحت الميزانية ، فمن الممكن استبدال مكثف كهربائيا مع التنتالوم البوليمر (كما هو الحال في GPU) ، وبالتالي ليست هناك حاجة السيراميك ، لديهم ESR صغيرة.اعتبارات الترددالآن ، كما قلت ، سوف نعود إلى مسألة اختيار تردد التشغيل للمحول. اسمحوا لي أن أقسم الاستنتاجات إلى بعض الأفكار:- كما ترى في الصيغة ، يظهر التردد ، فكلما زاد تردد التشغيل ، كلما كان من الضروري خفض محاثة المحث ، وسيتعين التقليل من المنعطفات - نحفظ على النحاس ونبسط تصنيع منتجات الملء
- يوجد الحث وعدد المنعطفات في معادلة حساب الحث المغنطيسي ، على الرغم من أنك تتذكر ، فإن الحث له اعتماد من الدرجة الثانية على المنعطفات ، مما يعني أنه عندما يتم تقليل عدد المنعطفات بمعدل مرتين ، فإن المحاثة تقل بمقدار 4 مرات. ويترتب على ذلك أنه مع زيادة التردد ، ينخفض الحث وقيمة الحث المغنطيسي ، مما يعني أنه يمكن استخدام نواة أصغر ، أي أننا نخفض الأبعاد
- , — , , . !
- … , . buck- mosfet- 200 . ( ) ? GaN
أعتقد من هذه الأطروحات أنه أصبح من الواضح لك ما يؤثر على تردد التبديل ، والآن تحتاج إلى معرفة كيفية العثور على "المعنى الذهبي" بين الخسائر في الترانزستورات وحجم الجهاز بنفسك. في أحد المقالات التالية ، سأعلمك تحسين وتيرة التشغيل لتحقيق أقصى قدر من الكفاءة ، الشيء الرئيسي هو ألا ننسى أنني كنت سأفعل ذلك.الفصل 3. تجميع تخطيط محول باك
, , , , . . :
STM32F334 . IR2110, : STM32-Discovery, LaunchPad, Arduino , , buck-.
الآن ، لنجعل مخطط باك أكثر واقعية من خلال إضافة قيم جميع المكونات إليه وتعكس عدد المكثفات بشكل صحيح ، وكذلك لاحظ الجزء الذي يمكن أن تدركه وحدة الطاقة الخاصة بي:
كما ترون من الرسم التخطيطي ، تحتوي الوحدة بالفعل على جسر نصف (اثنين من الترانزستورات) لتنفيذ باك متزامن ومكثف مدخلات ، بالمناسبة ، يوجد في الوحدة بهامش كبير - هناك 3 إلكتروليتات لكل 1000 UF و 100 V ، وهذا يكفي لتجميع باك بسهولة -800 واط يبقى لنا أن نضيف خنقًا ، قمنا بتصنيعه بالفعل وإنتاج المكثفات ، والأخير أيضًا بالمناسبة ، لأن لقد وجدت فقط 4700 UF 25V للجهد المنخفض ، لكنها نوع من الصينية ، لذلك قررت أيضًا أن أقوم بموازاة زوجين. في الواقع ، هناك ما يكفي من 470 وحدة من وحدات الصوت هناك ، لكن لم يكن لدي مثل هذا التافه في إصدار المخرجات. اتضح هذا التصميم:
كما ذكرنا سابقًا ، يتم استخدام مصباح LED قوي 20 واط كحمل. لا أعرف مقدار الضوء الذي يضيء ، وهو ليس ممتعًا للغاية ، لكنه يستهلك فقط 21 ... 22 واط في 12 فولت الذي تم تصميم محول باك الخاص بي. غطى LED نفسه KPT-8 وربطه بالرادياتير ، بالطبع لا يكفي ، لكنه يدوم لمدة 5 إلى 7 دقائق دون مشاكل (يصل ارتفاعه إلى +40 ... 50 درجة مئوية) ، ولست بحاجة إلى المزيد. نقوم بتوصيل 2 HRPWM ، إشارات GND من وحدة التحكم ، ومن خلال الفاصل ، نقوم بتوصيل خرج باك إلى ADC ، ونتيجة لذلك ، لدينا مثل هذا الموقف:
الفصل 4. كتابة البرامج وبدء المحول
الآن لدينا كل ما نحتاجه لبدء كتابة التعليمات البرمجية وتنشيط محول باك لدينا. أولاً ، دعونا نلقي نظرة على وحدة التحكم في متحكم STM32F334R8T6 ، الموجود في وحدة التحكم:

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

- يحتوي متحكم STM32F334R8T6 على 10 قنوات HRPWM ، والتي يتم دمجها في 5 مجموعات من قناتين. يمكن أن تعمل هاتان القناتان داخل المجموعة بشكل مستقل وتشكلان زوجًا مكملاً - نحتاج إلى الأخير ؛
- داخل الزوج التكميلي بين إشارتين PWM ، من الممكن تثبيت وقت توقف الأجهزة للحماية من تيار المرور ؛
- يتم تسجيل جميع القنوات العشر من جهاز ضبط وقت واحد - جهاز ضبط الوقت الرئيسي ، بحيث تتم مزامنتها جميعًا مع بعضها البعض ولا يتعين عليك تكوين سلسلة من أجهزة ضبط الوقت يدويًا. يكفي تشغيل "المعلم" و "الموقت A ... E timers" لأنهما قطعتا مسافة زمنية عنه ؛
- يتضاعف التردد في HRPWM ، أي بتردد أساسي قدره 72 MHz ، وعند HRPWM يبلغ 144 MHz بعد مضاعف إضافي (x2) مع PLL. هذا يجعل من الممكن السيطرة على المحولات على تردد مئات كيلو هرتز.
- هناك الكثير من الإعدادات للتحكم في PWM ، على سبيل المثال ، إلى جانب القدرة على ربط إنشاء PWM ببداية ونهاية الفترة ، هناك 4 أحداث قابلة للتكوين (comp) تسمح لك بترجمة PWM إلى 0 أو 1 في أي نقطة في الفترة بخلاف بداية / نهاية الفترة ؛
- هناك أوضاع لطوبولوجيات معينة ، على سبيل المثال ، وضع الدفع والسحب ، والذي يسمح لك بتنفيذ العديد من طبولوجيا الدفع.
وهذا مجرد جزء صغير من الميزات ، على الرسم البياني لجهاز HRPWM ، يمكنك رؤية إمكانيات المزامنة مع مجموعة من الأحداث ، DACs ، ومقارنات مضمنة في MK ، بالإضافة إلى هذا المخطط التوضيحي للكتلة ، هناك العديد من الاحتمالات الموثقة.
يبقى السؤال الأخير الذي يجب معالجته - "لماذا هذا PWM عالية بت؟". للقيام بذلك ، النظر في مثال بسيط. تخيل أننا قررنا استخدام MK بدون HRPWM ، دعنا نقول STM32F103C8T6 ، والذي يعمل أيضًا بتردد 72 MHz. نحتاج إلى التحكم في الجسر النصفى بتردد 70 كيلو هرتز ، ونحن نفكر في أي خطوة من التنظيم يمكن أن نحصل عليها: 000 72 0002525 خطوة = 70 243 هرتز. نعم ، لدينا 1025 خطوة وعند التعديل يمكننا تغيير الجهد الناتج مع خطوة نظرية من 1/1025 = ~ 0.1 ٪. نأخذ الآن STM32F334 ، مع تردد ساعة قدره 144 ميغاهرتز وعرض تحول مؤقت 32 بت ، نحصل على تردد يعادل 144 ميغاهيرتز * 32 = 4.608 غيغاهرتز. بالنسبة لأولئك الذين شعروا بالخوف والشك:

لا ، هذا ليس تردد التشغيل ، هذا تردد مكافئ. ماذا يعطينا هذا؟ نأخذ التردد المكافئ لـ 4 608 000 000 هرتز / 70 300 هرتز = 65 535 خطوة. الآن يمكننا ضبط الجهد (أو التيار) عند الإخراج بزيادات قدرها 1/65 535 = ~ 0.001 ٪ ، أي 100 مرة أكثر دقة!
والآن دعونا نفعل ذلك - لدينا تردد 700 كيلو هرتز ، وهو أمر طبيعي لمجموعة باك متعددة المراحل ، على سبيل المثال. سوف تحصل F103 على 72،000،000 هرتز / 700000 هرتز = 102 خطوة ، مما يسمح لك بالحصول على تنظيم بنسبة 1٪ في أحسن الأحوال ، لكن هذا يمثل 1٪ للواجب ، وهذا في الواقع مع وجود العديد من الخطوات ، سيكون لديك جهد عائم عند الإخراج كما لو كان الاستقرار وليس حقا. في حين أن عدد الخطوات في F334 سيكون حوالي 6500 ، والذي لا يزال يسمح لك ببناء جهد أو منظم تيار دقيق للغاية. لقد وصلنا إلى أن دقة (خطوة) إعداد دورة العمل أعلى بكثير / أكثر في كثير من الأحيان من MK التقليدي مع وحدة PWM قياسية في الداخل.
إعداد نظام الساعةاستخدمت TrueSTUDIO كبيئة تطوير في هذه المقالة ، لأنها مجانية ، وليس بائسة مثل Keil أو IAR
، نعم ، أخبرني عن مصحح الأخطاء الرائع ، والنظام الأساسي المشترك ، وربما أفضل حل للمبتدئين وليس فقط. في نهاية المقال سيكون هناك أرشيف مع المشروع خصيصا لهذا IDE. لن أخبرك عن كيفية إنشاء مشروع وتكوينه ، سأترك رابطًا للفيديو حيث يتم عرض كل شيء بالتفصيل -
المشاهدة .
بعد إنشاء مشروع وميض مؤشر LED ، تحتاج إلى تكوين نظام الساعة ، أي من 8 ميغاهيرتز ، ورفع التردد إلى 72 ميغاهيرتز وتطبيقه على النواة ، ثم ضبط الفاصل لتقليل التردد المقدم إلى ADC:
void StartInitClock (void) { RCC->CR |= RCC_CR_HSEON;
هنا ، أعتقد فقط ، أن خوارزمية التوليف هي كما يلي:
إنها تنتقل إلى الكوارتز الخارجي (HSE) -> ننتظر عند اكتمال الانتقال وتعيين العلامة الجاهزة -> نرسل الإشارة من الكوارتز إلى دخل PLL -> نقوم بضرب 8 ميغاهيرتز في 9 -> نقسم التردد على 72 ميغاهيرتز في 10 لتسجيل ساعة ADC -> تشغيل PLL -> انتظر حتى يتم تشغيله وتعيين العلم الجاهز -> إرسال إشارة من PLL إلى ناقل النظام والأساسية -> انتظر حتى يكتمل المفتاح -> القيام به.إعداد HRPWMهنا كل شيء أكثر تعقيدا إلى حد ما ، ل تحتوي هذه الوحدة على الكثير من الوظائف ، ومجموعة من أي إعدادات وكمية الوثائق كبيرة للغاية ، ولكن هذا ناقص وفي الوقت نفسه زائد - عليك أن تدفع من أجل المرونة.
RCC->CFGR3 |= RCC_CFGR3_HRTIM1SW_PLL; RCC->APB2ENR |= RCC_APB2ENR_HRTIM1EN;
تحتاج إلى تحديد أن HRTIM مسجل من PLL ، تم تمكين مضاعف x2 افتراضيًا. بعد ذلك نقوم ببساطة بتشغيل الساعة لـ HRTIM ، وإليك الميزة الأولى - حيث أننا نفهم أن الموقت يتم تسجيله من PLL ، لكننا نقوم بتشغيله من أجل APB2. هذا ليس منطقيًا تمامًا ، ولكن يمكن البحث عنه بسهولة في الملف باستخدام CMSIS أو في الوثائق.
RCC->AHBENR |= RCC_AHBENR_GPIOAEN; GPIOA->MODER &= ~GPIO_MODER_MODER8; GPIOA->MODER |= GPIO_MODER_MODER8_1;
PA8 و PA9 هما ناتج الموقت A ، الذي ينتقل في الوحدة الخاصة بي إلى القناة رقم 1 ، والتي يمكنك رؤيتها في الرسم التخطيطي والتثبيت. تم تكوين الأرجل كدفع سحب مع وظيفة بديلة ، وعدد الوظائف نفسها لكلا الساقين هو الثالث عشر. من المهم أيضًا ضبط الحد الأقصى لتردد GPIO ، وإلا سيكون هناك انسداد غير مفهوم في مقدمة وسقوط الإشارة ، وهو أمر بالغ الأهمية بالنسبة لإلكترونيات الطاقة.
HRTIM1->sCommonRegs.DLLCR |= HRTIM_DLLCR_CAL | HRTIM_DLLCR_CALEN; while ((HRTIM1->sCommonRegs.ISR & HRTIM_ISR_DLLRDY) == RESET);
قبل أن تبدأ ، تحتاج إلى معايرة الموقت ، لأن إنه يعمل بأقل قدر من التأخير ، ثم انتظر العلم الجاهز.
HRTIM1->sTimerxRegs[0].PERxR = PeriodTimerA;
هذه مرونة. أولاً ، يمكننا ضبط ترددنا لكل مؤقت A ... E ، هنا نسجل ببساطة فترة PWM الخاصة بنا. ثانياً ، بشكل افتراضي ، لدينا محاذاة PWM في بداية الفترة ، أي أن الإشارة تنتقل إلى log.1 في بداية فترة جديدة ، والآن نحن بحاجة إلى اختيار متى ستعود إلى log.0 ، في هذه الحالة ، بواسطة المقارنة رقم 1 ، أي أنا أسأل فيه بشكل أساسي عامل الواجب.
على سبيل المثال ، يمكنك ترجمة PWM ليس بحلول بداية الفترة ، ولكن عن طريق المقارنة رقم 1 ، والعودة إلى log.0 بواسطة المقارنة رقم 2 وبالتالي نقل المرحلة الأجهزة.
في هذه المرحلة ، نقوم بتمكين وقت التوقف وتهيئته ، من حيث المبدأ ، تحتوي التعليقات على جميع الصيغ ، ويمكن أيضًا العثور عليها في الدليل المرجعي. DT لمدة ~ 100 ns التي شاهدتها بالفعل على الشكل الموجي في الفصل النظري من هذه المقالة. يمكن تعيين الوقت الميت بشكل منفصل على الحافة وعلى انخفاض الإشارة. بالمناسبة ، [0] هو Timer A ، على التوالي [1] هو Timer B وهكذا.
بالنسبة لي ، لم تكن هذه اللحظة الأكثر وضوحًا. خلاصة القول هي - أريد أن أتأكد من أنه لمدة 10 ٪ من مدة Timer A ، يتم إنشاء حدث من شأنه أن يؤدي إلى تحويل ADC وقياس إشارة التغذية المرتدة. لماذا 10 ٪؟ ببساطة ، من الناحية المثالية ، لا ينبغي أن يحدث القياس في وقت انتقال PWM من 0 إلى 1 أو العكس ، لأن في هذه اللحظة في وحدة الطاقة هناك عابرة والتداخل ، لكننا لسنا بحاجة لقياس لهم. لذلك ، 10 ٪ في حالتي هو الأمثل ، ل عند إخراج 12V و 30 V ، لن تنخفض مساهمة الجهد لعامل التشغيل إلى 10٪ ولن تتطابق لحظة تبديل الترانزستور مع قياس ADC.
أنت الآن بحاجة إلى إلقاء نظرة على نظام اتصالات الحدث بين HRTIM و ADC:

في السطر الأول ، نختار متى سيتم تشغيل المقارنة ، في حالتي تكون 10٪ من فترة المؤقت A. بعد ذلك ، نختار مشغل محدد في ADC سيتصل بأعضاء MK ، ولدينا حق الوصول إلى الأول أو الثالث. الآن يشير ببساطة إلى الحدث الذي سيرسل الإشارة إلى ADC ، وهو في حالتي هو المقارنة رقم 2.
وتر النهائي! نحن نسمح HRTIM لإخراج إشارات من الموقت A إلى GPIO لدينا. الآن نختار الوضع ، ويحدث هذا بلا نهاية (لدي) ، ولكن يحدث أن يتم تشغيل المؤقت لمدة 1 وبعد ذلك يجب أن يبدأ من جديد. بعد ذلك ، قم بضبط الفترة الزمنية لجهاز ضبط توقيت Master (Master Master) وقم بتشغيله كخطوة أخيرة ، ويبدأ في تسجيل توقيت أجهزة توقيت القناة وتظهر إشارة PWM عند الإخراج.
لقد كانت وظيفة توليف ، يبقى إنشاء وظيفة ستحدد عامل الواجب ، وسنعمل معها عند إنشاء وحدة التحكم:
void SetDutyTimerA (uint16_t duty) { HRTIM1->sTimerxRegs[0].CMP1xR = duty; }
سرد إعدادات الوظيفة وإعداد دورة العمل الآن لنكتشف ما إذا كنا نسير في الاتجاه الصحيح. في الوظيفة
الرئيسية ، قم بتهيئة إعداد HRTIM وضبط دورة التشغيل ، على سبيل المثال 22500. مع فولطية دخل تبلغ 20 فولت وفترة 45000 ، ستكون دورة التشغيل لدينا 50٪ وسيبلغ الإنتاج حوالي 10 فولت. هذا لا يكفي لتوسيع مؤشر LED إلى كامل ، ولكن ينبغي أن تضيء وسوف نفهم ما إذا كان يعمل قسم الطاقة ، هو كل شيء على ما يرام مع dt وهلم جرا. لقد بدأت كل شيء في المرة الأولى:
يمكنك أن ترى أن جميع الحسابات النظرية السابقة قد تم تأكيدها. مع عامل الخدمة الثابتة بنسبة 50 ٪ ، تم تقسيم جهد الخرج ببساطة على 2: 20V -> 10V ، 22V -> 11V ، 18V -> 9V. الآن لنجعل الجهد الناتج مستقراً ومستقلاً عن المدخلات ، أي أضف ملاحظات.
ADC وضبط تحكملقد سبق أن كتبت الكثير عن الشركات الإعلانية في STM32 قبلي ، وأنا أتناول فقط إعداد المشغل المرتبط بمقارن HRTIM. سأتحدث باختصار عن بقية إعدادات ADC. نحن ننظر إلى وظيفة التهيئة:
void InitBasicADC (void) { RCC->AHBENR |= RCC_AHBENR_ADC12EN; RCC->AHBENR |= RCC_AHBENR_GPIOCEN; ADC2->CR &= ~ADC_CR_ADVREGEN; ADC2->CR |= ADC_CR_ADVREGEN_0;
يمكنني استخدام وضع القناة العادي ، ولدي قناة واحدة فقط ويتم تحديده في سجل
SQR1 . يتضمن ADC رقم 2 ، أي مدخلاته IN5 ، إنه سريع ويمكن أن يعمل بأقصى تردد لأخذ العينات ، لكن ليس هذه المرة. تردد أخذ العينات يساوي تردد PWM ، لأن 1 فترة = 1 عينة ، من حيث المبدأ ، وهذا أكثر من كافية.
أيضًا ، في سجل
CFGR ، نحتاج إلى تحديد الحدث الذي سيبدأ به التحويل ، أي
الحدث 7 ، لماذا بالضبط؟ نحن ننظر في RM:

يأتي المشغل 1 من وحدة HRPWM إلى الحدث 7 من أجل ADC رقم 2 ، والذي يعمل في هذه الحالة كعبد ، ثم يتم التحكم فيه من وحدة HRPWM. أعتقد الآن أنه من الواضح كيفية توصيل وحدتين ، من حيث المبدأ ، الخوارزمية تشبه أي محيط وأي جهاز توقيت ، فقط اسم التسجيل سيختلف.
عند الوصول إلى عداد فترة المؤقت الرئيسي ، سيبدأ التحويل ، والذي بعد حوالي 15 دورة (لمعرفة مقدار الدقة بالضبط في RM) سيتسبب في مقاطعة ويمكنك التقاط النتيجة فيه. في هذا الانقطاع نقوم بتنظيم خوارزمية التحكم. نعم ، من الأفضل ألا تقوم بذلك داخل المقاطعة ، فمن الأفضل ضبط العلم وتمرير التنفيذ ، لكنني سأسمح لنفسي بمثل هذا التبسيط ، لأنه في هذه الحالة لم يتم تحميل جهاز التحكم الخاص بي ، وسوف يتمكن من حساب الخروج والخروج منه باحتمال قدره 146٪ ظهور واحدة جديدة.
قليلا عن الإدارةتخيل أنك دخلت الحمام وقررت أن تغسل يديك في الحوض. قمت بفتح الماء قليلا ، ولمسها بيدك ، بارد؟ إضافة المزيد من الماء الساخن ، وأكثر دفئا؟ جيد أضف المزيد من الماء الساخن؟ تقريبا ما تحتاجه؟ جيد أضف المزيد من الماء الساخن ، جرب بيدك ، احرق نفسك؟ دعنا نرفض قليلا الآن. حسنا؟ وهكذا إلى ما لا نهاية ، ستدير الصنبور حتى تصبح درجة حرارة الماء مثالية. هذا هو أسهل مقبض الباب!
فقط نحن لا ننظم كمية الماء الساخن ، ولكن دورة العمل PWM. بدلاً من اليد ، لدينا ADC بنتيجة محسوبة. يبقى فقط لتنفيذ المنطق. سنقوم بحساب ما ينبغي أن تنتجه شركة تطوير العقبة عند مخرج 12 فولت ، ومن ثم باستخدام شرط
if ، فإننا سنجبر جهاز التحكم الخاص بنا على الحفاظ على هذه القيمة عن طريق تغيير عامل التشغيل.
للبدء ، دعنا نقطع مقسم الجهد لتقليل 12V إلى 2-2.5V ، على سبيل المثال ، بسبب يمكن للقياس ADC من 0 إلى + 3.3 فولت ، وإذا تم تزويد 12V ، فسوف يحترق المتحكم ببساطة. لذلك ، سأضع مقسمًا بقيم رمزية تبلغ 10 كيلو أوم و 2 كيلو أمبير ، والتي ستمنح نسبة القسمة 6 ، وبالتالي ، فإن + 12 فولت سوف تتحول إلى + 2 فولت. سوف ينتج ADC النتيجة: adcResult = (V
out / k) / V
ref * 2
12 = (12V / 6) / 3.3 * 4095 = 2481. الآن نكتب رمز معالج المقاطعة:
void ADC1_2_IRQHandler (void) { ADC2->ISR |= ADC_ISR_EOC; adcResult = ADC2->DR; if (adcResult > 2480) { dutyControl = dutyControl - 10; } else { dutyControl = dutyControl + 10; } SetDutyTimerA(dutyControl); }
بادئ ذي بدء ، بعد الدخول في معالج المقاطعة ، تحتاج إلى مسح علامة هذا المقاطعة ، وإلا في المرة الثانية التي لن تدخل فيها. ثم نقرأ النتيجة
ونحفظها كمتغير
adcResult . الآن ، ومع معرفة الجهد في الإخراج ، تحتاج إلى ضبط دورة العمل ل PWM ، لقد نفذت هذا ببساطة من خلال
حالة الشرط. في كل فترة PWM ، نأخذ قياس أو زيادة أو تقليل دورة العمل وتحديد النتيجة للفترة القادمة. كل شيء بسيط وسريع والجوهر مرئي. نحن ننظر إلى نتيجة العمل:
كما ترون ، كل شيء يعمل وعندما يتغير جهد الدخل ، يبقى الناتج نفسه ثابتًا عند 12 فولت. منتبه جدًا أن تلاحظ إبرًا صغيرة تتسلل ، ثم تحتاج فقط إلى تعليق سيراميك X7R عند إخراج 1-10 ميكروفاراد وسيغادرون ، أنا كسول جدًا للبحث عنه ولحامه. الآن رسم الذبذبات نفسه ، حتى لا تفسد العينين:

هنا يمكنك أن ترى كيف يرتفع الجهد الناتج. الحقيقة هي أنه بسبب خوارزمية التحكم ، من أجل أن تصل التعبئة إلى قيمة من 0 إلى 10000 ، على سبيل المثال ، هناك حاجة إلى ألف نقطة أو حوالي 10 مللي ثانية. يناسبني لأن البداية السهلة ، إذا كنت ترغب في تقليل وقت الصعود ، قم بتعقيد الخوارزمية قليلاً وإضافة +1000 ، وليس +10 ، وكلما اقتربت من 12V المحدد ، قل التنظيم الذي تقوم به حتى تصل إلى +10 . بشكل عام ، يمكن القيام بالكثير من الأشياء من حيث الإدارة ، لذلك لديك مجال للتجارب.
نقطة أخرى مثيرة للاهتمام هي التذبذب في وقت الاغلاق ، مثل "هارمونيكا". الحقيقة هي أنه بعد إيقاف تشغيل الطاقة ، يواصل الجزء الرقمي الخاص بي العمل من وحدة PSU أخرى ويحاول الحفاظ على القيمة المطلوبة في الإخراج. من أين تأتي الطاقة؟ نعم ، من مكثف المدخلات ، هذه هي تلك التي تحتوي على 1000 microfarads بالفعل 3 قطع ، هذه ظاهرة مثيرة للاهتمام.
الخاتمة
المقال لم يكن صغيراً ، لكنك أردت كل شيء وعلى الفور يقولون دعنا نجهز قطعة الحديد - احصل عليها. آمل أن تستمتعوا بالمقال ، لقد حاولت أن أجعله غير علمي ، ولكن علمي شعبي ، بحيث تكون المادة متاحة للأشخاص ذوي مستويات المعرفة والخبرة المختلفة. ربما سأحلل في المستقبل طبولوجيا أخرى مثل التعزيز والجسر الكامل وغيرها.
بالمناسبة ، ستخدم هذه المقالة والكود لوحدة تحكم MPPT الجديدة في 20A ، والتي أقوم بتصميمها. أنا الآن في انتظار
لوحات PCBway ، التي تطوعت بالفعل لرعاية
مشاريعي مفتوحة المصدر مع لوحات الدوائر المطبوعة ، وستكون مصادر MPPT مفتوحة أيضًا لجميع وحداتي.
لقد نسيت أهم شيء! الحفاظ على المشروع مع رمز TrueSTDIO -
RAR .