- Основе ПВМ сигнала
- Постављање и захтеви хардвера
- Шема кола за затамњење ЛЕД диода микроконтролера Нувотон Н76Е003
- ПВМ пинови на микроконтролеру Нувотон Н76Е003
- ПВМ регистри и функције у микроконтролеру Н76Е003 Нувотон
- Режими рада ПВМ у микроконтролеру Нувотон Н6Е003
- Програмирање Нувотон Н76Е003 за ПВМ
- Трептање кода и тестирање резултата
Модулација ширине импулса (ПВМ) је уобичајена техника у микроконтролерима за производњу непрекидног импулсног сигнала са дефинисаном фреквенцијом и радним циклусом. Укратко, ПВМ подразумева промену ширине импулса док је фреквенција константна.
ПВМ сигнал се углавном користи за контролу серво мотора или осветљености ЛЕД диоде. Такође, с обзиром да микроконтролери могу да обезбеде само Логиц 1 (Хигх) или Логиц 0 (Лов) на својим излазним пиновима, он не може да пружа променљив аналогни напон уколико се не користи ДАЦ или Дигитал то Аналог претварач. У таквом случају, микроконтролер се може програмирати за излаз ПВМ-а са променљивим радним циклусом који се затим може претворити у променљиви аналогни напон. Раније смо користили ПВМ периферне уређаје и у многим другим микроконтролерима.
- Водич за ПВМ за АРМ7-ЛПЦ2148: Контрола осветљености ЛЕД диода
- Модулација ширине импулса (ПВМ) помоћу МСП430Г2: Контрола осветљености ЛЕД-а
- Генерисање ПВМ-а помоћу ПИЦ микроконтролера са МПЛАБ и КСЦ8
- Модулација ширине импулса (ПВМ) у СТМ32Ф103Ц8: Контрола брзине једносмерног вентилатора
- Генерирање ПВМ сигнала на ГПИО пиновима ПИЦ микроконтролера
- Водич за ПВМ за Распберри Пи
- Водич за ПВМ са ЕСП32
У овом упутству ћемо повезати ЛЕД диоду којом ће се управљати помоћу овог ПВМ сигнала из јединице микроконтролера Н76Е003. Проценићемо какву врсту хардверског подешавања требамо и како треба да програмирамо свој микроконтролер. Пре тога, хајде да разумемо неке основе ПВМ сигнала.
Основе ПВМ сигнала
На слици испод приказан је стални ПВМ сигнал.
Горња слика није ништа друго него константни квадратни талас са истим временом УКЉУЧЕЊА и истим временом ИСКЉУЧЕЊА. Претпоставимо да је укупан период сигнала 1 секунда. Тако време укључења и искључења износи 500мс. Ако је преко овог сигнала повезана ЛЕД диода, ЛЕД ће се укључити на 500мс, а искључити на 500мс. Због тога ће се у перспективном призору ЛЕД упалити са пола стварне осветљености ако је укључен у директан сигнал од 5В без икаквог искључења.
Као што је приказано на горњој слици, ако се промени радни циклус, ЛЕД ће засветлити са 25% стварне осветљености по истом принципу као што је претходно речено. Ако желите да сазнате више и сазнате више о модулацији ширине импулса (ПВМ), можете погледати повезани чланак.
Постављање и захтеви хардвера
Како је захтев овог пројекта контрола ЛЕД-а помоћу ПВМ-а. ЛЕД веза мора бити повезана са Н76Е003. Будући да је ЛЕД диода доступна на развојној плочи Н76Е003, она ће се користити у овом пројекту. Нису потребне друге компоненте.
Да не помињемо, потребан нам је развојни одбор заснован на микроконтролеру Н76Е003, као и Ну-Линк програмер. Додатна јединица напајања од 5 В може бити потребна ако се програмер не користи као извор напајања.
Шема кола за затамњење ЛЕД диода микроконтролера Нувотон Н76Е003
Као што видимо на доњој шеми, тест ЛЕД је доступан унутар развојне плоче и повезан је на порт 1.4. Крајње лево приказана је веза са програмским интерфејсом.
ПВМ пинови на микроконтролеру Нувотон Н76Е003
Н76Е003 има 20 пинова од којих се 10 пинова могу користити као ПВМ. На сликама доле су приказани ПВМ пинови истакнути у црвеном квадратном пољу.
Као што видимо, истакнути ПВМ пинови се такође могу користити у друге сврхе. Међутим, ова друга сврха пинова неће бити доступна када су пинови конфигурисани за ПВМ излаз. Пин 1.4 који се користи као ПВМ излазни пин, изгубиће другу функционалност. Али, то није проблем јер за овај пројекат није потребна друга функционалност.
Разлог изабирања пина 1.4 као излазног пина је тај што је уграђена тест ЛЕД диода повезана на тај пин у развојној плочи, па нам нису потребне спољне ЛЕД диоде. Међутим, у овом микроконтролеру од 20 пинова, 10 пинова се може користити као ПВМ излазни пин, а било који други ПВМ пинови могу се користити за потребе излаза.
ПВМ регистри и функције у микроконтролеру Н76Е003 Нувотон
Н76Е003 користи системски сат или прелив тајмера 1 подељен ПВМ сатом са Пресцалером који се може одабрати од 1/1 ~ 1/128. Период ПВМ се може поставити помоћу 16-битног регистра периода ПВМПХ и ПВМПЛ регистра.
Микроконтролер има шест појединачних ПВМ регистара који генеришу шест ПВМ сигнала названих ПГ0, ПГ1, ПГ2, ПГ3, ПГ4 и ПГ5. Међутим, период је исти за сваки ПВМ канал јер деле исти 16-битни бројач периода, али радни циклус сваког ПВМ-а може се разликовати од осталих јер сваки ПВМ користи другачији 16-битни регистар радног циклуса назван {ПВМ0Х, ПВМ0Л}, {ПВМ1Х, ПВМ1Л}, {ПВМ2Х, ПВМ2Л}, {ПВМ3Х, ПВМ3Л}, {ПВМ4Х, ПВМ4Л} и {ПВМ5Х, ПВМ5Л}. Дакле, у Н76Е003, шест ПВМ излаза може се генерисати независно са различитим радним циклусима.
За разлику од осталих микроконтролера, омогућавање ПВМ-а не поставља И / О пинове у њихов ПВМ излаз аутоматски. Дакле, корисник треба да конфигурише И / О излазни режим.
Дакле, шта год да је потребно за апликацију, први корак је одредити или одабрати који један или два или чак више од два И / О пина као ПВМ излаз. Након избора, И / О пинови морају бити постављени као Пусх-Пулл мод или Квази-двосмерни за генерисање ПВМ сигнала. Ово се може одабрати помоћу регистра ПкМ1 и ПкМ2. Ова два регистра постављају И / О режиме где к представља број порта (на пример, Порт П1.0 регистар ће бити П1М1 и П1М2, за П3.0 то ће бити П3М1 и П3М2 итд.)
Конфигурација се може видети на доњој слици-
Затим је следећи корак омогућавање ПВМ-а у тим И / О пиновима. Да би то урадио, корисник треба да постави регистре ПИОЦОН0 или ПИОЦОН1. Регистар зависи од мапирања пинова јер ПИОЦОН0 и ПИОЦОН1 контролишу различите пинове у зависности од ПВМ сигнала. Конфигурација ова два регистра може се видети на доњој слици-
Као што видимо, горњи регистар контролише 6 конфигурација. За остало користите регистар ПИОЦОН1.
Дакле, горњи регистар контролише остале 4 конфигурације.
Режими рада ПВМ у микроконтролеру Нувотон Н6Е003
Следећи корак је одабир режима рада ПВМ. Сваки ПВМ подржава три начина рада - независни, синхрони и режим мртвог времена.
Независни режим пружа решење где се шест ПВМ сигнала може генерисати независно. То је потребно максимално времена када операције или зујалице повезане са ЛЕД треба да буду укључене и контролисане.
У синкрони мод Поставља ПГ1 / 3/5 у истом ин-фазни ПВМ излаза, исто као пг0 / 2/4, где ПГ0 / 2/4 даје независне ПВМ излазни сигнали. Ово је углавном потребно за управљање трофазним моторима.
Уметање режим Неко-време је помало сложена и применити у реалним моторних апликација, посебно у индустријским апликацијама. У таквим апликацијама, комплементарни ПВМ излаз мора бити уметање „мртвог времена“ које спречава оштећење уређаја за пребацивање напајања као што су ГПИБ. Конфигурације су постављене у овом режиму на начин да ПГ0 / 2/4 даје ПВМ излазне сигнале на исти начин као и независни режим, али ПГ1 / 3/5 пружа „ванфазне ПВМ сигнале“ на излазу ПГ0 / 2/4 у складу с тим и занемарите ПГ1 / 3/5 регистар дужности.
Изнад три режима могу се одабрати користећи доњу конфигурацију регистра -
Следећа конфигурација је избор ПВМ типова помоћу ПВМЦОН1 регистра.
Дакле, као што видимо, на располагању су два типа ПВМ-а који се могу одабрати помоћу горњег регистра. У поравнању са ивицама, 16-битни бројач користи рад са једним нагибом бројећи од 0000Х до задате вредности {ПВМПХ, ПВМПЛ}, а затим започињући од 0000Х. Излазни таласни облик је поравнат са левом ивицом.
Али, у режиму поравнања по средини, 16-битни бројач користи рад са двоструким нагибом бројањем од 0000Х до {ПВМПХ, ПВМПЛ}, а затим одбројавањем прелази са {ПВМПХ, ПВМПЛ} на 0000Х. Излаз је поравнат према центру и користан је за генерисање таласних облика који се не преклапају. Сада коначно ПВМ контролне операције које се могу проверити у доњим регистрима-
Да бисте поставили извор такта, користите регистар за управљање сатом ЦКЦОН.
Излазни сигнал ПВМ-а такође се може маскирати помоћу ПМЕН регистра. Користећи овај регистар, корисник може маскирати излазни сигнал за 0 или 1.
Следи ПВМ контролни регистар-
Горњи регистар је користан за покретање ПВМ-а, учитавање новог периода и дежурног оптерећења, контролу ПВМ заставице и брисање ПВМ бројача.
Повезане конфигурације битова приказане су испод -
Да бисте поставили разделник сата, користите ПВМЦОН1 регистар за ПВМ разделник сата. Пети бит се користи за груписани ПВМ који омогућава групни режим и пружа исти радни циклус за прва три ПВМ пара.
Програмирање Нувотон Н76Е003 за ПВМ
Кодирање је једноставно, а комплетни код који се користи у овом упутству налази се на дну ове странице. ЛЕД је повезан са пином П1.4. Стога је потребан П1.4 пин да би се користио за ПВМ излаз.
У главном програму подешавања се врше у одговарајућем редоследу. Испод редова кодова поставља се ПВМ и конфигурише П1.4 пин као ПВМ излаз.
П14_ПусхПулл_Моде;
Ово се користи за постављање пина П1.4 у пусх-пулл режим. Ово је дефинисано у библиотеци Фунцтион_дефине.х као-
#дефине П14_ПусхПулл_Моде П1М1 & = ~ СЕТ_БИТ4; П1М2- = СЕТ_БИТ4 ПВМ1_П14_ОУТПУТ_ЕНАБЛЕ;
Следећи редови коришћени за омогућавање ПВМ-а у пину П1.4. Ово је такође дефинисано у библиотеци Фунцтион_дефине.х као-
#дефине ПВМ1_П14_ОУТПУТ_ЕНАБЛЕ БИТ_ТМП = ЕА; ЕА = 0; ТА = 0кАА; ТА = 0к55; СФРС- = 0к01; ПИОЦОН1- = 0к02; ТА = 0кАА; ТА = 0к55; СФРС & = 0кФЕ; ЕАП = БИТ_Т.4МП ПВМ1 излаз омогућава ПВМ_ИМДЕПЕНДЕНТ_МОДЕ;
Доле наведени код се користи за постављање ПВМ-а у независни режим. У библиотеци Фунцтион_дефине.х дефинисано је као-
#дефине ПВМ_ИМДЕПЕНДЕНТ_МОДЕ ПВМЦОН1 & = 0к3Ф ПВМ_ЕДГЕ_ТИПЕ;
Затим морамо подесити ПВМ излаз типа ЕДГЕ. У библиотеци Фунцтион_дефине.х дефинисано је као-
#дефине ПВМ_ЕДГЕ_ТИПЕ ПВМЦОН1 & = ~ СЕТ_БИТ4 сет_ЦЛРПВМ;
Даље, морамо обрисати вредност бројача ПВМ-а која је доступна у СФР_Мацро.х библиотеци-
#дефине сет_ЦЛРПВМ ЦЛРПВМ = 1
Након тога, ПВМ сат се бира као Фсисов сат, а коришћени фактор дељења је 64 подела.
ПВМ_ЦЛОЦК_ФСИС; ПВМ_ЦЛОЦК_ДИВ_64;
Оба су дефинисана као-
#дефине ПВМ_ЦЛОЦК_ФСИС ЦКЦОН & = 0кБФ #дефине ПВМ_ЦЛОЦК_ДИВ_64 ПВМЦОН1- = 0к06; ПВМЦОН1 & = 0кФЕ ПВМ_ОУТПУТ_АЛЛ_НОРМАЛ;
Испод линије кода користи се за маскирање излазног ПВМ сигнала са 0 дефинисано као-
#дефине ПВМ_ОУТПУТ_АЛЛ_НОРМАЛ ПНП = 0к00 сет_ПВМ_период (1023);
Затим морамо подесити време периода ПВМ сигнала. Ова функција поставља период у ПВМПЛ и ПВМПХ регистру. Како је ово 16-битни регистар, функција користи метод померања бита за подешавање ПВМ периода.
воид сет_ПВМ_период (непотписана инт вредност) { ПВМПЛ = (вредност & 0к00ФФ); ПВМПХ = ((вредност & 0кФФ00) >> 8); }
Међутим, осим 1023 и 8-битног периода, корисници могу да користе и друге вредности. Повећање периода резултира глатким затамњивањем или блеђењем.
сет_ПВМРУН;
Ово ће покренути ПВМ који је дефинисан у СФР_Мацро.х библиотеци као-
#дефине сет_ПВМРУН ПВМРУН = 1
Даље, у вхиле петљи ЛЕД се укључује и непрестано бледи.
вхиле (1) { фор (валуе = 0; валуе <1024; валуе + = 10) { сет_ПВМ1 (валуе); Тимер1_Делаи10мс (3); } за (вредност = 1023; вредност> 0; вредност - = 10) { сет_ПВМ1 (вредност); Тимер1_Делаи10мс (2); } } }
Радни циклус поставља сет_ПВМ1 (); , функција која подешава радни циклус у регистру ПВМ1Л и ПВМ1Х.
воид сет_ПВМ1 (непотписана инт вредност) { ПВМ1Л = (вредност & 0к00ФФ); ПВМ1Х = ((вредност & 0кФФ00) >> 8); сет_ЛОАД; }
Трептање кода и тестирање резултата
Једном када је код спреман, само га компајлирајте и отпремите на контролер. Ако сте нови у окружењу, погледајте почетне кораке са водичем Нувотон Н76Е003 да бисте научили основе. Као што можете видети из доњег резултата, код је вратио 0 упозорења и 0 грешака и бљеснуо је помоћу подразумеваног начина трептања од стране Кеила. Апликација почиње да ради.
Обновити Стартед: Пројекат ПВМ обнови мету "Таргет 1 ' монтажу СТАРТУП.А51… компајлирате маин.ц… компајлирате Делаи.ц… повезује… програм величина: дата = 35.1 кдата = 0 код = 709 креирањем хек датотека из ". \ Објекти \ пвм"… ". \ Објекти \ пвм" - 0 Грешке, 0 Упозорења. Протекло време израде: 00:00:05
Хардвер је повезан на извор напајања и радио је како се очекивало. То је смањена, а затим повећана осветљеност уграђене ЛЕД диоде, што указује на промену радног циклуса ПВМ-а.
Комплетан рад овог водича такође се може наћи у видео линку доле. Надам се да сте уживали у водичу и научили нешто корисно ако имате питања, оставите их у одељку за коментаре или можете користити наше форуме за друга техничка питања.