F00-17 (1041601), страница 30
Текст из файла (страница 30)
Когда устанавливается флаг ошибки режима, биты MSTEN и SPIENPage 124CYGNAL Integrated Products, Inc. 20024.2002; Rev. 1.4C8051F000/1/2/5/6/7C8051F010/1/2/5/6/7регистра управления модуля SPI аппаратно сбрасываются в 0, при этом модуль SPI переходит всостояние “off-line”. В среде с несколькими ведущими перед установкой бита MSTEN и инициациейсеанса обмена системному контроллеру необходимо проверять состояние флага SLVSEL (SPI0CN.2),чтобы убедиться, что шина свободна.17.3.
ТактированиеКак показано на рис.17.3, используя биты управления тактовой частотой регистра конфигурациимодуля SPI (SPI0CFG), можно выбрать четыре комбинации фазы и полярности импульсов тактированияпоследовательного интерфейса. Бит CKPHA (SPI0CFG.7) выбирает одну из двух фаз тактового сигнала(фронт, используемый для фиксации данных). Бит CKPOL (SPI0CFG.6) задает активный уровень(высокий или низкий) тактового сигнала. Как ведущий, так и ведомые устройства должны бытьнастроены на использование одинаковых фазы и полярности тактовых импульсов.
Примечание: приизменении фазы и полярности тактовых импульсов модуль SPI следует отключить сбросом в 0 битаSPIEN (SPI0CN.0).Регистр установки тактовой частоты модуля SPI (SPI0CKR), показанный на рис.17.7, управляетчастотой тактирования последовательного интерфейса при работе в ведущем режиме. При работе введомом режиме содержимое этого регистра игнорируется.Рисунок 17.4.
Временные диаграммы сигналов данных/тактированияSCK(CKPOL = 0, CKPHA = 0)SCK(CKPOL = 0, CKPHA = 1)SCK(CKPOL = 1, CKPHA = 0)SCK(CKPOL = 1, CKPHA = 1)MISO/MOSIСЗРБит 6Бит 5Бит 4Бит 3Бит 2Бит 1МЗРNSS4.2002; Rev. 1.4CYGNAL Integrated Products, Inc. 2002Page 125C8051F000/1/2/5/6/7C8051F010/1/2/5/6/717.4.
Регистры специального назначения модуля SPIДля доступа к интерфейсу SPI и управления им используются четыре регистра специальногоназначения: регистр управления SPI0CN, регистр данных SPI0DAT, регистр конфигурации SPI0CFG ирегистр установки тактовой частоты SPI0CKR.
Все эти регистры описаны в следующих разделах.Рисунок 17.5. SPI0CFG: Регистр конфигурации модуля SPIR/WR/WRRRR/WR/WR/WCKPHACKPOLBC2BC1BC0SPIFRS2SPIFRS1SPIFRS0Значениепри сбросе:Бит 7Бит 6Бит 5Бит 4Бит 1Бит 000000111Бит 3Бит 2SFR Адрес:0x9AБит 7: CKPHA: Выбор активной фазы тактового сигнала модуля SPIЭтот бит управляет фазой тактового сигнала модуля SPI.0: Данные фиксируются по первому фронту периода сигнала SCK.1: Данные фиксируются по второму фронту периода сигнала SCK.Бит 6: CKPOL: Выбор полярности тактового сигнала модуля SPI.Этот бит управляет полярностью тактового сигнала модуля SPI.0: В состоянии простоя на линии SCK установлен сигнал низкого уровня.1: В состоянии простоя на линии SCK установлен сигнал высокого уровня.Биты 5-3: BC2-BC0: Счетчик бит модуля SPI.Эти биты показывают, какой бит слова данных модуля SPI передается.00001111BC2-BC00011001101010101Передаваемый битБит 0 (МЗР)Бит 1Бит 2Бит 3Бит 4Бит 5Бит 6Бит 7 (СЗР)Биты 2-0: SPIFRS2-SPIFRS0: SPI Frame Size.Эти три бита в ведущем режиме определяют количество бит, которые в процессепередачи сдвигаются в регистр сдвига (выдвигаются из регистра сдвига) модуля SPI.В ведомом режиме эти биты игнорируются.00001111SPIFRS0011001101010101Количество сдвигаемых бит12345678.Page 126CYGNAL Integrated Products, Inc.
20024.2002; Rev. 1.4C8051F000/1/2/5/6/7C8051F010/1/2/5/6/7Рисунок 17.6. SPI0CN: Регистр управления модуля SPIR/WR/WR/WR/WRRR/WR/WSPIFWCOLMODFRXOVRNTXBSYSLVSELMSTENSPIENЗначениепри сбросе:Бит 7Бит 6Бит 5Бит 4Бит 3Бит 000000000Бит 2Бит 1(доступен в битовомрежиме адресации)SFR Адрес:0xF8Бит 7: SPIF: Флаг прерывания от модуля SPI.Этот бит аппаратно устанавливается в 1 по окончании передачи данных. Если прерыванияразрешены, то установка этого бита приведет к переходу на процедуру обслуживания прерыванияот модуля SPI. Этот бит не сбрасывается аппаратно, его необходимо сбросить программно.Бит 6: WCOL: Флаг конфликта записи.Этот бит аппаратно устанавливается в 1 (и генерирует прерывание от модуля SPI) и тем самымпоказывает, что была произведена попытка записи в регистр данных модуля SPI, когда текущийсеанс передачи данных еще не завершился.
Этот флаг сбрасывается программно.Бит 5: MODF: Флаг ошибки режима.Этот бит аппаратно устанавливается в 1 (и генерирует прерывание от модуля SPI) приобнаружении конфликта ведущего режима (на линии NSS низкий уровень и MSTEN = 1). Этот битне сбрасывается аппаратно, его необходимо сбросить программно.Бит 4: RXOVRN: Флаг переполнения приемника.Этот бит аппаратно устанавливается в 1 (и генерирует прерывание от модуля SPI), еслиприемный буфер все еще содержит непрочитанные данные от предыдущей передачи, а последнийбит текущей передачи сдвигается в регистр сдвига модуля SPI.
Этот бит не сбрасываетсяаппаратно, его необходимо сбросить программно.Бит 3: TXBSY: Флаг занятости передатчика.Этот бит аппаратно устанавливается в 1 при осуществлении передачи данных в ведущем режиме.Он сбрасывается аппаратно по окончании передачи данных.Бит 2: SLVSEL: Флаг выбора ведомого.Этот бит аппаратно устанавливается в 1 всякий раз, когда на линию NSS подан сигнал низкогоуровня, и показывает, что ведомый включен.
Этот флаг сбрасывается в 0, когда на линии NSSприсутствует сигнал высокого уровня (ведомый отключен).Бит 1: MSTEN: Включение ведущего режимаe.0: Ведущий режим отключен. Модуль SPI работает в ведомом режиме.1: Ведущий режим включен. Модуль SPI работает в ведущем режиме.Бит 0: SPIEN: Включение модуля SPI.Это бит включает/отключает модуль SPI.0: Модуль SPI отключен.1: Модуль SPI включен.4.2002; Rev. 1.4CYGNAL Integrated Products, Inc. 2002Page 127C8051F000/1/2/5/6/7C8051F010/1/2/5/6/7Рисунок 17.7.
SPI0CKR: Регистр установки тактовой частоты модуля SPIR/WR/WR/WR/WR/WR/WR/WR/WSCR7SCR6SCR5SCR4SCR3SCR2SCR1SCR0Значениепри сбросе:Бит 7Бит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 000000000SFR Адрес:0x9DБиты 7-0: SCR7-SCR0: Тактовая частота модуля SPIЭти биты определяют частоту выходного сигнала SCK, когда модуль SPI работает введущем режиме. Частота тактового сигнала SCK представляет собой поделенную наопределенный коэффициент системную тактовую частоту и задается следующимуравнением:fSCK = 0.5 * fSYSCLK / (SPI0CKR + 1), для 0 ≤ SPI0CKR ≤ 255,Рисунок 17.8. SPI0DAT: Регистр данных модуля SPIR/WR/WR/WR/WR/WR/WR/WR/WЗначениепри сбросе:Бит 7Бит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 000000000SFR Адрес:0x9BБиты 7-0: SPI0DAT: Данные передатчика и приемника модуля SPI.Регистр SPI0DAT используется для передачи и приема данных. В ведущем режиме записьданных в регистр SPI0DAT сразу же приводит к загрузке данных в регистр сдвига иинициирует сеанс передачи.
Чтение регистра SPI0DAT возвратит содержимое приемногобуфера.Page 128CYGNAL Integrated Products, Inc. 20024.2002; Rev. 1.4C8051F000/1/2/5/6/7C8051F010/1/2/5/6/718. УАППУАПП (универсальный асинхронный приемопередатчик) представляет собой последовательныйпорт, обеспечивающий асинхронную передачу данных.
УАПП может функционировать в полнодуплексномрежиме. Во всех режимах принимаемые данные буферизуются в регистре ременного хранения. Это позволяетУАПП начать прием второго входящего байта данных до того, как программа прочитает предыдущий байтданных.С работой УАПП связаны следующие регистры специального назначения: регистр управления УАПП(SCON) и буфер данных УАПП (SBUF). Одна и та же ячейка SBUF обеспечивает доступ и к региструпередатчика, и к регистру приемника. Операция чтения обращается к регистру приемника, а операция записиобращается к регистру передатчика автоматически.УАПП генерирует прерывания, если они разрешены. УАПП имеет два источника прерываний:- флаг прерываний от передатчика TI (SCON.1), устанавливается, когда передача байта данных завершена;- флаг прерываний от приемника RI (SCON.0), устанавливается, когда завершен прием байта данных.Флаги прерываний от УАПП не сбрасываются аппаратно при переходе к процедуре обслуживанияпрерывания.
Они должны сбрасываться программно. Это позволяет программе определить причину,вызвавшую прерывание от УАПП (завершение передачи или завершение приема).Рисунок 18.1. Структурная схема УАППSFR шинаPCONSCONSMODЗаписьв SBUFT2CONS S S R T R T RM M M E B B I I0 1 2 N 8 8RCLKTB8TCLKSETDSBUFQTXCLRМатрицаДетектор нуляЛогика генератора скорости обмена120016Тактирование TxSM0, SM1{РЕЖИМ}ПереполнениеТаймера 21RCLK321640SYSCLKПрерывание отпоследовательногопорта011011RENRB8RI0016ПередачаПрерывание TxTITCLK0ДанныеУправление передатчиком (Tx)000110111SMODСдвигГенерациябита STOPСтартПереполнениеТаймера 1Прерывание Rx Включение СЗРТактирование RxЗагрузкаSBUFУправление приемником (Rx)СдвигСтартПортввода/вывода0x1FFБитовый детекторВходной регистрсдвига (9 бит)SMOD12ShiftЗагрузка SBUFSBUFЧтениеSBUFSFR шинаRX4.2002; Rev.
1.4CYGNAL Integrated Products, Inc. 2002МатрицаPage 129C8051F000/1/2/5/6/7C8051F010/1/2/5/6/718.1. Режимы работы УАППУАПП поддерживает четыре режима работы (один синхронный и три асинхронных), задаваемыебитами конфигурации в регистре SCON. Эти четыре режима различаются скоростью передачи данных ипротоколом обмена.
В табл.18.1 приведены основные характеристики режимов работы УАПП. В следующихразделах режимы работы УАПП описаны более подробно.Таблица 18.1. Режимы работы УАППРежимСинхронизацияСкорость передачи данных0123СинхронныйАсинхронныйАсинхронныйАсинхронныйSYSCLK/12Переполнение Таймера 1 или Таймера 2SYSCLK/32 или SYSCLK/64Переполнение Таймера 1 или Таймера 2Битыданных8899БитыСтарт/СтопНет1 Старт, 1 Стоп1 Старт, 1 Стоп1 Старт, 1 Стоп18.1.1. Режим 0: Синхронный режимРежим 0 обеспечивает синхронный, полудуплексный обмен данными.
Последовательные данныепередаются и принимаются через внешний вывод RX. Через внешний вывод TX выдаются импульсы сдвигакак для передачи, так и для приема данных. МК должен быть ведущим, т.к. он генерирует импульсы сдвигадля передачи данных в обоих направлениях (см. рис.18.2).Передаются/принимаются восемь бит данных, МЗР вперед (см. временные диаграммы на рис.18.3).Передача данных начинается, когда происходит запись байта данных в регистр SBUF. Флаг прерывания отпередатчика TI (SCON.1) устанавливается в 1 в конце восьмого битового интервала.