5. После передачи последнего байта данных процесс повторяется с шага 2.


Управление UART

РЕГИСТР ВВОДА/ВЫВОДА UART

 

0Ch(2Ch)

7 6 5 4 3 2 1 0

MSB

 

 

 

 

 

 

LSB

R\W

R\W

R\W

R\W

R\W

R\W

R\W

R\W

Начальное значение

0

0

0

0

0

1

0

0

Физически регистр UDR является двумя отдельными регистрами, до­ступ к которым происходит по одному адресу. При записи происходит за­пись в регистр передатчика, при чтении - читается регистр приемника.

РЕГИСТР УПРАВЛЕНИЯ И СОСТОЯНИЯ UART (UСSRA)

0Bh(2Bh)

7 6 5 4 3 2 1 0

RXC

TXC

UDRE

FE

OR

-

-

MPCM

R

R\W

R

R\W

R\W

R\W

R\W

R\W

Начальное значение

0

0

1

0

0

1

0

0

Бит 7 - RXC - прием завершен. Этот бит устанавливается в 1 когда принятый символ переписывается из сдвигового регистра приемника в ре­гистр UDR. Бит устанавливается независимо от обнаружения ошибки кадра. Если установлен бит RXCIE в регистре UCR, при установке бита выполня­ется прерывание по завершению приема символа. RXC сбрасывается при чтении UDR. При использовании приема данных по прерыванию, обработчик прерывания должен читать регистр UDR для сброса RXC, иначе при выходе из прерывания оно будет вызвано снова.

Бит 6 - TXC - передача завершена. Этот бит устанавливается в 1 если символ из сдвигового регистра передатчика (включая стоповый бит) передан, а в регистр UDR не были записаны новые данные. Этот флаг осо­бенно полезен при полудуплексной связи, когда предающее устройство должно перейти в режим приема и освободить линию связи сразу по окон­чанию передачи. Если установлен бит TXIE в регистре UCR, при установке TXC выполняется прерывания по окончанию передачи. TXC сбрасывается ап­паратно при выполнении соответствующего вектора прерывания. Кроме то­го, бит можно сбросить записав в него 1.

Бит 5 - UDRE - регистр данных UART пуст. Этот бит устанавливается в 1 когда данные, записанные в UDR переписываются в регистр сдвига пе­редатчика. Установка этого бита означает, что передатчик готов принять следующий символ для передачи. Если установлен бит UDRIE в регистре UCR, при установке этого бита выполняется прерывание окончания переда­чи. Бит UDRE сбрасывается при записи регистра UDR. При использовании передачи управляемой прерыванием, подпрограмма обслуживания прерывания должна записывать UDR, чтобы сбросить бит UDRE, иначе при выходе из прерывания оно будет вызвано снова. При сбросе этот бит устанавливает­ся в 1, чтобы проиндицировать готовность передатчика.

Бит 4 - FE - ошибка кадра. Этот бит устанавливается при обнаруже­нии условия ошибки кадра, т.е. если стоповый бит принятого байта равен 0. Бит FE сбрасывается при приеме единичного стопового бита.

Бит 3 - OR - переполнение. Этот бит устанавливается при обнаруже­нии условия переполнения, т.е. когда символ из регистра UDR не был прочитан до того, как заполнился сдвиговый регистр приемника. Этот бит буферирован, т.е. остается установленным до тех пор, пока из регистра UDR не будут прочитаны правильные данные. Бит OR сбрасывается когда принятые данные переписываются в UDR.

Биты 2..1 - зарезервированы. В AT90S2333/4433 эти биты зарезерви­рованы и всегда читаются как 0.

Бит 0 - MPCM - режим мультипроцессорного обмена. Этот бит исполь­зуется для перехода в режим мультипроцессорного обмена. Этот бит уста­навливается когда ведомый процессор ожидает приема адресного байта. Ко­гда ведомый процессор распознает свой адрес он должен сбросить бит MPCM и начать прием данных.


РЕГИСТР УПРАВЛЕНИЯ И СОСТОЯНИЯ UART (UСSRB)

 

0Ah(2Ah)

7 6 5 4 3 2 1 0

RXCIE

TXCIE

UDRIE

RXEN

TXEN

CHR9

RXB8

TXB8

R\W

R\W

R\W

R\W

R\W

R\W

R

W

Начальное значение

0

0

0

0

0

1

0

0

Бит 7 - RXCIE - Разрешение прерывания по окончанию приема. Если этот бит установлен (1), установка бита RXC в регистре UCSRA приводит к вы­полнению прерывания по окончанию приема (при условии что разрешены прерывания).

Бит 6 - TXCIE - Разрешение прерывания по окончанию передачи. Если этот бит установлен, установка бита TXC в UCSRA приводит к выполнению прерывания по окончанию передачи (при условии, что прерывания разреше­ны).

Бит 5 - UDRIE - Прерывание по очистке регистра данных последователь­ного порта. Если этот бит установлен, установка бита UDRE в UCSRA при­водит к выполнению прерывания по очистке регистра данных UART (при ус­ловии, что прерывания разрешены).

Бит 4 - RXEN - Разрешение приемника. При установке этого бита разре­шается работа приемника UART. Если приемник выключен, флаги TXC, OR и FE не устанавливаются. Если эти флаги установлены, сброс RXEN не очи­щает их.

Бит 3 - TXEN - Разрешение передатчика. При установке этого бита раз­решается работа передатчика UART. При запрещении работы передатчика во время передачи символа, он продолжает работать пока не будет очищен сдвиговый регистр и не будет передан символ, помещенный в UDR.

Бит 2 - CHR9 - 9-битовые посылки. Если этот бит установлен, принима­емые и передаваемые символы имеют длину 9 бит. Для передачи и приема 9-го символа используются биты RXB8 и TXB8 соответственно. 9-й бит мо­жно использовать как дополнительный стоповый бит или как признак чет­ности.

Бит 1 - RXB8 - Бит 8 принимаемых данных. Если установлен бит CHR9, сюда записывается 9-й бит принятых данных.

Бит 0 - TXB8 - Бит 8 передаваемых данных. Если установлен бит CHR9, отсюда берется 9-й бит передаваемых данных.


ГЕНЕРАТОР СКОРОСТИ ПЕРЕДАЧИ

 

Генератор скорости передачи это делитель частоты, который генери­рует скорости в соответствии с нижеприведенным выражением:

BAUD = Fck / (16*(UBRR+1))

здесь BAUD - скорость передачи (бод)

Fck - частота тактового генератора процессора

UBRR - содержимое регистров UBRRH и UBRR (0...4095)

В следующей таблице приведены значения регистра UBRR и процентное отклонение от стандартной скорости передачи для стандартных частот кварцевых генераторов.

Таблица.18

Скор.,

бод

1.0000

MHz

Ош.

%

Скор.,

бод

1.8432

MHz

Ош.

%

Скор.,

бод

2.0000

MHz

Ош.

%

2400

4800

9600

14400

19200

28800

38400

57600

76800

115200

25

12

6

3

2

1

1

0

0

0

0.2

0.2

7.5

7.8

7.8

7.8

22.9

7.8

22.9

84.3

2400

4800

9600

14400

19200

28800

38400

57600

76800

115200

47

23

11

7

5

3

2

1

1

0

0

0

0

0

0

0

0

0

33.0

0

2400

4800

9600

14400

19200

28800

38400

57600

76800

115200

51

25

12

8

6

3

2

1

1

0

0.2

0.2

0.2

3.7

7.5

7.8

7.8

7.8

22.9

7.8

Скор.,

бод

3.2768

MHz

Ош.

%

Скор.,

бод

3.6864

MHz

Ош.

%

Скор.,

бод

4.0000

MHz

Ош.

%

2400

4800

9600

14400

19200

28800

38400

57600

76800

115200

84

42

20

13

10

6

4

3

2

1

0.4

0.8

1.6

1.6

3.1

1.6

6.3

12.5

12.5

12.5

2400

4800

9600

14400

19200

28800

38400

57600

76800

115200

95

47

23

15

11

7

5

3

2

1

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

2400

4800

9600

14400

19200

28800

38400

57600

76800

115200

103

51

25

16

12

8

6

3

2

1

0.2

0.2

0.2

2.1

0.2

3.7

7.5

7.8

7.8

7.8

Скор.,

бод

7.3728

MHz

Ош.

%

Скор.,

бод

8.0000

MHz

Ош.

%

Скор.,

бод

9.2160

MHz

Ош.

%

2400

4800

9600

14400

19200

28800

38400

57600

76800

115200

191

95

47

31

23

15

11

7

5

3

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

2400

4800

9600

14400

19200

28800

38400

57600

76800

115200

207

103

51

34

25

16

12

8

6

3

0.2

0.2

0.2

0.8

0.2

2.1

0.2

3.7

7.5

7.8

2400

4800

9600

14400

19200

28800

38400

57600

76800

115200

239

119

59

39

29

19

14

9

7

4

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

6.7

0.0


РЕГИСТР СКОРОСТИ ПЕРЕДАЧИ (UBRR)

 

UBRRHI

 

03h(23h)

7 6 5 4 3 2 1 0

 

 

 

 

MSB

-

-

-

R

R

R

R

R\W

R\W

R\W

R\W

Начальное значение

0

0

0

0

0

0

0

0

UBRR

09h(29h)

7 6 5 4 3 2 1 0

 

 

 

 

 

 

 

LSB

R\W

R\W

R\W

R\W

R\W

R\W

R\W

R\W

Начальное значение

0

0

0

0

0

0

0

0

Это 12-разрядный регистр, который задает скорость передачи последо­вательного порта в соответствии с выражением приведенным выше. В реги­стре UBRRHI хранятся 4 старших бита, в UBRR - 8 младших бит.


АНАЛОГОВЫЙ КОМПАРАТОР

 

Аналоговый компаратор сравнивает входные напряжение на положи­тельном входе PD6 (AIN0) и отрицательном входе PD7(AIN1). Когда напря­жение на положительном входе больше напряжения на отрицательном, уста­навливается бит ACO (Analog Comparator Output). Выход аналогового ком­паратора можно установить на работу с функцией захвата Таймера/Счетчи­ка1. Кроме того, компаратор может вызывать свое прерывание. Пользова-

тель может установить установить срабатывание прерывания по нарастаю­щему или спадающему фронту, или по переключению.


РЕГИСТР УПРАВЛЕНИЯ И СОСТОЯНИЯ АНАЛОГОВОГО КОМПАРАТОРА (ACSR).

 

ACSR

08h(28h)

7 6 5 4 3 2 1 0

ACD

AINBG

ACO

ACI

ACIE

ACIC

ACIS1

ACIS0

R\W

R

R

R\W

R\W

R\W

R\W

R\W

Начальное значение

0

0

0

0

0

1

0

0

Бит 7 - ACD - Запрещение аналогового компаратора. Когда этот бит ус­тановлен, питание от аналогового компаратора отключается. Для отключе­ния компаратора этот бит можно установить в любое время. Обычно это свойство используется если критично потребление процессора в холостом режиме и восстановление работы процессора от аналогового компаратора не требуется. При изменении бита ACD прерывания от аналогового компа­ратора должны быть запрещены сбросом ACIE в регистре ACSR. В противном случае прерывание может произойти во время изменения бита.

Бит 6 - AINBG - Выбор напряжения сравнения аналогового компаратора. Когда этот бит установлен, вывод AIN0 подключается к напряжению 1.22 + 0.05В. Когда бит сброшен возобновляется нормальная работа вывода AIN0.

Бит 5 - ACO - Выход аналогового компаратора. Бит ACO непосредственно подключен к выходу аналогового компаратора.

Бит 4 - ACI - Флаг прерывания от аналогового компаратора. Этот бит устанавливается когда переключение выхода компаратора совпадает с ре­жимом прерывания установленным битами ACIS1 и ACIS0. Программа обрабо­тки прерывания от аналогового компаратора выполняется если установлен бит ACIE (1) и установлен бит I в регистре состояния. ACI сбрасывается аппаратно при выполнении соответствующего вектора прерывания. Другой способ очистить ACI - записать во флаг логическую единицу.

Бит 3 - ACIE - Разрешение прерывания от аналогового компаратора. Ко­гда установлен этот бит и бит I регистра состояния, прерывания от ана­логового компаратора отрабатываются. Если бит очищен (0), прерывания запрещены.

Бит 2 - ACIC - Захват по выходу аналогового компаратора. Если этот бит установлен, функция захвата таймера/счетчика1 управляется выходом аналогового компаратора. При этом выход компаратора подключается непо­средственно к схеме обработки захвата, предоставляя удобные средства подавления шума и выбора фронта предусмотренные прерыванием захвата по входу. Когда бит очищен, схема захвата и компаратор разъединены. Чтобы компаратор мог управлять функцией захвата таймера/счетчика1, должен быть установлен бит TICIE1 в регистре TIMSK.

Биты 1,0 - ACIS1, ACIS0 - Выбор режима прерывания аналогового компа­ратора. Различные установки приведены ниже.

Таблица 19. Установки ACIS1/ACIS0

ACIS1 ACIS0 Описание

0

0

Прерывание от компаратора по переключению выхода

0

1

Зарезервировано

1

0

Прерывание от компаратора по спадающему фронту выхода

1

1

Прерывание от компаратора по нарастающему фронту выхода

Примечание: При изменении битов ACIS1/ACIS0 прерывания от аналогового компаратора должны быть запрещены сбросом бита разрешения прерывания в регистре ACSR. Иначе прерывание может произойти при изменении битов.


АНАЛОГО-ЦИФРОВОЙ ПРЕОБРАЗОВАТЕЛЬ

 

Основные характеристики:

- разрешение 10 бит

- точность +- 1/2 младшего разряда

- время преобразования 65-260 uS

- 6 мультиплексирумых входов

- работа с полным размахом напряжения

- непрерывный режим или одиночные преобразования

- прерывание по завершению преобразования

- подавление шума в режиме Sleep

AT90S2333/4433 имеют 10-разрядный АЦП последовательного приближения. АЦП подключен к выходу шестивходового мультиплексора. Мультиплексор по­зволяет подключать на вход АЦП любой из входов порта C. В состав АЦП входит усилитель выборки-хранения, который позволяет сохранять на входе АЦП уровень напряжения постоянный за время преобразования.

АЦП имеет два отдельных вывода питания AVCC и AGND. ФПТВ должен подключаться к GND, напряжение на AVCC не должно отличаться от VCC более чем на +-0.3В. Внешнее опорное напряжение должно подаваться на вывод AREF. Это напряжение должно лежать в пределах AGND-AVCC.

 

РАБОТА АЦП

 

АЦП может работать в двух режимах - одиночного преобразования и непрерывном. В режиме одиночного преобразование каждое преобразование инициируется пользователем. В непрерывном режиме АЦП производит непре­рывную обработку входного сигнала и обновляет регистр данных АЦП. Пе­реключение режимов осуществляется битом ADFR в регистре ADCSR. Регистр ADMUX выбирает один из шести входов подключаемый ко входу АЦП. Кроме того в качестве входа можно использовать фиксированное опорное напряжение. Работа АЦП разрешается записью логической "1" в бит разрешения АЦП (ADEN в ADCSR). Перед первым преобразованием после разрешения АЦП выполняется одно "пустое" преобразование инициализирующее АЦП. Для по­льзователя единственное отличие первого преобразования от последующих заключается в том, что оно занимает 25 тактовых импульсов вместо обыч­ных 13.

Преобразование запускается записью логической 1 в бит запуска АЦП - ADCS. Этот бит остается установленным пока идет преобразование и ап­паратно сбрасывается, когда преобразование завершается. Если во время преобразования происходит переключение канала, пред переключением АЦП завершает текущее преобразование.

Операция выборки-хранения занимает один цикл после запуска преоб­разования. Это позволяет пользователю устанавливать номер входного ка­нала одновременно с запуском преобразования Поскольку результат преобразования занимает 10 разрядов, для хра­нения результата используется два регистра ADCH и ADCL, которые должны быть прочитаны для получения результата. Для защиты данных, чтобы обеспечить чтение результата одного преобразования из обоих регистров используется специальная логика защиты данных.

Этот механизм работает так:

При чтении данных первым должен читаться регистр ADCL. Доступ АЦП к регистру данных блокируется. Это приводит к тому, что если прочитан байт ADCL и преобразование завершилось до того как прочитан регистр ADCH, регистр данных не изменяется и результат преобразования будет потерян. Доступ АЦП к регистру данных разрешается после чтения ADCH. АЦП имеет собственное прерывание, которое выполняется по заверше­нию преобразования. Если доступ АЦП к регистру данных запрещен (между чтением ADCL и ADCH), прерывание вызывается даже если данные потеряны. Предварительный делитель АЦП работает с тактовыми частотами в диапазоне 50-200 kHz. Для полного преобразования АЦП необходимо 13 тактов, т.е. преобразование занимает от 65 до 260 uS. Корректное значение выхода АЦП гарантируется только для тактовых частот не выходящих из приведенного диапазона. Для генерации тактовой частоты АЦП из тактовой частоты процессора выше 100 кГц используются биты ADPS0-ADPS2. Предварительный делитель начинает счет в момент разрешения АЦП установкой бита ADEN в ADCSR. Предварительный делитель продолжает работать до тех пор, пока установлен бит ADEN и непрерывно сбрасывается если бит ADEN сброшен. Функция подавления шумов АЦП Одна из особенностей АЦП - функция подавления шумов, АЦП может осуществлять преобразования в режиме холостого хода, это позволят уменьшить шумы, наводимые ядром процессора. Чтобы воспользоваться этой возможностью, необходимо произвести следующую процедуру:

1. Удостоверьтесь, что АЦП разрешен и не занят преобразованием. Необходимо выбрать режим одиночного преобразования и разрешить прерывания по окончанию преобразования .

ADEN=1

ADSC=0

ADFR=0

ADIE=1

2. Перейти в режим холостого хода. АЦП начнет преобразование по­сле того как остановится процессор.

3. Если за время преобразования не произойдут другие прерывания, по окончанию преобразования процессор выйдет из режима холостого хода и выполнит прерывание по окончанию преобразования.


РЕГИСТР УПРАВЛЕНИЯ МУЛЬТИПЛЕКСОРОМ АЦП – AMUX

07h(27h)

7 6 5 4 3 2 1 0

-

ADCBG

-

-

-

MUX2

MUX1

MUX0

R\W

R

R

R\W

R\W

R\W

R\W

R\W

Начальное значение

0

0

0

0

0

1

0

0

Бит 7 - зарезервирован; в AT90S2333/4433 этот бит зарезервирован и при записи должен устанавливаться в 0.

Бит 6 - ADCBG - выбор опорного напряжения АЦП - при установке этого бита на вход АЦП подается фиксированное напряжение 1.22+-0.05В, когда бит сброшен, вход АЦП подключается к одному из внешних входов согласно установке битов MUX2..MUX0.

Биты 5..3 - зарезервированы. В AT90S2333/4433 эти биты зарезервиро­ваны и при записи должны устанавливаться в 0.

Биты 2..0 - MUX2..MUX0 - выбор аналогового входа. Содержимое этих бит определяет какой из аналоговых входов подключен на вход АЦП.


РЕГИСТР УПРАВЛЕНИЯ И СОСТОЯНИЯ АЦП – ADCSR

 

ADCSR

 

06h(26h)

7 6 5 4 3 2 1 0

ADEN

ADSC

ADFR

ADIF

ADIE

ADPS2

ADPS1

ADPS0

R\W

R\W

R\W

R\W

R\W

R\W

R\W

R\W

Начальное значение

0

0

0

0

0

1

0

0

Бит 7 - ADEN - Разрешение АЦП. - При записи логической "1" в этот бит разрешается работа АЦП. При установке бита в "0" АЦП выключается. При выключении АЦП до окончания преобразования, преобразование не за­вершается.

Бит 6 - ADSC - Запуск преобразования АЦП. - В режиме одиночного преобразования для запуска преобразования в этот бит должна быть запи­сана "1". При запуске преобразования битом ADSC время преобразования отчитывается ль начала следующего периода частоты на выходе делителя. При установке ADSC после разрешения АЦП или при одновременном разреше­нии АЦП и установке ADSC, первому преобразованию предшествует "пустой" цикл преобразования. Во время этого цикла происходит инициализация АЦП. Во время преобразования бит ADSC остается установленным и сбрасы­вается при завершении преобразования, но до того, как результат пере­писывается в регистр данных АЦП. Это позволяет запустить новое преоб­разование до того как завершится текущее. Новое преобразование будет запущено сразу по окончанию текущего. Если преобразованию предшествует "пустой" цикл, бит ADSC остается установленным пока не будет завершено реальное преобразование. Запись 0 в этот бит не дает результата.

Бит 5 - ADFR - Выбор непрерывного преобразования АЦП. - Когда этот бит установлен, включается режим непрерывного преобразования АЦП. В этом режиме АЦП непрерывно производит выборки сигнала и обновляет ре­гистр данных. При сбросе этого бита режим непрерывного преобразования отключается.

Бит 4 - ADIF - Флаг прерывания АЦП. - Этот флаг устанавливается ко­гда завершается цикл преобразования АЦП и обновляется регистр данных АЦП. Если установлены флаг глобального разрешения прерываний (I в

SREG) и бит ADIE, по завершению преобразования выполняется прерывание.

Флаг ADIF сбрасывается аппаратно при выполнении соответствующего преры­вания. Другой способ сбросить флаг - записать в него "1". Необходимо предостеречь, что при чтении-модификации-записи ADCSR может быть за­прещено отложенное прерывание. Это же касается и команд SBI и CBI.

Бит 3 - ADIE - Разрешение прерывания от АЦП. - При установке этого бита и бита I в регистре SREG разрешены прерывания по окончанию преоб­разования АЦП.

Биты 2..0 - ADPS2..ADPS0 - биты установки предварительного делите­ля. - Эти биты задают коэффициент деления тактовой частоты процессора и задают тактовую частоту работы АЦП.

Таблица 20. Выбор коэффициента деления АЦП

ADPS2 ADPS1 ADPS0 Коэф.деления ADPS2 ADPS1 ADPS0 Коэф.деления

0

0

0

2

1

0

0

16

0

0

1

2

1

0

1

32

0

1

0

4

1

1

0

64

0

1

1

8

1

1

1

128

РЕГИСТР ДАННЫХ АЦП - ADCL И ADCH

 

ADCH

 

05h(25h)

7 6 5 4 3 2 1 0

-

-

-

-

-

MSB

 

 

R

R

R

R

R

R

R

R

Начальное значение

0

0

0

0

0

0

0

0

 

ADCL

 

04h(24h)

7 6 5 4 3 2 1 0

 

 

 

 

 

 

 

LSB

R

R

R

R

R

R

R

R

Начальное значение

0

0

0

0

0

1

0

0

 

Сканирование аналоговых каналов

 

Поскольку смена аналоговых каналов всегда происходит после завер­шения преобразования, для переключения каналов преобразователя можно использовать режим непрерывного преобразования. Обычно для переключе­ния каналов используется прерывание по завершению преобразования. Од­нако пользователь должен принимать во внимание следующие факторы:

- в режиме непрерывного преобразования, цикл выборки-хранения следующего преобразования начинается через полтора тактовых цикла по­сле того как результат текущего преобразования записывается в регистр данных АЦП и устанавливается флаг ADIF. Если канал АЦП переключится до того как произойдет операция выборки-хранения, результат преобразова­ния будет отражать новое состояние мультиплексора, если ADMUX изменит­ся после выборки-хранения, следующий результат будет использовать пре­жнее значение входного канала. Новый подключенный канал будет обслужен в следующем цикле преобразования. При чтении регистра ADMUX всегда возвращается последнее записанное в него число, независимо от того, какой канал используется для текущего преобразования.

 

Техника подавления шума АЦП

 

Цифровые схемы внутри и снаружи AT90S2333/4433 генерируют элект­ромагнитные излучения, которые могут повлиять на точность аналоговых измерений. Если точность преобразования важна, уровень ума может быть понижен при помощи следующей техники:

1. Аналоговая часть процессора и все аналоговые компоненты уст­ройства должны иметь отдельно разведенную на печатной плате землю. Аналоговая земля должна соединяться с цифровой только в одной точке печа­тной платы.

2. Путь прохождения аналогового сигнала должен быть коротким на­сколько можно. Старайтесь отделять аналоговые дорожки от цифровых ана­логовой землей и проводить их как можно дальше от высокоскоростных ци­фровых сигналов.

3. Вывод AVcc должен подключаться к источнику Vcc через RC цепоч­ку, как показано на рисунке:

4. Для уменьшения шума наводимого процессором используйте функцию подавления шума.

5. Если какие-то выводы порта С используются для вывода цифровых сигналов, они не должны переключаться во время преобразования.


ХАРАКТЕРИСТИКИ АЦП (T=-40...+85 град.)

 

Разрешение 10 бит

Интегральная нелинейность (Vref>2V), 0.2(тип),0.5(макс) ед.мл.разр.

Дифференц. нелинейность (Vref>2V), 0.2(тип),0.5(макс) ед.мл.разр.

Ошибка нуля (смещение) 1(тип) ед.мл.разр.

Время преобразования 65...260 мкС

Тактовая частота 50...200 кГц

Напряжение AVcc Vcc+-0.3В (не больше 6В)

Опорное напряжение Agnd...AVcc

Вх.сопр. по вх. опорн. напр. 6..10(тип)..13 кОм

Вх сопр. аналог. входа 100 (тип) МОм


ПОРТЫ ВВОДА/ВЫВОДА

 

Порт B

Порт B 6-разрядный двунаправленный порт ввода/вывода.

Для обслуживания порта отведено три регистра: регистр данных PORTB (18h, 38h), регистр направления данных - DDRB (17h, 37h) и ножки порта B - PINB (16h, 36h). Адрес ножек порта B предназначен только для чтения, в то время как регистр данных и регистр направления данных - для чтения/записи.

Все выводы порта имеют отдельно подключаемые подтягивающие резис­торы. Выходы порта B могут поглощать ток до 20 mA и непосредственно управлять светодиодными индикаторами. Если выводы PB0..PB5 используют­ся как входы и замыкаются на землю, если включены внутренние подтяги­вающие резисторы, выводы являются источниками тока (Iil). Дополнитель­ные функции выводов порта B приведены в таблице 20.

Таблица 21. Альтернативные функции выводов порта B

Вывод Альтернативная функция
PB0 ICP (Вход захвата таймера/счетчика 1)
PB1 OC1 (Выход совпадения таймера,счетчика 1)
PB2 SS (Выбор ведомого шины SPI)
PB3 MOSI (Выход ведущего/ вход ведомого шины SPI)
PB4 MISO (Вход ведущего/ выход ведомого шины SPI)
PB5 SCK (Тактовые импульсы шины SPI)

При использовании альтернативных функций выводов. регистры DDRB и PORTB должны быть установлены в соответствии с описанием альтернатив­ных функций.


РЕГИСТР ДАННЫХ ПОРТА B

 PORTB

 

18h(38h)

7 6 5 4 3 2 1 0

-

-

PORTB5

 

 

 

 

PORTB0

R\W

R\W

R\W

R\W

R\W

R\W

R\W

R\W

Начальное значение

0

0

0

0

0

0

0

0

 

РЕГИСТР НАПРАВЛЕНИЯ ДАННЫХ ПОРТА B

DDRB

 

17h(37h)

7 6 5 4 3 2 1 0

-

-

DDB5

 

 

 

 

DDB0

R\W

R\W

R\W

R\W

R\W

R\W

R\W

R\W

Начальное значение

0

0

0

0

0

0

0

0

 

ВЫВОДЫ ПОРТА B

PINB

 

16h(36h)

7 6 5 4 3 2 1 0

-

-

PINB5

 

 

 

 

PINBO

R

R

R\W

R\W

R\W

R\W

R\W

R\W

Начальное значение

0

0

Z

Z

Z

Z

Z

Z

PINB не является регистром, по этому адресу осуществляется доступ к физическим значениям каждого из выводов порта B. При чтении PORTB, читаются данные из регистра-защелки, при чтении PINB читаются логичес­кие значения присутствующие на выводах порта.

ПОРТ B, КАК ПОРТ ВВОДА/ВЫВОДА ОБЩЕГО НАЗНАЧЕНИЯ

 

Все 6 бит порта B при использовании для ввода/вывода одинаковы.

Бит DDBn регистра DDRB выбирает направление передачи данных. Если бит установлен (1), вывод сконфигурирован как выход. Если бит сброшен (0) - вывод сконфигурирован как вход. Если PORTBn установлен и вывод сконфигурирован как вход, включается КМОП подтягивающий резистор. Для отключения резистора, PORTBn должен быть сброшен (0) или вывод должен быть сконфигурирован как выход.

Таблица 22. Влияние DDBn на выводы порта B

DDBn PORTBn Вх/Вых Подт.резист Комментарий
0 0 Вход Нет
0 1 Вход Да PBn источник тока Iil, если извне соединен с землей
1 0 Выход Нет Выход установлен в 0
1 1 Выход Нет Выход установлен в 1

n = 5...0 - номер вывода


АЛЬТЕРНАТИВНЫЕ ФУНКЦИИ PORTB

 

SCK - PORTB, Bit 5 - Выход тактовой частоты ведущего и тактовый вход ведомого процессора канала SPI. Если работа SPI разрешена и шина скон­фигурирована как ведомая, этот вывод устанавливается на ввод независи­мо от установки DDB5. Если процессор работает как ведущий, направление передачи данных по этому выводу определяется DDB5. Когда вывод устана­вливается на ввод, подключение подтягивающего резистора состоянием би­та PORTB5. Подробнее см. описание порта SPI.

MISO - PORTB, Bit 4 - Вход данных ведущего, выход ведомого в канале SPI. Если разрешена работа SPI в качестве ведущего, вывод PB4 сконфи­гурирован как вход независимо от установки DDB4. Если SPI разрешен и работает как ведомый, направление передачи данных управляется состоя­нием DDB4. Когда вывод принудительно сконфигурирован как вход, подклю­чение подтягивающего резистора по-прежнему управляется состоянием бита PORTB4. Подробнее см. описание порта SPI.

MOSI - PORTB, Bit 3 - Выход данных ведущего, вход ведомого в канале SPI. Когда SPI работает как ведомый, этот вывод работает как вход не­зависимо от установки бита DDB3. При работе SPI ведомым направление передачи этого вывода управляется битом DDB3. Когда вывод принудитель­но сконфигурирован как вход, подключение подтягивающего резистора по

прежнему управляется состоянием бита PORTB3. Подробнее см. описание

порта SPI.

SS - PORTB, Bit 2. - Вход выбора ведомого. Если канал работает как ведомый, этот вывод работает как вход независимо то установки DDB2.

SPI активируется как ведомый при переводе этого вывода в низкое состо­яние. При работе SPI как ведущего, направление передачи данных через этот вывод управляется битом DDB2. Когда вывод переводится в состояние ввода, подключение подтягивающего резистора управляется битом PORTB2. Подробнее см. описание порта SPI.

OC1 - PORTB, Bit 1. Выход совпадения. Вывод PB1 может работать как внешний выход совпадения таймера/счетчика 1. Для обслуживания этой функции вывод должен быть сконфигурирован как выход (DDB1=1). Разреш­ение работы этой функции рассмотрено при описании таймера. Вывод OC1

также работает как выход при работе таймера в режиме ШИМ.

ICP - PORTB, Bit 0. Вход захвата. Вывод PB0 может работать как вне­шний вход захвата Таймера/счетчика 1. Для обслуживания этой функции вывод должен быть сконфигурирован как вход. Подробнее см. описание ра­боты таймера.


Порт C

 

Порт C 6-разрядный двунаправленный порт ввода/вывода.

Для обслуживания порта отведено три регистра: регистр данных PORTC (15h, 35h), регистр направления данных - DDRC (14h, 34h) и ножки порта C - PINC (13h, 33h). Адрес ножек порта C предназначен только для чтения, в то время как регистр данных и регистр направления данных - для чтения/записи. Все выводы порта имеют отдельно подключаемые подтягивающие резис­торы. Выходы порта C могут поглощать ток до 20 mA и непосредственно управлять светодиодными индикаторами. Если выводы PC0..PC5 используют­ся как входы и замыкаются на землю, если включены внутренние подтяги­вающие резисторы, выводы являются источниками тока (Iil). Дополнительные функции порта C - аналоговые входы АЦП. Если неко­торые из выводов порта сконфигурированы как выходы, во время преобра­зования не рекомендуется производить их переключение. В экономичном режиме триггеры Шмитта отключаются от цифровых вхо­дов. Это позволяет удерживать на входах аналоговое напряжение Vcc/2 без заметного увеличения потребления.

 

РЕГИСТР ДАННЫХ ПОРТА C – PORTC

 

15h(35h)

7 6 5 4 3 2 1 0

-

-

PORTC5

 

 

 

 

PORTC0

R

R

R\W

R\W

R\W

R\W

R\W

R\W

Начальное значение

0

0

0

0

0

0

0

0

 

РЕГИСТР НАПРАВЛЕНИЯ ДАННЫХ ПОРТА B

DDRC

14h(34h)

7 6 5 4 3 2 1 0

-

-

DDC5

 

 

 

 

DDC0

R

R

R\W

R\W

R\W

R\W

R\W

R\W

Начальное значение

0

0

0

0

0

0

0

0

 

ВЫВОДЫ ПОРТА B

PINC

13h(33h)

7 6 5 4 3 2 1 0

-

-

PINC5

 

 

 

 

PINC0

R

R

R\W

R\W

R\W

R\W

R\W

R\W

Начальное значение

0

0

Z

Z

Z

Z

Z

Z

PINC не является регистром, по этому адресу осуществляется доступ к физическим значениям каждого из выводов порта C. При чтении PORTC, читаются данные из регистра-защелки, при чтении PINC читаются логичес­кие значения присутствующие на выводах порта.


ПОРТ C, КАК ПОРТ ВВОДА/ВЫВОДА ОБЩЕГО НАЗНАЧЕНИЯ

 

Все 6 бит порта C при использовании для ввода/вывода одинаковы.

Бит DDCn регистра DDRC выбирает направление передачи данных. Если бит установлен (1), вывод сконфигурирован как выход. Если бит сброшен (0) - вывод сконфигурирован как вход. Если PORTCn установлен и вывод сконфигурирован как вход, включается КМОП подтягивающий резистор. Для отключения резистора, PORTCn должен быть сброшен (0) или вывод должен быть сконфигурирован как выход.

Таблица 23. Влияние DDCn на выводы порта C

DDC PORTC In\Out Подтягивающие резисторы описание

0

0

0

Нет Третье состояние

0

1

1

Да PBn источник тока Iil, если извне соединен с землей

1

0

0

Нет Выход установлен в 0

1

1

1

Нет Выход установлен в 1

Порт D

 

Порт D 8-разрядный двунаправленный порт ввода/вывода.

Для обслуживания порта отведено три регистра: регистр данных PORTD (12h, 32h), регистр направления данных - DDRD (11h, 31h) и ножки порта D - PIND (10h, 30h). Адрес ножек порта D предназначен только для чтения, в то время как регистр данных и регистр направления данных - для чтения/записи. Все выводы порта имеют отдельно подключаемые подтягивающие резис­торы. Выходы порта D могут поглощать ток до 20 mA и непосредственно управлять светодиодными индикаторами. Если выводы PD0..PD7 используют­ся как входы и замыкаются на землю, если включены внутренние подтяги­вающие резисторы, выводы являются источниками тока (Iil). Альтернативные функции порта приведены в таблице.

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

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

PD0

RXD (вход данных UART)

PD1

TXD (выход данных UART)

PD2

INT0 (вход внешнего прерывания 0)

PD3

INT1 (вход внешнего прерывания 1)

PD4

T0 (внешний вход таймера счетчика 0)

PD5

T1 (внешний вход таймера счетчика 1)

PD6

AIN0 (неинвертирующ.вход компаратора)

PD7

AIN1 (инвертирующий вход компаратора)

РЕГИСТР ДАННЫХ ПОРТА D – PORTD


15h(35h)

7 6 5 4 3 2 1 0

-

-

PORTD5

 

 

 

 

PORTD0

R

R

R\W

R\W

R\W

R\W

R\W

R\W

Начальное значение

0

0

0

0

0

0

0

0

 

14h(34h)

7 6 5 4 3 2 1 0

-

-

DDD5

 

 

 

 

DDD0

R

R

R\W

R\W

R\W

R\W

R\W

R\W

Начальное значение

0

0

0

0

0

0

0

0

 

13h(33h)

7 6 5 4 3 2 1 0

-

-

PIND5

 

 

 

 

PIND0

R

R

R\W

R\W

R\W

R\W

R\W

R\W

Начальное значение

0

0

Z

Z

Z

Z

Z

Z

 

PIND не является регистром, по этому адресу осуществляется доступ к физическим значениям каждого из выводов порта D. При чтении PORTD, читаются данные из регистра-защелки, при чтении PIND читаются логичес­кие значения присутствующие на выводах порта.

 

ПОРТ D, КАК ПОРТ ВВОДА/ВЫВОДА ОБЩЕГО НАЗНАЧЕНИЯ

 

Бит DDDn регистра DDRD выбирает направление передачи данных. Если бит установлен (1), вывод сконфигурирован как выход. Если бит сброшен (0) - вывод сконфигурирован как вход. Если PORTDn установлен и вывод сконфигурирован как вход, включается КМОП подтягивающий резистор. Для отключения резистора, PORTDn должен быть сброшен (0) или вывод должен быть сконфигурирован как выход.

Таблица 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. Загрузить команду '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".


Информация о работе «AVR микроконтроллер AT90S2333 фирмы Atmel»
Раздел: Радиоэлектроника
Количество знаков с пробелами: 141751
Количество таблиц: 86
Количество изображений: 0

0 комментариев


Наверх