Программная модель устройства (положительная логика)

ВНИМАНИЕ: при компиляции программ с прилагаемыми библиотеками вместо стандартного <m128.h> необходимо использовать <iom128.h> который включает в себя нестандартный <iomacros.h>, основным отличем которых является то что все внутренние регистры ATmega128 отображены на память и обращение к ним происходит через указатели памяти.

Адресное пространство

В качестве центрального микроконтроллера в SMH2010 применена микросхема ATmega128, которая может использовать следующие области памяти:

    FLASH команд 128Кбайт RAM данных 36Кбайт EEPROM 36Кбайт

Вся FLASH команд находится на микросхеме ATmega128. RAM данных состоит из двух участков (см. таблица 1.) один из которых, размером 4Кбайт находится на ATmega128, а другой – внешний по отношению к данной микросхеме размером 32Кбайт. EEPROM имеет конфигурацию аналогичную RAM, за тем исключением, что внешняя, по отношению к ATmega128 часть имеет последовательный, доступ по шине I2C.

Распределение адресного пространства SMH2010 таблица 1.

Тип

Начало

Длина

Примечание

FLASH

0x00000

0x20000

RAM внутреннее

0x0000

0x1000

RAM внешнее

0x8000

0x8000

EEPROM внутреннее

0x0000

0x1000

EEPROM внешнее

0x0000

0x8000

адрес устройства по I2C 00, на ножках

A0=0, A1=0

Управление внешней RAM.

Управление внешней RAM производится линией ATmega128 PortC-7. Положительный потенциал (лог “1”) на этой линии запрещает выборку микросхемы внешней RAM, нулевой (лог “0”) разрешает ее. Линия PortE-7 имеет внешнюю подтяжку.

НЕ нашли? Не то? Что вы ищете?

Пространство Ввода-Вывода.

Данное пространство организовано как шина с индивидуальным выбором устройств на нем. В пространстве ввода-вывода находятся следующие устройства:

    Регистр выходных разовых команд Регистр контроля выходных разовых команд Регистр входных разовых команд Регистр входных разовых команд и опроса клавиатуры Регистры алфавитно-цифрового дисплея

В качестве шины В/В в ATmega128 используется порт B, а в качестве сигналов выбора отдельные линии портов E и D.

Каждое из перечисленных устройств имеет определенный тип доступа (см. таблица 2.). Обращение к ним происходит с помощью индивидуальных сигналов выбора конкретного регистра по следующему алгоритму. В исходном состоянии направление передачи данных по шине В/В на прием, а линии сигналов выбора устройств в должны выдавать высокий потенциал лог. “1”. По началу обращения устанавливается направление передачи данных по шине, с помощью внутренних управляющих регистров в ATmega128, а затем если осуществляется запись, на шину устанавливаются данные на запись и с помощью аналогичных регистров выдается сигнал выбора того устройства к которому происходит обращение, если же осуществляется чтение то сначала выдается сигнал выбора а затем производится чтение данных с шины. После чего сигнал выбора устройства возвращается в исходное состояние.

ВНИМАНИЕ: При окончании обращения к устройствам направление шины В/В должно устанавливаться на прием. Сигнал выборки устройства должен устанавливаться в исходное состояние. В момент обращения прерывания ATmega128 должны быть запрещены (критическая секция) во избежание одновременной выборки различных устройств.

Распределение пространства В/В SMH2010 таблица 2.

Устройство

Тип Доступа

Линия Выборки

(порт – бит в ATmega128)

Примечания

Регистр выходных РК

W

PortE – 4

МС DD9

Регистр контроля выходных РК

R

PortD – 7

МС DD12

Регистр входных РК

R

PortE – 5

МС DD11

Регистр входных РК и опроса клавиатуры

R

PortD – 6

МС DD10

Положительный Импульс на PortВ – 4

Регистр команд дисплея

W

PortD – 5

Лог 0

на PortD - 4

Регистр данных дисплея

W

PortD - 5

Лог 1

на PortD - 4

Управление каналами RS485

На плате установлены 2 последовательных интерфейса RS485 причем на Com0 (ATmega128) установлен полу - дуплекс а на Com1 полный дуплекс. Оба интерфейса имеют возможность управления передачей данных. Для Com0 - это линия PortE-2, а для Com1 – линия PortE-3. Положительный потенциал (лог “1”) на линии управления конкретного интерфейса разрешает выдачу данных в последовательный канал. Нулевой потенциал (лог “0”) запрещает ее, т. е. переводит выходы передатчика в высокоимпедансное состояние.

Управление дисплеем.

В управлении дисплеем существуют следующие особенности. В данной схеме не реализована возможность чтения данных и состояния дисплея. Кроме того для повышения устойчивости к импульсным помехам рекомендуется сигнал “E” (enable) дисплея (PortD-5) использовать в инверсном режиме т. е. постоянный потенциал на нем д. б. положительным а в момент выборки дисплея на эту линию рекомендуется подавать короткий отрицательной импульс. Поскольку опытным путем было установлено, что дисплей реагирует не на потенциал, а на нарастающий фронт. Это свойство было использовано при проектировании принципиальной схемы, в частности в способе записи/чтения регистра входных РК и опроса клавиатуры, в связи с чем другой способ обращения к дисплею может привести к неправильной работе шины В/В.

Особенности работы с регистрами.

Сигналы выборки заводятся на разные сигналы регистров, например для регистра входных РК и регистра контроля выходных РК он заведен и на сигнал разрешения, и на сигнал защелки, для регистра выходных РК он заведен на сигнал защелки.

Механизм чтения и записи регистров был описан выше единственным регистром доступ к которому осуществляется иначе, является регистр РК и опроса клавиатуры. Особенность обращения к регистру заключается в следующем. Так как данный регистр предназначен и для чтения разовых команд, и для сканирования клавиатуры, то на сигналы выборки и защелки заведены различные сигналы управления и работа с ним выглядит следующим образом. Для того чтобы прочитать состояние четырех РК и четырех линий клавиатуры необходимо перед выдачей (или одновременно с ней) сигнала выборки, что бы зафиксировать состояние, подать на линию PortD-4 низкий потенциал, после чего можно читать состояние входных РК и линий клавиатуры.