Ремонт принтеров, сканнеров, факсов и остальной офисной техники


назад Оглавление вперед




[47]

Таблица 35. Соответствие обозначений выводов обозначениям сигналов

Обозначение

Обозна-

сигнала

чение

I/O

Описание

в режиме

вывода

программи-

рования

RDY / BSY

PD1

O

0: Прибор занят программированием, 1: Прибор готое

к

новой команде

OE

PD2

Разрешение выхода (Активен низким уровнем)

WR

PD3

Импульс записи (Активен низким уровнем)

BS1

PD4

Выбор байта (бит 0)

XA0

PD5

Режим XTAL (бит 0)

XA1

PD6

Режим XTAL (бит 1)

BS2

PD7

Выбор байта (бит 2 -всегда на низком уровне)

PAGEL

PA0

Загрузка страницы программирования памяти

Биты XA1/XA0 определяют действие, запускаемое по положительному импульсу на XTAL1. Установки битов представлены в следующей таблице:

Таблица 36. Кодирование битов XA1 и XA0

XA1

XA0

Характер действия при поступлении импульса на XTAL1

0

0

Загрузка Flash или EEPROM адреса (старший или младший байт адреса Flash памяти определяет бит BS1)

0

1

Загрузка данных (старший или младший байт адреса Flash памяти определяет бит

BS1)

1

0

Загрузка команды

1

1

Нет действия, ожидание

При поступлении импульсов WR или OE загруженная команда определяет действие на входе или выходе. Команда является байтом, в котором каждый бит определяет функцию, как это отражено в таблице:

Таблица 37. Кодирование битов байта команды

N бита

Выполняемая операция при установленном бите

7

Очистка кристалла

6

Запись бита-предохранителя. Размещаются в байте данных по следующим битам: D5: SPIEN бит-предохранитель, D3: EESAVE бит-предохранитель, D1: SUT1 бит-предохранитель, D0: SUT0 бит-предохранитель (Примечание: запись 0 для программирования, запись 1 для стирания)

5

Запись бита блокирования. Размещаются в байте данных по следующим битам:2: LB2, D1: LB1 (Примечание: запись 0 для программирования)

4

Запись Flash или EEPROM памяти (определяется битом 0)

3

Чтение сигнатуры:

2

Чтение битов блокирования и битов-предохранителей. Размещаются в байте данных по следующим битам5: SPIEN бит-предохранитель, D3: EESAVE бит-предохранитель, D2: LB2, D1: SUT1/LB1, D0: SUT0 (Примечание: состояние 0 программируется)

1

Чтение из Flash или EEPROM памяти (определяется битом 0)

0

0 : Обращение к Flash, 1 : Обращение к EEPROM


Установка режима программирования

Для установки микроконтроллера в режим параллельного программирования используется следующий алгоритм:

1.Подать напряжение 4,5 - 5,5 В между выводами VCC и GND.

2.Установить на выводах RESET и BS низкий уровень и ожидать не менее 100 нс.

3.Подать напряжение 11,5 - 12,5 В на вывод RESET. Состояние вывода BS1 в течение 100 нс после подачи напряжения +12 В меняться не должно, иначе режим программирования установлен не будет.

Очистка кристалла

Операция очистки кристалла очищает Flash и EEPROM память и биты блокирования. Биты блокирования не сбрасываются до тех пор, пока память программ не будет полностью очищена. Состояние битов-предохранителей при очистке кристалла остаются неизменным. Очистка кристалла должна выполняться перед программированием Flash памяти. Загрузка команды очистки кристалла (Chip Erase)

1.Установить биты XA1 и XA0 в состояние 1 и 0. Эта установка разрешает загрузку команды.

2.Установить бит BS1 в состояние 0.

3.Установить биты PB(7 - 0) в состояние 1000 0000. Это команда очистки кристалла.

4.Подать на вывод XTAL1 положительный импульс. Этим импульсом загружается команда и запускается процедура очистки матриц Flash и EEPROM памяти. После подачи импульса на XTAL1 на WR подается отрицательный импульс, чтобы обеспечить в конце цикла стирания памяти стирание бита блокировки, и ожидать по крайней мере 10 мс. Процедура очистки кристалла не приводит к какой либо активности вывода RDY/BSY.

Программирование Flash памяти

Flash память микроконтроллеров ATmega603/103 организован из 256/512 страниц по 256 байт каждая. При программировании Flash памяти данные программы фиксируются в буфере страницы, что позволяет единовременно программировать целую страницу. Ниже приведена процедура, описывающая программирование всего объема Flash памяти.

A: Загрузка команды программирования Flash памяти (Program Flash)

1.Установить биты XA1 и XA0 в состояние 1 и 0, соответственно. Эта установка разрешает загрузку команды.

2.Установить бит BS1 в состояние 0.

3.Установить биты PB(7 - 0) в состояние 0001 0000. Это команда программирования Flash памяти.

4.Подать на вывод XTAL1 положительный импульс. Этим импульсом загружается команда.

B: Загрузка младшего байта адреса

1.Установить биты XA1 и XA0 в состояние 0 и 0. Эта установка разрешает загрузку адреса

2.Установить бит BS1 в состояние 0.

3.Установить в битах PB(7 - 0) младший байт адреса ($00 - $FF).

4.Подать на вывод XTAL1 положительный импульс. Этим импульсом загружается младший байт адреса.


C: Загрузка байта данных

1.Установить биты XA1 и XA0 в состояние 0 и 1, соответственно. Эта установка разрешает загрузку данных.

2.Установить в битах PB(7 - 0) младший байт данных ($00 - $FF).

3.Подать на вывод XTAL1 положительный импульс. Этим импульсом загружается байт данных.

D: Фиксация младшего байта данных

1.Установить бит BS1 в состояние 0. Эта установка выбирает младший байт данных.

2.Подать на вывод PAGEL положительный импульс. Этим импульсом загружается байт данных.

E: Загрузка байта данных

1.Установить биты XA1 и XA0 в состояние 0 и 1, соответственно. Эта установка разрешает загрузку данных.

2.Установить в битах PB(7 - 0) старший байт данных ($00 - $FF).

3.Подать на вывод XTAL1 положительный импульс. Этим импульсом загружается байт данных.

F: Фиксация старшего байта данных

1.Установить бит BS1 в состояние 1. Эта установка выбирает старший байт данных.

2.Подать на вывод PAGEL положительный импульс. Этим импульсом загружается байт данных.

G: Пункты с B по F повторяются 128 раз до полного заполнения буфера страницы. H: Загрузка старшего байта адреса

1.Установить биты XA1 и XA0 в состояние 0 и 0, соответственно. Эта установка разрешает загрузку адреса.

2.Установить бит BS1 в состояние 1. Эта установка выбирает старший байт адреса.

3.Установить в битах PB(7 - 0) старший байт адреса (для Atmega603: $7F, для Atmega103: $FF).

4.Подать на вывод XTAL1 положительный импульс. Этим импульсом загружается старший байт адреса.

I: Программирование страницы

1.Подать на вывод WR отрицательный импульс. Этим импульсом запускается программирование страницы данных. Вывод переходит RDY/BSY на низкий уровень.

2.Ожидать перехода вывода RDY/BSY на высокий уровень. J: Завершение программирования страницы.

1.Установить биты XA1 и XA0 в состояние 1 и 0. Эта установка разрешает загрузку команды.

2.Установить биты PB(7 - 0) в состояние 0000 0000. Это команда «Нет операции».

3.Подать на вывод XTAL1 положительный импульс. Этим импульсом загружается команда и сбрасываются все внутренние сигналы записи.

K: Пункты с A по J повторяются 256/512 раз, или до тех пор, пока все данные не будут запрограммированы.



[стр.Начало] [стр.1] [стр.2] [стр.3] [стр.4] [стр.5] [стр.6] [стр.7] [стр.8] [стр.9] [стр.10] [стр.11] [стр.12] [стр.13] [стр.14] [стр.15] [стр.16] [стр.17] [стр.18] [стр.19] [стр.20] [стр.21] [стр.22] [стр.23] [стр.24] [стр.25] [стр.26] [стр.27] [стр.28] [стр.29] [стр.30] [стр.31] [стр.32] [стр.33] [стр.34] [стр.35] [стр.36] [стр.37] [стр.38] [стр.39] [стр.40] [стр.41] [стр.42] [стр.43] [стр.44] [стр.45] [стр.46] [стр.47] [стр.48] [стр.49] [стр.50] [стр.51]