Lf251, пілотний апаратний блок живлення; e за допомогою мікроконтролю; їх

Гвідо любить Linux не тільки тому, що цікаво відкривати великі можливості, а й завдяки людям, які беруть участь у його розробці.

Переклад на французьку:
Ізногуд

Блок живлення, керований мікроконтролером

Ця стаття є четвертим внеском у серії мікроконтролерів LinuxFocus AT90S4433. Пропоную прочитати попередні статті про програмування мікроконтролерів Atmel щодо:

  1. Як встановити та використовувати середовище розробки AVR для Linux та як зробити програміста:
    Березень 2002, запрограмуйте мікроконтролер AVR на GCC
  2. Як зробити власну друковану плату:
    Травень 2002 р., РК-панель управління для вашого сервера Linux
  3. Як побудувати корпус для вашого джерела живлення:
    Вересень 2002 р., Лічильник частоти 1 Гц-100 МГц з РК-дисплеєм та інтерфейсом RS232
Однією з найважливіших частин вашої особистої лабораторії є хороше, надійне харчування. У цій статті ми збираємося побудувати цю дієту. І це буде регулюватися мікроконтролером. Він має РК-дисплей, і ви можете надсилати йому команди з вашої машини Linux через інтерфейс RS232. Він також дуже міцний.

Вступ

Цей блок живлення з мікроконтролером не має найпростіших схем, але я можу запевнити вас, що ви не пошкодуєте про час, витрачений на його створення. Це дуже міцно і надійно. Це також технічно дуже цікаво, оскільки ви дізнаєтесь, як генерувати аналогову напругу за допомогою мікроконтролера без цифро-аналогового перетворювача.

Для складання цієї дієти вам потрібно багато компонентів, але всі вони недорогі. Це дійсно дешево.

Що тобі потрібно

Схема та схема

Я використовував Eagle для Linux для розробки схеми та схеми. Файли Eagle також включені в пакет tar.gz із програмним забезпеченням. Ви можете завантажити його в кінці статті.

Схема розділена на дві частини. Основна частина та частина, яка повинна знаходитися поблизу силових транзисторів. Ви бачите нижче дві незалежні схеми для двох блоків, але тоді їх потрібно з'єднати дротами.

Основна схема (натисніть на неї, щоб збільшити зображення):

пілотний

Схема силової частини (натисніть на неї, щоб збільшити зображення):

Як підключити кнопки до матриці (натисніть на неї, щоб збільшити зображення):

Основна схема, вид зверху (натисніть на неї, щоб збільшити зображення):


Схема спеціально розроблена для інженерів-електроніків. Тільки синій шар призначений для травлення у вигляді друкованої схеми. Червоні лінії - це дроти. Одностороння картка простіша і вимагає меншої точності в її оформленні. Ви можете розташувати дроти (червоним кольором) так, щоб вони були якомога коротшими. Мені не вдалося зробити це з орлом.

Кілька компонентів силової частини блоку живлення можна встановити на стандартних прототипах (ці плати з безліччю отворів). Основна плата і силова частина з'єднані проводами (JP2 і JP3). Ви помітите, що провід заземлення від основної частини підключається до поточного виходу. Це правильно, і саме тому нам потрібні два трансформатори (один для силової частини, а інший для логічної частини мікроконтролера та підсилювачів).

Як це працює

Переглядаючи основну діаграму, ви бачите, що вона складається з двох логічних блоків. Один позначений як "контроль струму", а інший - "контроль напруги". Це дві незалежні петлі управління. Один контур контролює вихідну напругу, а інший - падіння напруги резистора 0,275 Ом в силовій секції. Втрати напруги еквівалентні струму. Два блоки управління "поєднуються" через діоди D2 і D3. Ці діоди утворюють аналоговий АБО затвор. Тобто, якщо струм занадто високий, частина контролю струму буде знижувати напругу до тих пір, поки вона не буде нижчою за межу (струм досить низький), а частина управління напругою відповідає за регулювання вихідної напруги.

Це логічне АБО (АБО) працює, оскільки транзистор T3 підключений R19 до + 5В. Якби за D2 і D3 не було підключено операційних підсилювачів, ви отримали б максимальну вихідну потужність. Операційні підсилювачі в контурі керують виходом, виймаючи + 5 В з Т3 (він відводить стільки, скільки потрібно на землю).

Шлейф управління напругою веде вихідну напругу відповідно до рівня, отриманого на штифті 5 IC6B. Іншими словами, напруга на виводі 5 еквівалентна вихідній напрузі, помноженій на коефіцієнт посилення, який визначається резисторами R15, R10 і R16. Те саме відбувається зі струмом, за винятком того, що це напруга на резисторі R30 і воно еквівалентно максимальному вихідному струму.

Для того, щоб отримати максимальний струм або регулювати вихідну потужність джерела живлення, нам потрібно подати лише відповідні напруги на дві точки (контакт 5 IC6B і резистор R30). Цим займається мікроконтролер. але як він може генерувати і регулювати еталонну напругу? Подивіться на наступне зображення:

На малюнку ви бачите, як імпульсний сигнал може трансформуватися в безперервний сигнал. Достатньо управляти ним через фільтр низьких частот з частотою відсічення в сто разів (або більше) нижчою за частоту сигналу. Оскільки наш мікроконтролер працює на частоті 4 МГц, неважко розробити такий фільтр низьких частот. Навіть якщо ми налаштуємо генерацію сигналу за допомогою програмного забезпечення, ми все одно отримаємо кілька кГц, а фільтр все одно буде дуже малим.

Різниця в зображенні між двома моделями називається імпульсною модуляцією. Змінюючи тривалість імпульсу, ми можемо змінити напругу за фільтром.

Це добре, ні? Ми можемо генерувати точну напругу з цифрового сигналу !

Мікроконтролер AT90S4433 має два внутрішні лічильники. Один - 16 біт, а інший - 8 бітів. 16-бітний лічильник може використовувати широтно-імпульсну модуляцію (ШІМ), яка вже існує в апаратному забезпеченні в схемі AT90S4433 з 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 або нуль на виході, і ми перезапускаємо таймер. Легко.

Програмне забезпечення зовсім не складне, але щоб його точно зрозуміти, вам потрібно прочитати технічну документацію 4433 (див. Посилання).

4433 - це 8-бітний мікроконтролер, і його математичні можливості дуже обмежені. Функції divXbyY та multiXbyY обробляють 24-бітову математику, яка нам потрібна для точного обчислення ширини імпульсу від заданої напруги, що надходить від користувача.

Наша їжа має 7 кнопок. Доступно 6 кнопок для зміни рівня напруги та струму, а одна кнопка використовується для “паузи”. За допомогою кнопки "пауза" ви можете тимчасово вимкнути живлення і все одно змінити межі напруги та струму. Стан кнопок "витягується" в основному циклі програми. Змінна ignorebutton використовується, щоб уникнути відмов кнопки. Коли ви натискаєте кнопку пальцем, вона трохи підстрибує. Як людина ми цього не помічаємо, але мікроконтролер настільки швидкий, що він побачить натиснуту, відпущену, натиснуту кнопку. Лічильник кнопки ignore трохи зачекає після натискання кнопки, щоб уникнути цього відскоку.

Створіть друковану плату

Основна схема:
Коробка для блоку живлення. Дерево для боків, металеві листи знизу, зверху і спереду:
Лицьова сторона:
Програмний пакет містить файл постскриптуму (linuxDCpower.ps) для друкованої плати. Я особисто вважаю, що льодяники завжди трохи замалі. Ось чому я настійно рекомендую трохи розширити їх маркером перед тим, як спалити ланцюг. Процес побудови схеми вдома описаний у: Травень 2002 р., РК-панель управління для вашого сервера Linux.
Як побудувати економічну, але естетичну коробку для вашого джерела живлення, описано в статті “Вересень 2002 р., Лічильник частоти 1 Гц-100 МГц з РК-дисплеєм та інтерфейсом RS232”. Справу ви можете бачити корпус і передню панель, яку я зробив. Клацніть на зображення, щоб отримати більші зображення.

Тест

І ось наша власна їжа

Ви бачили, що у нас було три варіанти, залежно від використовуваного трансформатора. Програмне забезпечення за замовчуванням має вихідну напругу 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, яка входить до пакету програмного забезпечення. Все це описано у статті від вересня 2002 р. «Лічильник частот».

безпеки

Налаштування

Список літератури

  • Програмне забезпечення uisp AVR: 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 st232.pdf 100K
  • Специфікація для Atmel AT90S4433 Apr4433.pdf 2356K
  • Веб-сайт Atmel: www.atmel.com/
  • Eagle для Linux cadsoftusa.com

Форма розмови для цієї статті

2005-02-13, згенеровано lfparser версії 2.52