Простий лічильник числа оборотів - Конструкції простої складності - Схеми для початківців. Застосовуємо калькулятор як лічильник імпульсів для різних пристроїв Лічильник імпульсів на мікроконтролері схема та прошивка

Головна / Додатковий функціонал

Лічильник імпульсів— це послідовне цифрове пристрій, що забезпечує зберігання слова інформації та виконання над ним мікрооперації рахунку, що полягає в зміні значення числа в лічильнику на 1. По суті лічильник являє собою сукупність з'єднаних певним чином тригерів. Основний параметр лічильника – модуль рахунку. Це максимальна кількість одиничних сигналів, яка може бути порахована лічильником. Лічильники позначають через СТ (від англ. counter).

Лічильники імпульсів класифікують

● за модулем рахунку:
. двійково-десяткові;
. двійкові;
. із довільним постійним модулем рахунку;
. із змінним модулем рахунку;
. за направленням рахунку:
. підсумовуючи;
. віднімають;
. реверсивні;
● за способом формування внутрішніх зв'язків:
. з послідовним перенесенням;
. з паралельним перенесенням;
. з комбінованим перенесенням;
. кільцеві.

Підсумовуючий лічильник імпульсів

Розглянемо підсумовуючий лічильник (рис. 3.67, а). Такий лічильник побудований на чотирьох JK-тригерах, які за наявності на обох входах логічного сигналу «1» перемикаються в момент появи на входах синхронізації негативних перепадів напруги.

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

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

Трирозрядний лічильник, що віднімає, з послідовним переносом

Розглянемо трирозрядний лічильник з послідовним перенесенням, схема і часові діаграми роботи якого наведені на рис. 3.68.
(xtypo_quote)У лічильнику використовуються три JK-тригери, кожен з яких працює в режимі Т-тригера (тригера з рахунковим входом).(/xtypo_quote)

На входи J і До кожного тригера подано логічні 1, тому після приходу заднього фронту імпульсу, що подається на його вхід синхронізації, кожен тригер змінює попередній стан. Спочатку сигнали на виходах всіх тригерів дорівнюють 1. Це відповідає зберіганню в лічильнику двійкового числа 111 або десяткового числа 7. Після закінчення першого імпульсу F перший тригер змінює стан: сигнал Q 1 стане рівним 0, a Q 1 − 1.

Інші тригери у своїй свій стан не змінюють. Після закінчення другого імпульсу синхронізації перший тригер знову змінює свій стан, переходячи у стан 1 (Q x = 0). Це забезпечує зміну стану другого тригера (другий тригер змінює стан з деякою затримкою по відношенню до закінчення другого імпульсу синхронізації, так як для його перекидання потрібен час, що відповідає часу спрацьовування його самого та першого тригера).

Після першого імпульсу F лічильник зберігає стан 11О. Подальша зміна стану лічильника відбувається аналогічно до викладеного вище. Після стану 000 лічильник знову перетворюється на стан 111.

Трирозрядний лічильник з послідовним перенесенням, що самозупиняється.

Розглянемо трирозрядний самозупиняється лічильник, що віднімає, з послідовним переносом (рис. 3.69).

Після переходу лічильника стан 000 на виходах всіх тригерів виникає сигнал логічного 0, який подається через логічний елемент АБО на входи J і До першого тригера, після чого цей тригер виходить з режиму Т-тригера і перестає реагувати на імпульси F.

Трирозрядний реверсивний лічильник із послідовним перенесенням

Розглянемо трирозрядний реверсивний лічильник із послідовним перенесенням (рис. 3.70).

У режимі віднімання вхідні сигнали повинні подаватися на вхід Т ст. На вхід Т з при цьому подається сигнал логічного 0. Нехай всі тригери знаходяться в стані 111. Коли перший сигнал надходить на вхід Т на вході Т першого тригера з'являється логічна 1, і він змінює свій стан. Після цього на його інверсному вході виникає сигнал логічної 1. При надходженні другого імпульсу на вхід Т на вході другого тригера з'явиться логічна 1, тому другий тригер змінить свій стан (перший тригер також змінить свій стан приходу другого імпульсу). Подальша зміна стану відбувається аналогічно. У режимі складання лічильник працює аналогічно 4-розрядному підсумовувальному лічильнику. При цьому сигнал подається на вхід Т с. На вхід Т подається логічний 0.
Як приклад розглянемо мікросхеми реверсивних лічильників (рис. 3.71) з паралельним перенесенням серії 155 (ТТЛ):
● ІЕ6 - двійково-десятковий реверсивний лічильник;
● ІЕ7 — двійковий реверсивний лічильник.

Напрямок рахунку визначається тим, який висновок (5 або 4) подаються імпульси. Входи 1, 9, 10, 15 - інформаційні, а вхід 11 використовується для попереднього запису. Ці 5 входів дозволяють здійснити попередній запис у лічильник (передустановку). Для цього потрібно подати відповідні дані на інформаційні входи, а потім подати імпульс запису низького рівня на вхід 11 і лічильник запам'ятає число. Вхід 14 - вхід установки О при подачі високого рівня напруги. Для побудови лічильників більшої розрядності використовуються виходи прямого та зворотного перенесення (висновки 12 та 13 відповідно). З виведення 12 сигнал повинен подаватися на вхід прямого рахунку наступного каскаду, а з 13 на вхід зворотного рахунку.

У цьому прикладі застосування описується, як реалізувати електронний лічильник електроенергії на мікроконтролері серії MSP430FE42x. Документ містить опис деяких основоположних принципів та рекомендації щодо використання мікроконтролерів серії MSP430FE42x, а також малюнки друкованих плат та демонстраційні версії програм.

1. Введення

У даному прикладі застосування описані принципова схема електрична і програмне забезпечення електронного лічильника електроенергії на мікроконтролері сімейства MSP430FE42x. Як додаток передбачається використовувати посібник користувача модуля ESP430CE1.

Мікроконтролери сімейства MSP430FE42x із вбудованим сигнальним процесором ESP430CE1 для однофазного лічильника електроенергії з вбудованим аналоговим вхідним терміналом та температурним датчиком були розроблені спеціально для використання у пристроях вимірювання споживаної потужності. ESP430CE1 виконує більшість дій щодо вимірювання споживання електроенергії автоматично, не використовуючи ресурси обчислювального ядра. Це дозволяє зберегти ресурси обчислювального ядра для використання в інших завданнях, наприклад для здійснення зв'язку з іншими пристроями. ESP430CE1 може працювати з різними струмовими датчиками. Як струмовий датчик він може використовувати Роговського без додаткових зовнішніх компонентів шунт, струмові трансформатори (СТ), включаючи трансформатори зі зв'язком по постійному струмута великим фазовим зсувом, або котушки індуктивності. Усі параметри можуть бути налаштовані програмно, а калібрувальні константи можуть бути збережені у Flash пам'яті мікроконтролера MSP430 та передані ESP430CE1 під час ініціації системи.

2 Апаратна частина

Схема монтажної плати та блок-схема пристрою наведені в додатку А та описуються в нижченаведених розділах даного прикладузастосування. Монтажна плата може використовуватись із струмовими трансформаторами або шунтами і може бути перебудована. Така монтажна плата випускається компанією Softbaugh серійний номердля замовлення DE427. Замовити її можна на сайті компанії Softbaugh, адреса якого в Інтернеті www.softbaugh.com.

Підключення каналів V1, I1 та I2 показані на схемі, наведеній у додатку А.

2.1 Використання шунта як перетворювача струму

Малюнок 1. Блок-схема підключення шунта до двопровідної однофазної мережі

2.2 Використання CT як перетворювача струму


Малюнок 2. Блок-схема підключення CT до двопровідної однофазної мережі

2.3 Підключення CT та шунта як перетворювача струму, що дозволяє виявляти несанкціоноване підключення


Малюнок 3. Блок-схема підключення шунта та CT до двопровідної однофазної мережі, що дозволяє виявляти несанкціоноване підключення

2.4 Підключення CT для підключення до трипровідних однофазним мережам, що застосовуються в США


Малюнок 4. Блок-схема ANSI електролічильника, що використовується у трипровідних однофазних мережах

2.5 Підключення входів датчиків напруги

Друкована платаоснащена дільником напруги, розрахованим на роботу в мережах із середньоквадратичним значенням напруги 230 В. Також вона містить схему захисту, розраховану на цю напругу.

Ємнісне джерело живлення здатне забезпечувати струм споживання до 4 мА. Необхідно забезпечити, щоб струм споживання не перевищив це допустиме значення. Для цього в демонстраційній схемі використали світлодіод з низьким струмом світіння.

2.6 Підключення входів датчиків струму

На друкованій платі є місце для монтажу SMD резистора, що використовується як навантаження для струмового трансформатора, але цей резистор не встановлений в платі, що поставляється. Примітка: резистор навантаження для СТ не встановлений, але при підключенні СТ його необхідно встановити, інакше MSP430 буде пошкоджений.

2.7 Фільтр, що згладжує

Як фільтр, що згладжує, рекомендується використовувати резистор номіналом 1 кОм, підключений послідовно до входу АЦП, і конденсатор номіналом 33 нФ, підключений між входом перетворювача і землею. Для виключення впливу синфазних перешкод рекомендується використовувати фільтри, що згладжують, в обох каналах струмового перетворювача.

2.8 канали АЦП, що не використовуються.

Канали АЦП, що не використовуються, не повинні бути ні до чого підключені.

3 Розрахунок констант для вимірювача ESP430CE1

Вимірювачі необхідні константи, що відповідають застосованим трансформаторам та/або шунтам. У цьому розділі показано розрахунок констант для вимірювача ESP430CE1.

3.1 Коефіцієнт перетворення за напругою

Коефіцієнт перетворення за напругою, відповідно до якого перераховується реальна вхідна напруга у вхідну напругу модуля ESP430CE1, розраховується за наведеними нижче формулами:

    V(inp.max) = VoltageGain x V (Line, Nom.) x sqrt(2) x R2 /(R1 + R2)
    kV1 = Voltage (Line, nominal) x 2 x sqrt(2) / (2 15 x (1- (Vref – V(inp.max) x 2)/Vref))

3.2 Коефіцієнт перетворення струму для шунта

Коефіцієнт перетворення струму для шунта, відповідно до якого перераховується реальний вхідний струм в струм модуля ESP430CE1 розраховується за наведеними нижче формулами:

    V(I, inp.max) = CurrentGain x Imax x R(Shunt) x sqrt(2)

3.3 Коефіцієнт перетворення струму для трансформатора струму

Коефіцієнт перетворення струму для трансформатора струму, відповідно до якого перераховується реальний вхідний струм в струм модуля ESP430CE1 розраховується за наведеними нижче формулами:

    V(I, inp.max) = CurrentGain x Imax / CTRatio x R(Burden) x sqrt(2)
    kI1 = Current (Line, nominal) x 2 x sqrt(2) / (2 15 x (1- (Vref – V(I, inp.max) x 2)/Vref))

3.4 Рівень переривання за потужністю

Рівень переривання за потужністю ESP430CE1 розраховується за такою формулою:

    InterruptLevel = Pulses/kWh x (1000 / 3600) x fADC / (kV1 x kI1 x 4096)

Pulses/kWh визначає скільки переривань на кожен кВт*год буде сформовано.

4 Калібрування вимірювача

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

Основне калібрування може бути ініціалізоване за допомогою команди С0, переданої через UART. Для виконання цієї команди необхідно у файлі parameter.h визначити вхідні значення наступних параметрів:

    - calVoltage
    - calCurrent
    - calPhi
    - calCosPhi
    - calFreq

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

Для калібрування лічильника електроенергії необхідно розділити тракти вимірювання струму та напруги. Це дозволяє виконати калібрування з малими втратами енергії та визначити величини напруги, струму та фазового зсуву. На малюнку 5 показано схему включення електролічильника при калібруванні.


Малюнок 5. Електронний лічильник електроенергії на MSP430 із зовнішніми терміналами

4.1 Калібрування при безперервному вимірі

Нормальний робочий режим ESP430CE1 встановлюється шляхом надсилання обчислювальним ядром команди SetMode. Величина виміряної потужності, записана після кожного вимірювання в регістр ActEnSPer1 (і регістр ActEnSPer2 для систем з двома датчиками), перетворюється обчислювальним ядром на сигнал з постійною частотою, пропорційний вимірюваної потужності. Для формування сигналу з постійною частотою можна використовувати модуль таймера Timer_A.

При калібруванні виконуються такі дії:

  • Обчислювальне ядро ​​встановлює у нульовому контрольному регістрі ESP430CE1 прапори Curr_I1, Curr_I2, відповідні режиму виміру.
  • Регістри параметрів ініціалізуються для вимірювання потужності навантаження. Це виконується за допомогою команди SET_PARAM.
  • Після отримання команди mSet_Mode ESP430CE1 перетворюється на режим вимірювання електроенергії.
  • Перший результат вимірювання ActEnSPer1 (і ActEnSPer2 у системах з двома датчиками) не використовується, оскільки невідома точка початку.
  • Наступні результати вимірювань, що знаходяться в ActEnSPer1 (і ActEnSPer2 у системах з двома датчиками) є правильними та використовуються для обчислень.
  • Прапор St_ZCld у нульовому регістрі стану вказує, що при наступній доступній вибірці (прапор St_NEVal встановлений) нові результати вимірювання за минулий період доступні в регістрах ActEnSPer1 і ActEnSPer2.
  • Обчислювальне ядро ​​скидає прапор St_NEVal за допомогою команди mCLR_EVENT і зчитує дані (див. опис алгоритму зчитування нижче).
  • Якщо необхідно, наприклад, для обчислення результату за більший період, останні чотири пункти повторюються.

Вищезгадані кроки повторюються і в другій точці калібрування.

Калібрування обох датчиків має бути виконане незалежно. При калібруванні одного датчика вимірювача струм через другий датчик має бути нульовим. І навпаки.

4.1.1 Формули

Калібрування проводиться за один основний період (або за nper основних періодів) при двох струмах навантаження I1HI та I1LO. Номінальна обчислена потужність для двох точок калібрування:

    nHIcalc = Cz1 x I1HI x V1 x cos?1 x (nper / fmains) x (fADC / 4096) [кроки 2]
    nLOcalc = Cz1 x I1LO x V1 x cos?1 x (nper / fmains) x (fADC / 4096) [кроки 2]

Результуючі значення для нахилу та усунення:

    Нахил: GainCorr1 = ((nHIcalc - nLOcalc) / (nHImeas - nLOmeas)) x 2 14
    Зміщення: Poffset = (((nHImeas x nLOcalc) – (nLOmes – nHIcalc)) / (nHImeas – nLOmeas)) x (fmains / nper) x (4096 / fADC),

де fmains - основна частота Гц;

    fADC – частота дискретизації АЦП у Гц (зазвичай 4096 Гц);
    nper - кількість основних періодів, використаних при калібруванні;
    nHIclac – обчислена потужність у точці калібрування з високим струмом у кроках у квадраті;
    nHImaes – виміряна потужність у точці калібрування з високим струмом у кроках у квадраті;
    nLOclac – обчислена потужність у точці калібрування з низьким струмом у кроках у квадраті;
    nLOmaes – виміряна потужність у точці калібрування з низьким струмом у кроках у квадраті;

4.1.2 Приклад калібрування

Для схеми, показаної малюнку 1, калібрування проводиться за таких умов:

    V1 = 230, I1HI = 20 A, I1LO = 1 A, cos?1 = 1, nper = 1, fADC = 2048 Гц, fmains = 50 Гц.
    nHIcalc = Cz1 x I1HI x V1 x cos ? кроків 2]
    nLOcalc = Cz1 x I1LO x V1 x cos ? кроків 2]

Результат виміру в обох точках:

    n1Himeas = 14,6040h (помилка -1% порівняно з n1Hicalc = 14,94F1h)
    n1Lomeas = 1,0CB7h (помилка +2% порівняно з n1Localc = 1,0772h)
    GainCorr1 = ((nHIcalc - nLOcalc) / (nHImeas - nLOmeas)) x 2 14 = ((14,94F1h - 1,0772h) / (14,6040h - 1,0CB7h)) x 2 14 = 40С0h

    Poffset = (((nHImeas x nLOcalc) – (nLOmes – nHIcalc)) / (nHImeas – nLOmeas)) x (fmeins / nper) x (4096 / fADC) = (((14,6040h x 1,0772h) – (1 ,0CB7h – 14,94F1h)) / (14,6040h – 1,0CB7h)) x (50 / 1) x (4096 / 2048) = -215,489 = FFFC,B63Fh

Якщо точки калібрування виправити з урахуванням нахилу та усунення, тоді:

    ncorr = (nmeas x GainCorr1)) x 2-14 + (Poffset1) x (nper / fmains) x (fADC / 4096) nHIcorr = 14,6040h x 40C0h x 2-14 +FFFC, B63Fh x ((1 x 204) / (50 x 4096)) = 1,348,890 = 14,951Ah nLOcorr = 1,0CB7h x 40C0h x 2-14 +FFFC, B63Fh x ((1 x 2048) / (50 x 4096)) = 67,4

Результуюча помилка за обох корекціях дорівнює +3.1 Е-5, тобто. 31 ppm.

4.2 Калібрування за допомогою ПК

На малюнку 6 показаний один із можливих варіантівустановки для калібрування електронних лічильників електроенергії Електролічильники підключені до послідовного порту ПК через послідовний порт USART0, який працює у режимі UART чи SPI. Всі необхідні для калібрування обчислення виконуються ПК, а MSP430 кожного електролічильника тільки запам'ятовує отримані коригувальні величини у вбудованій пам'яті даних або EEPROM зовнішньої пам'яті.

ПК керує калібрувальною установкою, що складається з генератора напруги, генератора струму та фазообертача, через комунікаційний інтерфейс. ПК зчитує результати множення напруги та струму, обчислені вбудованими АЦП (або кількість імпульсів Ws на виході кожного електролічильника) і порівнює це значення зі значенням, отриманим еталонним електролічильником, який є частиною апаратури калібрування. ПК обчислює помилку електролічильника в одній (наприклад, при номінальному струмі) або двох (наприклад, при максимальному та номінальному струмі споживання) крапках калібрування. За результатами цих помилок обчислюються індивідуальні коригувальні коефіцієнти для нахилу та кута зсуву і передаються в конкретний електролічильник, в якому мікроконтролер MSP430 зберігає ці значення.


Малюнок 6. Калібрування електронних електролічильників за допомогою ПК

Формули для обчислення значень калібрувальних констант наведено у посібнику користувача модуля ESP430CE1.

4.3 Самокалібрування

Інший метод калібрування використовує здатність MSP430 виконувати складні обчислення. Основна перевага цього методу калібрування - це простота: Для передачі даних при цьому методі не потрібні жодні провідні з'єднання (див. рис. 7). Рівняння виправлення помилок, що використовуються вимірювачем під час тесту, такі ж, як і наведені у наведеному вище розділі "Калібрування при безперервному вимірі".

  • Вимірники, які калібруватимуться, переводяться в режим калібрування за допомогою прихованого перемикача, UART, ключа, вхідного імпульсу і т.д.
  • ПК включає калібрувальну апаратуру, яка віддає певну кількість енергії, що вимірюється за допомогою еталонного вимірювача, електролічильникам, що калібруються.
  • Електролічильники вимірюють видану кількість енергії та обчислюють значення електроспоживання WEM1 для 100% номінального струму Inom.
  • Після цього калібрувальна апаратура відключається (I = 0, U = 0). Це дозволяє за необхідності обчислити та виміряти зміщення самого АЦП.
  • ПК включає калібрувальну апаратуру, яка знову віддає електролічильникам певну кількість електроенергії (наприклад, 5% Inom, 100% Vnom, cos?=1). Після цього апаратура знову вимикається (i = 0, U = 0).
  • Лічильники знову вимірюють електроенергію та обчислюють значення WEM0 для 5% номінального струму Inom.
  • За двома значеннями WEM1 та WEM0, знайденими для 100 % та 5 % номінального струму Inom, електролічильники обчислюють індивідуальні величини зсуву та нахилу.
  • Після калібрування можна провести простий візуальний тест:
    - для обнулення індикаторів електролічильники скидаються - калібрувальна апаратура видає точно певну кількість енергії (при різних значеннях струму, напруги та cos?) - візуально перевіряється, щоб на всіх електролічильниках відображалася однакова величина виміряного значення спожитої енергії - за показаннями РКІ можна визначити, що розраховані коефіцієнт нахилу та усунення виходять за допустимі межі.

Приклад: якщо провести калібрування за наступних параметрів:

  • 10 000 Ws (100 % Inom, 100 % Vnom, cos? = 1)
  • 5 000 Ws (100 % Inom, 100 % Vnom, cos? = 0.5)

калібровані електролічильники повинні показати значення Ws, що дорівнює 15 900 ± допустима точність. Якщо обчислене значення виходить за допустимі межі, то електролічильник визнається таким, що не пройшов калібрування.


Малюнок 7. Самокалібрування електролічильників

5 Ємнісне джерело живлення

На малюнку 8 показаний ємнісний джерело живлення, що формує одна напруга Vcc = +3 В. Якщо його вихідного струму недостатньо, можна використовувати вихідний буфер на базі NPN транзистора.

Рівняння для розробки наведених нижче джерел живлення наведено в розділі 3.8.3.2 "Ємнісне джерело живлення" прикладу застосування SLAA024. У цьому розділі описуються інші джерела живлення та рівняння для їх розрахунку.


Малюнок 8. Ємнісне джерело живлення

5.1 Детектор виявлення відключення/увімкнення лінійної напруги

Так як детектор падіння напруги ESP430CE1 об'єднаний з лічильником циклів лінійної напруги, то при зникненні лінійної напруги він не працює. Для виявлення цього можна відстежувати знаходження VRMS протягом певного інтервалу часу нижче заданого порогу або використовувати зовнішній ланцюг для визначення вимкнення лінійного живлення. При використанні зовнішнього ланцюгаДля зниження споживання можна вимкнути модуль ESP430CE1.


Малюнок 9. Детектування наявності лінійної напруги

6.1 Заземлення

Правильне трасування друкованої плати дуже важливе для систем, що використовують АЦП з високою роздільною здатністю. Нижче наведено основні рекомендації щодо трасування плат.

1. Використання, по можливості, окремих шин аналогової та цифрової "землі".

2. Максимально товсті доріжки від джерела живлення до висновків DVSS, AVSS, DVCC та AVCC.

3. Встановлює конденсатор у точці сходження всіх ліній аналогової "землі". Встановлює конденсатор у точці сходження всіх цифрових "земель".

4. Конденсатор Cb слід розташувати у точці сходження всіх шин живлення. Це необхідне забезпечення низького повного опору цього конденсатора.

5. AVSS та DVSS термінали мають бути зовні з'єднані разом.

6. AVCC та DVCC термінали мають бути зовні з'єднані разом.

7. Джерело живлення та накопичувальний конденсатор Cb повинні бути розташовані максимально близько один до одного. Між висновками, підключеними до шин аналогового та цифрового живлення, повинні бути встановлені конденсатори Ca та Cb.

8. Для розв'язування шин аналогового та цифрового живлення необхідно використовувати котушку індуктивності L. Також можна використовувати резистор, але при використанні котушки індуктивності забезпечується краща фільтрація високих частот.

9. Якщо по периметру друкованої плати проходить доріжка, вона повинна бути підключена до заземлюючої шини плати.


Рисунок 10. Заземлення аналого-цифрового перетворювача

6.2 Чутливість до ЕМІ

На малюнку 11 спрощено показано не оптимальне трасування: сірим виділено ділянки, здатні приймати зовнішні наведення від зовнішніх джерелЕМІ. Для зниження впливу зовнішніх джерел ЕМІ ці долі за площею мають бути мінімальними.


Малюнок 11. Трасування плати, чутливої ​​до зовнішніх ЕМІ

На малюнку 12 показана друкована плата, що має оптимальне трасування. Ділянки, які є приймачами ЕМІ, мають мінімальну площу.


Малюнок 12. Трасування друкованої плати, що має мінімальну чутливість до ЕМІ

7 Демонстраційна програма

7.1 Ініціалізація аналогового терміналу

При відключеному модулі ESP430CE1, обчислювальне ядро ​​MSP430 має доступ до модуля SD16. Спочатку обчислювальне ядро ​​MSP430 має зробити ініціацію аналогового вхідного терміналу. При цьому проводиться установка коефіцієнта посилення, частоти дискретизації та частоти генератора синхроімпульсів для SD16:

//================================================ ==================== /** * Підпрограма ініціалізації аналогового терміналу. * * Налаштування модуля сигма-дельта АЦП як аналоговий термінал для * резистивного лічильника, що визначає несанкціоноване підключення, * використовує струмовий трансформатор і шунт як струмового датчика * (див. налаштування каналів 0 і 1). */ void init_analog_front_end(void) ( /** * Спочатку перевіряється, що вбудований сигнальний процесор вимкнений, * в іншому випадку буде неможливо змінити дані в регістрі SD16. * */ ESPCTL &= ~ESPEN; /** * Після цього виконуються основні налаштування аналогового терміналу, * які відносяться до всіх каналів: вибір синхроімпульсів (SMCLK), * параметрів дільника (залежно від частоти SMCLK) та опорного * напруги. // Clock Вибір синхроімпульсів: SMCLK + (Amp:) #if (MCLK_FREQ == 2) |SD16DIV_1 // розподіл на 2 => Частота синхроімпульсів АЦП: 1.094 МГц #endif #if (MCLK_FREQ == 4) |SD1 на 4 => Частота синхроімпульсів АЦП: 1.094 МГц #endif #if (MCLK_FREQ == 8) |SD16DIV_3 // розподіл на 8 => Частота синхроімпульсів АЦП: 1.094 МГц #endif | /I1 SD16CCTL1=SD16INCH_0;//I2 SD16CCTL2=SD16INCH_0; // V SD16CONF0 | = 0x70; // SD16CONF1 | = 0x68; // Затримка синхроімпульсів АЦП 40 нс // ========================================= ========================== /** * - Вибір коефіцієнта посилення АЦП: * - VIN,MAX(GAIN = 1) = 0.5V > VCT(піковий) * - VIN,MAX(GAIN = 2) = 0.25V< VCT(пиковое) * - VIN,MAX(GAIN = 16) = 0.031V >VShunt(піковий) * - VIN,MAX(GAIN = 32) = 0.015V< VShunt(пиковое) */ // =================================================================== // Настройка нулевого канала аналогового терминала - Ток 1 SD16INCTL0= I1_Gain; // Установка коэффициента усиления для нулевого канала (I1) SD16CCTL0 |= SD16OSR_256; // Установка коэффициента дискретизации = 256 (по умолчанию) // =================================================================== // Настройка первого канала - Ток 2 SD16INCTL1= I2_Gain; // Установка коэффициента усиления первого канала (I2) SD16CCTL1 |= SD16OSR_256; // Установка коэффициента дискретизации = 256 (по умолчанию) // =================================================================== // Настройка второго канала - Напряжение SD16INCTL2= V_Gain; // Установка коэффициента (V) SD16CCTL2 |= SD16OSR_256; // Установка коэффициента дискретизации = 256 (по умолчанию) /** * \Замечание * Пожалуйста запомните, что коэффициент дискретизации для всех каналов должен * быть идентичным. По умолчанию он равен 256. */ } // Конец init_analog_front_end()

7.2 Ініціалізація електролічильника

Перед використанням ESP430CE1 необхідно налаштувати. Приклад підпрограми налаштування модуля:

//================================================ ==================== /** * Ініціалізація ESP430CE1. * */ void init_esp_parameter(unsigned char flashvars) ( volatile unsigned int timeout; // /\ Запобігання "оптимізації" змінних. // Копіювання значень ініціалізації в ОЗП if (flashvars) s_parameters = s_parameters_flash;, /** * процесор * активізований, * / ESPCTL | = ESPEN; MBCTL = 0; /** * і не знаходиться в режимі вимірювання або калібрування, * / if ((RET0 & 0x8000) ! ”Idle” MBOUT1= modeIDLE; // ESP_IDLE; MBOUT0= mSET_MODE; timeout= 0xffff; while (((RET0 & 0x8000) != 0) && (timeout?? > 0)) ; , що запитує * версію програмного забезпечення. */ MBOUT0= mSWVERSION; timeout = 0xffff; do ( while (((MBCTL & IN0IFG) == 0) && (timeout?? > 0)) ; if (timeout == 0) ( display_error(); return; ) ) while (MBIN0 != mSWRDY); firmware_version = MBIN1; / / Запис версії програми. /** * Після цього проводиться ініціалізація параметрів. * * Control 0: виконується установка для: * - Канал вимірювання струму I2? детектування несанкціонованого підключення * - Розрахунок абсолютного значення активної енергії * (негативна енергія розцінюється як несанкціоноване підключення) * - Перемикання алгоритму видалення постійної складової струму I1 * - Переключення алгоритму видалення постійної складової струму I2 */ set_parameter(mSET_CTRL0, defSET_CTRL0); /** * \установка номера виміру: * тобто. 4096*50Hz. => переривання раз на секунду */ set_parameter(mSET_INTRPTLEVL_LO, s_parameters.pSET_INTRPTLEVL.w); set_parameter(mSET_INTRPTLEVL_HI, s_parameters.pSET_INTRPTLEVL.w); /** * Номінальна основна частота: * тобто. 50 Гц. */ set_parameter(mSET_NOMFREQ, defSET_NOMFREQ); /** * Корекція фазової помилки: * Установка фазової помилки для струму 1/2 від номінальної основної частоти для * струмового трансформатора за його технічним характеристикам* Фазова помилка шунта дорівнює нулю. */ set_parameter(mSET_PHASECORR1, (int)s_parameters.pSET_PHASECORR1); set_parameter(mSET_PHASECORR2, (int)s_parameters.pSET_PHASECORR2); /** Налаштування параметрів для двох струмів: * Токовий трансформатор: * * Є дві можливості налаштування значень двох * струмів: */ set_parameter(mSET_ADAPTI1, defSET_ADAPTI1); // = 1 * POW_2_14 = 16384 set_parameter(mSET_ADAPTI2, defSET_ADAPTI2); // = 1 * POW_2_14 = 16384 /** Установка настроєного коефіцієнта посилення: */ set_parameter(mSET_GAINCORR1, s_parameters.pSET_GAINCORR1); set_parameter(mSET_GAINCORR2, s_parameters.pSET_GAINCORR2); /** Установка налаштованого зсуву: */ set_parameter(mSET_V1OFFSET, s_parameters.pSET_V1OFFSET); set_parameter(mSET_I1OFFSET, s_parameters.pSET_I1OFFSET); set_parameter(mSET_I2OFFSET, s_parameters.pSET_I2OFFSET); // set_parameter(mSET_POFFSET1_LO, s_parameters.pSET_POFFSET1_LO); // set_parameter(mSET_POFFSET1_HI, s_parameters.pSET_POFFSET1_LO); /** Налаштовані параметри стають поточними: */ #if withStartCurrent == 1 set_parameter(mSET_STARTCURR_INT, s_parameters.pSET_STARTCURR_INT); set_parameter(mSET_STARTCURR_FRAC, s_parameters.pSET_STARTCURR_FRAC); #else set_parameter(mSET_STARTCURR_INT, 0); set_parameter(mSET_STARTCURR_FRAC, 0); #endif /** Параметри регулювання для періоду видалення постійної складової: */set_parameter(mSET_DCREMPER, defSET_DCREMPER); ) // End of init_esp_parameter()) // Кінець підпрограми init_esp_parameter()

7.3 Програма Demo 1

Demo 1 – проста демонстраційна програма, яка ініціалізує ESP430CE1 для вимірювання електричної енергії та виведення результату на індикатор. При цьому відбувається блимання світлодіода. Ця програма може працювати з комплектом налагодження Kickstart виробництва компанії IAR.

Нижче наведено файли демонстраційної програми їх призначення:

Файл Призначення та функції
Main.c Керує ініціалізацією системи та викликає функції для індикації оновленого значення, що запитується підпрограмами обробки переривання:
  • Init FLL and System Clock
  • Init Basic Timer and Real time Clock
  • Init LCD
  • Init analog front end
  • Init ESP430CE1 Parameters
  • Start Measurement
FET4xx_RTCwLCD.s43 Основна підпрограма для обслуговування РКІ та RTC
Display.c Підпрограма високого рівня для РКІ
FLL.c Підпрограма встановлення ФАПЧ та системи синхронізації
PortFunc.c Підпрограма обробки переривання портом Port1
TimerA.c Підпрограма ініціалізації та обслуговування таймера Timer_A. Timer_A використовується для формування імпульсів
EMeter.c EMeter.c Містить підпрограму ініціалізації та підпрограму обслуговування аналогового терміналу, ESP430CE1 та переривання від ESP430CE1
FE427_Measure_v3.ewp
FE427_Measure_v3.eww
Файли проектів для програми Workbenchверсії 3 виробництва компанії IAR
FE427_Measure.ewp
FE427_Measure.eww
Файли проектів для програми Workbench версії 2 виробництва IAR
FE427_Measure.hzp
FE427_Measure.hzs
Файли проектів для програми CrossStudio виробництва компанії Rowley

Блок – схема демонстраційної програми наведено малюнку 13.


Малюнок 13. Блок – схема демонстраційної програми

7.4 Генерація імпульсу електроспоживання

Цей імпульс можна використовувати для індикації певного рівня спожитої енергії. Для формування цього вихідного сигналу можна використовувати три методи.

7.4.1 Безпосереднє використання виходу сигналу переривання за рівнем

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

Активізується цей метод:

    // *define TIMERA_PULSE_OUTPUT
    // *define WITH_AVERAGING

7.4.2 Використання виходу таймера Timer_A

У другому методі видалення перехідних коливань використовується модуль таймера Timer_A. Цей метод є прийнятним для формування імпульсів з частотою до 30 Гц. Перед використанням цього методу у файлі parameter.h необхідно зробити такі установки.

    *define TimerAClock TASSEL_1/* ACLK = 32 кГц
    *define TACLOCK 32768ul
    *define CLOCKSPERPERIOD (TACLOCK/defSET_NOMFREQ)

Активізація методу проводиться так:

    *define TIMERA_PULSE_OUTPUT
    // *define WITH_AVERAGING

7.4.3 Використання виходу таймера Timer_A при усередненні

У третьому методі використовується тільки модуль таймера Timer_A для усереднення часу і формування імпульсів несучої частоти.

Активізація цього методу проводиться так:

    *define TIMERA_PULSE_OUTPUT
    *define WITH_AVERAGING

7.5 Управління

Є дві кнопки, які використовуються для виконання наступних функцій:

  • S_A: Вимкнення модуля ESP430CE1 та переведення MSP430 у режим зниженого споживання. Годинник реального часу при цьому продовжує працювати.
  • S_B: Перемикання між режимами індикації.

7.5.1 Файл Parameter.h

Усі конфігураційні установки виконуються у файлі parameter.h. До них відносяться:

  • Рівень вихідного імпульсу.
  • Коефіцієнти передачі за напругою та струмом
  • Конфігураційні параметри для модуля ESP430CE1

#define для withDisplay дозволяє масштабувати код для різних функційта розмірів. Код використовує функції з плаваючою точкою для виходу UART та калібрування. Включення однієї з цих частин збільшить розмір коду.

Визначення шунта, *define shunt, дозволяє вибрати до чого буде підключений вхід I1 - до шунта або трансформатора струму.

Для спрощення розрахунку основних параметрів у файлі parameter.h можна використовувати файл для Excel FE427_Settings.xls. Після введення необхідної інформації у білі поля всі параметри будуть розраховані та відображені. Після натискання кнопки "Save Parameter to File" всі параметри будуть збережені у файлі 'Test_Parameter.h'.

Цей файл з розрахованими параметрами буде включений у вихідний код замість заданих за замовчуванням у файлі 'Parameter.h' параметрів, якщо зняти ремаркування з рядка '#define Test' у самому файлі 'Parameter.h'.

7.6 Демонстраційна програма Demo 2

Демонстраційна програма Demo 2 встановлюється як комплексний додаток, що включає UART і деякі підпрограми автокалібрування, які зберігають параметри у flash пам'ять. Для обчислення електроспоживання замість функції формування споживання за перевищенням заданого рівня використовуються значення, що повертаються модулем ESP430CE1. Програма Demo 1 виконує ініціалізацію модуля ESP430CE1, виведення даних на індикатор та здійснює керування світлодіодом індикації включення. Ця демонстраційна програма занадто велика, щоб використовувати за допомогою комплекту Kickstart компанії IAR.

Демонстраційна програма Demo 2 включає всі файли, що містяться в програмі Demo 1, і файли, наведені в нижченаведеній таблиці:

7.6.1 Зв'язок з UART

    Формат даних: 57600 / 8 N 1
    Кожна команда має закінчуватись символом "CR".
    Команда 'h' виводить у вікні терміналу наведений нижче текст допомоги:

    Версія програмного забезпечення MSP430FE427: 0114
    Команди UART:

      SHxx:Встановлення годинника
      SMxx:Встановлення хвилин
      SSxx:Встановлення секунд
      SDxx:Встановлення дня
      SOxx:Встановлення місяця
      SYxx:Встановлення року
      Dx:Встановлення режиму індикатора
      D1:Вимкнення
      D2:Час
      D3:Дата
      D4:Напруга, В)
      D5:Струм (A)
      D6:Пікова напруга (В)
      D7:Пікове значення струму (A)
      D8:Частота (Гц)
      D9: CosPhi
      DA:Температура
      DB:Потужність, кВт)
      DC:Електроспоживання (кВт * год)
      H:показати текст допомоги
      Tx:встановлення тестового режиму
      R:скидання системи
      Mx:Виконання тестових вимірів протягом x*50 циклів
      I:Ініціалізація
      C0:Автокалібрування U / I / P / фазового зсуву
      C1:Калібрування рівня переривання
      C2:Калібрування фазової корекції 1
      C3:Калібрування фазової корекції 2
      C4:Калібрування зміщення V1
      C5:Калібрування зміщення I1
      C6:Калібрування зміщення I2
      C9:Збереження параметрів у flash пам'яті
      СА:Калібрування коефіцієнта передачі за напругою
      СВ:Калібрування коефіцієнта передачі струму
      СС:Калібрування коефіцієнта передачі за потужністю
      +: Збільшення калібрувального значення
      -: Зменшення калібрувального значення

7.6.2 Калібрування

Основна частина процесу калібрування може бути виконана за допомогою UART команди C0.

Для виконання цієї команди у файлі parameter.h мають бути визначені вхідні параметри:

  • calVoltage
  • calCurrent
  • calPhi
  • calCosPhi
  • calFreq

За UART команді "C9" розраховані значення можуть бути збережені у flash пам'яті.

7.6.3 Файл Parameter.h

Усі конфігураційні налаштування виконуються у файлі parameter.h:

  • Встановлення рівня вихідного імпульсу
  • Коефіцієнти з напруги та струму
  • Параметри налаштування модуля ESP430CE1

#defines для withUARTComm, withCalibration, withDisplay дозволяють змінювати код для різних функцій і розмірів. Включення однієї з цих частин збільшить розмір коду.

2006 р.

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

2006 р.

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

2012 р.

Цей пристрій стежить за використанням побутової мережі та записує показання на SD карту пам'яті. Прості аналогові підсилювачі підсилюють сигнал з датчиків напруги і струму, і, виходячи з отриманих даних мікроконтролер ATmega168 обчислює споживану потужність. Напруга і струм вимірюється з частотою 9615Гц, тому показання повинні бути точними навіть на несинусоїдальних навантаженнях, таких як комп'ютери або люмінесцентні лампи.

Лічильник на мікроконтролері досить простий для повторення і зібраний на популярному МК PIC16F628A з виведенням індикації на 4 семисегментні світлодіодний індикатор. Лічильник має два входи управління: +1 і -1, а також кнопку Reset. Управління схемою нового лічильника реалізовано таким чином, що як би довго чи коротко не була натиснута кнопка входу, рахунок продовжиться тільки при її відпусканні та черговому натисканні. Максимальна кількістьнадійшли імпульсів і відповідно показання АЛС - 9999. При керуванні на вході «-1» рахунок ведеться у зворотному порядку до значення 0000. Покази лічильника зберігаються в пам'яті контролера і при відключенні живлення, що збереже дані при випадкових перебоях напруги живлення мережі.

Принципова схема реверсивного лічильника на мікроконтролері PIC16F628A:

Скидання показань лічильника і одночасно стану пам'яті в 0 здійснюється кнопкою «Reset». Слід пам'ятати, що при першому включенні реверсивного лічильника на мікроконтролері на індикаторі АЛС може висвітитися непередбачувана інформація. Але при першому натисканні на будь-яку з кнопок інформація нормалізується. Де і як можна використовувати цю схему - залежить від конкретних потреб, наприклад, встановити в магазин або офіс для підрахунку відвідувачів або як індикатор намотувального верстата. Загалом думаю, що цей лічильник на мікроконтролері комусь принесе користь.

Якщо у когось під рукою не виявиться потрібного індикатора АЛС, а буде якийсь інший (або навіть 4 окремі індикатори), я готовий допомогти перемалювати друк і переробити прошивку. В архіві на форумі схема, плата та прошивки під індикатори із загальним анодом та загальним катодом. Друкована плата показана на малюнку нижче:

Є також Нова версіяпрошивки для лічильника на мікроконтролері PIC16F628A. при цьому схема і плата лічильника залишилися колишніми, але змінилося призначення кнопок: кнопка 1 - вхід імпульсів (наприклад, від геркона), 2 кнопка включає рахунок на віднімання вхідних імпульсів, при цьому на індикаторі світиться ліва точка, 3 кнопка - додавання імпульс світиться найправіша точка. Кнопка 4 – скидання. У такому варіанті схему лічильника на мікроконтролері можна легко застосувати на верстаті намотування. Тільки перед намотуванням або відмотуванням витків потрібно спочатку натиснути кнопку "+" або "-". Живиться лічильник від стабілізованого джерела напругою 5В та струмом 50мА. За потреби можна живити від батарейок. Корпус залежить від ваших уподобань і можливостей. Схему надав - Samopalkin

Принцип дії

Як вихідний стан прийнятий нульовий рівень усім виходах тригерів (Q 1 – Q 3), т. е. цифровий код 000. У цьому старшим розрядом є вихід Q 3 . Для переведення всіх тригерів в нульовий стан входи R тригерів об'єднані і на них подається необхідний рівень напруги (тобто імпульс, що обнулює тригери). По суті, це скидання. На вхід надходять тактові імпульси, які збільшують цифровий код на одиницю, тобто після приходу першого імпульсу перший тригер переключається в стан 1 (код 001), після приходу другого імпульсу другий тригер переключається в стан 1, а перший - в стан 0 (код 010), потім третій і т. д. В результаті подібний пристрійможе дорахувати до 7 (код 111), оскільки 2 3 – 1 = 7. Коли всіх виходах тригерів встановилися одиниці, кажуть, що лічильник переповнений. Після приходу наступного (дев'ятого) імпульсу лічильник обнуляться і почнеться з початку. На графіках зміна станів тригерів відбувається із деякою затримкою t з. На третьому розряді затримка вже втричі. Затримка, що збільшується зі збільшенням числа розрядів, є недоліком лічильників з послідовним переносом, що, незважаючи на простоту, обмежує їх застосування в пристроях з невеликим числом розрядів.

Класифікація лічильників

Лічильниками називають пристрої для підрахунку числа надійшли на їх вхід імпульсів (команд), запам'ятовування та зберігання результату рахунку та видачі цього результату. Основним параметром лічильника є модуль счёта(емкость) Kс. Ця величина дорівнює числу стійких станів лічильника. Після надходження імпульсів Kс лічильник повертається в вихідний стан. Для двійкових лічильників Kс = 2 m, де m – число розрядів лічильника.

Крім Kз важливими характеристиками лічильника є максимальна частотарахунки fmax та час встановлення tуст, які характеризують швидкодію лічильника.

Tуст - тривалість перехідного процесу перемикання лічильника в новий стан: tуст = mtтр, де m - число розрядів, а tтр - час перемикання тригера.

Fmax – максимальна частота вхідних імпульсів, коли він відбувається втрати імпульсів.

За типом функціонування:

- Підсумовуючі;

- віднімають;

– Реверсивні.

У підсумовуючому лічильнику прихід кожного вхідного імпульсу збільшує результат рахунку на одиницю, у віднімає – зменшує на одиницю; у реверсивних лічильниках може відбуватися як підсумовування, і віднімання.

за структурної організації:

- Послідовними;

– паралельними;

- Послідовно-паралельними.

У послідовному лічильнику вхідний імпульс подається тільки вхід першого розряду, на входи кожного наступного розряду подається вихідний імпульс попереднього розряду.

У паралельному лічильнику з приходом чергового лічильного імпульсу перемикання тригерів під час переходу на новий стан відбувається одночасно.

Послідовно-паралельна схема включає обидва попередні варіанти.

По порядку зміни станів:

- З природним порядком рахунку;

- З довільним порядком рахунку.

За модулем рахунку:

- Двійкові;

- Недвійкові.

Модуль рахунку двійкового лічильника Kc=2, а модуль рахунку недвійкового лічильника Kc= 2m, де m – число розрядів лічильника.

Підсумовуючий послідовний лічильник

Рис.1. Підсумовуючий послідовний 3-х розрядний лічильник.

Тригери даного лічильника спрацьовують по задньому фронті лічильного імпульсу. Вхід старшого розряду лічильника пов'язаний із прямим виходом (Q) молодшого сусіднього розряду. Тимчасова діаграма роботи такого лічильника наведено на рис.2. У початковий момент часу стану всіх тригерів дорівнюють лог.0 відповідно на їх прямих виходах лог.0. Це досягається за допомогою короткочасного лог.0, поданого на входи асинхронної установки тригерів лог.0. Загальний стан лічильника можна охарактеризувати двійковим числом(000). Під час рахунку на входах асинхронної установки тригерів лог.1 підтримується лог.1. Після приходу заднього фронту першого імпульсу 0-розряд переключається на протилежний стан – лог.1. На вході 1-розряду з'являється передній фронт лічильного імпульсу. Стан лічильника (001). Після приходу на вхід лічильника заднього фронту другого імпульсу 0-розряд перемикається в протилежний стан - лог.0, на вході 1-розряду з'являється задній фронт лічильного імпульсу, який перемикає 1-розряд лог.1. Загальний стан лічильника – (010). Наступний задній фронт на вході 0-розряду встановить його в лог.1(011) і т.д. Таким чином, лічильник накопичує число вхідних імпульсів, що надходять на його вхід. При надходженні 8-ми імпульсів з його вхід лічильник повертається у вихідний стан (000), отже коефіцієнт рахунки (КСЛ) даного лічильника дорівнює 8.

Рис. 2. Тимчасова діаграма послідовного підсумовуючого лічильника.

Послідовний лічильник, що віднімає

Тригери цього лічильника спрацьовують по задньому фронту. Для реалізації операції віднімання лічильний вхід старшого розряду підключається до інверсного виходу сусіднього молодшого розряду. Попередньо тригери встановлюють стан лог.1 (111). Роботу даного лічильника показує часова діаграма на рис. 4.

Рис. 1 Послідовний лічильник, що віднімає

Рис. 2 Тимчасова діаграма послідовного лічильника, що віднімає

Реверсивний послідовний лічильник

Для реалізації реверсивного лічильника необхідно об'єднати функції підсумовуючого лічильника та функції лічильника, що віднімає. Схема цього лічильника наведена на рис. 5. Для керування режимом рахунку служать сигнали «сума» та «різниця». Для режиму підсумовування "сума" = лог.1, "0" - короткочасний лог.0; "Різниця" = лог.0, "1"-короткочасний лог.0. При цьому елементи DD4.1 та DD4.3 дозволяють подачу на тактові входи тригерів DD1.2, DD2.1 через елементи DD5.1 ​​та DD5.2 сигналів з прямих виходів тригерів DD1.1, DD1.2 відповідно. При цьому елементи DD4.2 і DD4.4 закриті, на їх виходах є лог.0, тому дія інверсних виходів ніяк не відбивається на рахункових входах тригерів DD1.2, DD2.1. Таким чином, реалізується операція підсумовування. Задля реалізації операції віднімання на вхід «сума» подається лог.0, вхід «різницю» лог.1. При цьому елементи DD4.2, DD4.4 дозволяють подачу на входи елементів DD5.1, DD5.2, відповідно і на рахункові входи тригерів DD1.2, DD2.1 сигналів з інверсних виходів тригерів DD1.1, DD1.2. При цьому елементи DD4.1, DD4.3 закриті і сигнали з прямих виходів тригерів DD1.1, DD1.2 не впливають на рахункові входи тригерів DD1.2, DD2.1. Таким чином, реалізується операція віднімання.

Рис. 3 Послідовний реверсивний 3-х розрядний лічильник

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

Недолік послідовного лічильника – зі збільшенням розрядності пропорційно збільшується час установки (tуст) даного лічильника. Перевагою є простота реалізації.

Рис. 3 – Реверсивний лічильник

Для рахункових імпульсів передбачено два входи: “+1” – збільшення, “-1” – зменшення. Відповідний вхід (+1 або -1) підключається до входу С. Це можна зробити схемою АБО, якщо вліпити її перед першим тригером (вихід елемента до входу першого тригера, входи – до шин +1 та -1). Незрозуміла фігня між тригерами (DD2 і DD4) називається елементом І-АБО. Цей елемент складається з двох елементів І та одного елемента АБО, об'єднаних в одному корпусі. Спочатку вхідні сигнали цьому елементі логічно перемножуються, потім результат логічно складається.

Число входів елемента І-АБО відповідає номеру розряду, тобто якщо третій розряд, то три входи, четвертий - чотири і т. д. Логічна схема є двопозиційним перемикачем, керованим прямим або інверсним виходом попереднього тригера. За лог. 1 на прямому виході лічильник відраховує імпульси з шини "+1" (якщо вони, звичайно, надходить), при лог. 1 на інверсному виході – із шини “-1”. Елементи І (DD6.1 та DD6.2) формують сигнали перенесення. На виході >7 сигнал формується при коді 111 (число 7) і тактового імпульсу на шині +1, на виході<0 сигнал формируется при коде 000 и наличии тактового импульса на шине -1.

Все це, звичайно, цікаво, але красивіше виглядає в мікросхемному виконанні:

Рис. 4 Чотирьохрозрядний двійковий лічильник

Ось типовий лічильник із передустановкою. СТ2 означає, що лічильник двійковий, якщо він десятковий, ставиться СТ10, якщо двійково-десятковий – СТ2/10. Входи D0 - D3 називаються інформаційними входами і служать для запису в лічильник будь-якого двійкового стану. Цей стан відобразиться на його виходах і від нього буде розпочато відлік. Іншими словами, це входи попередньої установки або просто попереднього встановлення. Вхід V служить для дозволу запису коду по входах D0 - D3, або, як кажуть, дозволу попереднього встановлення. Цей вхід може бути позначений і іншими літерами. Попередній запис у лічильник проводиться при подачі сигналу дозволу запису в момент приходу імпульсу на вхід С. Вхід тактовий. Сюди запихають імпульси. Трикутник означає, що лічильник спрацьовує за спадом імпульсу. Якщо трикутник повернутий на 180 градусів, тобто дупою до літери С, значить він спрацьовує по фронту імпульсу. Вхід R служить для обнулення лічильника, т. е. при подачі імпульсу цей вхід усім виходах лічильника встановлюються балка. 0. Вхід PI називається входом перенесення. Вихід p називається виходом перенесення. На цьому виході формується сигнал при переповненні лічильника (коли всіх виходах встановлюються лог. 1). Цей сигнал можна подати на вхід перенесення наступного лічильника. Тоді при переповненні першого лічильника другий перемикатиметься в наступний стан. Виходи 1, 2, 4, 8 просто виходи. Там формується двійковий код, відповідний числу імпульсів, що надійшли на вхід лічильника. Якщо висновки з кружальцями, що буває набагато частіше, значить вони інверсні, тобто замість балки. 1 подається балка. 0 і навпаки. Докладніше робота лічильників разом з іншими пристроями розглядатиметься надалі.

Паралельний підсумовуючий лічильник

Принцип дії даного лічильника полягає в тому, що вхідний сигнал, що містить лічильні імпульси, подається одночасно на всі розряди лічильника. А установкою лічильника стан лог.0 чи лог.1 управляє схема управління. Схема даного лічильника показано на рис.6

Рис. 4 Підсумовуючий лічильник паралельної дії

Розряди лічильника - тригери DD1, DD2, DD3.

Схема управління – елемент DD4.

Достоїнство даного лічильника - малий час установки, що не залежить від розрядності лічильника.

Недолік – складність схеми у разі підвищення розрядності лічильника.

Лічильники з паралельним перенесенням

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

Рис. 2 – Лічильник з паралельним перенесенням та графіки, що пояснюють його роботу

Із першим тригером все зрозуміло. На вхід другого тригера тактовий імпульс пройде лише тоді, коли на виході першого тригера буде балка. 1 (особливість схеми І), але вхід третього – як у виходах перших двох буде лог. 1 і т. д. Затримка спрацьовування третьому тригері така ж, як і першому. Такий лічильник називається лічильником з паралельним перенесенням. Як видно із схеми, зі збільшенням числа розрядів збільшується число балок. І елементів, причому чим вище розряд, тим більше входів у елемента. Це недолік таких лічильників.

Розробка принципової схеми

Формувач імпульсів

Формувач імпульсів - пристрій, необхідний для усунення брязкоту контактів, що виникає при замиканні механічних контактів, що може призвести до неправильної роботи схеми.

На малюнку 9 наведено схеми формувачів імпульсів від механічних контактів.

Рис. 9 Формувачі імпульсів від механічних контактів.

Блок індикації

Для відображення результату рахунку необхідно використовувати світлодіоди. Щоб здійснити такий висновок інформації, можна скористатися найпростішою схемою. Схема блоку індикації на світлодіодах наведено малюнку 10.

Рис. 10 Блок індикації на світлодіодах.

Розробка КСУ (комбінаційної схеми управління)

Для реалізації цього лічильника із серії ТТЛШ мікросхем К555 я вибрав:

дві мікросхеми К555ТВ9 (2 JK-тригери з установкою)

одну мікросхему К555ЛА4 (3 елементи 3І-НЕ)

дві мікросхеми К555ЛА3 (4 елементи 2І-НЕ)

одну мікросхему К555ЛН1 (6 інверторів)

Дані мікросхеми забезпечують мінімальну кількість корпусів на друкованій платі.

Складання структурної схеми лічильника

Структурна схема – сукупність блоків лічильника, які виконують будь-яку функцію і забезпечують нормальну роботу лічильника. На малюнку 7 показано структурну схему лічильника.

Рис. 7 Структурна схема лічильника

Блок керування виконує функцію подачі сигналу та керування тригерами.

Блок рахунку призначений для зміни стану лічильника та збереження цього стану.

Блок індикації виводить інформацію для зорового сприйняття.

Складання функціональної схеми лічильника

Функціональна схема – внутрішня структура лічильника.

Визначимо оптимальне кількість тригерів для недвійкового лічильника з коефіцієнтом рахунку Кс=10.

M = log 2 (Кс) = 4.

M = 4 означає реалізації двоично-десятичного лічильника необхідно 4 тригера.

Найпростіші однорозрядні лічильники імпульсів

Найпростішим однорозрядним лічильником імпульсів може бути JK-тригер та D-тригер, що працює у рахунковому режимі. Він вважає вхідні імпульси по модулю 2-кожний імпульс перемикає тригер у протилежний стан. Один тригер вважає до двох, два з'єднаних послідовно вважають до чотирьох, п тригерів-до 2n імпульсів. Результат рахунка формується в заданому коді, який може зберігатися в пам'яті лічильника або бути зчитаним іншим пристроєм цифрової техніки дешифратором.

На малюнку показано схему трирозрядного двійкового лічильника імпульсів, побудованого на JK-тригер ax K155TB1. Змонтуйте такий лічильник на макетній панелі та до прямих виходів тригерів підключіть світлодіодні (або транзисторні – з лампою розжарювання) індикатори, як це робили раніше. Подайте від випробувального генератора на вхід З першого тригера лічильника серію імпульсів із частотою прямування 1...2 Гц і за світловими сигналами індикаторів побудуйте графіки роботи лічильника.

Якщо в початковий момент усі тригери лічильника перебували в нульовому стані (можна встановити кнопковим вимикачем SB1 «Уст.0», подаючи на вхід R тригерів напруга низького рівня), то по спаду першого імпульсу (рис. 45,6) тригер DD1 переключиться в одиничний стан-на його прямому виході з'явиться високий рівень напруги (рис. 45, в). Другий імпульс переключить тригер DD1 у нульовий стан, а тригер DD2-B одиничний (рис. 45, г). По спаду третього імпульсу тригери DD1 і DD2 виявляться в одиничному стані, а тригер DD3 все ще буде в нульовому. Четвертий імпульс переключить перші два тригери в нульовий стан, а третій в одиничний (рис. 45, д). Восьмий імпульс переключить всі тригери на нульовий стан. По спаду дев'ятого вхідного імпульсу розпочнеться наступний цикл роботи трирозрядного лічильника імпульсів.

Вивчаючи графіки, неважко помітити, кожен старший розряд лічильника відрізняється від молодшого подвоєним числом імпульсів рахунки. Так, період імпульсів на виході першого тригера в 2 рази більше за період вхідних імпульсів, на виході другого тригера - в 4 рази, на виході третього тригера - в 8 разів. Говорячи мовою цифрової техніки, такий лічильник працює у ваговому коді 1-2-4. Тут під терміном "вага" мається на увазі обсяг інформації, прийнятої лічильником після встановлення його тригерів у нульовий стан. У пристроях та приладах цифрової техніки найбільшого поширення набули чотирирозрядні лічильники імпульсів, що працюють у ваговому коді 1-2-4-8. Дільники частоти вважають вхідні імпульси до деякого задається коефіцієнтом рахунку стану, а потім формують сигнал перемикання тригерів я нульовий стан, знову починають рахунок вхідних імпульсів до коефіцієнта рахунку, що задається і т. д.

Тут уже знайомий вам трирозрядний двійковий лічильник доповнений логічним елементом 2Й-НЕ DD4.1, який і задає коефіцієнт рахунку 5. Відбувається це так. При перших чотирьох вхідних імпульсах (після встановлення тригерів у нульовий стан кнопкою SB1 «Уст. 0») пристрій працює як звичайний лічильник імпульсів. При цьому одному або обох входах елемента DD4.1 діє низький рівень напруги, тому елемент знаходиться в одиничному стані.

За спадом п'ятого імпульсу на прямому виході першого і третього тригерів, а значить, і на обох входах елемента DD4.1 з'являється високий рівень напруги, що перемикає цей логічний елемент а нульовий стан. У цей момент на його виході формується короткий імпульс низького рівня, який через діод VD1 передається на вхід R всіх тригерів і перемикає їх у вихідний нульовий стан.

З цього моменту починається наступний цикл роботи лічильника. Резистор R1 і діод VD1, введені в цей лічильник, необхідні для того, щоб унеможливити замикання виходу елемента DD4.1 на загальний провід.

Дію такого дільника частоти можете перевірити, подаючи на вхід першого його тригера імпульси, що йдуть з частотою 1… 2 Гц, і підключивши до виходу тригера DD3 світловий індикатор.

На практиці функції лічильників імпульсів та дільників частоти виконують спеціально розроблені мікросхеми підвищеного ступеня інтеграції. У серії К155, наприклад, це лічильники К155ІЕ1, К155ІЕ2, К155ІЕ4 та ін.

У радіоаматорських розробках найбільш широко використовують мікросхеми К155ІЕ1 та К155ІЕ2. Умовні графічні позначення цих мікросхем-лічильників із нумерацією їх висновків показано на рис. 47.

Мікросхему К155ІЕ1 (рис. 47,а) називають декадним лічильником імпульсів, тобто лічильником з коефіцієнтом рахунку 10. Він містить чотири тригери, з'єднаних між собою послідовно. Вихід (виведення 5) мікросхеми - вихід її четвертого тригера. Встановлюють всі тригери в нульовий стан подачею напруги високого рівня одночасно на обидва входи R (висновки 1 і 2), об'єднані за схемою елемента (умовний символ «&»). Рахункові імпульси, які повинні мати низький рівень, можна подавати на з'єднані разом входи (висновки 8 і 9), також об'єднані по І. або на один з них, якщо в цей час на другому буде високий рівень напруги. При кожному десятому вхідному імпульсі на виході лічильник формує рівний за тривалістю вхідний імпульс низького рівня. Мікросхема К155ІЕ2 (рис.48, б)

Двійково-десятковий чотирирозрядний лічильник. У ньому також чотири тригери, але перший має окремі вхід С1 (висновок 14) і окремий прямий вихід (висновок 12). Три інших тригера з'єднані між собою так, що утворюють дільник на 5. При з'єднанні виходу першого тригера (висновок 12) з входом С2 (висновок 1) ланцюга інших тригерів мікросхема стає дільником на 10 (рис. 48 а), що працює в коді 1 -2-4-8, що символізують цифри біля виходів графічного позначення мікросхеми. Для встановлення тригерів лічильника в нульовий стан подають на обидва входи R0 (висновки 2 і 3) напруга високого рівня.

Два об'єднані входи R0 і чотири розділові виходи мікросхеми К155ІЕ2 дозволяють без додаткових елементів будувати дільники частоти з коефіцієнтами розподілу від 2 до 10. Так, наприклад, якщо з'єднати між собою висновки 12 і 1, 9 і 2, 8 н 3 (рис. 48, 6), то коефіцієнт рахунку буде 6, а при з'єднанні висновків 12 та 1, 11,. 2 і 3 (рис. 48,в) коефіцієнт рахунку стане 8. Ця особливість мікросхеми К155ІЕ2 дозволяє використовувати її як двійковий лічильник імпульсів, і як дільник частоти.

Цифровий лічильник імпульсів - це цифровий вузол, який здійснює рахунок імпульсів, що надходять на його вхід. Результат рахунка формується лічильником у заданому коді і може зберігатися потрібний час. Лічильники будуються на тригерах, причому кількість імпульсів, яке може підрахувати лічильник визначається з виразу N = 2 n – 1, де n – число тригерів, а мінус один, тому що в цифровій техніці за початок відліку приймається 0. Лічильники бувають підсумовують, коли рахунок йде збільшення, і віднімають – рахунок зменшення. Якщо лічильник може перемикатися у процесі роботи з підсумовування віднімання і навпаки, він називається реверсивним.

© 2022 androidas.ru - Все про Android