- МЦП4921 ДАЦ (дигитално-аналогни претварач)
- Компоненте потребне
- Шема
- Објашњење кода
- Тестирање дигиталне у аналогну конверзију помоћу ПИЦ-а
Дигитално и аналогно је саставни део електронике. Већина уређаја има и АДЦ и ДАЦ и користе се када постоји потреба за претварањем сигнала из аналогног у дигитални или дигитални у аналогни. Такође су сигнали из стварног света попут звука и светлости аналогни по својој природи, па кад год се ови сигнали из стварног света морају користити, дигитални сигнали морају бити претворени у аналогне, на пример за производњу звука помоћу звучника или за контролу извора светлости.
Друга врста ДАЦ-а је модул ширине импулса (ПВМ). ПВМ узима дигиталну реч и генерише дигитални импулс са променљивом ширином импулса. Када се овај сигнал пропусти кроз филтер, резултат ће бити чисто аналоган. Аналогни сигнал може имати више врста података у сигналу.
У овом упутству ћемо повезати ДАЦ МЦП4921 са Мицроцхип-ом ПИЦ16Ф877А за дигиталну у аналогну конверзију.
Овде ћемо у овом упутству претворити дигитални сигнал у аналогни сигнал и приказати улазну дигиталну вредност и излазну аналогну вредност на ЛЦД екрану од 16к2. Пружаће 1В, 2В, 3В, 4В и 5В као коначни аналогни излаз који је приказан у видеу датом на крају. О ДАЦ-у можете даље сазнати у нашем драгоценом водичу о повезивању ДАЦ-а са плочама Распберри Пи, Ардуино и СТМ32.
ДАЦ се може користити у многим апликацијама као што су управљање мотором, контрола осветљености ЛЕД светла, појачало звука, видео енкодери, системи за прикупљање података итд. Пре него што пређете директно на део за повезивање, важно је имати преглед о МЦП4921.
МЦП4921 ДАЦ (дигитално-аналогни претварач)
МЦП4921 је 12-битни ДАЦ, тако да ће МЦП4921 пружити 12 битова излазне резолуције. ДАЦ резолуција значи број дигиталних битова који се могу претворити у аналогни сигнал. Колико вредности можемо постићи из овога, заснива се на формули. За 12-битно је = 4096. То значи да ДАЦ са 12-битном резолуцијом може произвести 4096 различитих излаза.
Користећи ову вредност, лако се може израчунати појединачни аналогни напонски корак. За израчунавање корака потребан је референтни напон. Како је логички напон уређаја 5В, напон корака је 5/4095 (4096-1, јер полазна тачка за дигитално није 1, већ 0), што је 0,00122100122 миливолта. Дакле, промена од 1 бита ће променити аналогни излаз са 0,00122100122.
Дакле, то је био део конверзије. МЦП4921 је 8-пин ИЦ. Пин дијаграм и опис можете наћи испод.
МЦП4921 ИЦ комуницира са микроконтролером од протокола СПИ. За СПИ комуникацију, уређај мора бити главни, који предаје податке или команду спољном уређају повезаном као славе. У СПИ комуникационом систему, више подређених уређаја може се повезати са једним главним уређајем.
Да бисте предали податке и команду, важно је разумети регистар команди.
На слици испод приказан је регистар наредби,
Команда Регистар је 16-битни А регистар. Бит-15 до бит-12 се користи за наредбу за конфигурацију. Унос података и конфигурација јасно су приказани на горњој слици. У овом пројекту, МЦП4921 ће се користити као следећа конфигурација -
Бит Нумбер |
Конфигурација |
Вредност конфигурације |
Бит 15 |
ДАЦ А |
0 |
Бит 14 |
Небуферисани |
0 |
Бит 13 |
1к (В ОУТ * Д / 4096) |
1 |
Бит 12 |
Излазни контролни бит за искључивање |
1 |
Дакле, Бинарни је 0011 заједно са подацима које одређују Д11 до Д0 битови регистра. Треба предати 16-битне податке 0011 кккк кккк кккк, где су прва 4 бита МСБ конфигурација, а остатак ЛСБ. Биће јасније ако се види временски дијаграм наредбе за писање.
Према временском дијаграму и техничком листу, ЦС пин је низак за читав период писања наредбе на МЦП4921.
Сада је време за повезивање уређаја са хардвером и писање кодова.
Компоненте потребне
За овај пројекат су потребне следеће компоненте -
- МЦП4921
- ПИЦ16Ф877А
- Кристал од 20 МХз
- Екран ЛЦД од 16к2 карактера.
- 2к отпорник -1 ком
- Кондензатори 33пФ - 2 ком
- Отпор 4.7к - 1 ком
- Мултиметар за мерење излазног напона
- Плоча за хлеб
- Напајање од 5В, пуњач за телефон може да ради.
- Много прикључних жица или берг жица.
- Програмско окружење микрочипа са програмерским комплетом и ИДЕ са компајлером
Шема
Дијаграм кола за повезивање ДАЦ4921 са ПИЦ микроконтролером је дат у наставку:
Коло је направљено у Бреадбоард-
Објашњење кода
Комплетни код за претварање дигиталних сигнала у аналогни са ПИЦ16Ф877А дат је на крају чланка. Као и увек, прво морамо да поставимо конфигурационе битове у ПИЦ микроконтролеру.
// ПИЦ16Ф877А конфигурације Бит Поставке // цонфиг изјаве извор линија 'Ц' // КОНФИГ # Прагма конфиг ФОСЦ = Хс // осцилатор за избор бита (силвер осцилатор) # Прагма конфиг ВДТЕ = ОН // Данние тајмер Укључи мало (ВДТ инвалидитетом) # прагма цонфиг ПВРТЕ = ОФФ // Бит за укључивање тајмера за укључивање (ПВРТ онемогућен) #прагма цонфиг БОРЕН = ОН // Бров-оут Ресетовање Омогућити бит (омогућен БОР) #прагма цонфиг ЛВП = ОФФ // Нисконапонски (појединачно напајање)) Бит за омогућавање серијског програмирања у кругу (пин РБ3 / ПГМ има ПГМ функцију; омогућено је програмирање ниског напона) #прагма цонфиг ЦПД = ОФФ // Бит ЕЕПРОМ меморијског кода за заштиту (заштита података ЕЕПРОМ кода искључена) #прагма цонфиг ВРТ = ОФФ // Фласх програмирање меморије бита Омогући битове (искључити заштиту; сва програмска меморија може се уписати помоћу ЕЕЦОН контроле) #прагма цонфиг ЦП = ОФФ // Фласх програм Фласх бит заштите кода (заштита кода искључена)
Доле наведени редови кода користе се за интегрисање ЛЦД и СПИ датотека заглавља, такође је декларисана КСТАЛ фреквенција и ЦС пин веза ДАЦ-а.
Водич и библиотеку за ПИЦ СПИ можете пронаћи на датој вези.
#инцлуде
Фунцитон тхе СПИ_Инитиализе_Мастер () је незнатно модификована за различите конфигурације потребна за овај пројекат. У овом случају, ССПСТАТ регистар је конфигурисан на такав начин да се улазни подаци узорковани на крају излазног времена података и такође СПИ сат конфигурисан као Трансмит јављају на прелазу из активног стања у стање мировања сата. И друго је исто.
воид СПИ_Инитиализе_Мастер () { ТРИСЦ5 = 0; // Постави као излаз ССПСТАТ = 0б11000000; // стр 74/234 ССПЦОН = 0б00100000; // стр. 75/234 ТРИСЦ3 = 0; // Постави као излаз за славе начин }
Такође, за доњу функцију, СПИ_Врите () је мало измењен. Пренос података ће се догодити након што се бафер избрише ради осигурања савршеног преноса података преко СПИ.
воид СПИ_Врите (цхар долазно) { ССПБУФ = долазно; // Запиши податке дате кориснику у међуспремник вхиле (! ССПСТАТбитс.БФ); }
Важан део програма је управљачки програм МЦП4921. То је помало лукав део јер се команда и дигитални подаци спајају да би се добили комплетни 16-битни подаци преко СПИ-а. Међутим, та логика је јасно приказана у коментарима кода.
/ * Ова функција служи за претварање дигиталне вредности у аналогну. * / воид цонверт_ДАЦ (непотписана инт вредност) { / * Величина корака = 2 ^ н, дакле 12бит 2 ^ 12 = 4096 За референцу од 5В, корак ће бити 5/4095 = 0,0012210012210012В или 1мВ (приближно) * / непотписани инт контејнер; непотписан инт МСБ; непотписан инт ЛСБ; / * Корак: 1, сачувао је 12-битне податке у контејнер Претпоставимо да су подаци 4095, у бинарном формату 1111 1111 1111 * / цонтаинер = валуе; / * Корак: 2 Креирање лажног 8-битног. Дакле, дељењем 256, горња 4 бита се хватају у ЛСБ ЛСБ = 0000 1111 * / ЛСБ = цонтаинер / 256; / * Корак: 3 Слање конфигурације пробијањем 4-битних података. ЛСБ = 0011 0000 ИЛИ 0000 1111. Резултат је 0011 1111 * / ЛСБ = (0к30) - ЛСБ; / * Корак: 4 Контејнер и даље има 21битну вредност. Издвајање доњих 8 битова. 1111 1111 И 1111 1111 1111. Резултат је 1111 1111 што је МСБ * / МСБ = 0кФФ & цонтаинер; / * Корак: 4 Слање 16-битних података дељењем у два бајта. * / ДАЦ_ЦС = 0; // ЦС је низак током преноса података. Према техничком листу потребан је СПИ_Врите (ЛСБ); СПИ_Врите (МСБ); ДАЦ_ЦС = 1; }
У главној функцији користи се 'фор лооп' где се креирају дигитални подаци за стварање излаза од 1В, 2В, 3В, 4В и 5В. Дигитална вредност се израчунава према излазном напону / 0,0012210012210012 миливолт.
воид маин () { систем_инит (); увод_сцреен (); инт број = 0; инт волт = 0; вхиле (1) { фор (волт = 1; волт <= МАКС_ВОЛТ; волт ++) { нумбер = волт / 0.0012210012210012; цлеар_сцреен (); лцд_цом (ФИРСТ_ЛИНЕ); лцд_путс ("ДАТА Сент: -"); лцд_принт_нумбер (број); лцд_цом (СЕЦОНД_ЛИНЕ); лцд_путс ("Излаз: -"); лцд_принт_нумбер (волт); лцд_путс ("В"); цонверт_ДАЦ (број); __делаи_мс (300); } } }
Тестирање дигиталне у аналогну конверзију помоћу ПИЦ-а
Изграђено коло се испитује помоћу мултиметра. На сликама испод, излазни напон и дигитални подаци приказани су на ЛЦД-у. Мултиметар показује помно очитавање.
Комплетни код са радним видео записом приложен је испод.