Рефераты. AVR микроконтроллер AT90S2333 фирмы Atmel






3. Установить на PC(1..0) PB(5..0) младший байт адреса.

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


Загрузить старший байт адреса

1. Установить XA1,XA0 в '00'. Это разрешает загрузку адреса.

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

3. Установить на PC(1..0) PB(5..0) старший байт адреса. ($00..$01)

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


Загрузить байт данных

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

2. Установить на PC(1..0) PB(5..0) младший байт данных.

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


Запись младшего байта данных.

1. Установить BS в '0'. Это выбирает младший байт данных

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

3. Перед программированием следующего байта подождать, пока RDY/BSY перейдет в высокое состояние.


Загрузить байт данных

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

2. Установить на PC(1..0) PB(5..0) старший байт данных.

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

Запись старшего байта данных.

1. Установить BS в '1'. Это выбирает старший байт данных

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

3. Перед программированием следующего байта подождать, пока RDY/BSY перейдет в высокое состояние.


Загруженные адрес и данные сохраняются в устройстве после про­граммирования, при этом процесс программирования упрощается.

* Команду программирования флэш памяти необходимо подать только пе­ред программированием первого байта

* Старший  байт адреса  можно менять  только перед программированием

следующей страницы памяти программ (256 слов).


ПРОГРАММИРОВАНИЕ ПАМЯТИ ДАННЫХ

 

Алгоритм программирования памяти данных следующий (обратитесь к программированию памяти программ за описанием загрузки команды, адреса и данных):

1. Загрузить команду '0001 0001'.

2. Загрузить младший адрес памяти данных (00h - 7Fh/FFh).

3. Загрузить младший байт данных

4. Подать отрицательный импульс на WR и подождать перевода RDY/BSY в 1.

Загрузка команды необходима только перед программированием перво­го байта.

 

ЧТЕНИЕ ПАМЯТИ ПРОГРАММ

 

Алгоритм чтения флэш памяти следующий (обратитесь к программиро­ванию памяти программ за описанием загрузки команды, адреса и данных):

1. Загрузить команду '0000 0010'

2. Загрузить младший байт адреса ($00 - $FF)

3. Загрузить старший байт адреса ($00 - $03/$07)

4. Установить OE в '0', BS в '0'. Теперь на выводах PC(1..0) PB(5..0) можно прочитать байт данных.

5. Установить BS в '1'. Теперь на выводах PB можно прочитать старший байт данных.

6. Установить OE в '1'.

Загрузка команды необходима только перед чтением первого байта.

 

ЧТЕНИЕ ПАМЯТИ ДАННЫХ

 

Алгоритм чтения памяти данных следующий (обратитесь к программи­рованию памяти программ за описанием загрузки команды, адреса и дан­ных):

1. Загрузить команду '0000 0011'

2. Загрузить младший байт адреса (00h - 7Fh)

3. Установить OE в '0', BS в '0'. Теперь на выводах PC(1..0) PB(5..0) можно прочитать байт данных.

4. Установить OE в '1'.

Загрузка команды необходима только перед чтением первого байта.


ПРОГРАММИРОВАНИЕ БИТОВ КОНФИГУРАЦИИ

 

Алгоритм программирования битов конфигурации следующий (обрати­тесь к программированию памяти программ за описанием загрузки команды, адреса и данных):

1. Загрузить команду '0100 0000'

2. Загрузить данные

Бит5=0                          -    программировать бит SPIEN, Бит5=1 - стереть бит SPIEN

Бит4=0                          -    программировать бит BODLEVEL,

Бит4=1                          -    стереть бит BODLEVEL

Бит3=0                          -    программировать бит BODEN,

Бит3=1                          -    стереть бит BODEN

Биты 2-0 =0 - программировать биты CKSEL,

Биты 2-0 =1 - стереть биты CKSEL

3. Подать на WR отрицательный импульс и ждать перехода RDY/BSY в единицу.

 

ПРОГРАММИРОВАНИЕ БИТОВ БЛОКИРОВКИ

 

Алгоритм программирования битов блокировки следующий (обратитесь к программированию памяти программ за описанием загрузки команды, ад­реса и данных):

1. Загрузить команду '0010 0000'

2. Загрузить данные

Бит2=0 - программировать бит LB2

Бит1=0 - программировать бит LB1

3. Подать на WR отрицательный импульс и ждать перехода RDY/BSY в единицу.

Биты блокировки стираются только при стирании всей микросхемы.


ЧТЕНИЕ БИТОВ КОНФИГУРАЦИИ И БЛОКИРОВКИ

 

Алгоритм чтения битов блокировки и конфигурации следующий (обра­титесь к программированию памяти программ за описанием загрузки коман­ды, адреса и данных):

1. Загрузить команду '0000 0100'

2. Установить OE в '0', BS в '0'. Теперь на выводах PC(1..0) PB(5..0) можно прочитать биты конфигурации.

Бит5 - SPIEN - '0' запрограммирован

Бит4 - BODLEVEL - '0' запрограммирован

Бит3 - BODEN - '0' запрограммирован

Биты 2-0 - CKSEL - '0' запрограммированы

3. Установить OE в '0', BS в '1'. Теперь на выводах PC(1..0) PB(5..0) можно прочитать биты блокировки.

Бит2 - LB2 - '0' запрограммирован

Бит1 - LB1 - '0' запрограммирован

3. Установить OE в '1'.

ЧТЕНИЕ БАЙТОВ СИГНАТУРЫ

 

Алгоритм чтения байтов сигнатуры следующий (обратитесь к програм­мированию памяти программ за описанием загрузки команды, адреса и дан­ных):

1. Загрузить команду 0000 1000

2. Загрузить младший байт адреса ($00 - $02), установить OE и BS в "0". После этого выбранный байт сигнатуры можно прочитать на выводах PC(1..0) PB(5..0).

3. Установить OE в "1".

Команду необходимо подавать только перед чтением первого байта.

Таблица 31. Характеристики параллельного программирования

T=21..27 ±C, Vcc=4.5-5.5V


Параметр

Min

Typ

Max


tDVXH

Задерж.между установ. данных и сигн.упр. и высоким уровнем XTAL1

67



nS

tXHXL

Ширина импульса XTAL

67



nS

tXLDH

Удержание данных и сигналов управления

После установки XTAL1 = 1

67



nS

tBVVL

Удержание BS после установки WR

0

67



nS

tWLWH

Ширина импульса WR

67



nS

tWHRL

Задержка между WR

1 и RDY/BSY

0 (

)


20


nS

tXLOL

Задержка между XL

0 и OE

0

67



nS

tOLDV

Задержка между XL

0 и установкой данных


20


nS

tWLRH

Задержка между WR

0 и RDY/BSY

1 (

)

0.5

0.7

0.9

mS

 

Примечание: если tWHRL удерживается дольше, чем tWLRH импульс на RDY/BSY не появится.

 

 

 

 

 

ПОСЛЕДОВАТЕЛЬНАЯ ЗАГРУЗКА

 

Как память программ, так и память данных могут быть запрограмми­рованы с использованием последовательной шины SPI, при этом вывод RESET должен быть подключен к земле. Последовательный интерфейс рабо­тает с выводами SCK, MOSI (вход) и MISO (выход). После подачи низкого уровня на RESET перед программированием/стиранием необходимо исполнить команду разрешения программирования. При программировании памяти данных, во внутренний алгоритм про­граммирования встроен цикл стирания (только при последовательном про­граммировании), поэтому нет необходимости в выполнении команды стира­ния памяти. Команда стирания микросхемы переводит все ячейки памяти программ и данных в состояние FFh. Флэш память программ и энергонезависимая память данных имеют от­дельное адресное пространство: 000h - 3FFh/7FFh для памяти программ и 000h - 07Fh/0FFh для памяти данных. При программировании необходимо подавать внешнюю тактовую частоту на вывод XTAL1 или подключить внешний тактовый генератор к выводам XTAL1 и XTAL2. Минимальные длительности низкого и высокого уровня сиг­нала SCK определены следующим образом:

Низкий: > 2 периодов XTAL1

Высокий: > 2 периодов XTAL1

ПОДТВЕРЖДЕНИЕ ДАННЫХ

 

До завершения программировании нового байта, при чтении из памяти будет читаться значение FFh. После того как микросхема будет готова для записи следующего байта, при чтении можно прочитать записанное значение. Это используется для определения момента, когда можно запи­сывать следующий байт. Этот способ не будет работать для байта FFh, поэтому для записи этого числа перед программированием следующего бай­та придется выждать по крайней мере 4mS. Поскольку после стирания ячейки памяти устанавливаются в FFh, при программировании ячейки, со­держащие FFh можно пропускать. Это не применимо при перезаписи EEPROM без стирания памяти программ. В этом случае подтверждение не работает для данных FFh, для этого значения перед программированием следующего байта необходимо выждать 4mS.


АЛГОРИТМ ПОСЛЕДОВАТЕЛЬНОГО ПРОГРАММИРОВАНИЯ

 

Для программирования и проверки AT90S2333/4433 в режиме последо­вательного программирования рекомендуется следующая последовательность действий (см. формат четырех байтовой команды в табл.32):

1. Последовательность включения питания:

Подать напряжение питания между VCC и GND, при этом RESET и SCK должны быть установлены в '0'. Если кварцевый резонатор не подключен к выводам XTAL1 и XTAL2, подайте частоту на вывод XTAL1.(Если программатор не гарантирует установки SCK в '0' при подаче питания, после того как на SCK будет установлен '0', на RESET необходимо подать положительный импульс, и удер­живать его по крайней мере два периода тактовой частоты после

установки вывода SCK в "0".

2. Подождать 20 mS и разрешить последовательное программирование послав команду разрешения на вывод MOSI/PB3.

3. При посылке команды разрешения программирования, второй байт последовательности (53h) будет возвращен при посылке третьего байта. В любом случае, должны быть посланы все четыре байта команды. Если число 53h не получено обратно, подайте положи­тельный импульс на SCK и повторите команду разрешения програм­мирования. Если после 32 попыток не будет получено число 53h, микросхема неисправна.

4. После подачи команды стирания (всегда при программировании па­мяти программ), необходимо подождать 10 mS, выдать положитель­ный импульс на RESET и продолжить с шага 2.

5. Память программ и память данных программируются по одному бай­ту выдачей  адреса и  данных в  команде записи. Перед записью новых данных в EEPROM ячейки памяти перед записью новых данных автоматически стираются. Чтобы  определить время, когда  можно записывать следующий байт, используется подтверждение  данных. При записи предварительно стертой микросхемы записывать ячейки содержащие FFh не обязательно.

6. Любую ячейку памяти можно проверить используя команду чтения, которая выдает содержимое указанной ячейки на последовательный вывод MISO/PB4.

7. По окончанию программирования вывод RESET может быть установ­лен в '1' для возобновления нормальной работы схемы.

8. Последовательность выключения питания (если необходимо) Установить XTAL1 в '0' (если не  используется кварцевый резо­натор)

Установить RESET в '1'.

Отключить питание

При записи последовательных данных в процессор данные читаются по нарастающему фронту сигнала CLK. При чтении данных из процессора дан­ные читаются по спадающему фронту сигнала CLK.


Таблица 32. Команды последовательного программирования

 

 

Команда

Формат команды

Действие

 

Байт 1

Байт 2

Байт 3

Байт 4

 

 

 

Разрешение рограммир.

1010 1100

0101 0011

xxxx xxxx

xxxx xxxx

Разрешен.послед. программирования после установки RESET в '0'

 

Стирание микросх.

1010 1100

100x xxxx

xxxx xxxx

xxxx xxxx

Стирание памяти прогр. и данных

 

Чтение па­мяти прогр.

0010 H000

0000 aaaa

bbbb bbbb

oooo oooo

Читать старший или младший байт o по адресу ab

 

Запись па­мяти прогр.

0100 H000

0000 aaaa

bbbb bbbb

iiii iiii

Запись старш. или младш. байта i в память прогр по адресу ab

 

Чтение па­мяти данных

1010 0000

0000 000a

bbbb bbbb

oooo oooo

Читать данные o по адресу ab

 

Запись па­мяти данных

1100 0000

0000 000a

bbbb bbbb

iiii iiii

Запись данных i по адресу ab

 

Чтение би­тов блокир.

0101 1000

xxxx xxxx

xxxx xxxx

xxxx x21x

Биты 2 и 1 равны 0 – блокировка 1 - нет блокир.

 

Запись би­тов блокир.

1010 1100

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.