F60-67 (1041605), страница 48
Текст из файла (страница 48)
Этот бит необходимо сбросить программно.Бит 5: MODF: Флаг ошибки режима.Этот бит аппаратно устанавливается в 1 (и генерирует прерывание от модуля SPI0) приобнаружении конфликта ведущего режима (на линии NSS низкий уровень, MSTEN = 1 иNSSMD[1:0] = 01). Этот бит не сбрасывается аппаратно, его необходимо сбросить программно.Бит 4: RXOVRN: Флаг переполнения приемника (только ведомый режим работы).Этот бит аппаратно устанавливается в 1 (и генерирует прерывание от модуля SPI0), еслиприемный буфер все еще содержит непрочитанные данные от предыдущей передачи, а последнийбит текущей передачи сдвигается в сдвиговый регистр модуля SPI0.
Этот бит не сбрасываетсяаппаратно, его необходимо сбросить программно.Биты 3-2: NSSMD1-NSSMD0: Биты режима выбора ведомого.С помощью этих бит осуществляется выбор между следующими режимами функционирования выводаNSS (см. раздел 21.2 и раздел 21.3):00: 3-х проводный ведомый или 3-х проводный ведущий режим. Сигнал NSS не разводится с помощьюматрицы на внешний вывод МК.01: 4-х проводный ведомый режим или режим работы с несколькими ведущими (по умолчанию). ВыводNSS всегда является входом.1х: 4-проводный режим работы с одним ведущим.
Вывод NSS настроен как выход и состояние сигналана нем определяется значением бита NSSMD0.Бит 1: TXBMT: Флаг опустошения буфера передатчика.Этот бит будет сбрасываться в 0 при записи новых данных в буфер передатчика. После передачиданных из буфера передатчика в сдвиговый регистр модуля SPI0 этот бит будет установлен в 1,показывая, что в буфер передатчика можно записывать новые данные.Бит 0: SPIEN: Включение модуля SPI0.Это бит включает/отключает модуль SPI0.0: Модуль SPI0 отключен.1: Модуль SPI0 включен.259Ред. 1.2C8051F060/1/2/3/4/5/6/7Рисунок 21.10.
SPI0CKR: Регистр установки тактовой частоты модуля SPI0R/WSCR7R/WSCR6R/WSCR5R/WSCR4R/WSCR3R/WSCR2R/WSCR1R/WSCR0Бит 7Бит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0Значениепри сбросе:00000000SFR Адрес: 0x9DSFR страница: 0Биты 7-0: SCR7-SCR0: Тактовая частота модуля SPI0Эти биты определяют частоту выходного сигнала SCK, когда модуль SPI0 работает введущем режиме. Частота тактового сигнала SCK представляет собой поделенную наопределенный коэффициент системную тактовую частоту и задается следующимуравнением:fSCK = 0.5 * SYSCLK / (SPI0CKR + 1), для 0 ≤ SPI0CKR ≤ 255,где: SYSCLK – частота системного тактового сигнала;SPI0CKR – 8-разрядное значение регистра SPI0CKR.Пример: Если SYSCLK = 2МГц и SPI0CKR = 0х04, то:fSCK = 0.5 * 2000000 / (4 + 1) = 200кГц.Ред.
1.2260C8051F060/1/2/3/4/5/6/7Рисунок 21.11. SPI0DAT: Регистр данных модуля SPI0R/WR/WR/WR/WR/WR/WR/WR/WЗначениепри сбросе:Бит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0SFR Адрес: 0x9BSFR страница: 000000000Бит 7Биты 7-0: SPI0DAT: Данные передатчика и приемника модуля SPI0.Регистр SPI0DAT используется для передачи и приема данных. В ведущем режиме записьданных в регистр SPI0DAT сразу же приводит к загрузке данных в буфер передатчика иинициирует сеанс передачи. Чтение регистра SPI0DAT возвратит содержимое приемногобуфера.261Ред.
1.2C8051F060/1/2/3/4/5/6/7Рисунок 21.12. Временные диаграммы ведущего SPI (CKPHA = 0)SCK*TTMCKHMCKLTTMISMIHMISOMOSI* Состояние сигнала SCK показано для случая CKPOL = 0. Если CKPOL = 1, то состояние сигнала SCK будетпротивоположным.Рисунок 21.13. Временные диаграммы ведущего SPI (CKPHA = 1)SCK*TTMCKHMCKLTTMISMIHMISOMOSI* Состояние сигнала SCK показано для случая CKPOL = 0. Если CKPOL = 1, то состояние сигнала SCK будетпротивоположным.Ред. 1.2262C8051F060/1/2/3/4/5/6/7Рисунок 21.14.
Временные диаграммы ведомого SPI (CKPHA = 0)NSSTTSETCKLSDSCK*TCKHTSISTSIHMOSITTSEZTSOHSDZMISO* Состояние сигнала SCK показано для случая CKPOL = 0. Если CKPOL = 1, то состояние сигнала SCK будетпротивоположным.Рисунок 21.15. Временные диаграммы ведомого SPI (CKPHA = 1)NSSTTSETCKLSDSCK*TCKHTSISTSIHMOSITSEZTTSOHSLHTSDZMISO* Состояние сигнала SCK показано для случая CKPOL = 0.
Если CKPOL = 1, то состояние сигнала SCK будетпротивоположным.263Ред. 1.2C8051F060/1/2/3/4/5/6/7Таблица 21.1. Временные параметры ведомого SPIПараметрОписаниеМин.Макс.Ед. изм.Временные параметры ведущего SPI* (см. рис. 21.12 и рис. 21.13)TMCKHДлительность высокого уровня сигнала SCK1*TSYSCLKнсTMCKLДлительность низкого уровня сигнала SCK1*TSYSCLKнсTMISВремя удержания данных на линии MISO дофронта SCK, вызывающего сдвиг данных1*TSYSCLK+ 20нсTMIHДлительность интервала между фронтом SCK,вызывающим сдвиг данных, и обновлениемданных на линии MISO0нс2*TSYSCLKнс2*TSYSCLKнсВременные параметры ведомого SPI* (см.
рис. 21.14 и рис. 21.15)TCKHДлительность интервала между появлениемсигнала низкого уровня на линии NSS и первымфронтом сигнала SCKДлительность интервала между последнимфронтом сигнала SCK и появлением сигналавысокого уровня на линииВремя установления данных на линии MISO послепоявления сигнала низкого уровня на линии NSSДлительность интервала между появлениемсигнала высокого уровня на линии NSS ипереходом линии MISO в высокоимпедансноесостояниеДлительность высокого уровня сигнала SCKTCKLДлительность низкого уровня сигнала SCKTSETSDTSEZTSDZнс4*TSYSCLKнс5*TSYSCLKнс5*TSYSCLKнсВремя удержания данных на линии MOSI до2*TSYSCLKTSISфронта выборки сигнала SCKДлительность интервала между фронтом выборки2*TSYSCLKTSIHSCK и обновлением данных на линии MOSIДлительность интервала между фронтом SCK,вызывающим сдвиг данных, и обновлениемTSOHданных на линии MISOДлительность интервала между последним6*TSYSCLKфронтом SCK и обновлением данных на линииTSLHMISO (только для случая, когда CKPHA = 1)* TSYSCLK представляет собой один период системного тактового сигнала (SYSCLK).Ред.
1.24*TSYSCLKнснс4*TSYSCLKнс8*TSYSCLKнс264C8051F060/1/2/3/4/5/6/722. УАПП0УАПП0 (универсальный асинхронный приемопередатчик) представляет собой усовершенствованныйпоследовательный порт, обеспечивающий определение ошибок формата и аппаратное распознавание адреса.УАПП0 может функционировать в полнодуплексном асинхронном или полудуплексном синхронном режимах,а также полностью поддерживает организацию связи с несколькими МК (мультипроцессорноевзаимодействие). Во всех режимах принимаемые данные буферизуются в регистре временного хранения.
Этопозволяет УАПП0 начать прием второго входящего байта данных до того, как программа закончит чтениепредыдущего байта данных. Флаг переполнения приемника устанавливается в 1, если следующий принятыйбайт данных фиксируется в буфере приемника до окончания чтения ранее принятого байта.С работой УАПП0 связаны следующие регистры специального назначения: регистр управленияУАПП0 (SCON0) и буфер данных УАПП0 (SBUF0). Одна и та же ячейка памяти, адресуемая как SBUF0,обеспечивает доступ и к регистру передатчика, и к регистру приемника.
При чтении регистра SBUF0осуществляется доступ к регистру приемника, а при записи регистра SBUF0 - к регистру передатчика.С модулем УАПП0 можно работать как в режиме опроса, так и с использованием прерываний. УАПП0имеет два источника прерываний:- флаг прерываний от передатчика TI0 (SCON0.1), устанавливается, когда передача байта данных завершена;- флаг прерываний от приемника RI0 (SCON0.0), устанавливается, когда завершен прием байта данных.Флаги прерываний от УАПП0 не сбрасываются аппаратно при переходе к процедуре обслуживанияпрерывания. Они должны сбрасываться программно. Это позволяет программе определить причину,вызвавшую прерывание от УАПП0 (завершение передачи или завершение приема).Рисунок 22.1.
Структурная схема УАПП0SFR шинаЗаписьв SBUFTB80SETDSSTA0F R T SE X X M0 O C OV O D0 L 00S0TCLK1S0TCLK1SBUF0QTX0CLRS0RCLK1S0RCLK1МатрицаДетектор нуляГенерациябита STOPСтартСдвигДанныеУправление передатчиком (Tx)Тактирование TxСхемагенератораскоростиобменаУАПП0ПередачаПрерывание TxSCON0SM00SM10SM20REN0TB80ВключениеТактирование RxTI0R T RB I I8 0 00Прерывание отпоследовательногопорта (УАПП0)RI0Прерывание RxЗагрузкаSBUFУправление приемником (Rx)Портввода/выводаСовпадениеадресаСтарт0x1FFСдвигСхемаопределенияошибки форматаВходной регистрсдвига (9 бит)RB80ЗагрузкаSBUFДетекторсовпаденияSBUF0SADDR0SADEN0ЧтениеSBUFSFR шина265Ред.
1.2RX0МатрицаC8051F060/1/2/3/4/5/6/722.1. Режимы работы УАПП0УАПП0 поддерживает четыре режима работы (один синхронный и три асинхронных), задаваемыебитами конфигурации в регистре SCON0. Эти четыре режима различаются скоростью передачи данных ипротоколом обмена. В табл.22.1 приведены основные характеристики режимов работы УАПП0.Таблица 22.1. Режимы работы УАПП0РежимСинхронизацияСкорость передачи данных0123СинхронныйАсинхронныйАсинхронныйАсинхронныйSYSCLK / 12Переполнение Таймеров 1, 2, 3 или 4SYSCLK / 32 или SYSCLK / 64Переполнение Таймеров 1, 2, 3 или 4Битыданных8899БитыСтарт/СтопНет1 Старт, 1 Стоп1 Старт, 1 Стоп1 Старт, 1 Стоп22.1.1. Режим 0: Синхронный режимРежим 0 обеспечивает синхронный, полудуплексный обмен данными. Последовательные данныепередаются и принимаются через внешний вывод RX0. Через внешний вывод TX0 выдаются импульсы сдвигакак для передачи, так и для приема данных.
МК должен быть ведущим, т.к. он генерирует импульсы сдвига дляпередачи данных в обоих направлениях (см. рис.22.3).Передача данных начинается, когда происходит запись байта данных в регистр SBUF0. Передаютсявосемь бит данных, МЗР вперед (см. временные диаграммы на рис.22.2). Флаг прерывания от передатчика TI0(SCON0.1) устанавливается в 1 в конце восьмого битового интервала.