МИКРОСХЕМА КР512ВИ1 Назначение микросхемы: Микросхема КР512ВИ1 предназначена для работы в составе микропроцессорного комплекса в качестве часов реального времени с будильником, календарем, а также ОЗУ общего назначения емкостью 50. байт. Аналог часов и CMOS SETUP в старых IBM PC. Настоящий компьютер должен уметь работать в режиме реального времени! Микросхема выполнена по КМОП технологии с ТТЛ-совместимыми входами и выходами. ВАРИАНТ ДЛЯ ВКЛЮЧЕНИЯ М/СХЕМЫ НЕПОСРЕДСТВЕННО В СИСТЕМНУЮ МАГИСТРАЛЬ БК-0010, БК-0011 К системной магистрали и к управляющим сигналам м/схема подключена через контроллер, собранный на 4-х 14-ножечных корпусах 555 и 1533 серии. Ток потребления контроллера менее 15мА. Также в контроллере установлен датчик питания для подачи "1" от батареи на вывод CE при выключении компьютера. Для питания часов и ОЗУ при выключении сети использованы 3 элемента Д-0,12 с небольшой подпиткой при включенной сети, хотя можно использовать элементы значительно меньшей емкости (ток потребления меньше 0,3 ма). Для прерывания от часов использован вектор IRQ3 (270), так как IRQ2 (100) уже забит кучей программ (хотя это и неправильно). Для использования на БК10 нужна незначительная доделка машины (155ИР1, один резистор и два проводника). Для защиты от неумышленной записи в микросхему добавлен доступный по записи байтовый регистр, собранный на 3-х корпусах 555 серии. Адрес 177662. Обращение к регистру только как к байту (например MOVB #1, @#177662, MOV не работает) поэтому конфликтов со стандартными программами не происходит. К сожалению, для установки этого регистра надо лезть в схему БК, что не желательно. Об этом надо подумать, так как защита обязательно(!) нужна. Вопрос будет решаться, так как кроме защиты КР512ВИ1 нужны еще регистры доступные по записи и по чтению для управления внешними устройствами, а 177714 уже забит дальше некуда. Назначение разрядов: 177662 (мл. байт) ┌──────────────────┬─┬─┬─┬─┬─┬─┬─┬─┐ │Разряды регистра │7│6│5│4│3│2│1│0│ ├──────────────────┼─┼─┼─┼─┼─┼─┼─┼─┤ │ │*│*│*│*│*│*│*│X│ └──────────────────┴─┴─┴─┴─┴─┴─┴─┴─┘ 0 разряд - 1-разрешена запись в КР512ВИ1, 0-запрещена, остальные разряды пока не задействованы. Примечания для БК: 1) Данные при записи и чтении инвертированы. Это связано с тем, что сама магистраль БК (МПИ) инвертирована. Также, установить бит - записать 0, сбросить - записать 1. 2) Сигнал RESET подается только один раз при включении питания. Если у Вас стоит батарея подпитки при выключении питания, то при подключении батареи. 3) Единица на вывод CE подается при работе от батареи подпитки при выключении сети. 4) Если при выключении сети прерывания были разрешены, то при включении необходимо определить адрес прерывания или запретить прерывания, после чего прочитать регистр C для снятия нуля с вывода IRQ. 5) Нельзя читать информацию из регистров текущего времени, если идет обновление информации. Компьютер может зависнуть. Нужно предварительно проверить бит UIP: 0A: BIT #UIP,@#REG$A BEQ 0A . . . . . . 6) В таблицах адресов микросхемы нечетные адреса не старшие байты, а отдельные 8-и битовые слова и обращаться к ним надо как к словам, а не байтам, например: BIS #SET,@#REG$B, разряды 8-15 читаются нулями. ┌──────────────────┬──┬──┬──┬──┬──┬──┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐ │Разряды системной │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │магистрали БК-0011│15│14│13│12│11│10│9│8│7│6│5│4│3│2│1│0│ ├──────────────────┼──┼──┼──┼──┼──┼──┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤ │Разряды AD0 - AD7 │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │КР512ВИ1 │ *│ *│ *│ *│ *│ *│*│*│7│6│5│4│3│2│1│0│ └──────────────────┴──┴──┴──┴──┴──┴──┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘ * разряды не задействованы, читаются нулями. Схема включения КР512ВИ1 ┌───┬───────────────────────────┬─ +(3-8)V 10k┌┴┐ ┌┴┐20k │ │/│ │/│ │ 4700 └┬┘ └┬┘ 18 ┌─────┬───┬─────┐ │ ┌───┤├───┼───┴──────┤RESET│RTC│ │ │ │ │ 22 │ │ │ │ 24│ ├───┤├───┴──────────┤ PS │ │ VDD ├────┘ │ 4700 ├─────┤ │ │ 12 │ ┌ 4 ─┤ AD0 │ │ VSS ├────┐ │ │ 5 ─┤ AD1 │ │ │ │ │ │ 6 ─┤ AD2 │ ├─────┤ ─┴─ │ к системной │ 7 ─┤ AD3 │ │ │ │ магистрали ┤ 8 ─┤ AD4 │ │ │ │ │ 9 ─┤ AD5 │ │ │ │ │ 10 ─┤ AD6 │ │ │ │ └ 11 ─┤ AD7 │ │ │ │ ├─────┤ │ │ │ ┌ 14 ─┤ AS │ │ │ запрос прерывания │ к контрол- │ 17 ─┤ DS │ │ IRQ ├─ 19 по вектору 270 │ леру 512ВИ1 ┤ 15 ─┤ R/W │ │ │ │ └ 13 ─┤ CE │ ├─────┤ │ подключен к ├─────┤ │ SQW ├─ 23 свободен │ выводу 24 м/с 20 ─┤CKFS │ │CKOUT├─ 21 свободен │ 10 2 ├─────┤ ├─────┤ 3 ├─────┤├────┬────┬──┤OSC1 │ │OSC2 ├─┐ │ │ ┌┴┐ └─────┴───┴─────┘ │ │ ─┴─ │/│22M │ │ Q ┌───┐ └┬┘ │ │ 32768Гц └───┘ ├────────────────────┘ │ ─┬─ ┌┴┐ │ │ │/│470k │ 20 │ └┬┘ ├─────┤├────┴────┘ ─┴─ Назначение выводов микросхемы КР512ВИ1 OSC1-OSC2 - подключение кварцевого резонатора (32768, 1048576, 4194304) гц. Если генератор уже есть, подключить к OSC1. При использовании кварцевых резонаторов на частоты 1048576 или 4194304 гц резистор 470k заменяется перемычкой. CKOUT - выход тактовой частоты непосредственно (CKFS=1) или после деления на 4 (CKFS=0). SQW - выход частоты, установленной разрядами RS0-RS3 регистра A. IRQ - запрос прерывания. Сигнализация процессору, что произошло событие, требующее программной обработки (обновление информации о времени или срабатывание будильника). Возможна генерация запросов на прерывание с периодом, равным периоду сигнала на выходе SQW. Выход выполнен с открытым стоком. RESET - для установки в исходное состояние узлов микросхемы, ответственных за работу с микропроцессорной системой. На ход часов, календарь и ячейки ОЗУ сигнал не влияет. Низкий уровень должен поддерживаться не менее 5 мкс после включения питания. PS - датчик питания. Позволяет процессору определить, не снималось ли напряжение питания с микросхемы. При пропадании питания на время более 5 мкс в старший разряд регистра D запишется 0. AD0-AD7 - шина адреса/данных. AS ------ строб адреса DS ------ строб данных R/W ----- чтение/запись CE ------ выбор микросхемы VDD ----- напряжение питания (3-8) вольт VSS ----- общий Таблица 1 Распределение памяти микросхемы КР512ВИ1 ┌─────────┬────────┬─────────────────────┐ │Адрес БК │Адрес PC│ Данные │ ├─────────┼────────┼─────────────────────┤ │ 177077 │ 00h │ Секунды │ │ 177076 │ 01h │ Секунды (будильник) │ │ 177075 │ 02h │ Минуты │ │ 177074 │ 03h │ Минуты (будильник) │ │ 177073 │ 04h │ Часы │ │ 177072 │ 05h │ Часы (будильник) │ │ 177071 │ 06h │ День недели │ │ 177070 │ 07h │ День месяца │ │ 177067 │ 08h │ Месяц │ │ 177066 │ 09h │ Год │ ├─────────┼────────┼─────────────────────┤ │ 177065 │ 0Ah │ Регистр A │ │ 177064 │ 0Bh │ Регистр B │ │ 177063 │ 0Ch │ Регистр C │ │ 177062 │ 0Dh │ Регистр D │ ├─────────┼────────┼─────────────────────┤ │с 177000 │ с 0Eh │ОЗУ общего назначения│ │по 177061│по 3Fh │(назначение далее) │ ├─────────┼────────┼─────────────────────┤ │ 177061 │ │ Копия регистра C │ │ 177060 │ │ Копия регистра D │ │ 177013 │ 32h │ Год (2 ст. цифры) │ └─────────┴────────┴─────────────────────┘ Таблица 2 Формат управляющих регистров ┌───────┬──────┬─────────────────────────────────────────┐ │ │ │ Разряд регистра │ │Регистр│Адрес ├─────┬────┬────┬────┬────┬────┬─────┬────┤ │ │ │ 7 │ 6 │ 5 │ 4 │ 3 │ 2 │ 1 │ 0 │ ├───────┼──────┼─────┼────┼────┼────┼────┼────┼─────┼────┤ │ A │177065│UIP* │DV2 │DV1 │DV0 │RS3 │RS2 │ RS1 │RS0 │ ├───────┼──────┼─────┼────┼────┼────┼────┼────┼─────┼────┤ │ B │177064│SET │PIE │AIE │UIE │SQWE│ DM │24/12│DSE │ ├───────┼──────┼─────┼────┼────┼────┼────┼────┼─────┼────┤ │ C │177063│IRQF*│ PF*│ AF*│ UF*│ 1* │ 1* │ 1* │ 1* │ ├───────┼──────┼─────┼────┼────┼────┼────┼────┼─────┼────┤ │ D │177062│VRT* │ 1* │ 1* │ 1* │ 1* │ 1* │ 1* │ 1* │ └───────┴──────┴─────┴────┴────┴────┴────┴────┴─────┴────┘ * информацию можно только считывать Таблица 3 Установка опорной частоты ┌─────┬─────┬─────┬────────────────┐ │ DV2 │ DV1 │ DV0 │ Частота гц │ ├─────┼─────┼─────┼────────────────┤ │ 1 │ 1 │ 1 │ 4194304 │ │ 1 │ 1 │ 0 │ 1048576 │ │ 1 │ 0 │ 1 │ 32768 │ ├─────┼─────┼─────┼────────────────┤ │ 0 │ 0 │ X │ Сброс делителя │ └─────┴─────┴─────┴────────────────┘ Таблица 4 Установка частоты сигнала SQW и периодических прерываний ┌───┬───┬───┬───┬───────────────────────────────────────────┐ │ │ │ │ │ Опорная частота гц │ │ │ │ │ ├─────────────────────┬─────────────────────┤ │RS3│RS2│RS1│RS0│ 4194304 или 1048576 │ 32768 │ │ │ │ │ ├──────────┬──────────┼──────────┬──────────┤ │ │ │ │ │Частота гц│ Период │Частота гц│ Период │ ├───┼───┼───┼───┼──────────┼──────────┼──────────┼──────────┤ │ 1 │ 1 │ 1 │ 1 │ - │ - │ - │ - │ │ 1 │ 1 │ 1 │ 0 │ 32768 │30,517 мкс│ 256 │3,90625 мс│ │ 1 │ 1 │ 0 │ 1 │ 16384 │61,035 мкс│ 128 │ 7,8125 мс│ │ 1 │ 1 │ 0 │ 0 │ 8192 │122,07 мкс│ 8192 │122,07 мкс│ │ 1 │ 0 │ 1 │ 1 │ 4096 │244,14 мкс│ 4096 │244,14 мкс│ │ 1 │ 0 │ 1 │ 0 │ 2048 │488,28 мкс│ 2048 │488,28 мкс│ │ 1 │ 0 │ 0 │ 1 │ 1024 │976,56 мкс│ 1024 │976,56 мкс│ │ 1 │ 0 │ 0 │ 0 │ 512 │1,95312 мс│ 512 │1,95312 мс│ │ 0 │ 1 │ 1 │ 1 │ 256 │3,90625 мс│ 256 │3,90625 мс│ │ 0 │ 1 │ 1 │ 0 │ 128 │ 7,8125 мс│ 128 │ 7,8125 мс│ │ 0 │ 1 │ 0 │ 1 │ 64 │ 15,625 мс│ 64 │ 15,625 мс│ │ 0 │ 1 │ 0 │ 0 │ 32 │ 31,25 мс│ 32 │ 31,25 мс│ │ 0 │ 0 │ 1 │ 1 │ 16 │ 62,5 мс│ 16 │ 62,5 мс│ │ 0 │ 0 │ 1 │ 0 │ 8 │ 125 мс│ 8 │ 125 мс│ │ 0 │ 0 │ 0 │ 1 │ 4 │ 250 мс│ 4 │ 250 мс│ │ 0 │ 0 │ 0 │ 0 │ 2 │ 500 мс│ 2 │ 500 мс│ └───┴───┴───┴───┴──────────┴──────────┴──────────┴──────────┘ Регистр A UIP - ноль в этом разряде означает, что происходит или начнется менее, чем через 244 мкс обновление информации о времени. Длительность цикла обновления 1984 мкс при тактовой частоте 32768 гц или 248 мкс при других тактовых частотах. UIP можно только считывать, на него не действует сигнал RESET. Записав ноль в разряд SET регистра B, можно запретить обновление и тем самым сбросить UIP. DV0-DV2 - Устанавливают режим работы внутреннего делителя в соответствии с используемой опорной частотой (табл. 3). RS0-RS3 - Устанавливают частоту сигнала на выходе SQW и период повторения периодических прерываний (табл. 4). Регистр B SET - Если в этом разряде записана единица, то каждую секунду выполняется цикл обновления информации о текущем времени и сравнения текущего времени с заданным временем срабатывания будильника. Ноль в этом разряде запрещает обновление, давая возможность записать в регистры времени, календаря и будильника начальные значения. PIE - Ноль в этом разряде означает разрешение прерываний с периодом, задаваемым разрядами RS0-RS3 регистра A. Может быть сброшен сигналом RESET. AIE - Ноль в этом разряде означает разрешение прерываний от будильника. Может быть сброшен сигналом RESET. UIE - Ноль в этом разряде означает разрешение прерываний по окончании цикла обновления. Может быть сброшен сигналом RESET. SQWE - Ноль в этом разряде означает разрешение выдачи сигнала на выход SQW. Может быть сброшен сигналом RESET. DM - Ноль в этом разряде означает, что данные о времени и дате представлены в двоичном виде, единица - в двоично-десятичном. Значение этого разряда нельзя изменять без повторной записи начальных значений в ячейки времени и календаря. 24/12 - Устанавливает 24-часовой (0) или 12-часовой (1) режим счета времени. В 12-часовом режиме время после полудня (PM) отмечается нулем в 8-м разряде регистра часов (адрес 177073). DSE - Разрешение автоматического перехода на летнее время. Когда в этом разряде записан ноль, то в последнее воскресенье апреля после 01 ч 59 мин 59 сек автоматически устанавливается 03 ч 00 мин 00 сек, а в последнее воскресенье октября после 01 ч 59 мин 59 сек следует 01 ч 00 мин 00 сек. Если включен автоматический переход на летнее время, то дни недели кодируются: 1 - воскресенье, 2 - понедельник и т. д. Если не включен, то можно использовать и обычное кодирование: 1 - понедельник, 2 - вторник и т. д. Год кодируется двумя младшими цифрами. Регистр C IRQF - Флаг запроса прерываний. Устанавливается в ноль при выполнении условия: PF*PIE+AF*AIE+UF*UIE=1. Одновременно с установкой IRQF=0 на контакте IRQ устанавливается низкий уровень. Флаг сбрасывается после чтения регистра C или сигналом RESET. PF - Устанавливается в ноль фронтом сигнала на выходе внутреннего делителя частоты, выбранного в соответствии с разрядами RS0-RS3 регистра A. Флаг сбрасывается после чтения регистра C или сигналом RESET. AF - Устанавливается в ноль при совпадении текущего времени с временем, указанным в регистрах будильника. Флаг сбрасывается после чтения регистра C мли сигналом RESET. UF - Устанавливается в ноль после окончания каждого цикла обновления. Флаг сбрасывается после чтения регистра C или сигналом RESET. Регистр D VRT - В этом разряде записывается единица при низком уровне на входе PS. Устанавливается в ноль только считыванием регистра D. Порядок записи и чтения информации После включения питания микросхемы необходимо записать врегистр A код, соответствующий примененному кварцевому резонатору и необходимой частоте сигнала на выходе SQW (или частоте периодических прерываний). Затем в регистр B заносят код с нулем в разряде SET, запрещая таким образом ход часов. Остальные разряды этого кода устанавливают необходимый режим счета времени и генерации запросов прерывания. Записав необходимые данные в регистры текущего времени, времени срабатывания будильника, и т.д., в разряд SET регистра B записывают единицу, разрешая работу часов. Работа микросхемы КР512ВИ1 Когда на входе CE высокий логический уровень, шина AD, входы DS и R/W отключены от шин процессора. Низкий уровень должен быть установлен на входе CE во время действия импульса AS и сохраняться во время всего цикла записи или чтения. Рекомендуется все остальное время поддерживать на CE высокий уровень, так как при этом снижается ток, потребляемый микросхемой. Адрес записывается во внутренний буфер микросхемы по срезу сигнала AS. В этот момент анализируется уровень сигнала на входе DS и в зависимости от него устанавливается дальнейший режим работы входов DS и R/W. Если этот уровень был низким, то во время положительного импульса DS данные будут считаны из микросхемы или записаны в нее. Направление передачи определяется логическим уровнем на входе R/W во время действия импульса DS. Высокий уровень означает чтение из микросхемы, а низкий - запись в нее. При высоком уровне на входе DS в момент среза импульса AS для считывания информации из микросхемы необходимо подать отрицательный импульс DS (на входе R/W высокий уровень), а для записи - отрицательный импульс R/W (на входе DS высокий уровень). """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Описание составлено Крыловым Д.К. (KDK). 1996-1997г. 398-83-12 г.Москва
Назначение микросхемы:
Микросхема КР512ВИ1 предназначена для работы в составе микропроцессорного комплекса в качестве часов реального времени с будильником, календарем, а также ОЗУ общего назначения емкостью 50. байт. Аналог часов и CMOS SETUP в старых IBM PC. Настоящий компьютер должен уметь работать в режиме реального времени!
Микросхема выполнена по КМОП технологии с ТТЛ-совместимыми входами и выходами.
html-cсылка на публикацию
BB-cсылка на публикацию
Прямая ссылка на публикацию