Микроконтроллеры AVR: области применения, аппаратные возможности, особенности функционирования

Области применения микроконтроллеров AVR, их аппаратные возможности. Структурная схема микроконтроллера, основные пути увеличения его быстродействия. Отличительные черты архитектуры, пространство памяти. Сброс и обработка прерываний, сторожевой таймер.

Рубрика Коммуникации, связь, цифровые приборы и радиоэлектроника
Вид курс лекций
Язык русский
Дата добавления 27.05.2013
Размер файла 1,1 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Рис.3.9 Схема организации статического ОЗУ

Вопрос № 10. Сброс и обработка прерываний микроконтроллера AT90S2313

Сброс и обработка прерываний

В AT90S2313 предусмотрены 10 источников прерываний. Эти прерывания и сброс имеют различные векторы в области памяти программ. Каждому из прерываний присвоен отдельный бит разрешающий данное прерывание при установке бита в 1, если бит I регистра состояния разрешает общее обслуживание прерываний.

Самые младшие адреса памяти программ определены как векторы сброса и прерываний. Полный список векторов прерываний приведен в таблице 2.1 Этот список определяет и приоритет различных прерываний. Меньшие адреса соответствуют более высокому уровню приоритета. Самый высокий уровень у сброса, следующий приоритет у INT0 - внешнего запроса прерывания 0 и т.д.

Ниже приведена типичная программа обработки сброса и векторов прерываний:

Address Labels

Code

Comments

$000

rjmp RESET

Обработка сброса

$001

rjmp EXT_INT0

Обработка IRQ0

$002

rjmp EXT_INT1

Обработка IRQ1

$003

rjmp TIM_CAPT1

Обработка захвата таймера 1

$004

rjmp TIM_COMP1

Обработка совпадения таймера 1

$005

rjmp TIM_OVF1

Обработка переполнения таймера1

$006

rjmp TIM_OVF0

Обработка переполнения таймера0

$007

rjmp UART_RXC

Обработка приема байта

$008

rjmp UART_DRE

Обработка освобождения UDR

$009

rjmp UART_TXC

Обработка передачи байта

$00a

rjmp ANA_COMP

Обработка аналогового компаратора

$00b

MAIN<instr> xxx

Начало основной программы

Таблица 2.1 Сброс и векторы прерываний.

Номер вектора

Адрес

Источник

Описание прерывания

1

0x000

RESET

Ножка сброса и сброс от сторожевого таймера

2

0x001

INT0

Внешнее прерывание 0

3

0x002

INT1

Внешнее прерывание 1

4

0x003

TIMER1 CAPT1

Захват таймера/счетчика 1

5

0x004

TIMER1 COMP1

Совпаден. таймера/счетчика 1

6

0x005

TIMER1 OVF1

Переполнение таймера/счетчика 1

7

0x006

TIMER0 OVF0

Переполнение таймера/счетчика 0

8

0x007

UART RX

Последоват. порт прием закончен

9

0x008

UART UDRE

Посл. порт регистр данных пуст

10

0x009

UART TX

Посл. порт передача закончена

11

0x00A

ANA_COMP

Аналоговый компаратор

Источники сброса

AT90S2313 имеет три источника сброса.

· Сброс по включению питания. Процессор сбрасывается при подаче питания на выводы VCC и GND.

· Внешний сброс. Процессор сбрасывается при подаче низкого уровня на вывод RESET на время более двух периодов тактовой частоты.

· Сброс от сторожевого таймера. Процессор сбрасывается по окончанию времени отработки сторожевого таймера, если разрешена его работа.

Во время сброса все регистры ввода/вывода устанавливаются в начальные значения, программа начинает выполняться с адреса $000, по этому адресу должна быть записана команда RJMP - относительный переход на программу обработки сброса. Если в программе не разрешаются прерывания и векторы прерываний не используются, в первых адресах памяти может быть записана программа.

Сброс по включению питания

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

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

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

Внешний сброс

Внешний сброс обрабатывается по низкому уровню на выводе RESET. Вывод должен удерживаться в низком состоянии по крайней мере два периода тактовой частоты. После достижения напряжения Vrst запускается таймер задержки, через промежуток времени Tout процессор запускается.

Сброс по сторожевому таймеру

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

Обработка прерываний

AT90S2313 имеет два регистра маски прерываний GIMSK - общий регистр маски прерываний и TIMSK - регистр маски прерываний от таймера/счетчика.

Когда возникает прерывание бит глобального разрешения прерываний I сбрасывается (ноль) и все прерывания запрещаются. Программа пользователя может установить этот бит для разрешения прерываний. Флаг разрешения прерываний I устанавливается в 1 при выполнении команды выхода из прерывания - RETI.

Для прерываний включаемых статическими событиями (напр. совпадение значения счетчика/таймера 1 с регистром совпадения) флаг прерывания взводится при возникновении события. Если флаг прерывания очищен и присутствует условие возникновения прерывания, флаг не будет установлен, пока не произойдет следующее событие.

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

Общий регистр маски прерываний GIMSK

Бит

7

6

5

4

3

2

1

0

$3D ($5D)

INT1

INT0

-

-

-

-

-

-

GIMSK

Чт. /зап (R/W)

R/W

R/W

R

R

R

R

R

R

Начальн. знач.

0

0

0

0

0

0

0

0

Бит 7 - INT1: Запрос внешнего прерывания 1 разрешен. Когда этот бит установлен, а также установлен бит I регистра состояния, разрешается прерывание от внешнего вывода. Биты управления запуском прерывания (ISC11 и ISC10) в регистре управления микроконтроллером (MCUCR) определяют по какому событию отрабатывается прерывание - по спадающему или нарастающему фронту или же по уровню. Активность на выводе приводит к возникновению прерываний даже если вывод сконфигурирован как выход. При возникновении прерывания выполняется программа, начинающаяся с адреса $002 в памяти программ. (см. также "Внешние прерывания").

Бит 6 - INT0: Запрос внешнего прерывания 0 разрешен. Когда этот бит установлен, а также установлен бит I регистра состояния, разрешается прерывание от внешнего вывода. Биты управления запуском прерывания (ISC01 и ISC00) в регистре управления микроконтроллером (MCUCR) определяют по какому событию отрабатывается прерывание - по спадающему или нарастающему фронту или же по уровню. Активность на выводе приводит к возникновению прерываний даже если вывод сконфигурирован как выход. При возникновении прерывания выполняется программа, начинающаяся с адреса $001 в памяти программ. (см. также "Внешние прерывания").

Биты 5.0 - зарезервированы. В AT90S2313 эти биты зарезервированы и всегда читаются как 0.

Общий регистр флагов прерываний GIFR

Бит

7

6

5

4

3

2

1

0

$3D ($5В)

INTF1

INTF0

-

-

-

-

-

-

GIFR

Чт. /зап (R/W)

R

R/W

R

R

R

R

R

R

Начальн. знач.

0

0

0

0

0

0

0

0

Бит 7 - INTF1: Флаг внешнего прерывания 1: При возникновении на выводе INT1 события вызывающего прерывание, INTF1 устанавливается в "1". Если установлены бит I регистра SREG и бит INT1 в GIMSK, происходит переход на вектор прерывания по адресу $002. Флаг очищается после выполнения обработчика прерывания. Кроме того, флаг можно очистить, записав в него логическую единицу.

Бит 6 - INTF0: Флаг внешнего прерывания 0: При возникновении на выводе INT0 события вызывающего прерывание, INTF0 устанавливается в "1". Если установлены бит I регистра SREG и бит INT0 в GIMSK, происходит переход на вектор прерывания по адресу $001. Флаг очищается после выполнения обработчика прерывания. Кроме того, флаг можно очистить, записав в него логическую единицу.

Биты 5.0 - зарезервированы. В AT90S2313 эти биты зарезервированы и всегда читаются как 0.

Регистр маски прерывания от таймера/счетчика TIMSK

Бит

7

6

5

4

3

2

1

0

$39 ($59)

TOIE1

OCIE1A

-

-

TICIE1

-

TOIE0

-

TIMSK

Чт. /зап

R/W

R/W

R/W

R/W

R/W

R/W

R/W

R/W

Нач. знач.

0

0

0

0

0

0

0

0

Бит 7 - TOIE1: Разрешение прерывания по переполнению таймера/счетчика 1: Если установлен этот бит и бит разрешения прерываний в регистре состояния, разрешены прерывания по переполнению таймера/счетчика 1.

Соответствующее прерывание (вектор $005) выполняется при переполнении таймера/счетчика 1. В регистре флагов таймеров/счетчиков (TIFR) устанавливается флаг переполнения. Если таймер/счетчик 1 работает в режиме ШИМ, флаг переполнения устанавливается при изменении направления счета, при значении $0000.

Бит 6 - OCIE1A: Разрешение прерывания по совпадению таймера/счетчика 1: Если установлены бит OCIE1A и бит разрешения прерывания в регистре состояния, разрешены прерывания по совпадению таймера/счетчика 1. Прерывание (вектор $004) выполняется при равенстве таймера/счетчика 1 и регистра совпадения. Во флаговом регистре TIFR устанавливается ("1") флаг совпадения.

Биты 5,4 - зарезервированы; в AT90S2313 эти биты зарезервированы и всегда читаются как 0.

Бит 3 - TICIE1: Разрешение прерывания по входу захвата: Если установлены бит TICIE1 и бит разрешения прерывания в регистре состояния, разрешены прерывания по входу захвата. Соответствующее прерывание (вектор $003) выполняется по сигналу захвата на выводе 11 (PD6/ICP). Во флаговом регистре TIFR устанавливается ("1") флаг захвата.

Бит 2 - зарезервирован; в AT90S2313 этот бит зарезервирован и всегда читается как 0.

Бит 1 - TOIE0: Разрешение прерывания по переполнению таймера/счетчика 0. Если этот бит установлен в 1, и бит I в регистре состояния установлен в 1, разрешены прерывания по переполнению таймера/счетчика 0.

При возникновении переполнения выполняется соответствующий вектор прерывания ($006). Флаг переполнения (TOV0) во флаговом регистре прерываний (TIFR) таймеров/счетчиков устанавливается в 1.

Бит 0 - зарезервирован; в AT90S2313 этот бит зарезервирован и всегда читается как 0.

Регистр флагов прерываний от таймеров/счетчиков TIFR

Бит

7

6

5

4

3

2

1

0

$38 ($58)

TOV1

OCF1A

-

-

ICF1

-

TOV0

-

TIFR

Чт. /зап

R/W

R/W

R/W

R/W

R/W

R/W

R/W

R/W

Нач. знач.

0

0

0

0

0

0

0

0

Бит 7 - TOV1: Флаг переполнения таймера/счетчика 1: Флаг TOV1 устанавливается ("1") при возникновении переполнения таймера/счетчика 1.

Флаг TOV1 сбрасывается аппаратно при выполнении соответствующего вектора обработки прерывания. Кроме того, флаг можно сбросить, записав в него логическую единицу. Если установлены бит I в SREG и бит TOIE1 в TIMSK, при установке бита TOV1 выполняется прерывание по переполнению таймера/счетчика 1. В режиме ШИМ этот бит устанавливается, когда таймер/счетчик 1 изменяет направление счета при значении $0000.

Бит 6 - OCF1A: Флаг выхода совпадения 1А: флаг устанавливается в "1" если происходит совпадение значения таймера/счетчика 1 и данных в регистре OCR1A. Флаг очищается аппаратно при выполнении соответствующего вектора прерывания. Кроме того, флаг можно сбросить, записав в него логическую единицу. Если установлены бит I в SREG и бит OCIE1A в TIMSK, при установке бита OCF1A выполняется прерывание.

Биты 5,4 - зарезервированы; в AT90S2313 эти биты зарезервированы и всегда читаются как 0.

Бит 3 - ICF1: флаг входа захвата 1: бит устанавливается ("1") при возникновении события захвата по входу, он индицирует, что значение таймера/счетчика 1 скопировано в регистр захвата по входу ICR1. ICF1 очищается при выполнении соответствующего вектора обработки прерывания. Кроме того, флаг можно очистить, записав в него логическую единицу.

Бит 2 - зарезервирован; в AT90S2313 этот бит зарезервирован и всегда читается как 0.

Бит 1 - TOV0: Флаг переполнения таймера счетчика 1: Флаг TOV0 устанавливается ("1") при переполнении таймера/счетчика 0. Флаг сбрасывается аппаратно при выполнении соответствующего вектора прерывания. Кроме того, флаг можно очистить записав в него логическую единицу. Если установлены бит I в SREG и бит TOIE0 в TIMSK, при установке бита TOV0 выполняется прерывание по переполнению таймера/счетчика 0.

Бит 0 - зарезервирован; в AT90S2313 этот бит зарезервирован и всегда читается как 0.

Внешние прерывания

Внешние прерывания управляются выводами INT0 и INT1. Заметим, что прерывания обрабатываются даже когда выводы сконфигурированы как выходы. Это позволяет генерировать программные прерывания. Внешние прерывания могут возникать по спадающему или нарастающему фронту, а также по низкому уровню. Это устанавливается в регистре управления процессором MCUCR. Если внешние прерывания разрешены и сконфигурированы на отработку по уровню, прерывание будет вырабатываться до тех пор, пока вывод удерживается в низком состоянии.

Управление работой внешних прерываний рассмотрено при описании регистра управления процессором MCUCR.

Время реакции на прерывание

Минимальное время реакции на любое из предусмотренных в процессоре прерываний - 4 периода тактовой частоты. После четырех циклов вызывается программный вектор обрабатывающий данное прерывание. За эти 4 цикла программный счетчик записывается в стек, указатель стека уменьшается на 2. Программный вектор представляет собой относительный переход на подпрограмму обслуживания прерывания и этот переход занимает 2 периода тактовой частоты. Если прерывание происходит во время выполнения команды длящейся несколько циклов, перед вызовом прерывания завершается выполнение этой команды.

Выход из программы обслуживания прерывания занимает 4 периода тактовой частоты. За эти 4 периода из стека восстанавливается программный счетчик. После выхода из прерывания процессор всегда выполняет еще одну команду прежде чем обслужить любое отложенное прерывание.

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

Регистр управления микроконтроллером MCUCR

Этот регистр содержит биты общего управления микроконтроллером.

Бит

7

6

5

4

3

2

1

0

$35 ($55)

-

-

SE

SM

ISC11

ISC10

ISC01

ISC00

MCUCR

Чт. /зап (R/W)

R

R

R/W

R/W

R

R

R/W

R/W

Начальн. знач.

0

0

0

0

0

0

0

0

Биты 7,6 - зарезервированы. В AT90S2313 эти биты зарезервированы и всегда читаются как 0.

Бит 5 - SE: Разрешение режима Sleep: Этот бит должен быть установлен в 1, чтобы при выполнении команды SLEEP процессор переходил в режим пониженного энергопотребления. Этот бит должен быть установлен в 1 до исполнения команды SLEEP.

Бит 4 - SM: Режим Sleep: Этот бит выбирает один из двух режимов пониженного энергопотребления. Если бит сброшен (0), в качестве режима Sleep выбирается холостой режим (Idle mode). Если бит установлен, выбирается экономичный режим (Power down). Особенности каждого из режимов будут рассмотрены ниже.

Биты 3,2 - ISC11, ISC10: биты управления срабатыванием прерывания 1:

Внешнее прерывание активируется выводом INT1 если установлен флаг I регистра состояния SREG и установлена соответствующая маска в регистре GIMSK. Срабатывание по уровню и фронтам задается следующим образом:

Таблица 2.2 Управление срабатыванием прерывания 1.

ISC11

ISC10

Описание

0

0

Запрос на прерывание генерируется по низкому уровню на входе INT1

0

1

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

1

0

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

1

1

Запрос на прерывание по нарастающ. фронту на входе INT1

ПРИМЕЧАНИЕ: При изменении битов ISC11/ISC10 прерывание INT1 должно быть запрещено очисткой соответствующего бита в регистре GIMSK. Иначе прерывание может возникнуть во время изменения битов.

Таблица 2.3 Управление срабатыванием прерывания 0

ISC01

ISC00

Описание

0

0

Запрос на прерывание генерируется по низкому уровню на входе INT0

0

1

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

1

0

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

1

1

Запрос на прерывание по нарастающ. фронту на входе INT0

Примечание: При изменении битов ISC01 и ISC00, прерывания по входу INT0 должны быть запрещены сбросом бита разрешения прерывания в регистре GIMSK. Иначе прерывание может произойти при изменении значения битов.

Биты 1,0 - ISC01, ISC00: биты управления срабатыванием прерывания 0:

Внешнее прерывание активируется выводом INT0 если установлен флаг I регистра состояния SREG и установлена соответствующая маска в регистре GIMSK.

Вопрос № 11. Сторожевой таймер микроконтроллера AT90S2313

Сторожевой таймер

Сторожевой таймер работает от отдельного встроенного генератора работающего на частоте 1 MHz (это типовое значение частоты для питания 5В). Управляя предварительным делителем сторожевого таймера можно задавать интервал сброса таймера от 16 до 2048 mS. Команда WDR сбрасывает сторожевой таймер. Для работы сторожевого таймера можно выбрать одно из 8-ми значений частоты, что позволяет в широких пределах изменять время между исполнением команды WDR и сбросом процессора. При отработке периода работы сторожевого таймера, если не поступила команда WDR, AT90S2313 сбрасывается, выполнение программы продолжается с вектора сброса.

Для предотвращения нежелательного отключения сторожевого таймера, для его запрещения должна выполняться определенная последовательность, которая описана при рассмотрении регистра WDTCR.

Регистр управления сторожевым таймером - WDTCR

Бит

7

6

5

4

3

2

1

0

$21 ($41)

-

-

-

WDTOE

WDE

WDP2

WDP1

WDP0

WDTCR

Чт. /зап (R/W)

R

R

R

R

R/W

R/W

R/W

R/W

Начальн. знач.

0

0

0

0

0

0

0

0

Биты 7.5 - зарезервированы. В AT90S2313 эти биты зарезервированы и всегда читаются как 0.

Бит 4 - WDTOE - разрешение выключения сторожевого таймера. При очистке бита WDE этот бит должен быть установлен (1). Иначе, работа сторожевого таймера не прекращается. Через четыре такта после установки этого бита, он аппаратно сбрасывается.

Бит 3 - WDE - разрешение сторожевого таймера. Если бит установлен (1), работа сторожевого таймера разрешена, если бит сброшен - запрещена. Сброс бита производится только в том случае, если бит WDTOE установлен в 1. Для запрещения включенного сторожевого таймера должна исполняться следующая процедура:

1. Одной командой записать 1 в WDTOE и WDE. Единица в WDE должна записываться даже в том случае если этот бит был установлен перед началом процедуры остановки таймера.

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

Биты 2.0 - WDP2.0 - Биты предварительного делителя сторожевого таймера. Если работа сторожевого таймера разрешена, эти биты определяют предварительный коэффициент деления для сторожевого таймера. В таблице 2.11 приведены различные значения установок предварительного делителя и соответствующие им временные интервалы для напряжения питания Vcc=5V.

Таблица 2.11. Установки предварительного делителя сторожевого таймера

WDP2

WDP1

WDP0

Период времени

0

0

0

16 mS

0

0

1

32 mS

0

1

0

64 mS

0

1

1

128 mS

1

0

0

256 mS

1

0

1

512 mS

1

1

0

1024 mS

1

1

1

2048 mS

Вопрос № 12. Чтение и запись в энергонезависимую память микроконтроллера AT90S2313

Чтение и запись в энергонезависимую память

Регистры доступа к энергонезависимой памяти (EEPROM) расположены в пространстве ввода/вывода.

Время записи лежит в диапазоне 2.5-4 mS и зависит от напряжения питания. Это самотактируемая функция которая, однако, позволяет пользователю определить, можно ли записывать следующий байт. Если программа пользователя производит запись в энергонезависимую память, должны быть предприняты некоторые меры предосторожности. При использовании в источнике питания конденсаторов большой емкости, напряжение питания нарастает и спадает достаточно медленно.

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

Для защиты от нежелательной записи в EEPROM необходимо следовать некоторым правилам, которые будут рассмотрены ниже, при описании управляющего регистра энергонезависимой памяти.

При записи или чтении EEPROM процессор приостанавливается на 2 машинных цикла до начала выполнения следующей команды.

Регистр адреса EEPROM - EEAR

Бит

7

6

5

4

3

2

1

0

$1E ($3E)

-

EEAR6

EEAR5

EEAR4

EEAR3

EEAR2

EEAR1

EEAR0

Чт. /зап (R/W)

R

R/W

R/W

R/W

R/W

R/W

R/W

R/W

Начальн. знач.

0

0

0

0

0

0

0

0

Бит 7 - зарезервирован. В AT90S2313 этот бит зарезервирован и всегда читается как 0.

Биты 6.0 - EEAR6.0 - Адрес EEPROM. Адресный регистр EEPROM задает адрес в 128-байтном пространстве EEPROM. Байты данных EEPROM адресуются линейно в диапазоне 0.127.

Регистр данных EEPROM - EEDR

Бит

7

6

5

4

3

2

1

0

$1D ($3D)

MSB

-

-

-

-

-

-

LSB

EEDR

Чт. /зап (R/W)

R/W

R/W

R/W

R/W

R/W

R/W

R/W

R/W

Начальн. знач.

0

0

0

0

0

0

0

0

Биты 7.0 - EEDR7.0 - Данные EEPROM. При записи регистр EEDR содержит данные, которые записываются в EEPROM по адресу в регистре EEAR. Для операции чтения в этот регистр читаются данные прочитанные из EEPROM по адресу заданному в регистре EEAR.

Регистр управления EEPROM - EECR

Бит

7

6

5

4

3

2

1

0

$1C ($3C)

-

-

-

-

-

EEMWE

EEWE

EERE

EECR

Чт. /зап (R/W)

R

R

R

R

R

R/W

R/W

R/W

Начальн. знач.

0

0

0

0

0

0

0

0

Биты 7.3 - зарезервированы. В AT90S2313 эти биты зарезервированы и всегда читаются как 0.

Бит 2 - EEMWE - Управление разрешением записи. Этот бит определяет, будут ли записаны данные при установке EEWE. Если бит EEMWE установлен, при установке EEWE данные записываются по выбранному адресу EEPROM. Если этот бит сброшен, установка EEWE не имеет эффекта. После программной установки этот бит сбрасывается аппаратно через четыре такта процессора.

Бит 1 - EEWE - Разрешение записи в EEPROM. Сигнал EEWE является стробом записи в EEPROM. После установки правильных адреса и данных для записи в EEPROM необходимо установить бит EEWE. При записи "1" в бит EEWE должен быть установлен бит EEMWE, тогда происходит запись в EEPROM. Для записи в EEPROM должна соблюдаться следующая последовательность:

· Ждем обнуления EEWE

· Записываем адрес в EEAR (не обязательно)

· Записываем данные в EEDR (не обязательно)

· Устанавливаем в 1 бит EEMWE

· Не позже чем через 4 такта после установки EEMWE устанавливаем EEWE

После того как время записи истечет (типично 2.5 mS для Vcc=5V и 4mS для Vcc=2.7), бит EEWE очищается аппаратно. Пользователь может отслеживать этот бит и ожидать его установки в ноль, перед тем как записывать следующий байт. При установке EEWE, ЦПУ останавливается на два цикла перед исполнением следующей команды.

Бит 0 - EERE - разрешение чтения из EEPROM. Сигнал EERE является стробом чтения из EEPROM. После установки нужного адреса в регистре EEAR, необходимо установить бит EERE. После того как бит EERE будет аппаратно очищен, в регистре EEDR. Чтение EEPROM занимает одну команду и не требует отслеживания бита EERE. При установке бита EERE, ЦПУ останавливается на два цикла перед тем как будет выполнена следующая команда. Перед чтением пользователь должен проверять состояние бита EEWE, если регистры данных или адреса изменяются во время операции записи, запись в ячейку прерывается и результат операции записи становится неопределенным.

Вопрос № 13. Универсальный асинхронный приемо-передатчик AT90S2313 и его основные особенности

В состав AT90S2313 входит универсальный асинхронный приемо-передатчик (UART), его основные особенности:

· Генерация произвольных значений скорости

· Высокая скорость при низких тактовых частотах

· 8 или 9 бит данных

· Фильтрация шума

· Определение переполнения

· Детектирование ошибки кадра

· Определение неверного стартового бита

· Три раздельных прерывания - завершение передачи, очистка регистра передачи и завершение приема.

Передача данных

Передача данных инициируется записью передаваемых данных в регистр ввода/вывода данных UART - UDR. Данные пересылаются из UDR в сдвиговый регистр передатчика когда новый символ записывается в UDR после того как был выдвинут стоповый бит для предыдущего символа. При этом сдвиговый регистр загружается сразу.

Новый символ записывается в UDR до того как выдвинут стоповый бит для предыдущего символа. При этом сдвиговый регистр записывается сразу после того, как будет выдвинут стоповый бит предыдущего символа.

При этом в регистре состояния UART - USR устанавливается бит-признак очистки регистра данных - UDRE/ Когда этот бит установлен, UART готов к приему следующего символа. Пре перезаписи UDR в 10 (11) - разрядный сдвиговый регистр, бит 0 сдвигового регистра обнуляется (стартовый бит), а бит 9 или 10 устанавливается (стоповый бит). Если выбрано 9-битовое слово данных (установлен бит CHR9 в регистре UCR), бит TXB8 из UCR переписывается в 9-й бит сдвигового регистра передатчика.

После тактового импульса, следующего с частотой передачи, стартовый бит выдвигается на вывод TXD. Затем выдвигаются данные, начиная с младшего бита. После того как выдвинут стоповый бит, в сдвиговый регистр загружаются новые данные, если они были записаны в UDR во время передачи. При загрузке устанавливается бит UDRE. Если до выдвижения стопового бита в регистр UDR не поступают новые данные, UDRE остается установленным до последующей записи UDR. Если новые данные не поступили и на выводе TXD появляется стоповый бит, в регистре USR устанавливается флаг окончания передачи - TXC.

Установка бита TXEN в UCR разрешает работу передатчика. При очистке бита TXEN, вывод PD1 можно использовать для ввода/вывода данных. Если бит TXEN установлен, передатчик UART подключен к выводу PD1 независимо от установки бита DDD1 в регистре DDRD.

Прием данных

Логическая схема приемника обрабатывает сигнал на выводе RXD с частотой в 16 больше скорости передачи (для обработки одного бита принимаемой последовательности, производится 16 выборок входного сигнала). В состоянии ожидания одна выборка логического нуля интерпретируется, как спадающий фронт стартового бита, после чего запускается последовательность обнаружения стартового бита. Если в первой выборке сигнала обнаружен нулевой отсчет, приемник обрабатывает 8, 9 и 10 выборки сигнала на выводе RXD. Если хотя бы две из трех выборок равны логической единице, стартовый бит считается шумом и приемник ждет следующего перехода из 1 в 0.

Если обнаружен стартовый бит, начинается обработка бит данных. Решение об уровне данных также производится по 8, 9 и 10 выборкам входного сигнала, уровень входного сигнала определяется по равенству двух выборок. После того как уровень данных определен, данные вдвигаются в сдвиговый регистр приемника.

Для определения стопового бита хотя бы две из трех выборок входного сигнала должны быть равны 1. Если это условие не выполняется, в регистре USR устанавливается флаг ошибки кадра FE. Перед чтением данных из регистра UDR пользователь должен проверять бит FE для обнаружения ошибок кадра.

Независимо от принятия правильного стопового бита по окончанию приема символа принятые данные переписываются в UDR и устанавливается флаг RXC в регистре USR. Физически регистр UDR состоит из двух отдельных регистров, один используется для передачи данных, другой - для приема. При чтении UDR происходит доступ к регистру приемника, при записи - к регистру передатчика. При обмене 9-битовыми данными 9-й бит принятых данных записывается в бит RXB8 регистра UCR.

Если при приеме символа из регистра UDR не был прочитан предыдущий символ, в регистре UCR устанавливается флаг переполнения - OR. Установка этого бита означает, что последний принятый байт данных не переписывается из сдвигового регистра в регистр UDR и будет потерян. Бит OR буферирован и обновляется при чтении правильных данных из UDR. Таким образом, пользователь всегда может проверить состояние OR после чтения UDR и обнаружить происшедшее переполнение.

При сбросе бита RXEN в регистре UCR прием данных запрещается. При этом вывод PD0 можно использовать для ввода/вывода общего назначения. При установке RXEN, приемник подключен к выводу PD0 независимо от состояния бита DDD0 в регистре DDRD.

Управление UART

Регистр ввода/вывода UART - UDR

Бит

7

6

5

4

3

2

1

0

$0C ($2C)

MSB

-

-

-

-

-

-

LSB

UDR

Чт. /зап (R/W)

R/W

R/W

R/W

R/W

R/W

R/W

R/W

R/W

Начальн. знач.

0

0

0

0

0

0

0

0

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

Регистр состояния UART - USR

Регистр USR доступен только для чтения, в нем хранится информация о состоянии UART.

Бит

7

6

5

4

3

2

1

0

$0B ($2B)

RXC

TXC

UDRE

FE

OR

-

-

-

USR

Чт. /зап (R/W)

R

R

R

R

R

R

R

R

Начальн. знач.

0

0

1

0

0

0

0

0

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

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

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

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

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

Биты 2.0 - зарезервированы. В AT90S2313 эти биты зарезервированы и всегда читаются как 0.

Регистр управления UART - UCR

Бит

7

6

5

4

3

2

1

0

$0A ($2A)

RXCIE

TXCIE

UDRIE

RXEN

TXEN

CHR9

RXB8

TXB8

UCR

Чт. /зап (R/W)

R/W

R/W

R/W

R/W

R/W

R/W

R

W

Начальн. знач.

0

0

0

0

0

0

0

0

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

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

Бит 5 - UDRIE - Прерывание по очистке регистра данных последовательного порта. Если этот бит установлен, установка бита UDRE в USR приводит к выполнению прерывания по очистке регистра данных 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 - содержимое регистра скорости передачи UART

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

Таблица 2.12. Значения регистра UBRR для стандартных частот кварцевых генераторов.

Скор.

бод

4.0000

MHz

8.0000

MHz

9.2160

MHz

11.059

MHz

14.746

MHz

16.000

MHz

2400

103

207

239

287

383

416

4800

51

103

119

143

191

207

9600

25

51

59

71

95

103

14400

16

34

39

47

63

68

19200

12

25

29

35

47

51

28800

8

16

19

23

31

34

57600

3

8

9

11

15

16

115200

1

3

4

5

7

8

Регистр скорости передачи (UBRR)

Бит

7

6

5

4

3

2

1

0

$09 ($29)

MSB

-

-

-

-

-

-

LSB

UBRR

Чт. /зап (R/W)

R/W

R/W

R/W

R/W

R/W

R/W

R/W

R/W

Начальн. знач.

0

0

0

0

0

0

0

0

Это 8-разрядный регистр, который задает скорость передачи последовательного порта в соответствии с выражением приведенным выше.

Вопрос № 14. Классификация средств отладки прикладного ПО встраиваемых МП

Популярность микроконтроллеров AVR способствовала тому, что многие фирмы-производители программных средств поддержки микроконтроллеров (ассемблеров, компиляторов, отладчиков) создали программные пакеты поддержки AVR. Данный раздел содержит обзор программных средств, предлагаемых самой фирмой Atmel, и начинается со знакомства с основным программным пакетом - AVR Studio.

AVR Studio - это интегрированная отладочная среда разработки приложений (IDE) для микроконтроллеров семейства AVR (AT90S, ATmega, ATtiny) фирмы Atmel.

IDE AVR Studio содержит:

· транслятор языка ассемблера (Atmel AVR macroassembler)

· отладчик (Debugger)

· программное обеспечение верхнего уровня для поддержки внутрисхемного программирования (In-System Programming, ISP).

Отладчик AVR Studio поддерживает все типы микроконтроллеров AVR и имеет два режима работы: режим программной симуляции и режим управления различными типами внутрисхемных эмуляторов (In-Circuit Emulators) производства фирмы Atmel. Важно отметить, что интерфейс пользователя не изменяется в зависимости от выбранного режима отладки.

Отладочная среда поддерживает выполнение программ как в виде ассемблерного текста, так и в виде исходного текста языка С. Отладчик AVR Studio по формату объектного файла совместим с ассемблерами фирм Atmel (AVR Assembler) и IAR Systems (EWA90-Assembler. По формату объектного файла ubrof AVR Studio совместим с компилятором С фирмы IAR Systems (ICCA90 C Compiler) по формату coff - с компиляторами С фирм imagecraft (ICCAVR и ICCtiny) и HP Infotech (CodeVisionAVR). AVR Studio распространяется свободно, его последняя версия всегда доступна на сайте фирмы Atmel.

Основные сведения

Особенность отладки ПО устройств на базе встраиваемых МП (в том числе однокристальных микроконтроллеров) состоит в отсутствии в их составе развитых средств для реализации пользовательского интерфейса и ограниченных возможностях системного ПО. В то же время именно для встраиваемых микропроцессорных систем этап отладки является чрезвычайно ответственным, так как для них характерна тесная взаимосвязь работы ПО и аппаратных средств.

Для решения указанных задач применяются аппаратные и программные средства отладки ПО (рис.7).

Рис.7. Классификация средств отладки программного обеспечения

К аппаратным средствам отладки относятся аппаратные эмуляторы и проверочные модули.

Аппаратные эмуляторы предназначены для отладки программного и аппаратного обеспечения микропроцессорных систем в режиме реального времени. Они работают под управлением "ведущего" компьютера, оснащённого специальным ПО - программами-отладчиками (см. ниже). Основными видами аппаратных эмуляторов являются:

· Внутрисхемные эмуляторы или эмуляторы-приставки, замещающие микропроцессор в отлаживаемой системе;

· Внутрикристальные эмуляторы, представляющие собой одно из внутренних устройств микропроцессора.

Внутрисхемный эмулятор (In-Circuit Emulator, ICE) - это устройство, содержащее аппаратный имитатор процессора и схему управления имитатором. При отладке с помощью эмулятора микропроцессор извлекается из отлаживаемой системы, на его место подключается контактная колодка, количество и назначение контактов которой идентично выводам замещаемого микропроцессора. С помощью гибкого кабеля контактная колодка соединятся с эмулятором. Управление процессом отладки осуществляется с персонального компьютера.

Эмуляторам-приставкам присущи следующие недостатки: высо-кая стоимость, недостаточная надёжность, высокое энергопотребление, влияние на электрические характеристики цепей, к которым подключается эмулятор.

Внутрикристальные эмуляторы (On-Chip Emulator) позволяют проводить отладку программ без извлечения микропроцессора из системы. При этом осуществляется непосредственный контроль за выполнением программы,...


Подобные документы

  • Микроконтроллер ATtiny2313/V фирмы Atmel: структура, основные характеристики, возможности. Центральное ядро процессора. Системная перепрограммируемая Flash-память программ. Порты ввода-вывода микроконтроллера. Блок-схема восьмиразрядного таймера/счётчика.

    курсовая работа [2,2 M], добавлен 11.01.2011

  • Разработка микропроцессорной системы на основе микроконтроллера, основные этапы и особенности данного процесса. Принципы работы шагового двигателя. Аппаратные средства микроконтроллеров серии AT90S2313. Расчет стоимости сборки и отладки устройства.

    дипломная работа [1,4 M], добавлен 11.07.2010

  • Адресное пространство микроконтроллеров MSP430F1xx. Байтовая и словная формы инструкций. Система команд MSP микроконтроллеров. Периферийные устройства микроконтроллеров MSP430F1xx. Аналого-цифровой преобразователь ADC12, его технические характеристики.

    курсовая работа [278,1 K], добавлен 04.05.2014

  • Функциональная спецификация и структурная схема электронных автомобильных часов-термометра-вольтметра. Разработка алгоритма работы и принципиальной электрической схемы. Получение прошивки программы для памяти микроконтроллера в результате ассеблирования.

    курсовая работа [2,0 M], добавлен 26.12.2009

  • Общие принципы разработки программно-аппаратного терминала с CAN-шиной, его основные физические интерфейсы. Структурная схема разрабатываемого устройства. Схема подключения микроконтроллера. Схема подключения микроконтроллера Atmega128 и для ПЭВМ.

    дипломная работа [1,4 M], добавлен 07.07.2011

  • Понятие и виды микроконтроллеров. Особенности программирования микропроцессорных систем, построение систем управления химико-технологическим процессом. Изучение архитектуры микроконтроллера ATmega132 фирмы AVR и построение на его основе платформы Arduino.

    курсовая работа [1,9 M], добавлен 13.01.2011

  • Аналого-цифровой преобразователь, разрешение и типы преобразования. Точность и ошибки квантования. Частота дискретизации и наложение спектров. Подмешивание псевдослучайных сигналов и передискретизация. Основные аппаратные характеристики микроконтроллера.

    дипломная работа [635,4 K], добавлен 23.03.2013

  • Проектирование измерительных приборов. Параметры цифрового вольтметра. Принцип время-импульсного преобразования. Области применения микроконтроллеров. Алгоритм приложения для цифрового милливольтметра постоянного тока. Сборка элементов на печатной плате.

    дипломная работа [891,7 K], добавлен 17.06.2013

  • Общая характеристика микроконтроллера PIC16F873A, его корпус, технические параметры, структурная схема и организация памяти. Подключение питания и тактирование, анализ принципиальной схемы. Разработка рабочей программы для заданного микроконтроллера.

    курсовая работа [667,0 K], добавлен 23.04.2015

  • Структурная схема микроконтроллеров семейства MCS-51: отличительные особенности, назначение выводов, блок регистров специальных функций. Карта прямоадресуемых бит. Методы адресации, граф команд пересылки, обмена и загрузки. Ввод и отображение информации.

    курсовая работа [135,5 K], добавлен 22.08.2011

  • Разработка программы, реализующей таймер прямого хода на базе микроконтроллера AT90S8515. Приложение и среда программирования Algorithm Builder, ее преимущества. Принципиальная схема и назначение переменных. Описание основной программы и подпрограмм.

    курсовая работа [1,2 M], добавлен 19.03.2012

  • Структурная схема устройства. Общая характеристика микропроцессора Z80, его особенности. Описание выводов. Схемотехника и принцип работы блоков. Схема микропроцессорного блока и памяти. Программное обеспечение микроконтроллера. Расчёт блока питания.

    контрольная работа [355,3 K], добавлен 07.01.2013

  • Возможности современных ультразвуковых (УЗ) сканеров. Структурная схема универсального УЗ сканера. Блок управления механическим секторным и линейным датчиком. Генераторы УЗ импульсов. Схема блока фокусировки УЗ луча. Полосковая линия задержки луча.

    реферат [957,3 K], добавлен 15.01.2011

  • Функциональная схема микропроцессорной системы управления, алгоритм ее работы. Инициализация микроконтроллера и листинг соответствующей программы. Преобразование напряжения от датчика температуры. Обработка прерываний. Расчет электрических параметров.

    дипломная работа [1,7 M], добавлен 23.05.2012

  • Аппаратные принципы построения устройств микропроцессорной техники и приобретение практических навыков по разработке микропроцессорных систем. Техническая характеристика микропроцессора ATmega и анализ микросхемы памяти. Схема микропроцессорной системы.

    курсовая работа [1,6 M], добавлен 19.11.2011

  • Выбор структуры одноплатного микроконтроллера. Модули памяти микроконтроллера. Селектор адреса портов ввода/вывода и возможность изменения селектируемых адресов. Деление адресного пространства на окна. Нумерация точек в схеме цифрового фильтра.

    курсовая работа [204,3 K], добавлен 10.11.2013

  • Микроконтроллеры - микросхемы, предназначенные для управления электронными устройствами, их классификация. Структура процессорного ядра микроконтроллеров, основные характеристики, определяющие его производительность. CISC и RISC архитектура процессора.

    курсовая работа [43,2 K], добавлен 03.10.2010

  • Микроконтроллер (MCU) — микросхема, предназначенная для управления электронными устройствами. Их можно встретить во многих современных приборах, в том числе и бытовых. Рассмотрение архитектуры различных микроконтроллеров, ядра, памяти, питания, периферии.

    реферат [216,5 K], добавлен 24.12.2010

  • Анализ возможности создания локальной радиосети на основе Wi-Fi. Разработка иерархии сети, построение ее архитектуры на сетевом и канальном уровнях. Энергетический расчет системы. Определение типов пакетов физического уровня. Структурная схема терминала.

    курсовая работа [318,5 K], добавлен 07.11.2012

  • Структурная схема устройства управления. Алгоритм работы микроконтроллера в его составе. Строение центрального процессорного элемента – микроконтроллера AVR семейства Classic. Принципиальная схема устройства, расчет временных параметров ее работы.

    курсовая работа [636,5 K], добавлен 03.12.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.