рефераты

рефераты

 
 
рефераты рефераты

Меню

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

Таблица 25. Влияние DDDn на выводы порта D

DDDn PORTDn In\Out Подтягивающие резисторы Описание
0 0 Вход Нет Третье состояние
0 1 Вход Да PDn источник тока Iil, если извне соединен с землей
1 0 Выход Нет Выход установлен в 0
1 1 Выход Нет Выход установлен в 1

Альтернативные функции порта D

AIN1 - Порт D, бит7 - инвертирующий вход аналогового компаратора. Ес­ли вывод сконфигурирован как вход (DDD7=0) и отключен внутренний под­тягивающий резистор, этот вывод может работать как инвертирующий вход аналогового компаратора. В экономичном режиме триггер Шмитта отключен от цифрового входа. Это позволяет удерживать на входе напряжение близ­кое к Vcc/2 без заметного увеличения потребления.

AIN0 - Порт D, бит6 - неинвертирующий вход аналогового компаратора. Если вывод сконфигурирован как вход (DDD6=0) и отключен внутренний подтягивающий резистор, этот вывод может работать как инвертирующий вход аналогового компаратора. В экономичном режиме триггер Шмитта отключен от цифрового входа. Это позволяет удерживать на входе напря­жение близкое к Vcc/2 без заметного увеличения потребления.

T1 - Порт D, бит 5 - тактовый вход таймера/счетчика 1. Подробнее см. описание таймера.

T0 - Порт D, бит 4 - тактовый вход таймера/счетчика 0. Подробнее см. описание таймера.

INT1 - Порт D, бит 3 - вход внешних прерываний 1. Подробнее см.  опи­сание прерываний.

INT0 - Порт D, бит 2 - вход внешних прерываний 0. Подробнее см.  опи­сание прерываний.

TXD - Порт D, бит 1 - выход передатчика UART. Если разрешена работа передатчика UART, независимо от состояния DDRD1 этот вывод сконфигури­рован как выход.

RXD - Порт D, бит 0 - выход приемника UART. Если разрешена работа приемника UART, независимо от состояния DDRD0 этот вывод сконфигуриро­ван как выход. Когда UART использует вывод для приема данных, единица в PORTD0 подключает встроенный подтягивающий резистор.

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

Программирование битов блокировки памяти

Микроконтроллер имеет два бита блокировки, которые могут быть ос­тавлены незапрограммированными (1) или программироваться (0), при этом достигаются свойства приведенные в таблице 20.

Таблица 26. Режимы защиты и биты блокировки

Биты блокировки Тип защиты
Режим LB1 LB2 описание
1

1

1

защита не установлена
2

0

1

дальнейшее программирование флэш памяти и EEPROM запрещено
3

0

0

как режим 2, но запрещено и чтение

Примечание: биты блокировки стираются только при полном стирании памяти

Биты конфигурации (Fuse bits)

В AT90S2333/4433 предусмотрены шесть бит конфигурации - SPIEN, BODLEVEL, BODEN, и CKSEL[2:0].

Когда запрограммирован бит  SPIEN (0)  разрешен  режим

последовательного программирования. По умолчанию бит  запрограммирован

(0). В режиме последовательного программирования этот бит недоступен.

BODLEVEL. Задает уровень срабатывания схемы сброса по пропаданию питания. Если бит незапрограммирован (1), этот уровень - 2.7В, для

запрограммированного бита - 4В. По умолчанию бит незапрограммирован.

BODEN. Когда этот бит запрограммирован (0), разрешен сброс по пропаданию питания. По умолчанию бит незапрограммирован.

CKSEL[2:0]. В таблице 4 приведены значения задержки при сбросе на которые влияют эти биты. По умолчанию биты установлены в 010 - 64mS+16K CK.

Код устройства

Все микроконтроллеры фирмы Atmel имеют 3-байтовый сигнатурный код, по которому идентифицируется устройство. Этот код может быть про­читан в параллельном и последовательном режимах. Эти три байта разме­щены в отдельном адресном пространстве и для AT90S4433 имеют следующие значения:

1. $000: $1E - код производителя - Atmel

2. $001: $92 - 4 кБ флэш памяти

3. $002: $01 - при $01=$92 - м/сх AT90S4433 для AT90S2333:

1. $000: $1E - код производителя - Atmel

2. $001: $91 - 2 кБ флэш памяти

3. $002: $05 - при $01=$92 - м/сх AT90S2333


Программирование флэш памяти и EEPROM

AT90S2333/4433 имеют 2кБ или 4кБ перепрограммируемой флэш памяти программ и 256 байт энергонезависимой памяти данных.

При поставке флэш память и память данных стерты (содержат FFh) и готовы к программированию. Микросхемы поддерживают высоковольтный (12В) параллельный режим программирования и низковольтный режим после­довательного программирования. Напряжение +12В используется только для разрешения программирования, этот вывод почти не потребляет тока. По­следовательный режим программирования предусмотрен для загрузки про­граммы и данных в системе пользователя (внутрисистемное программирова­ние). В обоих режимах программирования память программ и данных програм­мируется байт за байтом. Для программирования EEPROM предусмотрен цикл автоматического стирания при программировании в последовательном режи­ме.

Параллельное программирование.

Ниже рассмотрено параллельное программирование флэш памяти про­грамм, энергонезависимой памяти данных, битов блокировки и конфигура­ции. Некоторые выводы процессоров ниже называются именами, отражающими функциональное назначение сигналов при параллельном программировании. Выводы не приведенные в следующей таблице называются своими обычными именами.

Таблица 27. Имена выводов

Имя сигнала при программирован.

Имя

вывода

Вх/Вых Функция
RDY/BSY PD1 Вых

0: мкросхема занята программированием

1: мкросхема готова к приему команды

OE PD2 Вх Разрешение выходов (активный 0)
WR PD3 Вх Импульс записи (активный 0)
BS PD4 Вх Выбор байта
XA0 PD5 Вх Действие XTAL бит 0
XA1 PD6 Вх Действие XTAL бит 1

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

Таблица 28. Установка XA1 и XA0

XA1 XA0 Действие при подаче импульса XTAL1

0

0

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

0

1

Загрузка данных (старший/младший байт для флэш памяти зада­ется выводом BS)

1

0

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

1

1

Не работает, холостой ход

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

Таблица 29. Биты конфигурации командного байта

Бит Значение при установке
7 Стирание кристалла
6 Запись битов конфигурации, расположенных в следующих позициях байта данных: D5-SPIEN, D4-BODLEVEL, D3-BODEN, D2-D0-CKSEL (0 для программирования, 1 для стирания)
5

Запись битов блокировки, расположенных в следующих позициях байта данных: D2 - LB2, D1 - LB1

(для программирования устанавливать 0)

4 Запись памяти программ или данных (определяется битом 0)
3 Чтение сигнатуры
2 Чтение битов блокировки и конфигурации, расположенных в следующих позициях байта данных: D5-SPIEN, D4-BODLEVEL, D3-BODEN, D2-D0 -CKSEL (для BS=1) или D2-LB2, D1-LB1 (для BS=0)
1 Чтение памяти программ или данных (определяется битом 0)
0 доступ к памяти программ, 1 к памяти данных

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

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

1. Подать напряжение 4.5...5.5В на выводы питания.

2. Установить RESET и BS в 0 и выдержать не меньше 100 нС.

3. Подать 12В на RESET и выждать не менее 100 нС перед изменением

BS. Любая активность на выводе BS в течение этого времени при­ведет к тому, что микросхема не включится в режим программир­ования.

СТИРАНИЕ КРИСТАЛЛА

При стирании кристалла стираются память программ и данных, а так­же биты блокировки. Биты блокировки не сбрасываются до полного стира­ния памяти программ и данных. Биты конфигурации не изменяются. (Стира­ние кристалла производится перед его программированием).

Загрузка команды "стереть кристалл"

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

2. Установить BS в 0

      3. Установить PC(1..0) PB(5..0) в '1000 0000'. Это команда стира­ния кристалла.

      4. Подать положительный импульс на XTAL1. При этом загружается команда и начинается стирание памяти программ и данных. После импульса XTAL1, подать отрицательный импульс на WR, чтобы раз­решить стирание битов блокировки по окончанию цикла стирания. Подождать около 10 мС до окончания цикла стирания. Стирание кристалла не генерирует сигнала RDY/BSY.

ПРОГРАММИРОВАНИЕ ФЛЭШ ПАМЯТИ

Загрузить команду "программирование флэш памяти"

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

2. Установить BS в 0

       3. Установить PC(1..0) PB(5..0) в '0001 0000'. Это команда про­граммирования флэш памяти

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

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

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

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

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, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17