ПРОЕКТУВАННЯ МІКРОКОМП’ЮТЕРА

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2003
Тип роботи:
Курсова робота
Предмет:
Інші
Група:
СПР-41

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”  Курсова робота ПРОЕКТУВАННЯ МІКРОКОМП’ЮТЕРА Зміст 1. Технічне завдання………………… ................................................................... 3  2. Опис схеми електричної функціональної ...............……………................... 3  3. Опис мікропроцесора PIC16F887…………………………………………. 4   3.1. Загальний опис мікроЕОМ MC68HC908QT4…………………………………… 4   3.2. Пам'ять…………………………………………………………………………………. 7   3.3. Регістри загального призначення……………………………………................ 8   3.4. Регістри спеціального призначення………………………………………….. 8   3.5. Вичисляючий перехід…………………………………………………………….. 11   3.6. Стек…………………………………………………………….…………….……….… 11   3.7. Сторінки памяті програм………………………………………………………… 11   3.8. Непряма адресація, регістри INDF і FSR……………………………………… 11   4.0  Універсальний синхронно-асинхронний приймач-передавач (USART)……………………………………………………….…………….……….…  12   4.1 Генератор частоти обміну USART BRG…………………………………… 13   4.1.1 Вибірка………………………………………………………………………………… 14   4.2 Асинхронний режим USART…………………………………..…………..….. 15  4.2.1 Асинхронний передавач USART……………………………............................ 15  4.2.2 Асинхронний приймач USART……………………..……………………..…….. 17  5.0 Модуль 10-розрядного АЦП……………………………………………………… 19  5.1 Тимчасові вимоги до підключення каналу АЦП…………………………… 22  5.2 Вибір джерела тактових імпульсів для АЦП………..…………..…………… 23  5.3 Настроювання аналогових входів………..………………………..…………… 23  5.4 Аналого-цифрове перетворення…..………………………..………………… 23  5.4.1 Вирівнювання результату перетворення………………..…………………… 24  5.5 Ефект скидання…..………………………..…………………..…………………… 24  6.0 Особливості мікроконтролерів PІC16F87X……………..…………………… 25  6.1 Біти конфігурації..………………………..…………………..……………………… 25  6.2 Настроювання тактового генератора…………………..……………………… 27  6.2.1 Режими тактового генератора………..…………………..…………………… 27  6.2.2 Кварцовий/керамічний резонатор…..…………………..…………………… 27  6.2.3 RC генератор…..…………………..…………………………..…………………… 28  6.3 Скидання…..…………………..…………………………..………………………… 29  6.4 Скидання по включенню живлення POR…………..………………………… 30  6.5 Таймер включення живлення PWRT………………..………………………… 30  6.6 Таймер запуску генератора OST……………………..………………………… 31  6.7 Скидання по зниженню напруги живлення BOR..………………………… 31  7 Опис схеми електричної принципової……………..………………………… 31  8 Блок-схема та програми початкової ініціалізації..………………………… 31   Використана література……………..…………………………………………… 33   Додаток 1……………..……………………………………………………………… 34   Додаток 2……………..……………………………………………………………… 35   Додаток 3……………..……………………………………………………………… 36   1. Технічне завдання На базі мікроконтролера PIC16f877 розробити вимірювальний пристрій, який буде передавати значення температури на персональний комп”ютер по інтерфейсу RS-232, отриманого даним мікроконтролером. Значенню напруги на давачі ставиться у відповідність його температура. В якості додаткових елементів проекту використати буферний перетворювач рівнів LT1280A, який перетворює TTL рівні виводів мікроконтролера у відповідні рівні напруги інтерфейсу RS-232 персонального комп”ютера. Серед дискретних елементів використати конденсатор в колі живлення, температурний давач, резистори, кварцевий резонатор, роз”єм DB9S та вилку (розєм) для підведення живлення на плату. 2. Опис схеми електричної функціональної Схема пристрою складається із трьох основних компонентів, які відображені на схемі електричній функціональній. Ними являються: - коло давача мікроконтролер перетворювач рівнів Перетворювач Давач Мікроконтролер рівнів RX До PC АС0 TX Коло давача формує напругу, по якій ставиться у відповідність температура. Мікроконтролер оцифровує цю напругу і по заданому закону знаходиться відповідне значення температури Перетворювач рівнів LT1280A, який перетворює TTL рівні виводів мікроконтролера у відповідні рівні напруги інтерфейсу RS-232 персонального комп”ютера. Характеристика давача(залежність опору від температури) Аналітичний вираз залежності: Таким чином по заданому графіку отримуємо необхідний результат . 3. Опис мікроконтролера PIC16F877 3.1. Загальний опис PIC16F877 PIC16F877 відноситься до 8-розрядних мікроконтроллерів (MCU). Характеристики мікроконтролера: Високошввидкісна RISC архітектура 35 інструкцій Всі команди виконуються за один цикл,крім інструкцій переходів, які виконуються за два цикла Тактова частота: - DC – 20 МГц, тактовий сигнал - DC – 200нс, один машинний цикл До 8к х 14 слів FLASH памяті програм Розміщення виводів До 368 х 8 байт памяті даних До 256 х 8 байт EEPROM памяті даних Сумісність по виводам з PIC16C3B/74B/76/77 Система переривань (до 14 джерел) 8-рівневий апаратний стек Прямий і відносний режим адресації Скидання по включенню живлення(POR) Програмуючий захист памяті програм Режим енергозбереження SLEEP Вибір параметрів тактового генератора Високошвидкісна, енергозберігаюча CMOS FLASH/EEPROM технологія Повністю статична архітектура Програмування в готовому пристрої Низьковольтний режим програмування Режим внутрісхемної відладки Шрокий діапазон напруг живлення від 2.0В до 5.5В Підвищена нагрузочна можливість портів вводу/виводу(25мА) Мале енерговживання: - <0.6мA @ 3.0В, 4.0МГц - 20мкА @ 3.0В, 32кГц - 1мкА в режимі енергозбереження Характеристика переферійних модулів: Багатоканальний 10-розрядний АЦП Послідовний синхронний порт MSSP Послідовний синхронний- асинхронний приймач-передавач USART з підтримкою детектування адресу 8-розрядний паралельний порт PSP з підтримкою внутрішніх сигналів –RD,-WR, -CS Детектор пониженої напруги(BOD) для скидання по зниженню напруги живлення(BOR) Параметр PIC16F877  Тактова частота DC – 20МГц  Скидання POR, BOR (PWRT, OST)  FLASH память програм (14-розрядних слів) 8K  Память даних (байт) 368  EEPROM память даних (байт) 256  Переривання 14  Порти вводу/виводу Порти A, B, C, D, E  Модулі послідовного інтерфейса MSSP, USART  Модулі паралельного інтерфейса PSP  Модуль 10-розрядного АЦП 8 каналів  Інструкції 35   Структурна схема мікроконтролера  Призначення виводів мікросхеми Імя виводу Опис  OSC1/CLKIN Вхід генератора/вхід зовнішнього тактового сигналу  OSC2/CLKOUT Вихід генератора. Підключається кварцевий або керамічний резонатор.  -MCLR/Vpp Вхід скидання мікроконтролера або вхід напруги програмування. Скидання мікроконтролера відбувається при низькому логічному рівні сигнала на вході  RA0/AN0 RA1/AN1 RA2/AN2/Vref- RA3/AN3/Vref+ RA4/T0CKI RA5/-SS/AN4 Двонаправлений порт вв./вив. PORTA. RA0 може бути як аналоговий канал 0 RA1 може бути як аналоговий канал 1 RA2 може бути як аналоговий канал 2 або вхід відємної опорної напруги RA3 може бути як аналоговий канал 3 або вхід позитивної опорної напруги RA4 може використовуватися в якості входу зовнішнього тактового сигнала для TMR0. RA5 може бути як аналоговий канал 5 або вхід вибору мікросхеми в режимі SPI.  RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD RB0 може використовуватися в якості входу зовнішніх переривань RB3 може використовуватися в якості входу для режиму низьковольтного програмування Переривання по зміні рівня вхідного сигнала Переривання по зміні рівня вхідного сигнала Переривання по зміні рівня вхідного сигнала або вивід для режима внутрісхемної відладки ICD. Тактовий вхід в режимі програмування Переривання по зміні рівня вхідного сигнала або вивід для режима внутрісхемної відладки ICD. Вивід даних в режимі програмування  RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RC2/CCP1 RC3/SCK/SCL RC4/SDI/SDA RC5/SDO RC6/TX/CK RC7/RX/DT RC0 може використовуватися в якості виходу генератора TMR1 або входу зовнішнього тактового сигнала для TMR1 RC1 може використовуватися в якості виходу генератора TMR1 або виводу модуля CCP2 RC2 може використовуватися в якості виводу модуля CCP1 RC3 може використовуватися в якості входу/вихода тактового сигнала в режимі SPI і I2C RC4 може використовуватися в якості входу даних в режимі SPI і I2C абовх./вих. даних в режимі I2C RC5 може використовуватися в якості входу даних в режимі SPI RC6 може використовуватися в якості виводу передавача USART в асинхронному режимі або виводу синхронізації USART в синхронному режимі RC7 може використовуватися в якості виводу приймача USART в асинхронному режимі або виводу даних USART в синхронному режимі   RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 Двонаправлений порт вх./вих.PORTD або паралельний порт для підключення до шини мікропроцесора  RE0/-RD/AN5 RE1/-WR/AN6 RE2/-CS/AN7 RE0 може використовуватися в якості виконуючого входу читання PSP або аналогового канала 5 RE1 може використовуватися в якості виконуючого входу запису PSP або аналогового канала 6 RE2 може використовуватися в якості виконуючого входу вибору PSP або аналогового канала 7  Vss Загальний вивід для внутрішньої логіки і портів вх./вих.  Vdd Позитивна напруга живлення для внутрішньої логіки і портів вх./вих.   3.2. Память В мікроконтролерах PIC16F877 може бути три вида памяті. Память програм і память даних мають окремі шини даних і адреса, що дозволяє виконувати паралельний доступ. Організація памяті програм Мікроконтролери PIC16F877 мають 13-рорядний лычильник команд РС, спроможний адресувати 8К х 14 слів памяті програм. Фізично реалізовано FLASH памяті програм 8К х 14 в PIC16F877. Звертання до фізично не реалізованої памяті програм приведе до адресації реалізованої памяті. Адрес вектора скидання – 0000h. Адрес вектора переривання – 0004h. Організація памяті в мікроконтролері PIC16F877  Організація памяті даних Память даних розділена чотири банка, які містять регістри загального і спеціального (SFR) призначення. Біти (STATUS<6>) і (STATUS<5>) призначені для керування банками даних. В таблиці зображено стан керуючих бітів при звертанні до банків памяті даних. RP1:RP0 Банк  00 0  01 1  10 2  11 3   Обєм банків памяті даних до 128 байт (7Fh). На початку банка розміщуються регістри спеціального призначення, потім регістри загального призначення. Всі реалізовані банки містять регістри спеціального призначення. Деякі регістри спеціального призначення можуть відображатись і в інших банках памяті. Карта памяті даних мікроконтролера адрес  3.3. Регістри загального призначення Звернутись до регістрів загального призначення можна прямою або косвеной адресацією, через регістр FSR. 3.4. Регістри спеціального призначення За допомогою регістрів спеціального призначення виконується керування функціями ядра і переферійними модулями мікроконтролера. Регістри спеціального призначення реалізовані як статичний ОЗП.    Позначення: - = не використовується, читається як 0; и=не міняється; х= не відомо; q= залежить від умов;r=резерв.Затемнені комірки читаються як 0. Регістр STATUS В регістрі STATUS містяться прапорці стану АЛУ, прапорці причини скидання мікроконтролера і біти керування банками памяті даних. Регістр STATUS може бути адресований любою командою, як і любий інший регістр памяті даних. Якщо звертання до регістру STATUS виконується командою, яка діє на прапорці Z,DC і C, то зміни цих трьох бітів комондою заблокована. Ці біти скидаються чи встановлються відповідно логіці ядра мікроконтролера. Команди зміни регістра STATUS також не діють на біти –TO і -PD. Тому, результат виконання команди з регістром STATUS може відрізнятися від очікуваного.При зміні бітів регістра STATUS рекомендується використовувати команди, які не впливають на прапорці АЛУ(SWAPF,MOVWF, BCF, BSF). Регістр OPTION_REG Регістр OPTION доступний для читання і запису, містить біти керування: попореднім дільником TMR0/WDT; активним фронтом зовнішнього переривання RB0/INT; підтягуючими резисторами на входах PORTB. Регістр INTCON Регістр INTCON доступний для читання і запису, містить біти дозволу і прапорці переривань: переповнення TMR0; зміни рівня сигналу на виводах PORTB; зовнішнє джерело переривань RB0/INT. Регістр PIE1 Регістр PIE1 доступний для читання і запису, містить біти дозволу переферійних переривань. Регістр PIR1 Регістр PIR1 доступний для читання і запису, містить прапорці переривань переферійних модулів. Регістр PIE2 Регістр PIE2 доступний для читання і запису, містить біти дозволу переривань Регістр PIR2 Регістр PIR2 доступний для читання і запису, містить прапорці переривань від модуля CCP2, виникнення колізій на шині і закінчення запису в EEPROM память даних. Регістр PCON Регістр PCON містить прапорці, за допомогою яких можна визначити джерело скидання мікроконтролера: скидання по включенню живлення(POR); скидання по сигналу на виводі –MCLR; скидання по переповненню сторожевого таймера WDT; скидання по знаходженню зниження напруги живлення(BOR). 3.5. Вичисляючий перехід Вичисляючий перехід може бути виконаний командою приросту до регістра PCL. При виконанні табличного читання вичисляючим переходом слід піклуватися про те, щоб значення PCL не пересікало границю блока памяті(кожний блок 256 байт). 3.6. Стек PIC16F877 має 8-рівневий 13-розрядний апаратний стек. Стек не має відображення на память програм і память даних, неможна записати чи прочитати дані із стеку. Значення лічильника команд поміщується у вершину стеку при виконанні інструкцій переходу на підпрограму(CALL) або обробки переривань. Читання із стеку і запис в лічильник команд РС відбувається при виконанні інструкцій повернення з підпрограми або обробки переривань, при цьому значення регістра PCLATH не міняється.Стек працює як циклічний буфер. Після 8 записів в стек, 9 запис записується на місце першої. 3.7. Сторінки памяті програм Мікроконтролери PIC16F877 здібні адресувати 8К слів памяті програм. Інструкції переходів (CALL і GOTO) мають 11-розрядне поле для вказання адреса, що дозволяє безпосередньо адресувати 2К слів памяті програм. Для адресації верхніх сторінок памяті програм використовується 2 біта в регістрі PCLATH<4:3>. Перед виконанням команди переходу(CALL і GOTO) необхідно запрограмувати біти регістра PCLATH<4:3> для адресації потрібної сторінки. При виконанні інструкцій повернення з підпрограми, 13-розрядне значення для лічильника програм РС береться з вершини стека, тому маніпуляція бітами регістра PCLATH<4:3> не потрібна.Зміст регістра PCLATH не міняється поле виконання інструкцій RETURN або RETFIE. Користувач повинен сам поміняти значення регістра PCLATH для наступного виконання команд CALL і GOTO. 3.8. Непряма адресація, регістри INDF і FSR Для виконання непрямої адресації необхідно звернутися до фізично не реалізованого регістри INDF. Звертання до регістра INDF фактично викличе дію з регістром, адрес якого вказаний в FSR. Непряме читання регістра INDF (FSR=0) дає результат 00h. Непрямий запис в регістр INDF не викличе ніяких дій(викличе дію на прапорці АЛУ в регістрі STATUS). 9-біт непрямого адреса IRP зберігається в регістрі STATUS<7>. Приклад 9-розрядної непрямої адресації зображено на малюнку Пряма адресація непряма адресація  4.0 Універсальний синхронно-асинхронний приймач-передавач (USART) USART – це модуль послідовного вх./вих., який може працювати в повнодуплекснему асинхронному режимі для звязку з терміналами, РС або синхронно півдуплексному режимі для звязку з мікросхемами ЦАП, АЦП, послідовними EEPROM і т. д. USART може працювати втрьох режимах: асинхронний, повний дуплекс; ведучий синхронний, півдуплекс; ведомый синхронний, півдуплекс. Біти SPEN (RCSTA<7>) і TRISC<7:6> повинні бути встановлені в “1” для використання виводів RC6/TX/CK і RC7/RX/DT в якості портів універсального синхронно-асинхронного приймача-давача. Модуль USART підтримує режим детектування 9-розрядного адреса для роботи в мережевому режимі. TXSTA (адрес 98h) Регістр керування і статуса передавача R/W-0 R/W-0 R/W-0 R/W-0 U-0 R/W-0 R-1 R/W-0 CSRC TX9 TXEN SYNC - BRGH TRMT TX9T  Біт7 Біт 0 R – читання біта W – запис біта U – не реалізовано,читається як 0 -n – значення після POR -x – невідоме значення після POR біт7: CSRC: вибір джерела тактового сигналу Синхронний режим Асинхронний режим 1= ведучий, внутрішній тактовий сигнал від BRG Не має значення 0= ведомый, зовнішній тактовий сигнал з вх. СК біт6: TX9: дозвіл 9-розрядної передачи біт3: Не використовується: 1= 9-розрядна передача читається як “0” 0= 8-розрядна передача біт2: BRGH: вибір високо- біт5: TXEN: дозвіл передачи швидкісного режиму 1= дозволена Синхронний режим 0= заборонена Не має значення біт4: SYNC: режим роботи USART Асинхронний режим 1= cинхронний 1= високошвидкісний 0= асинхронний режим 0= низькошвидкісний режим біт1: TRMT: прапорець очистки змінного регістра передавача TSR 1= TSR пустий 0= TSR повний біт0: TX9D: 9-й біт передаваючих даних(може використовуватися для програмної перевірки парності) RCSTA (адрес 18h) Регістр керування і статуса приймача R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R-0 R-0 R-x SPEN RX9 SREN CREN ADDEN FERR OERR RX9D  Біт 7 біт 0 Біт 7: SPEN: дозвіл роботи послідовного порта 1= модуль USART включений(виводи RC7/TX/DT, RC6/RX/CK підключені до USART) 0= модуль USART виключений біт 6: RX9: дозвіл 9-розрядного приймання 1= 9-розрядний приймач 0= 8-розрядний приймач біт 5: SREN: дозвіл одиночного приймання Синхрнний режим 1= дозволено одиночне приймання 0= заборонено одиночне приймання Скидається в “0” по закінченню приймання. Асинхронний режим Не має значення біт 4: CREN: дозвіл приймання Синхрнний режим 1 = прийом дозволений (при установці біта CREN автоматично скидається біт SREN) 0 = прийом заборонений Асинхронний режим 1 = прийом дозволений 0 = прийом заборонений біт 3: ADDEN: Дозвіл детектування адреси Асинхронний 9-розрядний прийом (RX9=1) 1 = детектування адреси дозволено. Якщо біт RSR<8>=1, то генерується переривання і завантажується прийомний буфер. 0 = детектування адреси заборонено. Приймаються всі байти, дев'ятий біт може використовуватися для перевірки парності. Асинхронний 8-розрядний прийом (RX9=0) Не має значення Синхронний режим Не має значення біт 2: FERR: Помилка кадру, скидається при читанні регістра RCREG 1 = відбулася помилка кадру 0 = помилки кадру не було біт 1: OERR: Помилка переповнення внутрішнього буфера, встановлюється в '0' при скиданні біта CREN 1 = відбулася помилка переповнення 0 = помилки переповнення не було біт 0: RX9D: 9-й біт прийнятих даних (може використовуватися для програмної перевірки парності) 4.1 Генератор частоти обміну USART BRG BRG використовується для роботи USART у синхронному ведучому й асинхронному режимах. BRG являє собою окремий 8-розрядний генератор швидкості обміну в бодах, період якого визначається значенням у регістрі SPBRG. В асинхронному режимі біт BRGH (TXSTA<2>) теж впливає на швидкість обміну (у синхронному режимі біт BRGH ігнорується). У таблиці зазначені формули для обчислення швидкості обміну в бодах при різних режимах роботи модуля USART (щодо внутрішнього тактового сигналу мікроконтролера). З огляду на необхідну швидкість і FOSC, вибирається найближче ціле значення для запису в регістр SPBRG, розраховане по формулах приведеними у таблиці. Потім розраховується помилка швидкості обміну. У деяких випадках може бути вигідно використовувати високошвидкісний режим роботи USART (BRGH=1), оскільки рівняння FOSC / (16 (X + 1)) дозволяє зменшити погрішність швидкості. Запис нового значення в регістр SPBRG скидає таймер BRG, гарантуючи негайний перехід на нову швидкість. Таблиця. Формули розрахунку швидкості обміну даними SYNC BRGH = 0 BRGH = 1  0 (Асинхронний) Швидкість обміну = FOSC / (64 (X + 1)) (Асинхронний) Швидкість обміну = FOSC / (16 (X + 1))  1 (Синхронний) Швидкість обміну = FOSC / (4 (X + 1)) (Синхронний) Швидкість обміну = FOSC / (4 (X + 1))  X = значення регістра SPBRG (від 0 до 255) Таблиця. Регістри і біти, зв'язані з роботою генератора BRG Адреса Ім'я Біт 7 Біт 6 Біт 5 Біт 4 Біт 3 Біт 2 Біт 1 Біт 0 Скидання POR,BOR Інші скидання  98h TXSTA CSRC TX9 TXEN SYNC - BRGH TRMT TX9D 0000 -010 0000-010  18h RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 0000000x 0000000x  99h SPBRG Регістр генератора швидкості USART 00000000 00000000  Позначення: - = не використовується, читається як 0; u = не змінюється; x = не відомо; q = залежить від умов. 4.1.1 Вибірка Сигнал із входу RС7/RX/DT опитується ланцюгом мажоритарного детектора три рази за такт передачі, щоб визначити, високого чи низького рівня сигнал присутній на вході. Якщо обраний низькошвидкісний режим (BRRH=0), те вибірка по сьомому, восьмому і дев'ятому задньому фронті тактового сигналу х16. Якщо BRGH = 1 (обраний високошвидкісний режим), вибірка робиться на другому такті сигналу x4 трьома запитами. Таблиця. Швидкість обміну в асинхронному режимі (BRGH=0) Швидкість обміну(К) Fosc = 20 МГц   Реальна швидкість Помилка % Значення SPBRG (десят.)  0,3 1,2 2,4 9,6 19,2 28,8 33,6 57,6 Мах. Міn - 1,221 2,404 9,766 19,531 31,250 34,722 62,500 312,5 1,221 - 1,75 0,17 1,73 1,72 8,51 3,34 8,51 - - - 255 129 31 15 9 8 4 0 255   Таблиця. Швидкість обміну в асинхронному режимі (BRGH=1) Швидкість обміну(К) Fosc = 20 МГц   Реальна швидкість Помилка % Значення SPBRG (десят.)  0,3 1,2 2,4 9,6 19,2 28,8 33,6 57,6 Мах. Міn. - - - 9,615 19,231 29,070 33,784 59,524 1250 4,883 - - - 0,16 0,16 0,94 0,55 3,34 - - - - - 129 64 42 36 20 0 255   4.2 Асинхронний режим USART У цьому режимі USART використовує стандартний формат NRZ: один стартовий біт, вісім чи дев'ять бітов даних і один стоповий біт. Найбільше часто зустрічається 8-розрядний формат передачі даних. Інтегрований 8-розрядний генератор BRG дозволяє одержати стандартні швидкості передачі даних. Генератор швидкості обміну може працювати в одному з двох режимів: високо (x16 BRGH=1 TXSTA<2>), низькошвидкісний (x64 BRGH=0 TXSTA<2>).Приймач і передавач послідовного порту працюють незалежно друг від друга, але використовують той самий формат даних і однакову швидкість обміну. Біт парності апаратно не підтримується, але може бути реалізований програмно, застосовуючи 9-розрядний формат даних. Усі дані передаються молодшим бітом уперед. У SLEEP режимі мікроконтролера модуль USART(асинхронний режим) виключений. Вибір асинхронного режиму USART виконується скиданням біта SYNC у '0' (TXSTA<4>). Модуль USART в асинхронному режимі складається з наступних елементів: генератор швидкості обміну; - ланцюг опитування; - асинхронний передавач; - асинхронний приймач. . 4.2.1 Асинхронний передавач USART Структурна схема асинхронного передавача USART зображена на малюнку.Головним у передавачі є зсуваючий регістр TSR, що одержує дані з буфера передавача TXREG. Дані в регістр TXREG завантажуються програмно. Після передачі стопового біта попереднього байта, в останньому машинному такті циклу BRG, TSR завантажується новим значенням з TXREG (якщо воно присутнє), після чого встановлюється прапорець переривання TXІ (PІR1<4>). Переривання може бути дозволено чи заборонено бітом TXІ (PІ1<4>). Прапорець TXІ встановлюється незалежно від стану біта TXІ і не може бути скинутий у '0' програмно. Очищення прапорця TXІ відбувається тільки після завантаження нових даних у регістр TXREG. Аналогічним образом біт TRMT (TXSTA<1>) відображає стан регістра TSR. Біт TRMT доступний тільки на читання і не може викликати генерацію переривання. Примітки: 1. Регістр TSR не відображається на пам'ять і не доступний для читання. 2. Прапорець TXІ встановлюється в '1' тільки, коли біт TXEN=1 і скидається автоматично в '0' після завантаження нових даних у регістр TXREG. Для дозволу передачі необхідно установити біт TXEN (TXSTA<5>) у '1'. Передача даних не почнеться доти, поки в TXREG не будуть завантажені нові дані; не прийде черговий тактовий імпульс від генератора BRG. Можна спочатку завантажити дані в TXREG, а потім встановити біт TXEN. Як правило, після дозволу передачі регістр TSR порожній, таким чином, дані записувані в TXREG відразу передаються в TSR, а TXREG залишається порожнім. Це дозволяє реалізувати злиту передачу даних (див. малюнок ). Скидання біта TXEN у '0' викликає негайне припинення передачі, скидання передавача і переклад висновку RC6/TX/CK у третій стан. Для дозволу 9-розрядної передачі необхідно установити біт TX9 (TXSTA<6>) у '1'. Дев'ятий біт даних записується в біт TX9D (TXSTA<0>). Дев'ятий біт даних повинен бути вказаний до запису в регістр TXREG, тому що дані, записані в регістр TXREG, можуть бути відразу завантажені в зсувний регістр TSR (якщо він порожній). Мал. Структурна схема асинхронного передавача USART  Рекомендована послідовність дій для передачі даних в асинхронному режимі: 1. Установити необхідну швидкість передачі за допомогою регістра SPBRG і біта BRGH. 2. Вибрати асинхронний режим скиданням біта SYNC у '0' і установкою біта SPEN у '1'. 3. Якщо необхідно, дозволити переривання установкою біта TXІ у '1'. 4. Якщо передача 9-розрядна, установити біт TX9 у '1'. 5. Дозволити передачу установкою біта TXEN у '1', автоматично встановлюється прапорець TXІ. 6. Якщо передача 9-розрядна, записати 9-й біт даних у TX9D. 7. Записати дані в регістр TXREG. 8. Якщо використовуються переривання, то біти GІE і PEІ у регістрі ІNTCON повинні бути встановлені в '1'. Мал. Тимчасова діаграма асинхронної передачі даних  Мал. Тимчасова діаграма злитої асинхронної передачі (послідовна передача двох байт)  Таблиця. Регістри і біти, зв'язані з роботою передавача USART в асинхронному режимі  Позначення: - = не використовується, читається як 0; u = не змінюється; x = не відомо; q = залежить від умов. 4.2.2 Асинхронний приймач USART Структурна схема асинхронного приймача USART зображена на малюнку. Дані подаються на вхід RC7/RX/DT у блок відновлення даних, що представляє собою швидкісний зсувний регістр, що працює на частоті в 16 разів перевищуючої швидкість передачі чи Fosc. Включення приймача відбувається установкою біта CREN регістра RCSTA у '1'. Головним у приймачі є зсувний регістр RSR. Після одержання стопового біта дані переписуються в регістр RCREG, якщо він порожній. Після запису в регістр RCREG виставляється прапорець переривання RCІF(PІR1<5>). Переривання можна дозволити/заборонити установкою/скиданням біта RCІE (PІE1<5>). Прапорець RCІ доступний тільки на читання, скидається апаратно при читанні з регістра RCREG. Регістр RCREG має подвійну буферизацию, тобто являє собою дворівневий буфер FІFO. Тому можна прийняти 2 байти даних у FІFO RCREG і третій у регістр RSR. Якщо FІFO заповнений і виявлений стоповий біт третього байта, встановлюється біт переповнення приймача OERR (RCSTA<1>). Байт, прийнятий у RSR, буде загублений. Для вилучення двох байт із FІFO необхідно двічі прочитати регістр RCREG. Біт OERR потрібно програмно очистити скиданням біта CREN, тобто забороною прийому. У будь-якому випадку, якщо біт OERR встановлений, логіка приймача виключена. Біт помилки кадру FERR (RCSTA<2>) встановлюється в '1', якщо не виявлений стоповий біт. FERR і дев'ятий біт прийнятих даних буферизуются так само, як прийняті дані. Рекомендується спочатку прочитати регістр RCSTA, потім RCREG, щоб не втратити інформацію RX9D і FERR. Мал. Структурна схема асинхронного приймача USART  Мал.Тимчасова діаграма прийому даних  Примітка до малюнка. На тимчасовій діаграмі зображений послідовний прийом трьох байт. Регістр RCREG(прийомний буфер) читається після прийому трьох байт, тому встановлюється біт OERR у '1'. Рекомендовані дії при прийомі даних в асинхронному режимі: Встановити необхідну швидкість передачі за допомогою регістра SPBRG і біта BRGH Вибрати асинхронний режим скиданням біта SYNC у '0' і установкою біта SPEN у '1'. Якщо необхідно, дозволити переривання установкою біта RCІE у “1”. Якщо прийом 9-розрядний, установити біт RX9 у '1'. Дозволити прийом установкою біта CREN у '1'. Очікувати установку біта RCІF,чи переривання, якщо воно дозволено битому RCІE. Вважати 9-й біт даних (якщо дозволений 9-розрядний прийом) з регістра RCSTA і перевіритивиникнення помилки. Вважати 8 біт даних з регістра RCREG. При виникненні помилки переповнення скинути біт CREN у '0'. Якщо використовуються переривання, то біти GІE і PEІE у регістрі ІNTCON повинні бути встановлені в '1'. Таблиця. Регістри і біти, зв'язані з роботою приймача USART в асинхронному режимі  Позначення: - = не використовується, читається як 0; u = не змінюється; x = не відомо; q = залежить від умов. 5.0 Модуль 10-розрядного АЦП Модуль аналого-цифрового перетворення (АЦП) має п'ять каналів у 28-вивідних мікросхем і вісім каналів у 40/44-вивідних мікросхем. Вхідний аналоговий сигнал через комутатор каналів заряджає внутрішній конденсатор АЦП CHOLD. Модуль АЦП перетворить напругу, утримувана на конденсаторі CHOLD, у відповідний 10-розрядний цифровий код методом послідовного наближення. Джерело верхньої і нижньої опорної напруги може бути програмно обраний з висновків VDD, VSS, RA2 чи RA3. Допускається робота модуля АЦП у SLEEP режимі мікроконтролера, при цьому як джерело тактових імпульсів для АЦП повинен бути вибраний RC генератор. Для керування АЦП у мікроконтролері використовується 4 регістри: - Регістр результату ADRESH (старший байт); - Регістр результату ADRESL (молодший байт); - Регістр керування ADCON0; - Регістр керування ADCON1. Регістр ADCON0 використовується для настроювання роботи модуля АЦП, а за допомогою регістра ADCON1 встановлюються які входи мікроконтролера будуть використовуватися модулем АЦП і в якому режимі (аналоговий вхід чи цифровий порт вводу/виводу). ADCON0 (адреса 1Fh) R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 U-0 R/W-0 ADCS1 ADCS0 CHS2 CHS1 CHS0 GO/-DONE - ADON  Біт 7 Біт 0 R - читання біта W - запис біта U - не реалізовано, читається як 0 -n - значення після POR -x – невідоме значення після POR біти 7-6: ADCS1:ADCS0: Вибір джерела тактового сигналу 00 = FOSC/2 01 = FOSC/8 10 = FOSC/32 11 = FRC (внутрішній RC генератор модуля АЦП) біти 5-3: CHS2:CHS0: Вибір аналогового каналу 000 = канал 0, (RA0/AN0) 001 = канал 1, (RA1/AN1) 010 = канал 2, (RA2/AN2) 011 = канал 3, (RA3/AN3) 100 = канал 4, (RA5/AN4) 101 = канал 5, (RE0/AN5)(1) 110 = канал 6, (RE1/AN6)(1) 111 = канал 7, (RE2/AN7)(1) біт 2: GO/-DONE: Біт статусу модуля АЦП Якщо ADON=1 1 = модуль АЦП виконує перетворення (установка біта викликає початок перетворення) 0 = стан чекання (апаратно скидається по завершенню перетворення) біт 1: Не використовується: читається як '0' біт 0: ADON: Біт включення модуля АЦП 1 = модуль АЦП включений 0 = модуль АЦП виключений і не споживає струму ADCON1 (адреса 9Fh) R/W-0 U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 ADFM - - - PCFG3 PCFG2 PCFG1 PCFG0  Біт 7 Біт 0 R - читання біта W - запис біта U - не реалізовано, читається як 0 -n - значення після POR -x – невідоме значення після POR біт 7: ADFM: Формат збереження 10-розрядного результату 1 = праве вирівнювання, 6 старших біт ADRESH читаються як '0' 0 = ліве вирівнювання, 6 молодших біт ADRESL читаються як '0' біти 6-4: Не використовуються: читаються як '0' біти 3-0: PCFG3:PCFG0: Керуючі біти настроювання каналів АЦП  A = аналоговий вхід D = цифровий канал вводу/виводу Примітки: 1. Ці канали не реалізовані в мікроконтролерах PІ16F873/ PІ16F876. 2. У цьому стовпці вказується число аналогових каналів, доступних для виконання перетворення, і число входів джерела опорної напруги. В регістрі ADRESH:ADRESL зберігається 10-розрядний результат аналого-цифрового перетворення. Коли перетворення завершене, результат перетворення записується в регістр ADRESH:ADRESL, після чого скидається прапорець GO/-DONE (ADCON0<2>) і встановлюється прапорець переривання ADІF. Структурна схема модуля АЦП Зображена на малюнку. Після включення і конфігурації АЦП вибирається робочий аналоговий канал. Відповідні біти TRІS аналогових каналів повинні настроїти порт вводу/виводу на вхід. Перед початком перетворення необхідно витримати тимчасову паузу, розрахунок якого приведений у розділі 4.1. Рекомендована послідовність дій для роботи з АЦП: 1. Настроїти модуль АЦП: - Настроїти висновки як аналогові входи, входи VREF чи цифрові канали вводу/виводу (ADCON1); - Вибрати вхідний канал АЦП (ADCON0); - Вибрати джерело тактових імпульсів для АЦП (ADCON0); - Включити модуль АЦП (ADCON0). 2. Настроїти переривання від модуля АЦП (якщо необхідно): - Скинути біт ADІF у '0'; - Встановити біт ADІE у '1'; - Встановити біт PEІE у '1'; - Встановити біт GІE у '1'. 3. Витримати паузу, необхідну для зарядки конденсатора CHOLD. 4. Почати аналого-цифрове перетворення: - Встановити біт GO/-DONE у '1' (ADCON0). 5. Очікувати закінчення перетворення: - Очікувати поки біт GO/-DONE не буде скинутий у '0'; ЧИ - Очікувати переривання по закінченню перетворення. 6. Вважати результат перетворення з регістрів ADRESH:ADRESL, скинути біт ADІ у '0', якщо це необхідно. 7. Для наступного перетворення необхідно виконати кроки починаючи з пункту 1 чи 2. Час перетворення одного біта визначається як час TAD. Мінімальний час чекання перед наступним перетворенням повинне складати не менш 2TAD. Мал. Структурна схема модуля АЦП  5.1 Тимчасові вимоги до підключення каналу АЦП Для забезпечення необхідної точності перетворення, конденсатор CHOLD повинен встигати повністю заряджатися до рівня вхідної напруги. Схема аналогового входу АЦП зображено на малюнку. Опору RS і RSS безпосередньо впливають на час зарядки конденсатора CHOLD. Величина опору ключа вибірки (RSS) залежить від напруги живлення VDD (див. малюнок ). Максимальне значення внутрішнього опору, що рекомендується, джерела аналогового сигналу 10кОм. При менших значеннях опору джерела сигналу - менший сумарний час перетворення. Після того, як буде вибраний один з декількох аналогових вхідних каналів, але перш ніж буде відбуватися перетворення, повинно пройти визначений час. Для перебування даного часу скористаємось рівнянням. Це рівняння дає результат з помилкою в1/2 LSb (2048 кроків АЦП). Помилка в ½ LSb, це максимальна погрішність, що дозволяє функціонувати модулю АЦП із необхідною точністю. Рівняння. Обчислення тимчасової затримки TACQ = Час затримки підсилювача + Час заряду конденсатора CHOLD + Температурний коефіцієнт = TAMP + TC + TCOFF = 2мкс + TC + [(Температура - 25°C)(0.05мкс/°C)] TC = - CHOLD (RІC + RSS + RS) Ln(1/2047) = - 120пф (1кОм + 7кОм + 10кОм) Ln(0.0004885) = 16.47мкс TACQ = 2мкс + 16.47мкс + [(50°C - 25°C)(0.05мкс/°C)] = 19.72мкс Примітки: 1. Напруга джерела опорної напруги VREF не впливає на рівняння. 2. Конденсатор CHOLD після перетворення не розряджається. 3.Максимальне значення внутрішнього опору, що рекомендується, джерела аналогового сигналу 10кОм. Це необхідно для компенсації внутрішнього струму витоку. 4. Після того, як перетворення завершене, необхідно програмно забезпечити затримку не менш 2.0TAD, перш ніж почнеться наступне перетворення. Протягом цього часу конденсатор CHOLD не підключений до вибраного вхідного каналу АЦП. Мал. Схема аналогового входу АЦП  Позначення: CPІN - вхідна ємність; VT - гранична напруга; ІLEAKAGE - струм витоку висновку; RІC - опір з'єднання; SS - перемикач засуву; CHOLD - конденсатор засуву. 5.2 Вибір джерела тактових імпульсів для АЦП Час одержання одного біта результату визначається параметром TAD. Для 10-розрядного результату потрібно як мінімум 12TAD. Параметри тактового сигналу для АЦП визначаються програмно, TAD може приймати наступні значення: - 2TOSC; - 8TOSC; - 32TOSC; - Внутрішній RC генератор модуля АЦП (2-6мкс). Для одержання коректного результату перетворення необхідно вибрати джерело тактового сигналу АЦП, що забезпечує час TAD не менш 1.6 мкс. В таблиці зазначене максимальне значення тактової частоти мікроконтролера для кожного режиму синхронізуючого сигналу АЦП. Таблиця. Максимальне значення FOSC задовольняючі вимозі до TAD (для мікроконтролерів з нормальним діапазоном напруги харчування (F)) Вибір TAD FOSC  Режим ADCS1:ADCS0 Максимум  2TOSC 00 1.25МГц  8TOSC 01 5МГц  32TOSC 10 20МГц  RC(1,2,3) 11 Примітка 1   Примітки: Типове значення часу TAD RC генератора АЦП дорівнює 4мкс, може варіюватися від 2мкс до 6мкс. Коли тактова частота мікроконтролера більше 1МГц, рекомендується використовувати RC генератор АЦП тільки для роботи в SLEEP режимі. 3. Для мікроконтролерів з розширеним діапазоном напруг живлення (LF) дані параметри дивимось в розділі електричних характеристик. 5.3 Настроювання аналогових входів Регістри ADCON1, TRІSA і TRІSE відповідають за настроювання виводів АЦП. Якщо виводи мікросхеми настроюються як аналогові входи, то при цьому повинні бути встановлені відповідні біти в регістрі TRІS. Якщо відповідний біт скинутий у '0', вивід мікросхеми настроєний як цифровий вихід зі значеннями вихідних напруг VOH чи VOL. Модуль АЦП функціонує незалежно від стану бітів CHS2:CHS0 і бітів TRІS. Примітки: 1. При читанні вмісту регістра порту нулі будуть встановлені в тих розрядах, що були настроєні як аналогові входи. Настроєні на цифровий вхід канали будуть перетворювати вхідні аналогові рівні в цифрові, що однак не зробить впливу на точність перетворення. 2. Значення напруг, поданих на виводи, настроєні як аналогові входи, включаючи виводи (AN7:AN0), можуть впливати на струм споживання вхідного буфера, що може вийти за межі значень, обговорених у технічній специфікації. 5.4 Аналого-цифрове перетворення Скидання біта GO/-DONE у '0' під час перетворення приведе до його припинення. При цьому регістри результату (ADRESH:ADRESL) не змінять свого вмісту. Після дострокового завершення перетворення необхідно забезпечити тимчасову затримку 2TAD. Витримавши необхідну паузу, можна почати нове перетворення установкою біта GO/-DONE в '1'. На малюнку зображено послідовність одержання результату після установки біта GO/-DONE в '1'. Примітка. Біт GO/-DONE і біт включення АЦП повинні встановлюватися різними командами. Мал. Послідовність одержання результату після установки біта GO/-DONE в '1'  5.4.1 Вирівнювання результату перетворення 10-розрядний результат перетворення зберігається в спареному 16-розрядному регістрі ADRESH:ADRESL. Запис результату перетворення може виконуватися з правим чи лівим вирівнюванням, у залежності від значення біта ADFM (див. малюнок ). Не задіяні біти регістра ADRESH:ADRESL читаються як '0'. Якщо модуль АЦП виключений, то 8-розрядні регістри ADRESH і ADRESL можуть використовуватися як регістри загального призначення. Мал. Вирівнювання результату аналого-цифрового перетворення  10-розрядний результат 10-розрядний результат Праве вирівнювання Ліве вирівнювання 5.5 Ефект скидання При скиданні мікроконтролера значення всіх його регістрів встановлюються по замовчуванню. Скидання виключає модуль АЦП, а також зупиняє процес перетворення, якщо він був початий. Усі висновки, використовувані модулем АЦП, настроюються як аналогові входи. Регістри ADRESH, ADRESL після скидання POR будуть містити невідоме значення, а після інших видів скидання не змінять свого значення. Таблиця. Регістри і біти, зв'язані з роботою модуля АЦП  Позначення: - = не використовується, читається як 0; u = не змінюється; x = не відомо; q = залежить від умов. 6.0 Особливості мікроконтролерів PІC16F87X В даний час, пристрої працюючи в режимі реального часу часто містять мікроконтролер як основний елемент схеми. PІ16F87X мають багато удосконалень, які підвищуютьі надійність системи, що знижує вартість пристрою і число зовнішніх компонентів. Мікроконтролери PІ16F87X мають режими енергозбереження і можливість захисту коду програми. Основні достоїнства: 1.Вибір тактового генератора 2.Скидання: - скидання по включенню живлення (POR); - таймер включення живлення (PWRT); - таймер запуску генератора (OSC); - скидання по зниженню напруги живлення (BOR). 3.Переривання 4.Сторожовий таймер (WDT) 5.Режим енергозбереження (SLEEP) 6.Захист коду програми 7.Область пам'яті для ідентифікатора 7.Внутрісхемне програмування по послідовному порту (ІCSP) 8.Режим низьковольтного послідовного програмування 9.Режим внутрісхемного налагодження (ІCD) В мікроконтролерах PІ16F87X вбудований сторожовий таймер WDT, що може бути виключений тільки в бітах конфігурації мікроконтролера. Для підвищення надійності сторожовий таймер WDT має власний RC генератор. Додаткових два таймери виконують затримку старту роботи мікроконтролера. Перший, таймер запуску генератора (OST), утримує мікроконтролер в стані скидання, поки не стабілізується частота тактового генератора. Другий, таймер включення живлення (PWRT), спрацьовує після включення живлення й утримує мікроконтролер у стані скидання протягом 72мс (типове значення), поки не стабілізується напруга живлення. У більшості додатків ці функції мікроконтролера дозволяють виключити зовнішні схеми скидання. Режим SLEEP призначений для забезпечення наднизького енергоспоживання. Мікроконтролер може вийти з режиму SLEEP по сигналу зовнішнього скидання, по переповненню сторожового таймера чи при виникненні переривань. Вибір режиму роботи тактового генератора дозволяє використовувати мікроконтролери в різних додатках. Режим тактового генератора RC дозволяє зменшити вартість пристрою, а режим LP знизити енергоспоживання. Біти конфігурації мікроконтролера використовуються для вказівки режиму його роботи. 6.1 Біти конфігурації Біти конфігурації розташовані в пам'яті програм за адресою 2007h, вони можуть бути запрограмовані в '0' чи залишеними в '1'. Помітимо, що адреса 2007h розташована за межами користувальницької пам'яті програм. Фактично, до конфігураційного регістра (область пам'яті 2000h - 3FFFh) можна звернутися тільки в режимі програмування мікроконтролера. Слово конфігурації (адреса 2007h) CP1 CP0 DEBUG - WRT CPD LVP 
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

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

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!