Гвідо любить Linux не лише тому, що цікаво відкривати великі можливості цих систем, але завдяки всім людям, які беруть участь у її розробці.
Переклад на іспанську:
Мігель Маган К. "
Блок живлення постійного струму на основі мікроконтролера
Це четверта стаття в Linux Focus серії мікроконтролерів AT90S4433. Пропоную прочитати попередні статті про програмування мікроконтролерів Atmel, особливо:
- Як встановити та використовувати середовище розробки Linux AVR та як створити програмне забезпечення:
Березень 2002 р. Програмування мікроконтролера AVR за допомогою GCC - Як зробити власну друковану плату:
Травень 2002 р., РК-панель управління для вашого сервера Linux - Як побудувати коробку для вашого джерела живлення:
Вересень 2002 р., Лічильник частоти 1 Гц-100 МГц з РК-дисплеєм та інтерфейсом RS232
Вступ
Мікроконтролер, на якому базується джерело живлення, є не найпростішою схемою, але я можу запевнити вас, що вам не завадить час, необхідний для його побудови. Це дуже міцно і надійно. Технічно також дуже цікаво, адже ви можете навчитися генерувати аналогову напругу постійного струму за допомогою мікроконтролера, не використовуючи цифрово-аналоговий перетворювач.
Для цього товару вам знадобиться досить багато компонентів, але вони дешеві та стандартні. Цей блок живлення недорогий.
Що тобі потрібно
Схема та табличка
Я використовував Eagle для Linux для проектування схеми та плати. Файли Eagle також включені в пакет tar.gz разом із програмним забезпеченням. Ви можете завантажити їх у кінці статті.
Схема розділена на 2 частини. Основна та інша частина для силових транзисторів. Нижче ви маєте дві незалежні схеми для двох деталей, які потім з'єднані кабелями.
Основна схема (натисніть на зображення, щоб збільшити):
Схема силової частини (натисніть на зображення, щоб збільшити):
Як підключити кнопки в матриці (натисніть на зображення, щоб збільшити):
Основна дошка, видно зверху (натисніть на зображення, щоб збільшити):
Плата спеціально розроблена для любителів електроніки. Тільки синій шар повинен бути викарбований на друкованій платі. Червоні лінії - це кабелі. Побудувати односторонню друковану плату набагато простіше і вимагає меншої точності. Ви можете припаяти дроти (червоним кольором) так, щоб вони були найменшої довжини. Я не міг цього зробити на орлі.
Деякі компоненти високовольтної частини джерела можуть бути встановлені на стандартній прототипувальній платі (це ті плати з великою кількістю отворів). Основна плата та силова частина з'єднані кабелями (JP2 та JP3). Ви помітите, що заземлюючий провід основної частини підключається до позитивного виходу постійного струму (постійного струму). Це правильно, і саме тому нам потрібні два окремі трансформатори (один для силової частини, а другий для логічної частини з мікроконтролером та операційними підсилювачами).
Як це працює
Переглядаючи основну схему, можна побачити, що вона складається з 2 частин. Один на схемі позначений як "контроль струму", а інший - "контроль напруги". Це дві незалежні петлі управління. Один контролює вихідну напругу, а інший - падіння напруги (різниця потенціалів) на резисторі 0,275 Ом на стороні живлення. Падіння напруги еквівалентно струму. Дві частини управління "поєднані" з діодами D2 і D3. Ці діоди утворюють аналоговий АБО затвор. Тобто, якщо струм занадто високий, то частина регулятора струму знижує напругу до тих пір, поки струм не повернеться в межах, з іншого боку, якщо струм не занадто високий, частина контролю напруги піклується про регулювання вихідної напруги.
Цей АБО працює, оскільки транзистор T3 підключений через резистор R19 до + 5В. Якби за D2 і D3 не було підключено операційних підсилювачів, ви отримали б максимальну вихідну потужність. Операційний підсилювач в контурі управління контролює вихід, виймаючи + 5 В з Т3 (підбираючи стільки землі, скільки потрібно).
Шлейф управління напругою контролює вихідну напругу відповідно до рівня напруги, який він отримує від виводу 5 IC6B. Іншими словами, напруга на виводі 5 еквівалентна вихідній напрузі, помноженій на коефіцієнт посилення, який визначається резисторами R15, R10 і R16. Те саме для струму, за винятком того, що напруга на резисторі R30 еквівалентна максимальному вихідному струму.
Щоб вибрати максимальний струм або регулювати вихідну потужність джерела живлення, нам потрібно буде подати лише відповідні напруги в двох точках (контакт 5 IC6B і резистор R30). Цим займається мікроконтролер. Але як мікроконтролер може генерувати та регулювати опорну напругу постійного струму? Погляньте на наступне зображення:
На цьому зображенні ви бачите, як пульсуючий сигнал (потік імпульсів) може трансформуватися в безперервний сигнал. Все, що вам потрібно, - це пропустити його через фільтр низьких частот з частотою відсічення приблизно в 100 (або більше) разів нижче частоти сигналу. Оскільки наш мікроконтролер працює на частоті 4 МГц, розробити такий фільтр не надто складно. Навіть якби ми генерували сигнал за допомогою програмного забезпечення, ми отримали б кілька кГц, і фільтр все одно був би дуже малим.
Різниця в зображенні між верхньою та нижньою діаграмами називається імпульсно-широтною модуляцією. Змінюючи тривалість імпульсів, ми можемо змінити постійну напругу після фільтрації.
!Чудово, ми можемо генерувати точну постійну напругу за допомогою цифрового сигналу!
Мікроконтролер AT90S4433 має два внутрішні лічильники, один з 16 бітів, а другий з 8. 16-бітний лічильник має можливість використання широтно-імпульсної модуляції (PWM - Pulse Width Modulation - англійською мовою), реалізованої в апаратному забезпеченні в мікро з роздільна здатність 10 біт. 8-розрядний лічильник не має цієї можливості, але ми можемо реалізувати це за допомогою програмного забезпечення, але це все ще досить швидко. Ми будемо використовувати 16-бітний лічильник для регулювання напруги, який дає нам 10 біт = 1023 кроки роздільної здатності для контролю напруги. Поточний вихід контролюється за допомогою 8-бітного лічильника, який дає нам 255 кроків для управління діапазоном 1-3000 мА. Це означає, що ми матимемо точність до 12 мА (або менше). Цього достатньо для поточного контролю.
Всі інші компоненти в ланцюзі призначені для еталону живлення та напруги (7805 - це наш орієнтир) і для того, щоб забезпечити, щоб блок живлення не працював нестабільно при підключенні або відключенні.
Програмне забезпечення
Програмне забезпечення для мікроконтролера використовує багато аспектів, які ви вже знали з попередніх статей (uart для rs232, РК-дисплей, лічильники в режимі переривання). Ви можете поглянути на:
linuxdcp.c.
Найцікавішим є, мабуть, програмне забезпечення ШІМ (Pulse Width Modulation). Змінна ipwm_phase реалізує разом з ipwm_h ШІМ для поточного. Ми будемо запускати 8-бітний лічильник у режимі переривання, і кожного разу, коли генерується переривання через переповнення, буде викликана функція "SIGNAL (SIG_OVERFLOW0)". Тут ми перевіримо ipwm_phase, щоб побачити, чи потрібно нам генерувати '1' або '0' у вихідних даних і скинути лічильник. Легко!.
Незважаючи на те, що програмне забезпечення не надто складне, для повного його розуміння я рекомендую прочитати 4433 технічні паспорти (див. Посилання).
4433 - це 8-бітний мікроконтролер, і його математичні можливості обмежені. Функції divXbyY та multiXbyY реалізують 24-бітову математику, яка нам знадобиться для обчислення ширини імпульсу з напруги, заданої користувачем.
Наш блок живлення має 7 кнопок. Шість з них призначені для вибору рівнів напруги та струму, а інша - для режиму "очікування". За допомогою цього режиму ви можете тимчасово відключити вихід, і ви все ще можете змінити межі напруги та струму. Стан кнопок опитується в основному циклі програми. Змінна ignorebutton використовується для підскакування кнопки. Коли ви натискаєте кнопку пальцями, ви трохи рухаєте її вгору-вниз. Як людина, ви цього не помітите, але мікроконтролер настільки швидкий, що бачитиме, вимикається, вмикається, вимикається. Лічильник кнопок ignore трохи зачекає після натискання кнопки, щоб уникнути цих відмов.
Виготовлення друкованої плати
Основна дошка: |
Коробка для фонтану. Дерево з боків та метал для нижньої, верхньої та передньої частин: |
Передня панель: |
Про те, як створити дешеву, але приємну коробку для вашого джерела живлення, описано у статті "Вересень 2002 року, лічильник частоти 1 Гц-100 МГц з РК-дисплеєм та інтерфейсом RS232". Справа ви можете побачити коробку та передню панель, яку я зробив. Клацніть на зображення, щоб збільшити їх.
Перевірки
Ось воно: Наше власне джерело живлення
Ви вже бачили, що доступні 3 варіанти залежно від трансформатора, який ви використовуєте. Програмне забезпечення за замовчуванням призначене для виходу 16 В, 2,2 А. Щоб змінити це, відредагуйте файл linuxdcp.c та знайдіть:
MAX_U, IMINSTEP, MAX_I, вам також доведеться змінити калібрування у функції set_i, якщо у вас максимальна потужність 3А. Код добре прокоментовано, і ви побачите, що вам потрібно змінити.
Нарешті, ось кілька магнітів джерела живлення, яке я побудував. Це трохи роботи, але це дійсно дуже добре та надійно. Час був витрачений добре, тому що лабораторне джерело живлення - це справді одна з найбільш використовуваних речей.
Використання джерела живлення
u = X вибирає напругу (наприклад, u = 105 вибирає напругу при 10,5 В)
i = Xmax вибирає максимальний струм (наприклад, i = 500 вибирає межу струму при 500 мА)
s = 1 або s = 0 вибирає режим очікування
u =? або i =? або s =? друкує вибрані на даний момент параметри. Це виведе на екран такий вивід, наприклад:
u: 50 с: 0 i: 100 л: 0
u: означає напругу = 50 = 5 В, s: 0 означає вимкнений режим очікування, i: 100 - 100 мА, а l: 0 означає, що обмеження струму не досягнуто.
Використовуючи цю командну мову ascii, ви також можете написати собі графічний інтерфейс користувача для джерела живлення. Для використання рядка rs232 вам потрібно спочатку ініціалізувати його за допомогою команди ttydevinit. ttydevinit включений у пакет програмного забезпечення. Це також описано в статті: вересень 2002 року, лічильник частоти.
Безпека
Налаштування
Список літератури
- Програмне забезпечення для програмування AVIS AVIS: www.amelek.gda.pl/avr/
локальна копія: uisp-20011025.tar.gz - Як створити апаратне забезпечення програміста та встановити компілятор AVR:
Березень 2002 р. Програмування мікроконтролера AVR за допомогою GCC - Вихідний код цієї статті linuxdcpower-0.1.tar.gz, 1201K. Також сюди входять електрична схема, файли Eagle та скріншоти.
- Все програмне забезпечення (оновлення будуть перелічені тут) та документи: програмне забезпечення/таблиці даних
- Паспорт даних для bd379 bd379.pdf 44K
- Паспорт даних для TL082 TL082.pdf 110K
- Специфікація для TL071 TL071.pdf 268K
- Таблиця даних для 2n3055 2n3055.pdf 64K
- Специфікація для MAX232 MAX220-MAX249.pdf 448K
- Специфікація для ST232, дешевого варіанту, часто продається замість MAX232 realst232.pdf 100K
- Специфікація для Atmel AT90S4433 avr4433.pdf 2356K
- Веб-сайт Atmel: www.atmel.com/
- Eagle для Linux cadsoftusa.com
Форма "Talkback" для цієї статті
20.02.2004, згенеровано lfparser версії 2.43
- Музичні інструменти DJ та VJ обладнання Рекордер 48 V Джерело живлення; n Ghost Mugig Джерело
- Джерело постійного струму lc 150900-e-c2 220-240v для світлодіодних модулів класу ii
- Зварювальне обладнання відповідно до його струму або джерела енергії - Stayer
- Встановіть блок живлення - підлоговий або стельовий вентилятор на ПК ›Обладнання
- Напій як джерело калорій