- •1. Функциональная схема
- •2. Описание принципиальной схемы
- •2.1. Микроконтроллер Microchip pic16f747
- •2.1.1. Карта памяти
- •2.1.2. Реализация интерфейса i2c Концепция шины i2c
- •2.2. Блок ацп
- •2.3. Блок цап
- •2.4. Клавиатура и дисплей
- •4. Программная часть. Программа опроса клавиатуры
- •3. Разработка блока питания
- •Список использованных источников
2.1.1. Карта памяти
Общие сведения о памяти контроллера PIC16F747 приведены на рис. 4 и 5.

Рис. 4. Организация ОЗУ в PIC16F747

Рис. 4. Организация регистров в PIC16F747
8-битовая шина данных соединяет два основных функциональных элемента вместе: набор регистров (включая порты) и арифметико-логическое устройство. Первые 32 байта ОЗУ адресуются прямо и называются "Банк 0". Область ОЗУ организована как 128 х 8. К ячейкам ОЗУ можно адресоваться прямо или косвенно, через регистр указатель (банка) FSR (04h). Это также относится и к EEPROM памяти данных-констант.
Непосредственная адресация к константам организуется при помощи специальных команд, которые загружают в рабочий регистр W данные из программной памяти. Все регистры могут быть разделены на две функциональные группы: регистры специальных функций и регистры общего назначения. К регистрам специальных функций относятся: счетчик реального времени или внешних событий, программный счетчик (PC), регистр статуса, регистры ввода/вывода, регистр указатель банка (FSR), регистр конфигурации и управления предделителем частоты. Регистры общего назначения используются для хранения переменных пользователя.
В регистре STATUS (03 или 83h) есть биты выбора страниц, которые позволяют обращаться к четырем страницам будущих модификаций этого кристалла. Первые 32 адресов используются для размещения регистров специального назначения. Регистры с адресами 20h7Fh могут быть использованы, как регистры общего назначения, которые представляют собой статическое ОЗУ. Некоторые регистры специального назначения продублированы на страницах, а некоторые расположены на странице 1 отдельно. Когда установлена страница 1, то обращение к адресам 80hFFh фактически адресует страницу 0.
Энергонезависимая память данных предназначена для длительного хранения констант, которые могут подстраиваться процессе наладки и/или работы устройства, например, различные настроечные параметры или данные о состоянии устройства перед выключением питания.
2.1.2. Реализация интерфейса i2c Концепция шины i2c
Шина I2C поддерживает любую технологию изготовления микросхем (НМОП, КМОП, биполярную). Две линии, данных (SDA) и синхронизации (SCL) служат для переноса информации. Каждое устройство распознается по уникальному адресу - будь то микроконтроллер, ЖКИ буфер, память или интерфейс клавиатуры - и может работать как передатчик или приёмник, в зависимости от назначения устройства. Обычно ЖКИ буфер - только приёмник, а память может как принимать, так и передавать данные. Кроме того, устройства могут быть классифицированы как ведущие и ведомые при передаче данных . Ведущий - это устройство, которое инициирует передачу данных и вырабатывает сигналы синхронизации. При этом любое адресуемое устройство считается ведомым по отношению к ведущему.
Рис.
5.
Пример конфигурации шины I2C
с двумя микроконтроллерами
1. Микроконтроллер А
2. Массив
3. ЖКИ драйвер
4. АЦП
5. Статическая ОЗУ или ППЗУ
6. Микроконтроллер B
Шина I2C допускает несколько ведущих. Это означает, что более чем одно устройство, способное управлять шиной, может быть подключено к ней. Поскольку в качестве ведущих обычно выступают микроконтроллеры, давайте рассмотрим пример пересылки данных между двумя микроконтроллерами, подключенными к шине (рис 5). Пример покажет взаимоотношения передатчик-приемник и ведущий-ведомый, существующие в шине I2C. Необходимо заметить, что эти отношения не постоянны, а зависят только от направления пересылки данных в данный момент времени. Пересылка данных будет происходить следующим образом:
1. Пусть микроконтроллер А желает послать информацию в микроконтроллер В:
микроконтроллер А (ведущий) адресует микроконтроллер В (ведомый)
микроконтроллер А (ведущий-передатчик) посылает данные микроконтроллеру В (ведомый-приёмник)
микроконтроллер А заканчивает пересылку
2. Пусть микроконтроллер А желает принять информацию от микроконтроллера В:
микроконтроллер А (ведущий) адресует микроконтроллер В (ведомый)
микроконтроллер А (ведущий-приемник) принимает данные от микроконтроллера В (ведомый-передатчик)
микроконтроллер А заканчивает пересылку
В обоих случаях ведущий (микроконтроллер А) генерирует синхроимпульсы и заканчивает пересылку.
Возможность подключения более одного микроконтроллера к шине означает, что более чем один ведущий может попытаться начать пересылку в один и тот же момент времени. Для устранения хаоса, который может возникнуть в данном случае, разработана процедура арбитража. Эта процедура основана на том, что все I2C-устройства подключаются к шине по правилу монтажного И.
Генерация синхросигнала - это всегда обязанность ведущего; каждый ведущий генерирует свой собственный сигнал синхронизации при пересылке данных по шине. Сигнал синхронизации может быть изменен только если он “вытягивается” медленным ведомым устройством (путем удержания линии в низком состоянии), или другим ведущим, если происходит столкновение.
В состав PIC16F747 входит аппаратный контроллер шины I2C. Большая часть необходимых аппаратных средств интегрирована на кристалле контроллера, поэтому из внешних элементов требуются лишь подтягивающие резисторы R2, R3 сопротивлением 1кОм.
