- Потребни материјали:
- Флеш меморија:
- ИЦСП (Ин Цирцуит Сериал Программинг):
- Круг и хардвер:
- Спаљивање кода помоћу МПЛАБ ИПЕ:
У наша претходна два водича о којима смо разговарали Како започети са ПИЦ-ом помоћу МПЛАБКС и КСЦ8 компајлера, такође смо направили наш први ЛЕД програм за трептање са ПИЦ-ом и верификовали га симулацијом. Сада је време да се ухватимо за хардвер. У овом упутству ћемо направити мали круг на Перф Боард-у за трептање ЛЕД-а помоћу ПИЦ-а. Програм ћемо проследити на наш ПИЦ микроконтролер и верификовати ЛЕД лампицу која трепће. За програмирање ПИЦ МЦУ користићемо МПЛАБ ИПЕ.
Потребни материјали:
Као што је објашњено у нашем претходном упутству, требат ће нам сљедећи материјали:
- ПицКит 3
- ПИЦ16Ф877А ИЦ
- 40 - Држач ИЦ пин-а
- Перф боард
- 20 МХз Цристал ОСЦ
- Женска и мушка Бергстицк игле
- 33пф кондензатор - 2Нос, 100уф и 10уф цап.
- 680 охм, 10К и 560охм отпорник
- ЛЕД било које боје
- 1Комплет за лемљење
- ИЦ 7805
- 12В адаптер
Шта се дешава када "нарежемо" микроконтролер !!
Уобичајена је пракса да код учитате у МЦУ и покренете га да ради унутар МЦУ-а.
Да бисмо ово разумели, погледајмо наш програм
Као што видимо, овај код је написан на Ц-језику и за наш МЦУ неће имати смисла. Овде долази део нашег компајлера; преводилац је онај који претвара овај код у машински читљивом облику. Овај машински читљив образац назива се ХЕКС код, сваки пројекат који креирамо имаће ХЕКС код који ће бити у следећем директоријуму
** Ваша локација ** \ Блинк \ Блинк.Кс \ дист \ дефаулт \ продуцтион \ Блинк.Кс.продуцтион.хек
Ако сте толико заинтересовани да знате како изгледа овај ХЕКС код, само га отворите помоћу бележнице. За наш програм Блинк, ХЕКС код ће изгледати овако:
: 060000000А128А11ФЦ2Ф18: 100ФАА008316031386018312031386018312031324: 100ФБА0086150Д30Ф200АФ30Ф100Ц130Ф000Ф00ББ1: 100ФЦА00Е42ФФ10БЕ42ФФ20БЕ42Ф0000831203133А: 100ФДА0086110Д30Ф200АФ30Ф100Ц130Ф000Ф00Б95: 100ФЕА00Ф42ФФ10БФ42ФФ20БФ42Ф0000ДБ2Ф830107: 060ФФА000А128А11Д52Ф36: 02400Е007А3ФФ7: 00000001ФФ
Постоје начини како ово прочитати и како то разумети и преокренути натраг у скупштински језик, али то је потпуно ван домета овог водича. Дакле, да то једноставно ставим укратко; ХЕКС је коначни софтверски исход нашег кодирања и то је оно што ће послати МПЛАБ ИПЕ за сагоревање МЦУ-а.
Флеш меморија:
ХЕКС код се чува у МЦУ у мјесту Фласх меморија. Фласх меморија је место где ће наш програм бити ускладиштен унутар МЦУ-а и одатле извршен. Једном кад компајлирамо програм у нашем МПЛАБКС-у, добили бисмо следеће информације о типу меморије на излазној конзоли
Будући да смо управо саставили мали ЛЕД програм који трепће, резиме меморије показује да смо управо потрошили 0,5% доступног програмског простора и 1,4% простора података.
Меморија микроконтролера ПИЦ16Ф877 је у основи подељена у 3 типа:
Програмска меморија: Ова меморија садржи програм (који смо написали), након што смо га спалили. Подсећања ради, Бројач програма извршава наредбе ускладиштене у програмској меморији једну за другом. Пошто смо написали врло мали програм, потрошили смо само 0,5% укупног простора. Ово је хлапљива меморија, што значи да се сачувани подаци неће изгубити након искључивања напајања.
Дата Мемори: Ово је врста РАМ меморије, која садржи посебне регистре попут СФР (Специал Фунцтион Регистер) који укључује тајмер чувара, Бровн оут Ресет итд. И ГПР (Генерал Пурпосе Регистер) који укључује ТРИС и ПОРТ итд. Променљиве које се чувају у меморији података током програма бришу се након што искључимо МЦУ. Свака променљива декларисана у програму налазиће се у меморији података. Ово је такође нестабилно сећање.
Подаци ЕЕПРОМ (електрично избрисива програмабилна меморија само за читање): меморија која омогућава чување променљивих као резултат сагоревања написаног програма. На пример, ако доделимо променљивој „а“ да бисмо у њу сачували вредност 5 и сачували је у ЕЕПРОМ-у, ови подаци се неће изгубити чак и ако је напајање ИСКЉУЧЕНО. Ово је нехлапљиво сећање.
Програмска меморија и ЕЕПРОМ су трајна меморија и називају се Фласх меморија или ЕЕПРОМ.
ИЦСП (Ин Цирцуит Сериал Программинг):
Програмират ћемо наш ПИЦ16Ф877А користећи ИЦСП опцију која је доступна у нашем МЦУ.
Шта је ИЦСП?
ИЦСП је једноставан начин који нам помаже да програмирамо МЦУ чак и након што је постављен у нашу пројектну плочу. За програмирање МЦУ-а није потребно имати засебну плочу програмера, све што нам треба је 6 веза између ПицКит3 програмера и наше плоче на следећи начин:
1 |
ВПП (или МЦЛРн) |
За улазак у режим програмирања. |
2 |
Вцц |
Кабл за напајање 11 или 32 |
3 |
ГНД |
Приземни ПИН 12 или 31 |
4 |
ПГД - Подаци |
РБ7. ПИН40 |
5 |
ПГЦ - Сат |
РБ6. ПИН 39 |
6 |
ПГМ - ЛВП омогући |
РБ3 / РБ4. Није обавезно |
ИЦСП је погодан за све ПИЦ пакете; све што нам треба је да извучемо ових пет пинова (6. пиг ПГМ није обавезан) са МЦУ-а на Пицкит3 као што је приказано на доњој слици.
Круг и хардвер:
Сада смо спремили наш ХЕКС код, а такође знамо и како да повежемо ПицКит 3 са нашим ПИЦ МЦУ-ом помоћу ИЦСП-а. Дакле, хајде да залемимо коло помоћу доњих шема:
У горњем кругу користио сам 7805 за регулацију излаза 5В на мој ПИЦ МЦУ. Овај регулатор ће поверед би 12В Вол Марту адаптер. ЦРВЕНИ ЛЕД се користи да покаже да ли се напаја ПИЦ. Конектор Ј1 служи за програмирање ИЦСП-а. Прибадаче су повезане како је објашњено у горњој табели.
Први пин МЦЛР мора се држати високо уз помоћ 10к по дефаулту. Ово ће спречити ресетовање МЦУ-а. Да би се МЦУ ресетовао, пин МЦЛР мора се држати на земљи, што се може учинити помоћу прекидача СВ1.
ЛЕД је повезан на пин РБ3 преко отпорника вредности 560 охма (погледајте Калкулатор отпорника ЛЕД). Ако је све у реду након што је наш програм отпремљен, ова ЛЕД би требала трептати на основу програма. Читав круг је изграђен на Перфбоард-у лемљењем свих компоненти на њему, као што видите на слици на врху.
Спаљивање кода помоћу МПЛАБ ИПЕ:
Да бисте нарезали код, следите кораке у наставку:
- Покрените МПЛАБ ИПЕ.
- Повежите један крај ПицКит-а 3 са рачунаром, а други крај са ИЦСП иглама на перф плочи.
- Повежите се са својим ПИЦ уређајем кликом на дугме за повезивање.
- Потражите Блинк ХЕКС датотеку и кликните на Програм.
Ако све иде како је планирано, на екрану требате добити поруку о успеху. Погледајте доњи код и видео за потпуну демонстрацију и користите одељак за коментаре ако сумњате.
Хвала вам!!!
Упознајмо се у следећем водичу где ћемо се играти са више ЛЕД-а и прекидачем.