41
МИКРОКОНТРОЛЛЕРЫ
и
можно дополнительно снизить с помощью предделителя (как
именно - см ниже).
Управляющий регистр "ШСР имеет следующий формат:
- бит 7 - бит завершения операции. Устанавливается,
кода передан (принят) очередной байт. Установка его вызы-
вает генерацию сигнала прерывания. Сброс его выполняет-
ся, как обычно, записью лог.1;
- бит 6 - включение генерации бита подтверждения. Если
этот бит установить в лог.О, устройство “отсоединится” от
линии, и не будет отвечать на запросы та&ег-устройства;
- бит 5 - генерация стартовой последовательности. Ус-
тановка этого бита в лог.1 вызывает выдачу на линии интер-
фейса стартовой последовательности, при этом микроконт-
роллер автоматически становится гт^ег-устройством на
время передачи пакета данных;
- бит 4 - генерация стоповой последовательности. Уста-
новка этого бита в лог. 1. завершает обмен пакетами данных.
Сброс этого бита происходит аппаратно;
- бит 3 - бит коллизии записи. Он выставляется, если
делается попытка записи данных в регистр "ЛАГОВ при бите 7,
равном лог.О (необработанное прерывание от устройства);
- бит 2 - разрешение работы интерфейса. Должен быть
установлен в лог.1, если требуется работа с данным интер-
фейсом;
- бит 1 - не используется;
- бит 0 - разрешение прерываний от устройства. Это -
фактически маска для бита 7.
Регистр состояния "ЛАГОЯ имеет следующий формат:
- бит 7.
.3 - номерсостояния интерфейса. Фактически это
терминал конечного автомата, описывающего работу интер-
фейса. Возможные номера состояний описаны в документа-
ции. Как пользоваться этими номерами, мы разберем немно-
го позднее;
- бит 2 - не используется;
- бит 1 .
.0-включение предделителя для регистра"ЛА/ВВ.
Комбинации битов следующие: 00 - частота тактового гене-
ратора без предделителя, 01 - частота тактового генерато-
ра, поделенная на 4,10 - поделенная на 16, и 11 - поделен-
ная на 64.
Перед началом работы необходимо обязательно запол-
нить регистр "ЛА/ВВ и установить биты 2.
.0 регистра "ЛА/СВ.
Управление обменом по интерфейсу "ЛА/І достаточно слЪж-
но, поэтому мы его разберем в одной из следующих статей
на конкретном примере.
ПРОТОКОЛ SPI
В протоколе SPI, в отличие от I2C, используются три
линии. Одна из них - также линия SCL, две другие обозна-
чаются MOSI и MISO, и служат для передачи данных в на-
правлении master->slave и slave->master соответственно.
Как и в интерфейсе USART, и I2C, master-устройство - это
то устройство, которое в данный момент выдает синхро-
импульсы на линию SCL. В целом интерфейс SPI подобен
интерфейсу USABT при работе последнего в синхронном
режиме, и так же, как и USABT, допускает работу по нему
ровно двух устройств (если нё пользоваться дополнитель-
ными ухищрениями). Управляется этот интерфейс всего
тремя регистрами:
- регистр SPCB - управляющий регистр интерфейса;
- регистр SPSB - регистр состояния интерфейса;
- регистр SPDB - регистр данных интерфейса.
Управляющий регистр SPCR имеет следующий формат: •,
- бит 7 - разрешение прерываний от интерфейса SPI
(лог.1);
- бит 6 - разрешение работы интерфейса SPI (лог.1 );
- бит 5 - порядок передачи данных: либо старшими бита-
ми вперед (лог.О), либо младшими битами вперед (лог.1);
- бит 4 - роль микроконтроллера в процессе обмена: slave
(лог.О) или master (лог.1). Об этом бите при инициализации
интерфейса нужно позаботиться в первую очередь;
- бит 3 - выбор “неактивного” состояния линии SCL: при
лог.О неактивным состоянием линии SCL считается лог.О, при
лог.1 неактивным состоянием линии SCL считается лог.1 ;
- бит 2 - выбор момента “защелкивания” данных на ли-
ниях MISO и MOSI: при лог.О данные защелкиваются спадом
импульса SCL, при лог.1 - фронтом;
- бит 1 „О - совместно с битом 0 регистра SPSR опреде-
ляют тактовую частоту на линии SCL: комбинация 00 опреде-
ляет тактовую частоту как частота генератора, побеленная
на 4, 01 - поделенная на 16, 10 - поделенная на 64, и 11 -
Радиолюбитель - I О '2008
поделенная на 256. Если в регистре SPSR бит 0 установлен в
лог.1, тактовая частота на линии SCL удваивается.
Регистр состояния интерфейса SPSR имеет следующий
формат:
- бит 7 - флаг прерывания. Устанавливается при возник-
новении прерывания от интерфейса;
- бит 6 - сбой записи. Возникает при попытке записать в
регистр SPDR данные до того, как предыдущие данные были
полностью переданы. Для сброса этого бита достаточно про-
читать содержимое регистра SPSR;
- бит 5.
.1 - не используются;
- бит 0 - назначение этого бита было рассмотрено при
описании регистра SPCR.
Регистр SPDR - это регистр данных. При записи в него
очередного байта запускается процесс передачи, при возник-
новении прерывания из регистра можно считать принятый
байт. Следует иметь в виду, что у интерфейса SPI нет отдель-
ных прерываний для операций передачи и приема данных,
есть только “обобщенное” прерывание “обмен данным по ин-
терфейсу SPI закончен”. Это обусловлено тем, что интерфейс
SPI фактически объединяет два регистра сдвига двух раз-
ных устройств в единый регистр сдвига, т.е. по сигналам SCL
передача идет сразу и по линии MOSI, и по линии MISO. Это,
действительно, процесс
обмена
содержимым регистров SPDR
двух разных устройств, а не два отдельных процесса переда-
чи и приема. Поэтому о характере обработки прерывания про-
граммист должен позаботиться самостоятельно. И, наконец,
еще одна особенность интерфейса SPI - именно он исполь-
зуется длй низковольтного программирования микроконтрол-
лера (правда, у Меда128 роль линии MOSI и MISO во время
программирования выполняют две другие линии-PDI и PDO,
- но сказанное выше справедливо и для него).
FX
Продолжение в N911/2008
предыдущая страница 43 Радиолюбитель 2008-10 читать онлайн следующая страница 45 Радиолюбитель 2008-10 читать онлайн Домой Выключить/включить текст