Motorola MC68HC705C8
/>Рис. 2-6 Диаграмма, иллюстрирующая первый режим обнаружения внешнего прерывания.
Рис. 2-7 Диаграмма, иллюстрирующая второй режим обнаружения внешнего прерывания.
2.3 Таймер и связанные с ним устройства.
Блок таймера МС68НС705С8 имеет следующие характеристики:
· 16-битный программируемый счетчик с предделителем тактовой частоты.
· Флаг переполнения таймера.
· 16-битный регистр выходного сравнения.
· 16-битный регистр входной фиксации.
· Три вида генерируемых прерываний.
Основу таймера составляет 16-битный программируемый счетчик, синхронизируемый внутренней тактовой частотой, деленной на 4. Функция переполнения таймера позволяет расширить возможность измерения промежутков времени путем фиксации момента переполнения счетчика и установки соответствующего флага в регистре статуса. Функция входной фиксации может использоваться для автоматической записи времени определенного процесса, например для измерения длительности внешнего сигнала. Функция выходного сравнения дает возможность реализовать генерацию сигналов различной частоты, формировать импульсы различной длительности, а так же задержки в программе и многое другое.
Таймер позволяет формировать прерывания по переполнению как основного счетчика, так и 16-битного регистра входной фиксации и 16-битного регистра выходного сравнения.
Блок-схема таймера представлена на рис. 2-8.
Поскольку таймер имеет 16-битовую архитектуру, каждая его функция представлена двумя регистрами, содержащими старший и младший байт. К регистрам таймера относятся в первую очередь счетчик и альтернативный счетчик.
Рис. 2-8 Блок-схема таймера.
При начальной установке 16-битный счетчик таймера, расположенный по адресу 18Н-19Н, начинает работу со значения FFFCН. Далее значение счетчика увеличивается на единицу при поступлении синхроимпульса с предделителя частоты, дающего разрешение в 2 мкс при использовании кварца 4МГц. Когда значение счетчика достигает FFFFH, он сбрасывается в 0000H, устанавливая флаг переполнения. Значение счетчика дублируется в альтернативном счетчике, расположенном по адресу 1АН-1ВН. Единственное различие этих регистров состоит в том, что при чтении счетчика происходит сброс флага переполнения, а при обращении к альтернативному счетчику этого не происходит. Счетчик, как и альтернативный счетчик, может быть прочитан в любой момент, но не может быть записан. Если сначала читается старший байт счетчика (18Н), то младший байт запоминается в буфере. Это значение остается в буфере неизменным даже если старший байт читается несколько раз. Доступ к буферу осуществляется при чтении младшего байта счетчика. Если же считывать несколько раз только содержимое младшего байта счетчика, то каждый раз при этом будут считываться разные значения, соответствующие моменту считывания.
Регистр входной фиксации (Input Capture Register) расположен по адресу 14Н-15Н и предназначен только для чтения из него времени обнаружения на выводе TCAD сигнала. Уровень сигнала, вызывающего фиксацию времени, задается программно через бит IEDG управляющего регистра. RESET не оказывает влияния на содержимое регистра входной фиксации. Значение в регистре ICR при фиксации будет на единицу больше значения счетчика в момент фиксации. Эта задержка необходима для внутренней синхронизации. Таким образом, счетчик и регистр входной фиксации имеют одинаковое разрешение, равное четырем циклам внутренней синхронизации.
При обнаружении сигнала на выводе ТСАP содержимое счетчика фиксируется в ICR вне зависимости от состояния флага ICF (см. регистр статуса). Поэтому ICR всегда содержит время последней фиксации.
При чтении старшего байта регистра входной фиксации (14Н) фиксация следующего значения запрещается до тех пор, пока не будет прочитан младший байт. Чтение же младшего байта не влияет на возможность очередной входной фиксации.
Регистр выходного сравнения (Output Compare Register) расположен по адресу 16Н-17Н и используется для программирования какого-либо действия в определенное время (т. е. когда счетчик достигнет определенного значения). Все биты регистра могут быть прочитаны и записаны в любой момент времени, и не изменяют свое состояние при RESET. Если в функции выходного сравнения нет необходимости, эти ячейки памяти могут использоваться для других целей. Значение в регистре выходного сравнения сравнивается со счетчиком каждые 4 цикла. Когда значения совпадают, устанавливается флаг (OCF) и уровень бита OLVL (см. регистр статуса таймера) передается на вывод ТСМР. Так же может происходить прерывание, если установлен бит OCIE. Содержимое регистра выходного сравнения и бит OLVL должны изменяться после каждого удачного сравнения, для того чтобы начать новый цикл сравнения. При записи сначала в старший байт ОСR (16Н) сравнение не будет производиться до тех пор, пока не будет записан младший байт. При записи же сначала в младший байт, функция сравнения будет активирована. Таким образом, пользователь должен записать оба байта OCR, если сначала записывается старший.
Управляющий регистр (TCR), находящийся по адресу 12Н, содержит 5 управляющих битов. Каждому из трех бит управления прерываниями соответствует флаг статуса таймера ICF, OCF и TOF.
Управляющий регистр таймера
-
Название ICIE OCIE TOIE 0 0 0 IEDG OLVL Установка после RESET 0 0 0 0 0 0 - 0
ICIE - бит запрета/разрешения прерывания при входной фиксации,
при ICIE=1-прерывание разрешено,
при ICIE=0-прерывание запрещено,
OCIE - бит запрета/разрешения прерывания при выходном сравнении,
при ОCIE=1-прерывание разрешено,
при OCIE=0-прерывание запрещено,
TOIE - бит запрета/разрешения прерывания при переполнении таймера,
при TOIE=1-прерывание разрешено,
при TOIE=0-прерывание запрещено,
IEDG - бит определяет, что будет инициировать фиксацию счетчика в регистре входной фиксации - фронт или спад импульса на TCAP.
при IEDG=1-фронт,
при IEDG=0-спад
RESET не оказывает влияния на этот бит.
OLVL - бит определяет, какой уровень будет устанавливаться на TCMP
при выходном сравнении.
при OLVL=1-высокий уровень,
при OLVL=0-изкий уровень.
Регистр статуса таймера находится по адресу 13Н, предназначен только для чтения и содержит три флага, каждый из которых относится к определенному прерыванию.
Регистр статуса
-
Назначение ICF OCF TOF 0 0 0 0 0 Установка после RESET U U U 0 0 0 0 0
ICF-флаг входной фиксации,
ICF=1 - флаг устанавливается, когда входной сигнал соответствующей полярности зафиксирован,
ICF=0 - флаг сбрасывается при чтении младшего байта входного регистра фиксации (15Н), после чтения TSR, пока установлен ICR.
OCF-флаг выходного сравнения,
OCF=1 - флаг устанавливается, когда значение в регистре выходного сравнения совпадает со значением в счетчике.
OCF=0 - флаг сбрасывается при записи в младший байт (17Н) регистра выходного сравнения, после чтения TSR пока установлен ОCF.
TOF-флаг переполнения таймера,
TOF=1 - флаг устанавливается при переключении счетчика со значения FFFFH на 0000H.
TOF=0 - флаг сбрасывается при чтении младшего байта (19Н) счетчика после чтения TSR пока установлен TOF.
Для того, чтобы сбросить бит статуса, необходимо произвести две операции: во-первых, прочитать регистр статуса, во-вторых, прочитать регистр, соответствующий определенному биту статуса (например, для бита ICF это регистр ICR).
При использовании функции переполнения таймера и обращениях к счетчику в различное время могут возникнуть проблемы, связанные со сбросом флага переполнения. Это может произойти в одном из двух случаев: либо регистр статуса был прочитан в тот момент, когда флаг TOF был установлен, либо младший бит счетчика был прочитан без цели воздействовать на флаг переполнения. Эти возможности необходимо отслеживать при написании программ.
Работа таймера в режимах STOP и WAIT описана в разделе 3.2.
2.4 Последовательный интерфейс
Порт D представляет собой 7-и битный (канал D6 не используется) однонаправленный порт (только для ввода данных, если он используется как порт общего назначения для параллельного обмена). Когда активизированы системы последовательного интерфейса связи (Serial Communication Interface), либо последовательного периферийного интерфейса (Serial Periferal Interface), управление портом D переходит к ним. Во время начальной установки порт D конфигурируется на ввод информации, поскольку последовательные интерфейсы блокированы.
Последовательный периферийный интерфейс использует 4 вывода порта D (MISO и MOSI-ввод-вывод информации, SCK-системная синхронизация, SS-ведущий/ведомый). Последовательный интерфейс связи использует 2 вывода (RDI-прием данных, TDO-передача).
Рассмотрим подробнее последовательный интерфейс связи. Полно-дуплексный асинхронный последовательный интерфейс связи работает в стандартном NRZ формате с широким выбором скорости приема/передачи информации. Передатчик и приемник функционально независимы, но используют одинаковый формат данных и скорость работы.
Общие особенности интерфейса:
· стандартный NRZ формат;
· усовершенствованная система выявления ошибок, включающая фильтрацию помех с длительностью до 1/16 времени передачи 1 бита;
· полно-дуплексное функционирование (одновременный прием и передача);
· программирование на одну из 32 возможных скоростей обмена;
· программно-изменяемая длина слова (8 либо 9 бит в слове);
· отдельно расположенные биты управления приемом и передачей;
· возможность управления по прерыванию;
· различных условия возникновения прерывания;
Особенности приемника:
· наличие функции активации передатчика (свободная линия или разряд адреса);
· обнаружение свободной линии;
· обнаружение ошибок кадрирования (см. ниже);
· выявление шумов;
· обнаружение переполнения;
· флаг контроля за полнотой регистра данных;
Особенности передатчика:
· флаг контроля за пустотой регистра данных;
· флаг завершения передачи;
· прерывание посылки;
Структура интерфейса представлена на рис. 2-9.
Пользователь имеет возможность задать режим работы интерфейса через первый управляющий регистр (SCCR1). Второй управляющий регистр (SCCR2) содержит биты контроля за приемом/передачей, разрешением/запретом прерываний и другие. Рассмотри работу SCI в различных режимах.
Передача данных начинается с записи в регистр передачи данных (SCDAT),который физически расположен в одной и той же ячейке памяти с регистром приема данных. При условии, что работа передатчика разрешена, данные передаются в сдвиговый регистр. Эта передача данных устанавливает бит TDRE (пуст регистр передачи данных) в регистре SCSR и генерирует прерывание, если прерывания разрешены. Передача данных в сдвиговый регистр синхронизируется по внутреннему генератору скорости. Данные передаются младшим битом вперед.. При завершении передачи данных, бит TC устанавливается и генерируется прерывание. Если передатчик блокирован, и были посланы либо данные, либо код останова, бит ТС также будет установлен. Если передатчик блокируется во время передачи, то происходит завершение передачи текущего байта, и затем останов передатчика.
Прием данных начинается с чтения из регистра SCDAT, содержащего последний полученный байт, при условии что приемник не блокирован. Бит RDRF в регистре SCSR устанавливается, если данные из сдвигового регистра перенесены в SCDAT, что может вызвать кроме того прерывание от периферийного интерфейса, если оно разрешено. Передача данных из сдвигового регистра в SCDAT синхронизируется по внутреннему генератору. Флаги переполнения (OR), обнаружения шумов (NF), либо FE устанавливаются, если происходит ошибка при приеме данных.
На рис. 2-10 представлена диаграмма обмена в упоминавшимся выше NRZ-формате, используемом в интерфейсе.
Рис. 2-9 Структурная схема последовательного интерфейса связи.
(1)-контрольный бит, задается программно.
Рис. 2-10 Диаграмма обмена по SCI.
Рассмотрим регистры, входящие в интерфейс.
Регистр скорости передачи данных (BAUD), расположенный по адресу 0DH, используется для задания скорости обмена по интерфейсу. Из таблиц 2-3 и 2-4 можно определить скорость приема/передачи информации, исходя из частоты кварцевого генератора.
Регистр скорости приема/передачи
-
Название - - SCP1 SCP0 - SCR2 SCR1 SCR0 Установка после RESET 0 0 0 0 0 0 0 0
SCP1, SCP0-предварительное деление на 1, 3, 4, 13.
SCR2, SCR1, SCR0-деление после предварительного делителя на 1, 2, 4, ... ,128.
Таблица 2-3. Предделитель тактовой частоты.
-
SCP1 SCP0 Делитель тактовой частоты 4.19430 4.0 2.4576 2.0 1.8432 0 0 1 131072 125000 76800 62500 57600 0 1 3 43691 41666 25600 20833 19200 1 0 4 32768 31250 19200 15625 14400 1 1 13 10082 9600 5907 4800 4430
Таблица 2-4. Частота приема/передачи
-
SCR2 SCR1 SCR0 Делитель внутренней частоты 131.072 32768 76800 19200 9600 0 0 0 1 131072 32768 76800 19200 9600 0 0 1 2 65536 16384 38400 9600 4800 0 1 0 4 32768 8192 19200 4800 2400 0 1 1 8 16384 4096 9600 2400 1200 1 0 0 16 8192 2048 4800 1200 600 1 0 1 32 4096 1024 2400 600 300 1 1 0 64 2048 512 1200 300 150 1 1 1 128 1024 256 600 150 75
Первый управляющий регистр расположен по адресу 0ЕН (SCCR1) и содержит 3 бита, связанных с использованием 9-битного формата данных, а также один бит, определяющий способ активизации интерфейса.
Первый управляющий регистр
-
Название R8 T8 - M WAKE - - - Установка после RESET 0 0 - 0 0 - - -
R8-принимаемый девятый бит.
T8-передаваемый девятый бит.
M-бит, определяющий длину посылки:
при М=1- 9 бит данных;
при М=0 -8 бит данных.
WAKE-метод активизации приемника:
при WAKE=1-приемник активизируется при обнаружении разряда адреса (старшего бита);
при WAKE=0-свободная линия вызывает активизацию приемника.
Второй управляющий регистр (SCCR2) расположен по адресу 0FH и осуществляет управление такими индивидуальными функциями интерфейса, как прерывания, блокировка приемника/передатчика и другими.
Второй управляющий регистр
-
Название TIE TCIE RIE ILIE TE RE RWU SBK Установка после RESET 0 0 0 0 0 0 0 0
TIE-бит разрешения/запрета прерываний передатчика,
при TIE=1-прерывания разрешены,
при TIE=0-прерывания запрещены.
TCIE-бит разрешения/запрета прерываний при завершении передачи,
при TCIE=1-прерывания разрешены,
при TCIE=0-прерывания запрещены.
RIE-бит разрешения/запрета прерываний от приемника,
при RIE=1-прерывания разрешены,
при RIE=0-прерывания запрещены.
ILIE-бит разрешения/запрета прерывания при освобождении линии ,
при ILIE=1-прерывание разрешено,
при ILIE=0-прерывание запрещено.
TE-бит разрешения/запрета передачи,
при TE=1-выход передающего сдвигового регистра подключен к линии TD0. В зависимости от бита M передаются 10 (M=0) или 11 (M=1) бит.
при TE=0-передача запрещается после завершения передачи байта, который обрабатывался в момент сброса бита TE, линия TD0 переходит в высокоимпедансное состояние,
RE-бит запрета/разрешения приема,
при RE=1-линия RDI соединяется со сдвиговым регистром приемника,
при RE=0-прием запрещен.
RWU-метод активизации приемника,
при RWU=1-приемник в режиме ожидания,
при RWU=0-если бит WAKE=1, то бит RWU сбрасывается после приема слова данных. Если WAKE=0, бит RWU сбрасывается после приема 10 (M=0), либо 11 (M=1) бит.
SBK-посылка сигнала останов,
при SBK=1-передатчик посылает блоки нулей (серии из 10 или 11) до очистки сдвигового регистра. Затем передатчик посылает один бит высокого уровня для определения старт-бита.
при SBK=0-передатчик посылает 10 или 11 нулей и затем возвращается в свободное состояние или продолжает посылки информации.
Если сдвиговый регистр передатчика пуст и линия свободна, установка и очистка SBK может поставить в очередь до двух посылок сигнала останова, т.к. первый сигнал передается немедленно в сдвиговый регистр, а второй встает в очередь в параллельный буфер передатчика.
Регистр статуса (SCSR) находится по адресу 10Н и содержит два флага статуса передатчика, и 5 флагов, относящихся к приемнику.
Регистр статуса
-
Название TDRE TC RDRF IDLE OR NF FE - Установка после RESET 1 1 0 0 0 0 0 -
TDRE-сообщает о наличии данных в регистре передачи (ТDR),
при TDRE=1-регистр пуст и может принять новые данные,
при TDRE=0-регистр содержит данные. Чтение SCSR сбрасывает TDRE, если оно следует за записью в TDR.
TC-флаг завершение передачи,
при ТС=1-передатчик пуст (включая сдвиговый регистр),
при ТС=0-передатчик активирован. Чтение SCSR сбрасывает TDRE, если оно следует за записью в TDR.
RDRF -флаг наличия данных в регистре приема данных (RDR),
при RDRF=1-устанавливается, когда содержимое сдвигового регистра передано в RDR,
при RDRF=0-данных в RDR нет. RDRF сбрасывается при чтении SCSR, следующие за чтением RDR.
IDLE-обнаружение свободной линии,
при IDLE=1-Индицирует, что приемник обнаружил свободную линию,
при IDLE=0-IDLE сбрасывается при чтении SCSR, следующим за чтением RDR. Если IDLE сброшен, то он не может быть установлен в 1 до тех пор, пока линия RDI не будет активной и свободной вновь.
OR-флаг ошибки переполнения,
при OR=1-индицирует, что регистр приема данных переслан в RDR до считывания информации из него (RDRF=1). Данные, вызвавшие переполнение, теряются, а данные в RDR сохраняются,
при OR=0-OR сброшен при чтении SCSR, следовавшим за чтением RDR.
NF-флаг помехи,
при NF=1-индицирует наличие помехи на шине приема. NF не устанавливается, пока RDRF=1.
FE-флаг ошибки кадрирования,
при FE=1-индицирует отсутствие стоп-бита в принятых данных. FE устанавливается одновременно с установкой RDRF. Если принятый байт вызывает и ошибку кадрирования, и ошибку переполнения, процессор опознает только переполнение. Дальнейшая передача данных в RDR запрещается до сброса FE.
при FE=0-сброс бита FE произошел при чтении SCSR, следовавшим за чтением RDR.
Регистр данных (SCDAT) расположен по адресу 11Н и используется для передачи и приема данных.
Регистр данных
-
SCD7 SCD6 SCD5 SCD4 SCD3 SCD2 SCD1 SCD0
Как уже упоминалось, SCDAT функционирует как два раздельных регистра: передающий и принимающий.
Перейдем к рассмотрению Последовательного периферийного интерфейса, дающего возможность нескольким ОЭВМ и/или периферийным устройствам быть объединенными в одно целое. Периферийные устройства могут представлять собой как простой сдвиговый TTL регистр, так и сложные подсистемы, например драйверы жидкокристаллических дисплеев или системы ЦАП или АЦП.
В формате периферийного интерфейса сигнал синхронизации не включен в поток данных и выполнен в виде отдельного сигнала. Система на основе последовательного периферийного интерфейса должна состоять из одного ведущего устройства (ОЭВМ) и нескольких ведомых устройств, которые также могут представлять собой ОЭВМ (см. рис. 2-13), либо ОЭВМ, которые могут быть как ведущими, так и ведомыми.
Особенности интерфейса:
· полно-дуплексная, трехпроводная синхронная передача данных;
· работа ОЭВМ в качестве ведущего или ведомого устройства;
· максимальная частота ведущего 1.05 МГц;
· максимальная частота ведомого 2.1 МГц;
· четыре программируемые скорости передачи данных ведущим;
· программируемая полярность синхронизации и фаза;
· флаг прерывания при окончании передачи;
· флаг защиты от конфликта при записи данных;
· возможность защиты от сбоя режима ведущий-ведомый.
Рис. 2-11 Последовательный периферийный интерфейс. Блок-схема.
Блок-схема интерфейса представлена на рис. 2-11. При работе с периферийным интерфейсом нет необходимости указывать направление передачи данных, поскольку "ведущий" одновременно производит передачу и прием по раздельным линиям. Сдвиговые регистры ведущего и ведомого устройств удобно рассматривать как один 16-битный регистр, замкнутый в кольцо. Когда происходит передача данных, содержимое регистра сдвигается на 8 позиций, и устройства обмениваются данными.
Как видно из рис. 2-12, в состав периферийного интерфейса входят 4 линии (MOSI, MISO, SCK и SS), назначение которых приведено ниже:
MOSI (Master Out, Slave In)-линия, предназначенная для ввода последовательной информации, если устройство находится в режиме "ведомый", или для вывода информации, если устройство находится в режиме "ведущий". Данные по линии передаются в одном направлении старшим битом вперед.
MISO (Master In, Slave Out)-линия, предназначенная для ввода последовательной информации, если устройство находится в режиме "ведущий", или для ввода информации, если устройство находится в режиме "ведомый". Данные по линии также передаются старшим битом вперед. Линия MISO ведомого устройства находится в высокоимпедансном состоянии, если режим "ведомый" для него не выбран (SS=1). Линия MISO ведомого устройства находится в состоянии высокого импеданса, если SS=1.
SCK (Serial CloK)-вывод синхронизации. Поскольку синхронизация происходит по ведущему устройству, линия SCK ведомого устройства работает на ввод. Как показано на рисунке, возможны четыре различных типа синхронизации, которые могут быть выбраны через биты CPOL и CPHA регистра управления. Режим синхронизации задается одинаковым для ведущего и ведомого устройств. Биты SPR0 и SPR1 в регистре управления ведущего устройства задают скорость обмена информацией. Значение этих бит у ведомого прибора не имеет значения.
SS (Slave Select)-выбор ведущий/ведомый. Линия SS имеет высокий уровень у ведущего устройства. Если вывод SS ведущего устройства переходит в состояние логического нуля, в регистре статуса SPSR устанавливается флаг MODF. Если ОЭВМ работает как ведущее устройство, генератор ведущего устройства является источником сигнала синхронизации для ведомых устройств. Данные параллельно загружаются в 8-битный сдвиговый регистр из внутренней шины (в ходе цикла записи) и затем последовательно поступают через вывод MOSI на ведомое устройство. В ходе цикла чтения данные поступают последовательно через вывод MISO от ведомого устройства в 8-битный сдвиговый регистр. Затем данные параллельно переносятся в буфер чтения и становятся доступными для чтения с внутренней шины. Если ОЭВМ работает как ведомое устройство, то на внешний вывод SS должен поступать сигнал низкого уровня, а на вывод SCK-сигнал синхронизации. Данные от ведущего устройства поступают последовательно на вывод MOSI и передаются в 8-битный сдвиговый регистр для параллельного переноса в буфер чтения. У ведомого в ходе цикла записи, данные параллельно загружаются в 8-битный сдвиговый регистр с внутренней шины данных, ожидая сигнала синхронизации от ведущего, для того чтобы последовательно передать данные через вывод MISO.
Рис. 2-12. Структурная схема SPI.
На рис. 2-13 представлена типовая схема подключения пяти микропроцессорных устройств, из которых одно является ведущим, а четыре-ведомыми. В этой системе у каждого устройства обозначены основные контакты: MISO, MOSI, SCK и SS.
Рис. 2-13 Схема подключения устройств с использованием периферийного интерфейса.
Рис. 2-14 Диаграмма работы SPI.
На рисунке 2-14 представлена временная диаграмма, показывающая соотношение данных с сигналом синхронизации. Как видно из рисунка, возможны 4 различных варианта, которые могут быть выбраны через биты CPOL и CPHA управляющего регистра. Различные протоколы работы SPI позволяют осуществлять обмен данными с любыми последовательными синхронными устройствами.
В состав периферийного интерфейса входят три регистра, которые осуществляют управление, отражают статус, а так же выполняют другие функции.
Управляющий регистр (SPSR), расположенный по адресу 0АН, контролирует индивидуальные функции интерфейса: прерывания, разрешение/запрет доступа, выбор ведущего/ведомого устройства и другими.
Управляющий регистр
-
Название SPIE SPE - MSTR CPOL CPHA SPR1 SPR0 Установка после RESET 0 0 - 0 0 0 0 0
SPIE-бит разрешения/запрета прерываний от последовательного интерфейса связи,
при SPIE=1 прерывания разрешены,
при SPIE=0 прерывания запрещены,
SPE-активация/блокировка интерфейса,
при SPE=1-система периферийного интерфейса активирована,
при SPE=0-система блокирована,
MSTR-бит выбора режима ведущий/ведомый,
при MSTR=1-режим "ведущий",
при MSTR=0-режим "ведомый",
CPOL-бит полярности синхронизации (см. рис. 17),
при CPOL=1-SCK-линия считается нерабочей в высоком состоянии,
при CPOL=0-SCK-линия считается нерабочей в низком состоянии,
CPHA-фаза синхронизации (см. рис. 17),
при CPHA=1 вывод SS является управляющим выводом доступа к данным
при CPHA=0-сдвиг синхронизации является логическим "ИЛИ" SCK и SS. Когда SS в состоянии 0 первый фронт SCK является сигналом начала передачи.
Биты SPR0,SPR1 задают скорость передачи данных, которую можно выбрать, руководствуясь таблицей:
-
SPSR1 SPSR0 Внутренняя синхронизация делится на 0 0 2 0 1 4 1 0 16 1 1 32
Регистр статуса расположен по адресу 0ВН и содержит три бита статуса
Регистр статуса
-
Название SPIF WCOL - MODF - - - - Установка после RESET 0 0 - 0 - - - -
SPIF-флаг пересылки данных,
при SPIF=1-индицирует завершение обмена данными между ОЭВМ и внешним устройством. Передача данных начинается при записи "ведущим" данных в регистр данных. (если SPIF=1 и SPIE=1 прерывания разрешены),
при SPIF=0-сброс происходит при чтении SPSR (где SPIF=1), следующим за доступом к SPDR.
WCOL-флаг конфликта записи,
при WCOL=1-индицирует попытку записи данных в SPDR в тот момент, когда процесс обмена данными еще не завершен, передача данных прекращается,
при WCOL=0-сброс происходит при чтении SPSR (где WCOL=1), следующим за доступом к SPDR.
MODF-флаг сбоя режима,
при MODF=1-индицирует конфликт системы из-за наличия нескольких ведущих устройств. Флаг устанавливается, если cигнал на линии SS/ переходит в низкий уровень, в то время, как ОЭВМ конфигурируется ведущим устройством,
при MODF=0- сброс достигается при чтении SPSR (где MODF=1), следующим за записью в SPSR.
Регистр данных расположен по адресу 0СН и предназначен для обмена данными. Запись в этот регистр у ведущего устройства инициирует начало приема/передачи данных. Затем данные передаются прямо в сдвиговый регистр, который обменивается данными с ведомым устройством. По окончание обмена устанавливается флаг SPIF.
Регистр данных
-
SPD7 SPD6 SPD5 SPD4 SPD3 SPD2 SPD1 SPD0
3. Специальные режимы работы.
3.1 RESET.
RESET, или начальная установка, по-существу означает запуск программы, хранящейся в ППЗУ ОЭВМ, с определенного адреса с установкой периферийных систем, управляющих регистров и флагов в определенное состояние. Начальная установка происходит в одном из 4-х случаев:
1) Внешний RESET при подаче активного сигнала низкого уровня на вывод RESET/ микросхемы.
2) Внутренний RESET при включении питания.
3) Внутренний RESET при неправильном функционировании программы.
4) Внутренний RESET при отсутствии сигнала синхронизации.
При установке ОЭВМ в исходное состояние происходит следующее:
· все регистры направления передачи данных сбрасываются (настройка на ввод информации);
· в указатель стека загружается значение 00FFH;
· бит I в регистре признаков устанавливается в "1";
· триггер внешнего прерывания сбрасывается;
· запрещается доступ к последовательному интерфейсу связи (биты ТЕ=0 и RE=0). Остальные биты регистров интерфейса связи: TIE, TCIE, RIE, ILIE, RWU, SBK, RDRF, IDLE, OR, и FE-сбрасываются.
· биты статуса последовательного интерфейса TDRE и TC устанавливаются в 1.
· предварительный делитель частоты и биты управления скоростью обмена информацией SCP0 и SCP1 сбрасываются.
· последовательный периферийный интерфейс блокирован (бит SPE=0). Остальные биты сбрасываются: SPIE, MSTR, SPIF, WCOL, и MODF.
· все биты разрешения прерываний от устройств последовательного ввода-вывода сбрасываются (SPIE, TIE, TCIE).
· последовательный периферийный интерфейс конфигурируется как подчиненный (ведомый) компонент системы (MSTR=0).
· предварительный делитель частоты таймера сбрасывается. В счетчик таймера загружается значение FFFCH. Бит TCMP сбрасывается. Все биты разрешения прерываний от таймера сбрасываются (ICIE, OCIE, и TOIE), запрещая прерывания. Бит OLVL сбрасывается.
· триггер STOP сбрасывается.
· триггер WAIT сбрасывается.
· внутренняя шина адреса загружается исходным вектором (в старший байт программного счетчика загружается значение из ячейки с адресом 1FFEH, в младший-из ячейки 1FFFH).
Перейдем к более подробному рассмотрению режима RESET.
RESET по включению питания происходит при подаче напряжения питания на вывод Vdd микросхемы, и предназначен для стабилизации работы тактового генератора. Данный вид режима RESET предусмотрен исключительно для момента включения питания, и не должен использоваться для определения падения питающего напряжения. Схема задержки включения предусматривает прохождение 4064 импульсов с момента запуска генератора. Если же и после этого периода на выводе RESET/ сохраняется сигнал низкого уровня, то процессор остается в состоянии начальной установки до тех пор, пока на вывод RESET/ не будет подан сигнал высокого уровня.
RESET по внешнему сигналу происходит при условии присутствия уровня логического 0 на выводе RESET/ микросхемы в течение 1.5 машинных циклов.
RESET по времени выполнения программы происходит при