F18-19 (1041602), страница 17
Текст из файла (страница 17)
Второй является нижним разделом и состоит из всех ячеек памяти программ с адресами от0x0000 до SRL адреса (не включая сам адрес SRL). Программа, запущенная в верхнем разделе, можетисполнять код из нижнего раздела, но ей запрещено читать ячейки из нижнего раздела, используя командуMOVC. (Выполнение команды MOVC из верхнего раздела с адресом источника, указывающим на нижнийраздел, всегда в качестве результата будет возвращать значение 0x00.) Программа, запущенная в нижнемразделе, может обращаться к ячейкам памяти как из верхнего, так и из нижнего разделов без ограничений.Дополнительные встроенные фирменные программы следует размещать в нижнем разделе. При сбросеуправление передается этим программам через вектор сброса. Как только завершится процесс начальнойинициализации, произойдет переход по предопределенному адресу в верхнем разделе.
Программа, запущеннаяв верхнем разделе, может выполнять программный код из нижнего раздела, если известны точки входа, но неможет прочитать содержимое нижнего раздела. Программному коду, запущенному в нижнем разделе,параметры могут передаваться следующим образом:- параметры размещаются в стеке до вызова программного кода из нижнего раздела;- параметры размещаются в регистрах внутреннего ОЗУ до вызова программного кода из нижнегораздела;- параметры размещаются в определенных ячейках памяти в верхнем разделе.Адрес SRL задается в регистре ограничения доступа к Flash-памяти (FLACL).
16-разрядный SRL адресвычисляется как 0xNN00, где NN представляет собой содержимое регистра FLACL. Таким образом, адрес SRLможно задать в любом месте пространства памяти программ на границах 256-байтных секторов. Однако, 512байтный размер сектора стирания требует использовать в качестве адреса SRL границы 512-байтных секторов.При сбросе в регистр FLACL по умолчанию записывается 0x00, устанавливая тем самым адрес SRL 0x0000 иразрешая доступ по чтению ко всем ячейкам памяти программ.Рисунок 9.3.
FLACL: Регистр ограничения доступа к Flash-памятиR/WR/WR/WR/WR/WR/WR/WR/WБит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0Значениепри сбросе:00000000Бит 7SFR Адрес:0xB7Биты 7-0: FLACL: Адрес границы программно-доступной области Flash-памяти.Этот регистр содержит старший байт 16-разрядного адреса границы области памяти программ, доступнойдля операций чтения/записи/стирания. Значение полного 16-разрядного адреса ограничения доступарассчитывается как 0xNN00, где NN заменяется содержимым регистра FLACL. Запись в этот региструстанавливает адрес границы программно-доступной области Flash-памяти. Этот регистр может бытьзаписан только один раз после сброса.
Все последующие попытки записать этот регистригнорируются до следующего сброса.Ред. 1.272C8051F018C8051F019Рисунок 9.4. FLSCL: Регистр делителя модуля Flash-памятиR/WFOSER/WFRAER/W-R/W-R/WR/WR/WR/WБит 7Бит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0Значениепри сбросе:10001111SFR Адрес:0xB6Бит 7: FOSE: Включение ждущего таймера модуля Flash-памяти0: Ждущий таймер модуля Flash-памяти выключен.1: Ждущий таймер модуля Flash-памяти включен.Бит 6: FRAE: Разрешение постоянного чтения Flash-памяти0: Чтением Flash-памяти управляет ждущий таймер.1: Flash-память всегда в режиме чтения.Биты 5-4: Не используются. Читаются как 00b.Биты 3-0: FLASCL: Делитель модуля Flash-памяти.Этот регистр устанавливает значение делителя для заданной системной тактовой частоты.Делитель необходим для генерации корректных временных интервалов, требуемых модулемFlash-памяти для выполнения операций записи/стирания.
Если значение делителя равно 1111b,операции записи/стирания Flash-памяти запрещены.0000: Системная тактовая частота < 50 кГц0001: 50 кГц ≤ Системная тактовая частота < 100 кГц0010: 100 кГц ≤ Системная тактовая частота < 200 кГц0011: 200 кГц ≤ Системная тактовая частота < 400 кГц0100: 400 кГц ≤ Системная тактовая частота < 800 кГц0101: 800 кГц ≤ Системная тактовая частота < 1.6 МГц0110: 1.6 МГц ≤ Системная тактовая частота < 3.2 МГц0111: 3.2 МГц ≤ Системная тактовая частота < 6.4 МГц1000: 6.4 МГц ≤ Системная тактовая частота < 12.8 МГц1001: 12.8 МГц ≤ Системная тактовая частота < 25.6 МГц1010: 25.6 МГц ≤ Системная тактовая частота < 51.2 МГц *1011, 1100, 1101, 1110: Зарезервированные значения.1111: Операции записи/стирания Flash-памяти запрещены.Значение делителя представляет собой наименьшее значение, удовлетворяющее следующей формуле:FLASCL > log2(Системная тактовая частота / 50 кГц)* Для тестирования.
Функционирование МК C8051F018/19 на частотах выше 25МГц не гарантируется.73Ред. 1.2C8051F018C8051F01910. ВНЕШНЕЕ ОЗУМК C8051F018/19 включают 1024 байт ОЗУ, отображенные в пространстве внешней памяти данных.Доступ к ним осуществляется с использованием команды MOVX и указателя данных DPTR, либо сиспользованием команды MOVX с косвенным режимом адресации.
Если команда MOVX используется с 8битным операндом адреса (например, @R1), то старший байт 16-битного адреса берется из регистрауправления интерфейсом внешней памяти EMI0CN (см. рис.10.1). Примечание: команда MOVX такжеиспользуется для записи во Flash-память (см. раздел 9). По умолчанию команда MOVX получает доступк внешнему ОЗУ (XRAM), т.е. PSTCL.0 = 0.Для любого режима адресации старшие 5 бит 16-битного адреса внешней памяти данных “не имеютзначения”. В результате, 1024-байтное ОЗУ отображается в виде модулей во всем 64-Кбайтном диапазонеадресов внешней памяти данных.
Например, адреса 0x0000, 0x0400, 0x0800, 0x0C00, 0x1000 и т.д. указывают наодин и тот же байт XRAM. Это свойство полезно при осуществлении линейного заполнения памяти, т.к. нетнеобходимости сбрасывать указатель адреса при достижении границы блока ОЗУ.Рисунок 10.1. EMI0CN: Регистр управления интерфейсом внешнего ОЗУR-R-R-R-R-R/W-Бит 7Бит 6Бит 5Бит 4Бит 3Бит 2R/WPGSEL1Бит 1R/WPGSEL0Бит 0Значениепри сбросе:00000000SFR Адрес:0xAFБиты 7-2: Не используются. Читаются как 000000b.Биты 1-0: PGSEL[1:0]: Биты выбора страницы XRAMБиты выбора страницы XRAM образуют старший байт 16-битного адреса внешней памятиданных при использовании команды MOVX с 8-битным адресом, задавая таким образомнеобходимую 256-байтную страницу ОЗУ.
Старшие 6 бит “не имеют значения”, поэтому1-Кбайтные адресные блоки повторяются модулями во всем 64-Кбайтном пространствеадресов внешней памяти данных.00: xxxxxx00b01: xxxxxx01b10: xxxxxx10b11: xxxxxx11bРед. 1.274C8051F018C8051F01911. ИСТОЧНИКИ СБРОСАСхема сброса позволяет легко перевести МК в предопределенное по умолчанию состояние. Припереходе к этому состоянию сброса CIP-51 останавливает выполнение программы, устанавливает выводывнешних портов в заданное по умолчанию состояние и инициализирует регистры SFR значениями поумолчанию.
Прерывания и таймеры запрещаются. Программный счетчик (РС) сбрасывается и выполнениепрограммы начинается с адреса 0x0000.Все регистры SFR принимают значения по умолчанию. В подробном описании каждого регистра SFRприведено значение, загружаемое в этот регистр при сбросе. Содержимое внутренней памяти данных неизменяется при сбросе и ранее сохраненные данные остаются неизменными. Однако, т.к. регистр указателястека сбрасывается, стек фактически теряется, хотя данные в нем не изменяются.Защелки портов ввода/вывода сбрасываются в состояние 0xFF (все логические единицы), активируявнутренние слаботоковые подтяжки, которые удерживают на внешних портах ввода/вывода высокийлогический уровень. Если источником сброса является схема слежения за напряжением питания или сбросвызван установкой бита PORSF в 1, то на выводе /RST удерживается низкий логический уровень до истечениятаймаута сброса по питанию.При выходе из состояния сброса МК использует внутренний тактовый генератор, работающий поумолчанию на тактовой частоте 2 МГц.
Информация о выборе и настройке источников системного тактовогосигнала приведена в разделе 12. Сторожевой таймер включен и настроен на максимальный таймаут.(Подробное описание сторожевого таймера приведено в разделе 11.8).Семь источников могут перевести МК в состояние сброса: включение/исчезновение питания, внешнийвывод /RST, внешний сигнал CNVSTR, программный сброс, компаратор 0, детектор исчезновениятактирования, сторожевой таймер. Каждый источник сброса описан ниже:Рисунок 11.1. Структурная схема источников сбросаVDDПорт ввода/ВыводаМатрицаCNVSTRСхема слеженияза питаниемCNVRSEF+-Компаратор 0CP0+(монтажное «ИЛИ»)+-CP0-C0RSEFДетекторисчезновениятактированияСторожевойтаймерПрограммный сбросENWDTEnableMCDEnableENКаналсбросаSWRSFPREWDTStrobeТактовыеИмпульсы75Таймаутсброса попитаниюядроCIP-51Ред.
1.2Системный сброс/RSTC8051F018C8051F01911.1. Сброс при включении питания (Power-on Reset - POR)МК C8051F018/19 содержат схему слежения за напряжением питания, которая удерживает МК всостоянии сброса, пока напряжение питания VDD не превысит в процессе включения уровень VRST. (См.временную диаграмму на рис.11.2 и электрические характеристики в табл.11.1). В течение таймаута схемыслежения за напряжением питания (100 мс) на выводе /RST удерживается низкий логический уровень, чтопозволяет напряжению питания стабилизироваться.При завершении сброса типа POR флаг PORSF (RSTSRC.1) аппаратно устанавливается в 1.
Все другиефлаги сброса в регистре RSTSRC являются неопределенными. Флаг PORSF сбрасывается в 0 при сбросе отлюбого другого источника. Т.к. при сбросе любого типа выполнение программы начинается с одного и того жеадреса (0x0000), программа может опросить флаг PORSF, чтобы определить, было ли включение питанияпричиной сброса.
Содержимое внутренней памяти данных после сброса типа POR следует считатьнеопределенным.11.2. Программный сбросУстановка в 1 бита PORSF вызовет сброс типа POR, который описан в разделе 11.1.вольтыРисунок 11.2. Временная диаграмма работы схемы слежения за напряжением питания2.80VRST2.40VDD2.01.0tЛог. 1/RST100мс100мсЛог. 011.3. Сброс при исчезновении питания (Power-fail Reset – PFR)Когда при выключении или сбое питания напряжение питания VDD опускается ниже уровня VRST,схема слежения за напряжением питания установит на выводе /RST низкий логический уровень и переведетCIP-51 в состояние сброса (см. рис.11.2).
Когда VDD превысит уровень VRST, CIP-51 выйдет из состояниясброса точно так же, как при сбросе типа POR. Следует иметь ввиду, что, хотя содержимое внутренней памятиданных и не изменяется при сбросе типа PFR, невозможно определить, опускалось ли напряжение VDD нижеуровня, необходимого для сохранения данных. Если флаг PORSF установлен в 1, данные нельзя более считатьдействительными.Ред. 1.276C8051F018C8051F01911.4.