Меню English Ukrainian російська Головна

Безкоштовна технічна бібліотека для любителів та професіоналів Безкоштовна технічна бібліотека


Мікроконтролер PIC16C84. Короткий опис. Енциклопедія радіоелектроніки та електротехніки

Безкоштовна технічна бібліотека

Енциклопедія радіоелектроніки та електротехніки / Мікроконтролери

Коментарі до статті Коментарі до статті

Даний опис не претендує на повноту і містить кілька помилок і помилок. Повну документацію можна отримати у дистриб'юторів Microchip, адреси яких наведені в кінці файлу.

Запровадження

PIC16C84 відноситься до сімейства КМОП мікроконтролерів. Відрізняється тим, що має внутрішнє 1K x 14 біт EEPROM для програм, 8-бітові дані та 64байт EEPROM пам'яті даних. При цьому відрізняються низькою вартістю та високою продуктивністю. Користувачі, які знайомі з сімейством PIC16C5X можуть переглянути докладний список відмінностей нового від вироблених контролерів. Усі команди складаються з одного слова (14 біт шириною) виконуються за один цикл (400 нс при 10 МГц), крім команд переходу, які виконуються за два цикли (800 нс). PIC16C84 має переривання, що спрацьовує від чотирьох джерел, та восьмирівневий апаратний стек.

Периферія включає 8-бітний таймер/лічильник з 8-бітним програмованим попереднім дільником (фактично 16 - бітний таймер) і13 ліній двонаправленого вводу/виводу. Висока здатність навантаження (25мА макс. струм, що втікає, 20 мА макс. струм, що витікає) ліній вводу/виводу спрощують зовнішні драйвери і, тим самим, зменшується загальна вартість системи. Розробки на базі контролерів PIC16C84 підтримується асемблером, програмним симулятором, внутрішньосхемним емулятором (тільки фірми Microchip) та програматором.

Серія PIC16C84 підходить для широкого спектру додатків від схем високошвидкісного керування автомобільними та електричними двигунами до економічних віддалених приймачів, що показують приладів та зв'язкових процесорів. Наявність ПЗП дозволяє підлаштовувати параметри у прикладних програмах (коди передавача, швидкості двигуна, частоти приймача тощо).

Мінімальні розміри корпусів, як для звичайного, так і для поверхневого монтажу, робить цю серію мікроконтролерів придатною для портативних додатків. Низька ціна, економічність, швидкодія, простота використання та гнучкість введення/виведення робить PIC16C84 привабливим навіть у тих областях, де раніше не застосовувалися мікроконтролери. Наприклад, таймери, заміна жорсткої логіки у великих системах, співпроцесори.

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

Огляд показників

- лише 35 простих команд;

- усі команди виконуються за один цикл(400ns), крім команд переходу -2 цикли;

- робоча частота 0 Гц...10 МГц (min 400 нс цикл команди)

- 14 – бітові команди;

- 8 – бітові дані;

- 1024 х 14 електрично перепрограмованої програмної пам'яті на кристалі (EEPROM);

- 36 х 8 регістрів загального використання;

- 15 спеціальних апаратних регістрів SFR;

- 64 x 8 ЕEPROM пам'яті, що електрично перепрограмується, для даних;

- восьмирівневий апаратний стек;

- пряма, непряма та відносна адресація даних та команд;

- чотири джерела переривання:

. зовнішній вхід INT

. переповнення таймера RTCC

. переривання під час зміни сигналів на лініях порту B

. після завершення запису даних у пам'ять EEPROM

Периферія та Введення/Виведення

- 13 ліній введення-виводу з індивідуальним налаштуванням;

- струм, що витікає/випливає, для керування світлодіодами

. макс струм - 25 мА

. макс струм, що витікає - 20 мА

- 8 - бітний таймер/лічильник RTCC з 8-бітним програмованим попереднім дільником;

- автоматичне скидання при включенні;

- таймер включення під час скидання;

- таймер запуску генератора;

- Watchdog таймер WDT із власним вбудованим генератором, що забезпечує підвищену надійність;

- EEPROM біт секретності для захисту коду;

- Економічний режим SLEEP;

- біти, що вибираються користувачем, для встановлення режиму збудження вбудованого генератора:

- RC генератор: RC

- звичайний кварцовий резонатор: XT

- високочастотний кварцовий резонатор: HS

- Економічний низькочастотний кристал: LP

- вбудований пристрій програмування EEPROM пам'яті програм та даних; використовуються лише дві ніжки.

КМОП технологія

- Економічна високошвидкісна КМОП EPROM технологія;

- Статичний принцип в архітектурі;

- широкий діапазон напруг живлення та температур:

. комерційний: 2.0...6.0 В, 0...+70С

. промисловий: 2.0...6.0 В, -40...+70С

. автомобільний: 2.0...6.0 В, -40...+125С

- низьке споживання

. 3 мА типово для 5В, 4МГц

. 50 мкА типово для 2В, 32кГц

. 26 мкА типово для режиму SLEEP при 2В.

Структурна схема PIC16C84

Мікроконтролер PIC16C84. Короткий опис

Архітектура заснована на концепції роздільних шин та областей пам'яті для даних та команд (Гарвардська архітектура). Шина даних та пам'ять даних (ОЗУ) - мають ширину 8 біт, а програмна шина та програмна пам'ять (ПЗУ) мають ширину 14 біт. Така концепція забезпечує просту, але потужну систему команд, розроблену так, що бітові, байтові та регістрові операції працюють з високою швидкістю та з перекриттям за часом вибірок команд та циклів виконання. 14-бітова ширина програмної пам'яті забезпечує вибірку 14-бітової команди в один цикл. Двоступінчастий конвеєр забезпечує одночасну вибірку та виконання команди. Усі команди виконуються за один цикл, виключаючи команди переходів. У PIC16C84 програмна пам'ять обсягом 1К х 14 розташована усередині кристала. Виконувана програма може бути лише у вбудованому ПЗУ.

Відмінності PIC16C84 від PIC16C5x

1. Довжина команди збільшилася до 14 біт. Це дозволяє організувати ПЗУ та ОЗУ зі збільшеним розміром сторінки: (2К байта замість 512 байт), (128 байт замість 32 байт) відповідно.

2. Старший регістр програмного лічильника (PCLATH) управляє перемиканням сторінок програмної пам'яті. Біти вибору сторінок PA2, PA1, PA0, які використовувалися для цього в кристалі PIC16C5X – вилучені з регістру STATUS.

3. Сторінка організації пам'яті та регістр STATUS- модифіковані.

4. Додано чотири нові команди: RETURN, RETFIE, ADDLW, SUBLW. У двох командах TRIS та OPTION відпала необхідність, однак вони збережені для програмної сумісності з PIC16C5X.

5. Реєстри OPTION і TRIS зроблені такими, що адресуються за номером.

6. Додано можливість працювати з переривання. Вектор = 0004h.

7. Розмір стека збільшена до восьми рівнів.

8. Адреса скидання при включенні змінилася на 0000h.

9. Розпізнаються п'ять різних типів скидання (виходи з режиму SLEEP). Ініціалізація регістрів змінено. Вони встановлюються по-різному, залежно від типу скидання.

10. Додано вихід із режиму SLEEP через переривання.

11. Для більш надійного запуску додані наступні апаратні затримки: таймер запуску (OST) та таймер включення живлення (PWRT). Ці таймери можуть бути використані вибірково, щоб уникнути непотрібних затримок як при включенні, так і при виході з режиму SLEEP.

12. Порт B має активні навантаження та переривання при зміні вх.сигналів.

13. Ніжка RTCC поєднана з ніжкою порту (RA4).

14. Реєстр з адресою 07h (порт C) немає і не є регістром загального призначення.

15. Реєстр FSR (f4), в якому зберігається покажчик при непрямій адресації, став шириною у вісім біт.

16. Реалізовано вбудований автомат програмування EEPROM. Користувач може програмувати PIC16C84, використовуючи лише п'ять ніжок: Vdd, Vss, /MCLR/Vpp, RB6(тактова частота), RB7(вхід/вихід даних).

Перехід від PIC16C5x до PIC16C84

Щоб перевести код, написаний для PIC16C5X в код для PIC16C84, користувач повинен виконати такі кроки:

1. Замінити операції на вибір сторінок програмної пам'яті (біти PA2, PA1, PA0) командами CALL, GOTO.

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

3. Виключити перемикання сторінок пам'яті даних. Перевизначити змінні та перерозподілити пам'ять для них.

4. Перевірити запис регістри STATUS, OPTION, FSR, т.к. вони дещо змінені.

5. Змініть вектор скидання під час увімкнення на 0000h.

6. Зверніть увагу, що адреса 07h - це неіснуюча адреса пам'яті даних.

Типи корпусів та виконань

Позначення корпусів кристалів PIC16C8x. Тип корпусу вказується в маркуванні при замовленні мікросхем. Корпуси бувають лише з 18 Висновками. PDIP – Звичайний пластмасовий дворядний корпус. Використовується для OTP EPROM версії кристалів. SOIC - Малогабаритний корпус DIP для монтажу на поверхню

Виконання мікросхем бувають трьох типів: комерційні, для промисловості та автомобільної електроніки. Основна їх відмінність у температурному діапазоні та робочій напрузі.

Комерційне виконання

Робоча температура 0...+70°C

Робоча напруга 3.0...5.5 В

Виконання для промисловості

Робоча температура -40.... +85 °C

Робоча напруга 3.0...5.5 В

Виконання для автомобілів

Робоча температура -40...+125 °C

Робоча напруга 3.0...5.5 В

Маркування при замовленні

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

<Фірм.номер>-<Частота генератора><Темпер.діапазон>/<Корпус><Примітка>

<Фірм.номер буває>: PIC16C84 - Vdd range 4...6 V

PIC16LC84 Vdd range 2...6 V

<Частота генератора>: 04 ---> 4 mHz

10 ---> 10mHz

Температурний діапазон буває:

- від 0С до +70С

I від -40С до +85С

E від -40С до +125С

Корпус позначається:

P – звичайний пластмасовий DIP

SO -300 mil SOIC

Приклади:

PIC16C84-04/Pxxx 4 mHz, комерційне виконання в PDIP корпусі, норм.діапазон Vdd, масочне ПЗУ з програмою xxx

PIC16LC84-04I/SO 4 mHz, виконання для промисловості, розширений діапазон живлення, корпус = SOIC

PIC16C84-10E/P виконання для автомобілів, 10 mHz, PDIP, норм. живлення

Розведення ніжок

Функціональне призначення висновків див. "Позначення Виводів" або Структурну Схему. Типи корпусів PDIP та ін. див. "Корпуса".

Мікроконтролер PIC16C84. Короткий опис

Призначення ніжок

Позначення ніжок та їх функціональне призначення.

Мікроконтролер PIC16C84. Короткий опис

Максимальні значення електричних параметрів

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

Мікроконтролер PIC16C84. Короткий опис

Примітки:

1. Повна потужність, що розсіюється, не повинна перевищувати 800 мВт для кожного корпусу. Розсіювана потужність обчислюється за такою формулою:

Pdis = Vdd (Idd - Сума (Ioh)) + Сума ((Vdd - Voh) Ioh) + Сума (Vol Iol)

2. Зниження напруги на ніжці /MCLR нижче Vss(земля) викликає великі струми, більше 80 мА, і може призвести до пошкодження цієї лінії. Тому рекомендуємо подавати сигнали на ніжку /MCLR через обмежуючий резистор 50-100 Ом.

Огляд регістрів та ОЗУ

Область ОЗП організована як 128 х 8. До осередків ОЗП можна адресуватися прямо чи опосередковано, через регістр покажчик FSR (04h). Це також стосується і EEPROM пам'яті даних-констант.

Мікроконтролер PIC16C84. Короткий опис

У регістрі статусу (03h) є біти вибору сторінок, які дозволяють звертатися до чотирьох сторінок майбутніх модифікацій цього кристала. Однак для PIC16C84 пам'ять даних існує лише до адреси 02Fh. Перші 12 адрес використовуються для розміщення регістрів спеціального призначення.

Регістри з адресами 0Ch-2Fh можуть бути використані як регістри загального призначення, які є статичною ОЗУ. Деякі регістри спеціального призначення продубльовані на обох сторінках, а деякі розташовані на сторінці 1 окремо. Коли встановлена ​​сторінка 1, то звернення до адрес 8Ch-AFh фактично адресує сторінку 0. До регістрів можна адресуватися прямо або опосередковано. В обох випадках можна адресувати до 512 регістрів.

Пряма адресація

Коли проводиться пряма 9-бітова адресація, молодші 7 біт беруться як пряма адреса з коду операції, а два біти покажчика сторінок (RP1, RP0) з регістра статусу (03h).

Мікроконтролер PIC16C84. Короткий опис

Непряма адресація

f4 - Вказівник косв.адресації

Будь-яка команда, яка використовує f0 (адреса 00) як регістр фактично звертається до покажчика, який зберігається у FSR (04h). Читання опосередкованим чином самого регістра f0 дасть результат 00h. Запис регістра f0 побічно виглядатиме як Nop, але біти статусу можуть бути змінені. Необхідна 9-бітна адреса формується об'єднанням вмісту 8-бітного FSR регістру та біта IRP з регістра статусу.

Мікроконтролер PIC16C84. Короткий опис

Зверніть увагу, що деякі регістри спеціальних функцій розміщуються на сторінці 1. Щоб адресуватися до них, потрібно додатково встановити один біт RP0 в регістрі статусу.

RTCC таймер/лічильник

Структурну схему включення RTCC наведено нижче. Вона містить елемент "MUX" – це електронний перемикач.

Мікроконтролер PIC16C84. Короткий опис

Режим таймера вибирається шляхом скидання в нуль біта RTS, що знаходиться в регістрі OPTION. У режимі таймера RTCC інкрементуватиметься від ВНУТРІШНЬОГО ДЖЕРЕЛА частоти - кожен командний цикл (без предделителя).

Після запису інформації в RTCC інкрементування його почнеться після двох командних циклів. Таке відбувається з усіма командами, які виконують запис чи читання-модифікацію-запис f1 (напр.MOVF f1, CLRF f1). Уникнути цього можна за допомогою запису RTCC скоригованого значення. Якщо RTCC потрібно перевірити на рівність нулю без зупинки рахунка, слід використовувати інструкцію MOVF f1,W.

Режим лічильника вибирається шляхом встановлення в одиницю біта RTS, який знаходиться в регістрі OPTION. У цьому режимі RTCC інкрементуватиметься або позитивним, або негативним фронтом на ніжці RA4/RTCC від зовнішніх подій. Напрямок фронту визначається керуючим бітом RTE у регістрі OPTION. При RTE=0 буде обрано позитивний фронт. Лічильник може бути використаний або спільно з RTCC, або з таймером Watchdog. Варіант підключення дільника контролюється бітом PSA у регістрі OPTION. При PSA=0 дільник буде приєднано до RTCC. Вміст дільника програмі недоступний. Коефіцієнт розподілу – програмується. Переривання RTCC виробляється тоді, коли відбувається переповнення RTCC таймера/лічильника при переході від FFH до 00h. Тоді встановлюється біт запиту RTIF у регістрі INTCON<2>. Дане переривання можна замаскувати бітом RTIE у регістрі INTCON<5>. Біт запиту RTIF повинен бути скинутий програмно під час обробки переривання. Переривання RTCC не може вивести процесор з SLEEP тому, що таймер не функціонує в цьому режимі.

Проблеми з таймером

Проблеми можуть виникнути за рахунок зовнішніх сигналів. Ці сигнали намагаються внутрішнім сигналом синхронізації, див. схему SYNC. Утворюється деяка затримка між фронтом сигналу вхідного і моментом інкрементування RTCC. Cтробування проводиться після визначника. Вихід розподільника опитується двічі протягом кожного командного циклу, щоб визначити позитивний і негативний фронти вхідного сигналу. Тому сигнал Psout повинен мати високий та низький рівень щонайменше двох періодів синхронізації.

Коли розподільник не використовується, Psout повторює вхідний сигнал, тому вимоги до нього такі:

Trth= RTCC high time >= 2 tosc+20ns

Trtl = RTCC low time > = 2 tosc + 20ns.

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

Psout high time = Psout low time = NTrt/2,

де Trt - вхідний період RTCC,

N- значення лічильника дільника (2,4...256).

В цьому випадку вимоги до вхідного сигналу можна виразити так:

NTrt/2 >= 2 tosc +20ns або

Trt >= (4tosc + 40ns)/N.

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

Trt = RTCC період > = (4tosc + 40ns) / N

Trth = RTCC high time >= 10ns

Trtl = RTCC low time >= 10ns.

Так як вихід визначника синхронізується внутрішнім сигналом тактової частоти, існує невелика затримка між появою фронту зовнішнього сигналу і часом фактичного інкременту RTCC. Ця затримка знаходиться у діапазоні між 3tosc та 7tosc. Таким чином, вимірювання інтервалу між подіями буде виконано з точністю 4tosc (+-400нс при кварці 10 МГц).

Реєстр статусу

Регістр (f3) містить арифметичні прапори АЛУ, стан контролера під час скидання та біти вибору сторінок пам'яті даних. (f3) доступний для будь-якої команди так само, як будь-який інший регістр. Однак біти TO і PD встановлюються апаратно і не можуть бути записані в статус програмно. Це слід на увазі при виконанні команди з використанням регістру статусу. Наприклад, команда CLRF f3 обнулює всі біти, крім бітів TO і PD, а потім встановить біт Z=1. Після виконання цієї команди регістр статусу може не мати нульове значення (через бітів TO і PD) f3=000??100. Тому рекомендується для зміни регістру статусу використовувати лише команди бітової установки BCF, BSF, MOVWF, які не змінюють решту бітів статусу. Вплив всіх команд на біти статусу можна переглянути в "Описі команд".

Програмні прапори статусу

Розміщення прапорів у реєстрі статусу таке:

Мікроконтролер PIC16C84. Короткий опис

Для команд ADDWF та SUBWF. Цей біт встановлюється, якщо в результаті операції із найстаршого розряду відбувається перенесення. Віднімання здійснюється шляхом додавання додаткового коду другого операнда. При виконанні команд зсуву цей біт завжди завантажується з молодшого або старшого біта джерела, що зрушується.

Мікроконтролер PIC16C84. Короткий опис

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

Z - Прапор нульового результату:

Встановлюється, якщо результатом арифметичної чи логічної операції є нуль.

PD - Power Down (Режим зберігання даних):

Встановлюється в "1" при включенні живлення або CLRWDT. Скидається в "0" командою SLEEP.

TO – Time Out. Прапор спрацьовування Watchdog таймера:

Встановлюється "1" при включенні живлення і командами CLRWDT, SLEEP. Скидається в "0" після завершення витримки часу таймера WDT.

RP1, RP0 - Біти вибору сторінки пам'яті даних за прямої адресації:

RP1, RP0:

00= Сторінка 0 (00h-7Fh)

01= Сторінка 1 (80h-FFh)

10= Сторінка 2 (100h-17Fh)

11= Сторінка 3 (180h-1FFh)

На кожній сторінці розміщено 128 байт. У кристалі PIC16C84 використовується лише RP0. У цьому кристалі RP1 можна використовувати просто як біт загального призначення читання/запису. Однак слід пам'ятати, що у подальших розробках він використовуватиметься.

IRP - Біт вибору сторінки пам'яті даних при непрямій адресації:

IRP0:

0= Сторінки 0,1 (00h-FFh)

1= Сторінка 2,3 (100h-1FFh)

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

Апаратні прапори статусу

Апаратні Біти статусу TO (Time Out) та PD (Power Down). За станом бітів регістру статусу "TO" та "PD" можна визначити, чим було викликано "Скидання":

- просто включенням живлення,

- спрацьовуванням таймера watchdog,

- виходом з режиму зниженого енергоспоживання (Sleep) в результаті спрацьовування watchdog таймера,

- За зовнішнім сигналом /MCLR.

На стан цих бітів можуть вплинути лише такі події:

Мікроконтролер PIC16C84. Короткий опис

Примітка: Біти TO та PD зберігають поточний стан доти, доки не відбудеться одна з подій, перелічених у таблиці. "0"-Імпульс низького рівня на вході кристала /MCLR не змінює стан бітів TO та PD.

Організація вбудованого ПЗП

Програмний лічильник PIC16C84 має ширину 13 біт і здатний адресувати 8Кх14біт обсягу програмної пам'яті. Проте, фізично на кристалі є лише 1Кх14 пам'яті (адреси 0000h-03FFh). Звернення до адрес вище 3FFh фактично є адресація в той же перший кілобайт. Вектор скидання знаходиться за адресою 0000h, вектор переривання знаходиться за адресою 0004h.

EEPROM PIC16C84 розрахований на обмежену кількість циклів стирання/запису. Щоб записати в програмну пам'ять, кристал повинен бути переведений у спеціальний режим, при якому на ніжку /MCLR подається напруга програмування Vprg, а живлення Vdd має перебувати в межах 4.5 В ... 5.5В. PIC16C84 непридатний для застосування, в яких часто модифікується програма. Запис у програмну пам'ять здійснюється побитно, послідовно з використанням двох ніжок.

PC та адресація ПЗУ

(f2). Програмний лічильник

Ширина програмного лічильника – 13 біт. Молодший байт програмного лічильника (PCL) доступний для читання та запису та знаходиться в регістрі 02h. Старший байт програмного лічильника (PCH) не може бути прямо прочитаний або записаний. Старший байт програмного лічильника може бути записаний через PCLATH регістр, адреса якого 0Ah. Залежно від цього, чи завантажується в програмний лічильник нове значення під час виконання команд CALL, GOTO, чи молодший байт програмного лічильника (PCL) виробляється запис, - старші біти програмного лічильника завантажуються з PCLATH у різний спосіб оскільки показано малюнку.

Випадок команд GOTO, CALL

Мікроконтролер PIC16C84. Короткий опис

Стек та повернення з підпрограм

Кристал PIC16C84 має восьмирівневий апаратний стек шириною 13 біт. Область стека не належить ні до програмної області, ні до області даних, а покажчик стека користувачу недоступний. Поточне значення програмного лічильника надсилається у стек, коли виконується команда CALL або виконується обробка переривання. При виконанні процедури повернення з підпрограми команди RETLW, RETFIE або RETURN), в програмний лічильник вивантажується вміст стека. Регістр PCLATH (0Ah) не змінюється під час операцій зі стеком.

Дані в EEPROM

Довготривала Пам'ять даних EEPROM.

Пам'ять даних EEPROM дозволяє прочитати та записати байт інформації. При записі байта автоматично стирається попереднє значення і записуються нові дані (прання перед записом). Всі ці операції здійснює вбудований автомат запису EEPROM. Вміст клітинок пам'яті зберігається при вимкненні живлення. Кристал PIC16C84 має пам'ять даних 64х8 EEPROM біт, яка дозволяє запис і читання під час нормальної роботи (у всьому діапазоні напруги живлення). Ця пам'ять не належить до області регістрів ОЗУ. Доступ до неї здійснюється через два регістри: EEDATA <08h>, який містить восьмибітові дані для читання/запису та EEADR <09h>, який містить в собі адресу комірки до якої йде звернення. Додатково є два керуючі регістри: EECON1 <88h> і EECON2 <89h>.

При зчитуванні даних з пам'яті EEPROM необхідно записати потрібну адресу в регістр EEADR і потім встановити біт RD EECON1<0> в одиницю. Дані з'являться в наступному командному циклі в регістрі EEDATA і можуть бути прочитані. Дані в регістрі EEDATA замикаються.

При записі в пам'ять EEPROM необхідно спочатку записати необхідні адреси в EEADR регістр і дані в EEDATA регістр. Потім виконати спеціальну послідовність команд, що робить безпосередній запис:

movlv 55h

movwf EECON2

movlv AAh

movwf EECON2

bsf EECON1,WR ;установити WR біт, почати запис

Під час виконання цієї ділянки програми всі переривання повинні бути заборонені для точного виконання тимчасової діаграми. Час запису -

приблизно 10мс. Фактичний час запису змінюватиметься залежно від напруги, температури та індивідуальних властивостей кристала. В кінці запису біт WR автоматично обнулюється, а прапор завершення запису EEIF, він же запит на переривання встановлюється.

Для запобігання випадковим записам у пам'ять даних передбачено спеціальний біт WREN у регістрі EECON1. Рекомендується тримати біт WREN вимкненим, крім випадків, коли потрібно оновити пам'ять даних. Більше того, кодові сегменти, які встановлюють біт WREN і ті, які виконують запис, повинні зберігатися на різних адресах, щоб уникнути випадкового виконання їх обох при збої програми.

Управління EEPROM

Керівні регістри для EEPROM

Мікроконтролер PIC16C84. Короткий опис

Реєстри EECON1 та EECON2

Реєстр EECON1 (адреса 88h) - це керуючий регістр шириною п'ять біт. Молодші п'ять біт фізично існують, а старші три біти читаються завжди як `0`.

Реєстр EECON1 Адреса 88h

Сброс при вкл.- 0000Х000

Мікроконтролер PIC16C84. Короткий опис

Керуючі біти RD та WR запускають відповідно читання та запис. Вони можуть бути встановлені лише програмно. Скидаються- апаратно після завершення операцій читання/запису. Заборона програмного скидання біта WR запобігає передчасному закінченню запису.

RD - Біт читання.

RD =1 : Запуск читання пам'яті даних EEPROM. Читання займає один цикл. Встановлюється програмно. Обнулюється апаратно.

WR - Біт запису.

WR =1 : Запуск запису пам'яті даних EEPROM.

Встановлюється програмно. Обнулюється апаратно.

WREN - Біт дозволу запису пам'ять даних EEPROM.

WREN = 1: Дозволено запис.

WREN = 0: Заборонено запис.

Після включення живлення WREN обнулюється.

Прапор помилки WRERR встановлюється, коли процес запису переривається сигналом скидання /MCLR або сигналом скидання WDT таймера. Рекомендуємо перевіряти цей прапор WRERR і за необхідності проводити перезапис даних, дані та адреса яких зберігаються в регістрах EEDATA та EEADR.

WRERR - Прапор помилки запису.

WRERR = 1: Прапор встановлюється, коли операція запису передчасно переривається сигналом скидання /MCLR (під час звичайного режиму або SLEEP) або сигналом скидання WDT під час звичайного режиму.

Прапор EEIF встановлюється, коли вбудований автомат завершує запис у пам'ять даних. Він має бути скинутий програмно.

EEIF - Прапор завершення запису.

EEIF = 1: Прапор встановлюється після завершення запису. Відповідний біт дозволу переривання - EEIE у регістрі INTCON.

Організація переривань

Переривання PIC16C84 можуть бути від чотирьох джерел:

- Зовнішнє переривання з ніжки RB0/INT,

- переривання від переповнення лічильника/таймера RTCC,

- переривання після закінчення запису даних у EEPROM

- переривання від зміни сигналів на ніжках порту RB<7:4>.

Всі переривання мають один і той же вектор/адресу - 0004h. Проте, у керуючому регістрі переривань INTCON записується:- від якого саме джерела надійшов запит переривання. Записується відповідним бітом-прапором. Таке переривання може бути замасковане індивідуально або загальним бітом. Єдиним винятком є ​​переривання до кінця запису в EEPROM. Цей прапор знаходиться в іншому регістрі EECON1.

Біт загального дозволу/заборони переривання GIE (INTCON <7>) дозволяє (якщо=1) всі індивідуально незамасковані переривання або забороняє (якщо=0) їх. Кожне переривання окремо може бути додатково дозволено/заборонено установкою/скиданням відповідного біта в регістрі INTCON. Біт GIE обнулюється при скиданні. Коли починає оброблятися переривання, біт GIE обнулюється, щоб заборонити подальші переривання, адреса повернення посилається в стек, а програмний лічильник завантажується адресу 0004h. Час реакції на переривання зовнішніх подій, таких як переривання від ніжки INT або порту B, становить приблизно п'ять циклів. Це на один цикл менше, ніж для внутрішніх подій, таких як переривання переповнення від таймера RTCC. Час реакції завжди однаковий. У підпрограмі обробки переривання джерело переривання може бути визначено за відповідним бітом у регістрі прапорів. Цей прапор-біт повинен бути програмно скинутий всередині підпрограми. Прапори запитів переривань не залежать від відповідних бітів, що маскують, і біта загального маскування GIE.

Команда повернення з переривання RETFIE завершує перерву підпрограму і встановлює біт GIE, щоб знову дозволити переривання.

Реєстр запитів та масок

Керуючий регістр переривань та його біти

Мікроконтролер PIC16C84. Короткий опис

Адреса: 0Bh

Значення при reset = 0000?

RBIF -Прапор переривання від зміни на порту RB.

Прапор встановлюється, коли сигнал на вході RB<7:4> змінюється.

Прапор скидається програмним способом.

INTF – Прапор переривання INT.

Прапор встановлюється, коли на ніжці INT з'являється сигнал від зовнішнього джерела переривання. Скидається програмним способом.

RTIF – Прапор переривання від переповнення RTCC.

Прапор встановлюється, коли RTCC переповнюється.

Прапор скидається програмним способом.

RBIE - Біт дозволу/заборони RBIF переривання.

RBIE = 0: забороняє RBIE переривання

RBIE = 1 : дозволяє RBIE переривання

INTE - Біт дозволу/заборони INT переривання.

INTE = 0: забороняє INT переривання

INTE = 1: дозволяє INT переривання

RTIE Біт дозволу/заборони RTIF переривання.

RTIE = 0: забороняє RTIE переривання

RTIE = 1 : дозволяє RTIE переривання

EEIE - Біт дозволу/заборони переривання запису EEPROM.

EEIE = 0: забороняє EEIF переривання

EEIE = 1: дозволяє EEIF переривання

GIE Біт дозволу/заборони всіх переривань.

GIE = ​​0: забороняє переривання

GIE = ​​1 : дозволяє переривання

Він скидається автоматично за таких обставин:

- по включенню живлення.

- за зовнішнім сигналом /MCLR за нормальної роботи.

- за зовнішнім сигналом /MCLR у режимі SLEEP.

- після закінчення затримки таймера WDT за нормальної роботи.

- після закінчення затримки таймера WDT у режимі SLEEP.

Зовнішнє переривання

Зовнішнє переривання на ніжці RB0/INT здійснюється по фронту: або по наростаючому (якщо біт6 INTEDG = 1 в регістрі OPTION), або по фронту, що спадає (якщо INTEDG = 0). Коли фронт виявляється на ніжці INT, біт запиту INTF встановлюється (INTCON <1>). Це переривання може бути замасковано установкою біта керуючого INTE в нуль (INTCON <4>). Біт запиту INTF повинен бути очищений програмою, що перериває, перед тим, як знову дозволити це переривання. Переривання INT може вивести процесор з режиму SLEEP, якщо перед входом до цього режиму біт INTE був встановлений в одиницю.

Стан біта GIE також визначає: чи переходитиме процесор на підпрограму переривання після прокидання з режиму SLEEP.

Переривання від RTCC

Переповнення лічильника RTCC (FFh->00h) встановить біт запиту RTIF (INTCON<2>). Це переривання може бути дозволено/заборонено установкою/скиданням біта RTIE маски (INTCON<5>). Скидання запиту RTIF – справа програми обробки.

Переривання від порту RB

Будь-яка зміна сигналів чотирьох входах порту RB<7:4> встановить біт RBIF (INTCON<0>). Це переривання може бути дозволено/заборонено установкою/скиданням біта маски RBIE (INTCON<3>). Скидання запиту RBIF – справа програми обробки.

Переривання від EEPROM

Прапор запиту переривання після закінчення запису в EEPROM, EEIF (EECON1<4>) встановлюється після закінчення автоматичного запису даних EEPROM. Це переривання може бути замасковане скиданням біта EEIE (INTCON<6>). Скидання запиту EEIF – справа програми обробки.

Огляд регістрів/портів

Кристал має два порти: 5 біт порт RA і 8 біт порт RB з побітовим індивідуальним налаштуванням на введення або на виведення.

Схема лінії порту A

Порт А - це порт шириною 5 біт, відповідні ніжки кристала RA<4:0>. Лінії RA<3:0> двонаправлені, а лінія RA4 -вихід з відкритим стоком. Адреса регістру порту А – 05h. Регістр TRISA, що відноситься до порту А, розташований на першій сторінці регістрів за адресою 85h. TRISA - це регістр шириною 4 біт. Якщо біт керуючого TRISA регістру має значення одиниця, відповідна лінія буде встановлюватися на введення. Нуль перемикає лінію виведення і водночас виводить її у вміст відповідного регістру клямки. Нижче дана схема портів RA0..RA5

Мікроконтролер PIC16C84. Короткий опис
Мікроконтролер PIC16C84. Короткий опис

Мікроконтролер PIC16C84. Короткий опис

Схема лінії порту B

Порт - це двонаправлений порт, шириною у вісім біт (адреса регістра 06h). Відноситься до порту У регістр TRISB, що управляє, розташований на першій сторінці регістрів за адресою 86h. Якщо біт керуючого TRISB регістру має значення одиниця, відповідна лінія буде встановлюватися на введення. Нуль перемикає лінію виведення і водночас виводить її у вміст відповідного регістру клямки. У кожної ніжки порту є невелике активне навантаження (близько 100мкА) на лінію живлення. Вона автоматично вимикається, якщо ця ніжка запрограмована як висновок. Більш того, біт RBPU OPTION<7>, що управляє, може відключити (RBPU=1) всі навантаження. Скидання при включенні живлення також вимикає всі навантаження.

Чотири лінії порту (RB<7:4>) мають здатність викликати переривання при зміні значення сигналу на будь-якій з них. Якщо ці лінії налаштовані на введення, вони опитуються і замикаються в циклі читання Q1. Нова величина вхідного сигналу порівнюється зі старою у кожному командному циклі. При розбіжності значення сигналу на ніжці та у клямці, генерується високий рівень. Виходи детекторів "несупадінь" RB4,RB5,RB6,RB7 об'єднуються АБО і генерують переривання RBIF (запам'ятовується в INTCON<0>). Будь-яка лінія, налаштована як висновок, не бере участі у цьому порівнянні. Переривання може вивести кристал із режиму SLEEP. У підпрограмі обробки переривання слід скинути запит переривання одним із наступних способів:

1) Заборонити переривання за допомогою обнулення біта RBIE INTCON<3>.

2) Прочитати порт У. Це завершить стан порівняння.

3) Обнулити біт RBIF INTCON<0>.

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

Назва

Мікроконтролер PIC16C84. Короткий опис

Проблеми з портами

Проблеми при організації двонаправлених портів

-Деякі команди внутрішньо виконуються як читання+запис. Наприклад, команди BCF і BSF зчитують порт повністю, модифікують один біт і виводять результат назад. Тут потрібна обережність. Наприклад, команда BSF для біта 5 регістра f6 (порт В) спочатку вважає всі вісім біт. Потім виконуються дії над бітом 5 і нове значення байта повністю записується у вихідні клямки. Якщо інший біт регістра f6 використовує я як двонаправлене введення/виведення (скажімо біт 0) і в даний момент він визначений як вхідний, вхідний сигнал на цій ніжці буде рахований і записаний назад у вихідну клямку цієї ж ніжки, затираючи її попередній стан.

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

На ніжку, що працює в режимі виведення, не повинні "навалюватися" зовнішні джерела струмів ("монтажне", "монтажне"). Великі струми, що результують, можуть пошкодити кристал.

Послідовне звернення до портів введення/виводу

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

Огляд команд та позначення

Кожна команда PIC16C84 - це 14-бітове слово, яке розділене за змістом на такі частини: - 1. код операції -2. поле для одного і більше операндів, які можуть брати участь у цій команді. Система команд PIC16C84 включає байт-орієнтовані команди, біт-орієнтовані, операції з константами і команди передачі управління.

Для байт-орієнтованих команд "f" позначає регістр, з яким виробляється дія; "d" – біт визначає, куди покласти результат. Якщо "d" =0, то результат буде поміщений у W регістр, при "d"=1 результат буде поміщений у "f", згаданому в команді. Для біт-орієнтованих команд "b" позначає номер біта, що у команді, а "f" -це регістр , у якому цей біт розташований.

Для команд передачі управління та опреаций з константами, "k" позначає восьми або одинадцятибітну константу.

Усі команди виконуються протягом одного циклу. У двох випадках виконання команди займає два командні цикли: -1. перевірка умови та перехід, -2.зміна програмного лічильника як результат

виконання команди. Один командний цикл складається із чотирьох періодів генератора. Таким чином, для генератора із частотою 4 МГц час виконання командного циклу буде 1 мкс.

Байт орієнтовані команди

Мікроконтролер PIC16C84. Короткий опис

Біт орієнтовані команди

Мікроконтролер PIC16C84. Короткий опис

Переходи

Мікроконтролер PIC16C84. Короткий опис

Зауваження та пояснення

Примітка 1: Команди TRIS та OPTION поміщені до списку команд для сумісності із сімейством PIC16C5X. Їхнє використання не рекомендується. У PIC16C84 регістри TRIS та OPTION доступні для читання та запису як звичайні регістри з номером. Попереджаємо, що ці команди можуть не підтримуватись у подальших розробках PIC16CXX. Примітка 2: Коли модифікується регістр введення/виводу, наприклад MOVF 6,1, значення, яке використовується для модифікації, зчитується безпосередньо з ніжок кристала. Якщо значення клямки виведення для ніжки, запрограмованої на висновок дорівнює "1", але зовнішній сигнал на цьому виводі "0" через "навал" зовні, то зчитуватиметься "0". Примітка 3: Якщо операндом цієї команди є регістр f1 (і якщо припустимо, d=1), то дільник, якщо він підключений до RTCC, буде обнулений.

Умови скидання

У PIC16C84 існують відмінності між варіантами скидів:

1) Скидання включення живлення.

2) Скидання зовнішнього сигналу /MCLR за нормальної роботи.

3) Скидання зовнішнього сигналу /MCLR у режимі SLEEP.

4) Скидання після закінчення затримки таймера WDT при нормальній роботі.

5) Скидання після закінчення затримки таймера WDT у режимі SLEEP.

Деякі зі спец.регістрів при скиданні не ініціалізуються. Вони мають випадковий стан при включенні живлення та не змінюються за інших видів скидів. Інша частина спец.регістрів ініціалізуються в "стан скидання" при всіх видах скидання, крім скидання після закінчення затримки таймера WDT в режимі SLEEP. Просто це скидання розглядається як тимчасова затримка у нормальній роботі. Є ще кілька винятків. Програмний лічильник завжди скидається в нуль (0000h). Біти статусу TO та PD встановлюються чи скидаються залежно від варіанта скидання. Ці біти використовуються програмою визначення природи скидання. Їхні значення після скидання наведені в таблиці. Стан регістрів після скидання представлено таблиці. Там прийнято позначення: і-не змінюється, x -невідомо, - не виконується, читається як `0`. ? - буде встановлений після закінчення запису в EEPROM

Мікроконтролер PIC16C84. Короткий опис

Алгоритм скидання при включенні живлення

Кристал PIC16C84 має вбудований детектор живлення. Таймер запуску починає рахунок витримки часу після того, як напруга живлення перетнула рівень близько 1,2...1,8 Вольт. Після закінчення витримки близько 72мс вважається, що напруга досягла номіналу і запускається інший тайм витримка на стабілізацію кварцового генератора. Програмований біт конфігурації дозволяє дозволяти або забороняти витримку вбудованого таймера запуску. Витримка запуску змінюється від екземплярів кристала, від живлення та температури. характеристики постійного струму.

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

Потім вмикається таймер очікування зовнішнього скидання /MCLR. Це необхідно для тих випадків, коли потрібно синхронно запустити кілька PIC контролерів через загальний для всіх сигнал /MCLR. Якщо такого сигналу не надходить, то через час Tost виробляється внутрішній сигнал скидання та контролер починає хід за програмою. Час Tost програмується бітами конфігурації EEPROM. Тут існує проблема, коли Vdd наростає надто повільно і всі витримки на запуск, а живлення ще не досягло свого мінімального значення Vdd(min) працездатності. У таких випадках рекомендуємо використовувати зовнішні RC ланцюжки для скидання /MCLR. Нижче наведено такий ланцюжок

Мікроконтролер PIC16C84. Короткий опис

Тут можна застосувати діод швидкого розряду конденсатора при вимкненні живлення. Рекомендується резистор R < 40 кОМ, тоді ньому падати трохи більше 0,2В. Резистор 100 Ом

Watch Dog таймер

Watchdog таймер є повністю незалежним вбудованим RC генератором, який не вимагає ніяких зовнішніх ланцюгів. Він працюватиме, навіть якщо основний генератор зупинено, як це буває при виконанні команди SLEEP. Таймер виробляє сигнал скидання. Вироблення таких скидів може бути заборонено шляхом запису нуля спеціальний біт конфігурації WDTE. Цю операцію виробляють на етапі пропалювання мікросхем.

Витримка часу WDT

Номінальна витримка WDT становить 18 мс (без використання дільника). Вона залежить від температури, напруги живлення, від особливостей типів мікросхем. Якщо потрібні великі затримки, то WDT може бути підключений вбудований дільник з коефіцієнтом розподілу до 1:128; який програмується шляхом запису в регістр OPTION. Тут можуть бути реалізовані витримки до 2.5 секунд.

Команди "CLRWDT" та "SLEEP" обнулюють WDT та дільник, якщо він підключений до WDT. Це запускає витримку часу спочатку і запобігає деякий час вироблення сигналу скидання. Якщо сигнал скидання від WDT все ж таки стався, то одночасно обнулюється біт "TO" в регістрі статусу (f3). У програмах з високим рівнем перешкод вміст реєстру OPTION піддається збою. Тому регістр OPTION повинен оновлюватись через рівні проміжки часу.

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

Типи генераторів

Кристали PIC16C84 можуть працювати з чотирма типами вбудованих генераторів. Користувач може запрограмувати два конфігураційні біти (FOSC1 і FOSC0) для вибору одного з чотирьох режимів: RC, LP, XT, HS.

Кристали PIC16... можуть також тактуватися і від зовнішніх джерел. Генератор, побудований на кварцових або керамічних резонаторах, потребує періоду стабілізації після живлення. Для цього вбудований таймер запуску генератора тримає пристрій в стані скидання приблизно 18 мс після того, як сигнал на /MCLR ніжці кристала досягне рівня логічної одиниці. Таким чином, зовнішній ланцюжок RC, пов'язана з нкой /MCLR у багатьох випадках не потрібно.

Вбудовані генератори працездатні при певних номіналах напруги живлення:

Мікроконтролер PIC16C84. Короткий опис

УВАГА! При частотах нижче 500 кГц, внутрішній генератор може енерувати збійний імпульс на гармоніках, коли перемикається біт порту A. Цього не відбувається при використанні зовнішнього генератора або при вбудованому RC генераторі.

Генератор на кварцах

PIC16C84-XT, -HS або -LP вимагають підключення кварцового або керамічного резонатора до висновків OSC1 та OSC2.

Мікроконтролер PIC16C84. Короткий опис

Маркування наступне: XT – стандартний кварцовий генератор, HS – високочастотний кварцовий генератор, LP – низькочастотний генератор для економічних додатків. Резистор Rs може бути потрібним для генератора "HS", особливо при частотах нижче 20 МГц для гасіння гармонік. Він може знадобитися в режимі XT з резонатором типу AT strip-cut. Вибір конденсаторів для керамічного резонатора.

Мікроконтролер PIC16C84. Короткий опис

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

RC генератор.

Коли не пред'являються вимоги до швидкодії та точності за часом, ОТР кристал, наприклад PIC16C84-RC, дозволяє заощадити гроші та реалізувати простий RC генератор.

Мікроконтролер PIC16C84. Короткий опис

Частота є функція напруги живлення, значень резистора Rext, конденсатора Cext і температури. Крім того, частота генератора незначно змінюватиметься від партії до партії. На частоту генерації впливає власна ємність корпусу кристала, її вплив помітно малих значень Cext. Потрібно взяти до уваги також дрейф R та C елементів. Для значень Rext нижче 2.2 кОМ генератор може працювати нестабільно чи заводитися. При дуже великих значеннях Rext (напр. 1 МОм) генератор стає чутливим до перешкод, вологості та монтажних витоків струму.

Рекомендована величина Rext знаходиться між 5 КОМ і 100 КОМ. Хоча генератор працездатний при відсутності зовнішнього конденсатора (Cext = 0), ми рекомендуємо використовувати ємність більше 20 пФ для збільшення стабільності роботи. З малою Cext, або взагалі без неї, частота генератора залежить від монтажних ємностей. Розкид буде тим більше, чим більша величина R (т до чого менша величина C (оскільки в цьому випадку сильніше проявляється вплив монтажних ємностей).

Сигнал з частотою генератора, поділеної на 4, присутній на ніжці OSC2/CLKOUT, і може бути використаний для тестування або синхронізації інших схем.

Зовнішнє збудження

Мікроконтролер PIC16C84. Короткий опис

Реєстр OPTION

Регістр OPTION (адреса 81h) доступний для читання та запису і містить різні керуючі біти, які визначають конфігурацію визначника, куди він підключений: RTCC або WDT, знак фронту зовнішнього переривання INT і зовнішнього сигналу для RTCC, підключення активного навантаження на порту RB.

Реєстр OPTION Адреса 81h

Значення при включенні живлення = FFH

Мікроконтролер PIC16C84. Короткий опис

PSA - Біт, що підключає дільник до: 0 - RTCC

1 - WDT

RTE - Фронт зовнішнього сигналу RTCC:

0 - інкремент по позитивному фронту на ніжці RTCC

1 - інкремент негативного фронту на ніжці RTCC

RTS - Джерело сигналу для RTCC

0 - сигнал від внутрішнього генератора

1 - Зовнішній сигнал на ніжці RTCC

INTEDG - Фронт сигналу INT:

0 - переривання негативним фронтом на ніжці INT

1 - переривання по позитивному фронту на ніжці INT

/RBPU – Інверсний біт підключення активного навантаження до порту B.

/RBPU = 0: Активні навантаження підключатимуться за алгоритмом роботи порту RB

/RBPU = 1: Активні навантаження порту В завжди відключені

Підключення дільника частоти

Один і той же восьмибітний лічильник може бути включений або перед RTCC або після таймера Watchdog. Зазначимо, що дільник працює лише з одним із цих пристроїв. Повторюємо, якщо дільник працює з RTCC, це означає, що в даний момент він не працює з таймером Watchdog і навпаки. Схему включення лічильника (див. розділ RTCC:RTCC}. Біти PSA і PS0-PS2 у регістрі OPTION визначають, з яким пристроєм працює дільник і налаштування коефіцієнта поділу. Коли дільник підключений до RTCC, всі команди, які записують у RTCC (напр. , CLRF 16 MOVWF 1, BSF 1,x... і т.д.) будуть обнулювати дільник.Коли він підключений до Watchdog таймеру, то розподільник разом з Watchdog таймером буде обнулювати команда CLRWDT. керований Нижче представлений фрагмент програми перемикання з RTCC на WDT

1. MOVLW B`xx0x0xxx` ;вибрати внутрішню синхронізацію та нове ;значення для дільника. Якщо нове значення; дільника дорівнює

2. OPTION; `000` або `001`, то треба тимчасово вибрати; інше значення дільника.

3. CLRF 1; обнулити RTCC і дільник.

4. MOVLW B`xxxx1xxx` ;вибрати WDT, не змінюючи значення дільника.

5. ВАРІАНТ

6. CLRWDT ;обнулити WDT і дільник.

7. MOVLW B`xxxx1xxx` ;вибрати нове значення для дільника.

8. ВАРІАНТ

Пункти 1 і 2 потрібні лише тоді, коли до RTCC було підключено зовнішнє джерело імпульсів. Пункти 7 і 8 потрібні тоді, коли коефіцієнт

поділу треба встановити `000` або `001`.

Перемикання дільника з WDT на RTCC

1. CLRWDT ;обнулити WDT і дільник.

2. MOVLW B`xxxx0xxx` ;вибрати RTCC, нове значення для дільника ;джерело сигналу.

3. OPTION Використовуйте ці програми, навіть якщо WDT заборонено.

Конфігураційне слово

Кристал PIC16C84 має п'ять біт конфігурації, які зберігаються в EEPROM і встановлюються на етапі програмування кристала. Ці біти можуть бути запрограмовані (читається як `0`) або залишені незапрограмованими (читається `1`) для вибору відповідного варіанту конфігурації пристрою. Ці біти розташовані в EEPROM пам'яті на адресу 2007h. Користувачеві слід пам'ятати, що ця адреса знаходиться нижче області кодів і недоступна програмі. Комірка EEPROM конфігурації.

Мікроконтролер PIC16C84. Короткий опис

CP - Біт захисту коду.

CP = 1: Код захисту вимкнено

CP = 0: Код захисту увімкнено

Інші біти у слові не використовуються і читаються як одиниці.

Індивідуальна мітка

Кристал PIC16C84 має чотири слова, розташовані за адресою (2000h-2003h). Вони призначені для зберігання ідентифікаційного коду (ID) користувача, контрольної суми або іншої інформації. Як і слово конфігурації, вони можуть бути прочитані або записані лише за допомогою програматора. Доступу за програмою до них немає. Якщо кристал захищений, користувачу рекомендується використовувати для ідентифікації лише молодші сім біт кожного ID слова, а старший біт записувати `0`. Тоді ID слова можна буде прочитати навіть у захищеному варіанті.

Захист програм від зчитування

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

Якщо встановлений захист, то біт CP можна стерти лише разом із вмістом кристала. Спочатку буде стерта EEPROM програмна пам'ять та пам'ять даних і в останню чергу біт захисту коду CP.

Перевірка кристала із встановленим захистом. При зчитуванні захищеного кристала читання будь-якої адреси пам'яті дасть результат, схожий на 0000000XXXXXXX(двійковий код), де X- це 0 або 1. Щоб перевірити збереження пам'яті в захищеному кристалі, дотримуйтесь правил:

1) запрограмуйте та перевірте роботу справного кристала.

2) встановіть захист коду програми та вважайте вміст програмної пам'яті у файл-еталон.

3) перевіряйте будь-який захищений кристал шляхом порівняння його програмної пам'яті з вмістом цього зразка.

Пам'ять даних EEPROM не можна перевірити після встановлення біта захисту.

Режим зниженого енергоспоживання

Вхід у режим SLEEP здійснюється командою SLEEP. За цією командою, якщо WDT дозволено, він скидається і починає рахунок часу, біт "PD" у регістрі статусу (f3) скидається, біт "TO" встановлюється, а вбудований генератор вимикається. Порти введення/виводу зберігають стан, який він мав до входу в режим SLEEP. Для зниження споживаного струму в цьому режимі ніжки на виведення повинні мати такі значення, щоб не протікав струм між кристалом і зовнішніми ланцюгами. Ніжки на введення повинні бути з'єднані зовнішніми резисторами з високим або низьким рівнем, щоб уникнути струмів перемикання, що викликаються плаваючими високоомними входами. Те саме і про RTCC. Ніжка /MCLR має бути під напругою Vihmc.

Вихід із режиму SLEEP здійснюється в результаті наступних подій:

1. Зовнішнє скидання - імпульс низького рівня на ніжці /MCLR.

2. Скидання під час спрацювання WDT (якщо він дозволений)

3. Переривання. (Преривання з ніжки INT, переривання при зміні порту B, переривання при завершенні запису даних EEPROM).

При першій події відбувається скидання всього пристрою. Дві інші події передбачають продовження виконання програми. Біт "PD" у регістрі статусу (f3), який встановлюється при включенні, але обнулюється командою "SLEEP", може бути використаний для визначення стану процесора до "прокидання": або процесор був у режимі "SLEEP"(гарячий старт), або було просто вимкнено живлення (холодний старт). Біт "TO" дозволяє визначити, чим був викликаний вихід із режиму SLEEP: або зовнішнім сигналом на ніжці /MCLR, або спрацюванням WDT.

Щоб пристрій вийшов з режиму SLEEP через переривання, це переривання має бути дозволено встановленням відповідної маски у регістрі INTCON. При виході з режиму SLEEP буде витіснятися фонова програма, якщо загальна маска забороняє всі переривання (GIE=0). Якщо GIE=1, то виконуватиметься підпрограма обробки переривань.

Максимальні значення електричних параметрів

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

Мікроконтролер PIC16C84. Короткий опис

Примітки:

1. Повна потужність, що розсіюється, не повинна перевищувати 800 мВт для кожного корпусу. Розсіювана потужність обчислюється за такою формулою:

Pdis = Vdd (Idd - Сума (Ioh)) + Сума ((Vdd - Voh) Ioh) + Сума (Vol Iol)

2. Зниження напруги на ніжці /MCLR нижче Vss(земля) викликає великі струми, більше 80 мА, і може призвести до пошкодження цієї лінії. Тому рекомендуємо подавати сигнали на ніжку /MCLR через обмежуючий резистор 50-100 Ом.

Параметри постійного струму

Характеристики постійного струму PIC16C84-04, PIC16C84-10.

(для комерційного, індустріального, автомобільного виконання).

Фірма MEMEC BALTIC Ltd. є членом Memec International Components Group та Raab Karcher Electronics Group. Ця група дистриб'юторів електронних компонентів займає провідні позиції у сфері поширення новітніх електронних технологій та напівпровідникових компонентів.

MEMEC BALTIC Ltd. представляє групу фірм MEMEC і є офіційним дистриб'ютором фірм Microchip і Raychem в Росії, Україні, Білорусії та країнах Балтії.

MEMEC BALTIC Ltd.

Публікація: Н. Большаков, rf.atnn.ru

Дивіться інші статті розділу Мікроконтролери.

Читайте та пишіть корисні коментарі до цієї статті.

<< Назад

Останні новини науки та техніки, новинки електроніки:

Машина для проріджування квітів у садах 02.05.2024

У сучасному сільському господарстві розвивається технологічний прогрес, спрямований на підвищення ефективності догляду за рослинами. В Італії було представлено інноваційну машину для проріджування квітів Florix, створену з метою оптимізації етапу збирання врожаю. Цей інструмент оснащений мобільними важелями, що дозволяють легко адаптувати його до особливостей саду. Оператор може регулювати швидкість тонких проводів, керуючи ним із кабіни трактора за допомогою джойстика. Такий підхід значно підвищує ефективність процесу проріджування квітів, забезпечуючи можливість індивідуального налаштування під конкретні умови саду, а також сорт та вид фруктів, що вирощуються на ньому. Після дворічних випробувань машини Florix на різних типах плодів результати виявились дуже обнадійливими. Фермери, такі як Філіберто Монтанарі, який використовував машину Florix протягом кількох років, відзначають значне скорочення часу та трудовитрат, необхідних для проріджування кольорів. ...>>

Удосконалений мікроскоп інфрачервоного діапазону 02.05.2024

Мікроскопи відіграють важливу роль у наукових дослідженнях, дозволяючи вченим занурюватися у світ невидимих ​​для ока структур та процесів. Однак різні методи мікроскопії мають обмеження, і серед них було обмеження дозволу при використанні інфрачервоного діапазону. Але останні досягнення японських дослідників із Токійського університету відкривають нові перспективи вивчення мікросвіту. Вчені з Токійського університету представили новий мікроскоп, який революціонізує можливості мікроскопії в інфрачервоному діапазоні. Цей удосконалений прилад дозволяє побачити внутрішні структури живих бактерій із дивовижною чіткістю в нанометровому масштабі. Зазвичай мікроскопи в середньому інфрачервоному діапазоні обмежені низьким дозволом, але нова розробка японських дослідників дозволяє подолати ці обмеження. За словами вчених, розроблений мікроскоп дозволяє створювати зображення з роздільною здатністю до 120 нанометрів, що в 30 разів перевищує дозвіл традиційних метрів. ...>>

Пастка для комах 01.05.2024

Сільське господарство - одна з ключових галузей економіки, і боротьба зі шкідниками є невід'ємною частиною цього процесу. Команда вчених з Індійської ради сільськогосподарських досліджень – Центрального науково-дослідного інституту картоплі (ICAR-CPRI) у Шимлі представила інноваційне вирішення цієї проблеми – повітряну пастку для комах, яка працює від вітру. Цей пристрій адресує недоліки традиційних методів боротьби зі шкідниками, надаючи дані про популяцію комах у реальному часі. Пастка повністю працює за рахунок енергії вітру, що робить її екологічно чистим рішенням, яке не вимагає електроживлення. Її унікальна конструкція дозволяє відстежувати як шкідливі, так і корисні комахи, забезпечуючи повний огляд популяції в будь-якій сільськогосподарській зоні. "Оцінюючи цільових шкідників у потрібний час, ми можемо вживати необхідних заходів для контролю як комах-шкідників, так і хвороб", - зазначає Капіл. ...>>

Випадкова новина з Архіву

Виявлено найвіддаленіший об'єкт Сонячної системи 22.12.2018

Команда астрономів з Інституту Карнегі, Гавайського університету та Університету Північної Арізони (США) виявила найвіддаленіше тіло, яке коли-небудь спостерігалося у нашій Сонячній системі. Згідно з повідомленням Інституту Карнегі, це тіло - карликова планета, яка знаходиться на відстані, що більш ніж у 100 разів перевищує відстань між Землею та Сонцем.

Об'єкт отримав назву 2018 VG18 та прізвисько "Farout" ("далекий" - з англійської). Його "будинок" розташований на відстані від Сонця близько 120 астрономічних одиниць (а.е., AU), де 1 а.е. визначається як відстань між Землею та Сонцем. Другим найбільш віддаленим об'єктом Сонячної системи, що спостерігається, є карликова планета Еріда: її "координати" - 96 а. За розміром вона вважається другою після Плутона, який, до речі, знаходиться на відстані близько 34 а.

Зараз вчені не можуть точно сказати, якою орбітою рухається 2018 VG18. Є лише припущення: оскільки карликова планета знаходиться настільки далеко, вона обертається дуже повільно - і, ймовірно, їй потрібно понад 1000 років, щоб зробити один оберт навколо Сонця.

Перші знімки найвіддаленішого об'єкта Сонячної системи були зроблені 10 листопада цього року на японському 8-метровому телескопі Subaru, розташованому на вершині Мауна-Кеа на Гаваях. Вдруге "Farout" було помічено на початку грудня на Магеллановому телескопі в Обсерваторії Лас-Кампанас (Чилі).

2018 р. VG18 була виявлена ​​під час пошуків вчених надзвичайно віддалених об'єктів Сонячної системи - у тому числі "Планети X", яку іноді також називають "Планетою 9". У жовтні та ж група дослідників оголосила про те, що вона знайшла інший віддалений об'єкт Сонячної системи - 2015 TG387 на прізвисько "Гоблін". Таке прізвисько він отримав тому, що його вперше побачили під Хелловін. Відстань від Сонця до "Гобліна" становить близько 80 а.

Інші цікаві новини:

▪ Розпочато постачання зразків магніторезистивної пам'яті ST-MRAM

▪ Цифрові датчики магнітного поля від Texas Instruments

▪ Міцне скло на основі алюмінію

▪ Музичні коропи

▪ Новий сплав не гірший за титан, але дешевше

Стрічка новин науки та техніки, новинок електроніки

 

Цікаві матеріали Безкоштовної технічної бібліотеки:

▪ розділ сайту Мистецтво відео. Добірка статей

▪ стаття Антуан де Рівароль. Знамениті афоризми

▪ стаття Як видмухують скло? Детальна відповідь

▪ стаття Табельник. Посадова інструкція

▪ стаття Зварювальні - на вибір. Енциклопедія радіоелектроніки та електротехніки

▪ стаття Удосконалене джерело живлення на мікросхемі UCC28810 для світлодіодних світильників. Енциклопедія радіоелектроніки та електротехніки

Залишіть свій коментар до цієї статті:

ім'я:


E-mail (не обов'язково):


коментар:





All languages ​​of this page

Головна сторінка | Бібліотека | Статті | Карта сайту | Відгуки про сайт

www.diagram.com.ua

www.diagram.com.ua
2000-2024