Структурная схема PIC16C84
Архитектура основана на концепции раздельных шин и областей памяти для данных и для команд (Гарвардская архитектура). Шина данных и память данных (ОЗУ) - имеют ширину 8 бит, а программная шина и программная память (ПЗУ) имеют ширину 14 бит. Такая концепция обеспечивает простую, но мощную систему команд, разработанную так, что битовые, байтовые и регистровые операции работают с высокой скоростью и с перекрытием по времени выборок команд и циклов выполнения. 14- битовая ширина программной памяти обеспечивает выборку 14-битовой команды в один цикл. Двухступенчатый конвейер обеспечивает одновременную выборку и исполнение команды. Все команды выполняются за один цикл, исключая команды переходов. В PIC16C84 программная память объемом 1К х 14 расположена внутри кристалла. Исполняемая программа может находиться только во встроенном ПЗУ.
Разводка ножек
Функциональное назначение выводов см.”Обозначения Выводов” или Структурную Схему. Типы корпусов PDIP и др. см. “Корпуса”.
Назначение ножек
Обозначения ножек и их функциональное назначение
Обозначение
| Нормальный режим
| Режим записи EEPROM
| RA0 - RA3
| Двунаправленные линии ввода/вывода. Входные уровни ТТЛ
|
| RA4/RTCC
| Вход через триггер Шмитта. Ножка порта ввода/вывода с открытым стоком или вход частоты для таймера/счетчика RTCC
|
| RB0/INT
| Двунаправленная линия порта ввода/ вывода или внешний вход прерывания Уровни ТТЛ
|
| RB1 - RB5
| Двунаправленные линии ввода/ вывода. Уровни ТТЛ
|
| RB6
| Двунаправленные линии ввода/ вывода. Уровни ТТЛ.
| Вход тактовой частоты для EEPROM
| RB7
| Двунаправленные линии ввода/ вывода. Уровни ТТЛ.
| Вход/выход EEPROM данных.
| MCLR/Vрр
| Низкий уровень на этом входе генерирует сигнал сброса для контроллера. Активный низкий.
| Сброс контроллера Для режима EEPROM- подать Vрр.
| OSC1/CLKIN
| Для подключения кварца, RC или вход внешней тактовой частоты
|
| OSC2/CLKOUT
| Генератор, выход тактовой частоты в режиме RC генератора, в остальных случаях - для подкл.кварц
|
| Vdd
| Напряжение питания
| Напряжение питания
| Vss
| Общий(земля)
| Общий
|
Обзор регистров и ОЗУ
Область ОЗУ организована как 128 х 8. К ячейкам ОЗУ можно адресоваться прямо или косвенно, через регистр указатель FSR (04h). Это также относится и к EEPROM памяти данных-констант.
| Page 0
| Page 1
| |
| Indirect add.
|
|
| RTCC
| OPTION
|
|
| PCL
|
|
| STATUS
|
|
| FSR
|
|
| PORT A
| TRISA
|
|
| PORT B
| TRISB
|
|
|
|
|
|
| EEDATA
| EECON1
|
|
| EEADR
| EECON2
|
| 0A
| PCLATH
| 8A
| 0B
| INTCON
| 8B
| 0C
2F
| 36 регистров общего назначения
|
тоже
| 8C
AF
|
7F
| не существует
| B0
FF
|
В регистре статуса (03h) есть биты выбора страниц, которые позволяют обращаться к четырем страницам будущих модификаций этого кристалла. Однако для PIC16C84 память данных существует только до адреса 02Fh. Первые 12 адресов используются для размещения регистров специального назначения. Регистры с адресами 0Ch-2Fh могут быть использованы, как регистры общего назначения, которые представляют собой статическое ОЗУ. Некоторые регистры специального назначения продублированы на обеих страницах, а некоторые расположены на странице 1 отдельно. Когда установлена страница 1, то обращение к адресам 8Ch-AFh фактически адресует страницу 0. К регистрам можно адресоваться прямо или косвенно. В обоих случаях можно адресовать до 512 регистров.
Прямая адресация.
Когда производится прямая 9-битная адресация, младшие 7 бит берутся как прямой адрес из кода операции, а два бита указателя страниц (RP1,RP0) из регистра статуса (03h).
Косвенная адресация
f4 - Указатель косв.адресации
Любая команда, которая использует f0 (адрес 00) в качестве регистра фактически обращается к указателю, который хранится в FSR (04h). Чтение косвенным образом самого регистра f0 даст результат 00h. Запись в регистр f0 косвенным образом будет выглядеть как Noр, но биты статуса могут быть изменены. Необходимый 9 - битный адрес формируется объединением содержимого 8 - битного FSR регистра и бита IRP из регистра статуса.
RTCC таймер/счетчик
Режим таймера выбирается путем сбрасывания в ноль бита 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 = N*Trt/2, где Trt- входной период RTCC,
N- значение счетчика делителя (2,4...256).
В этом случае требования к входному сигналу можно выразить так:
N*Trt/2 >= 2 tosc +20ns или Trt >= (4tosc + 40ns)/N.
Когда используется пределитель, низкий и высокий уровень сигнала на его входе должны быть не менее 10 нс. Таким образом общие требования к внешнему сигналу, когда делитель подключен таковы:
Trt= RTCC рeriod >= (4tosc + 40ns)/N
Trth = RTCC high time >= 10ns
Trtl = RTCC low time >= 10ns.
Так как выход пределителя синхронизируется внутренним сигналом тактовой частоты, то существует небольшая задержка между появлением фронта внешнего сигнала и временем фактического инкремента RTCC. Эта задержка находится в диапазоне между 3*tosc и 7*tosc. Таким образом измерение интервала между событиями будет выполнено с точностью 4*tosc (+-400нс при кварце 10 МГц).
Регистр статуса
Регистр (f3) содержит арифметические флаги АЛУ, состояние контроллера при сбросе и биты выбора страниц для памяти данных. (f3) доступен для любой команды так же, как любой другой регистр. Однако, биты TO и PD устанавливаются аппаратно и не могут быть записаны в статус программно. Это следует иметь в виду при выполнении команды с использованием регистра статуса. Например, команда CLRF f3 обнулит все биты, кроме битов TO и PD, а затем установит бит Z=1. После выполнения этой команды регистр статуса может и не иметь нулевое значение (из-за битов TO и PD) f3=000??100. Поэтому рекомендуется для изменения регистра статуса использовать только команды битовой установки BCF, BSF, MOVWF, которые не изменяют остальные биты статуса. Воздействие всех команд на биты статуса можно посмотреть в “Описании команд”.
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|