Генератор сигналов синусоидальной формы
Архитектура и технические характеристики микроконтроллеров AVR. Генерация аналоговых сигналов методом ШИМ и R-2R матриц. Разработка программ генерации синусоидального напряжения, применение косвенной адресации, хранение значений синусоиды в ОЗУ и EEPROM.
Рубрика | Коммуникации, связь, цифровые приборы и радиоэлектроника |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 23.05.2013 |
Размер файла | 1,2 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Министерство транспорта Российской Федерации
Федеральное агентство железнодорожного транспорта
Государственное образовательное учреждение высшего профессионального образования
Омский государственный университет путей сообщения (ОмГУПС)
Кафедра "Автоматика и системы управления"
Курсовая работа
по дисциплине "Микропроцессорная техника"
Генератор сигналов синусоидальной формы
Выполнил: студент гр. 28р
И.В. Харитонов
Руководитель: доцент кафедры "АиСУ"
Ф.В. Чегодаев
Омск 2011
Содержание
Введение
1. Микроконтроллеры AVR
1.1 Общая информация
1.2 Архитектура
2. Описание ATtiny2313
3. Способы генерации аналоговых сигналов
3.1 Генерация аналоговых сигналов с помощью ШИМ
3.2 Генерация аналоговых сигналов с помощью R2R матрицы
4. Разработка программ генерации синусоидального напряжения
4.1 Хранение значений синусоиды в памяти программ
4.2 Хранение значений синусоиды в ОЗУ. Применение косвенной адресации
4.3 Хранение значений синусоиды в энергонезависимой памяти (EEPROM)
Заключение
Библиографический список
Введение
В классической микропроцессорной системе используются отдельная микросхема процессора, отдельные микросхемы памяти и отдельные порты ввода вывода. Стремительное развитие микропроцессорной техники требует всё большей и большей степени интеграции микросхем.
Именно поэтому были разработаны микросхемы, которые объединяют в себе сразу все элементы микропроцессорной системы. Такие микропроцессоры называются микроконтроллерами. В советское время такие микросхемы называли "Однокристальные микро ЭВМ".
Для однокристальных микроконтроллеров понятие "центральный процессор" обычно не употребляется. Так как процессор - это все-таки отдельное устройство. Функции процессора в микроконтроллере заменяет арифметико-логическое устройство (АЛУ).
Кроме АЛУ, микроконтроллер содержит в своём составе:
1) тактовый генератор;
2) память данных;
3) память программ;
4) порты ввода-вывода.
Все эти элементы соединены между собой внутренними шинами данных и адреса. С внешним миром микроконтроллер общается при помощи портов ввода-вывода. Любой микроконтроллер всегда имеет один или несколько портов. Кроме того, современные микроконтроллеры всегда имеют встроенную систему прерываний, а также встроенные программируемые таймеры, компараторы, цифроаналоговые преобразователи и многое другое.
Если речь идёт не о большом компьютере, а о портативном устройстве управления, то в нём применяются именно микроконтроллеры. Конечно, любая реальная схема редко обходится без простых логических микросхем, триггеров, счётчиков и тому подобного. Но основой всегда является микроконтроллер. Чистые микропроцессоры в настоящее время применяются только в персональных компьютерах.
1. Микроконтроллеры AVR
1.1 Общая информация
AVR - самая обширная производственная линии среди других флэш-микроконтроллеров корпорации Atmel. Atmel представила первый 8-разрядный флэш-микроконтроллер в 1993 году и с тех пор непрерывно совершенствует технологию. Прогресс данной технологии наблюдался в снижении удельного энергопотребления (мА/МГц), расширения диапазона питающих напряжений (до 1.8 В) для продления ресурса батарейных систем, увеличении быстродействия до 16 млн. операций в секунду, встраиванием эмуляции в реальном масштабе времени, реализации функции самопрограммирования, совершенствовании и расширении количества периферийных модулей, встраивании специализированных устройств (радиочастотный передатчик, USB-контроллер, драйвер ЖКИ, программируемая логика, контроллер DVD, устройства защиты данных) и др.
Успех AVR-микроконтроллеров объясняется возможностью простого выполнения проекта с достижением необходимого результата в кратчайшие сроки, чему способствует доступность большого числа инструментальных средств проектирования, поставляемых, как непосредственно корпорацией Atmel, так и сторонними производителями. Ведущие сторонние производители выпускают полный спектр компиляторов, программаторов, ассемблеров, отладчиков, разъемов и адаптеров. Отличительной чертой инструментальных средств от Atmel является их невысокая стоимость.
Другой особенностью AVR-микроконтроллеров, которая способствовала их популяризации, это использование RISC-архитектуры, которая характеризуются мощным набором инструкций, большинство которых выполняются за один машинный цикл. Это означает, что при равной частоте тактового генератора они обеспечивают производительность в 12 (6) раз больше производительности предшествующих микроконтроллеров на основе CISC-архитектуры (например, MCS51). С другой стороны, в рамках одного приложения с заданным быстродействием, AVR-микроконтроллер может тактироваться в 12 (6) раз меньшей тактовой частотой, обеспечивая равное быстродействие, но при этом потребляя гораздо меньшую мощность. Таким образом, AVR-микроконтроллеры представляют более широкие возможности по оптимизации производительности/энергопотребления, что особенно важно при разработке приложений с батарейным питанием. Микроконтроллеры обеспечивает производительность до 16 млн. оп. в секунду и поддерживают флэш-память программ различной емкости: 1… 256 кбайт. AVR-архитектура оптимизирована под язык высокого уровня Си, а большинство представителей семейства megaAVR содержат 8-канальный 10-разрядный АЦП, а также совместимый с IEEE 1149.1 интерфейс JTAG или debugWIRE для встроенной отладки. Кроме того, все микроконтроллеры megaAVR с флэш-памятью емкостью 16 кбайт и более могут программироваться через интерфейс JTAG
1.2 Архитектура
микроконтроллер avr генератор синусоида
Область применения микроконтроллеров и их возможности напрямую зависят от двух вещей: от набора периферийных устройств, входящих в состав контроллера, и от способа использования их в программах. Разумеется, чтобы программировать микроконтроллеры AVR и создавать на их основе различные системы, для начала необходимо ознакомится с их общей архитектурой.
Набор периферийных устройств для разных моделей может отличаться, но, в общем, архитектуру AVR можно представить в виде следующей блок-схемы.
Рисунок 1 - Типовая архитектура микроконтроллеров AVR
Как видно из данной схемы, любой микроконтроллер AVR состоит из центрального процессорного устройства (CPU), модулей последовательных интерфейсов и различных периферийных устройств. Модули последовательных интерфейсов также можно отнести к бортовой периферии, однако, выполняемые ими задачи обуславливают их выделение в отдельную группу.
Командным пунктом микроконтроллера является CPU (Central Processing Unit). Здесь происходит извлечение команд из FLASH-памяти программ через регистр команд и их выполнение. В обработке кодов операций участвуют регистры общего назначения (РОН), использующиеся как перевалочные пункты для различных данных, а также арифметико-логическое устройство (АЛУ), выполняющее различные сложения, умножения, сдвиги и прочие операции со значениями из регистров общего назначения. В состав CPU также входит дешифратор команд, формирующий шину управления всеми внутренними устройствами микроконтроллера. CPU связано со всеми без исключения внутренними модулями микроконтроллера либо через шину управления, либо через регистры общего назначения.
Для связи микроконтроллера с другими цифровыми устройствами (персональным компьютером, микросхемами памяти, внешними АЦП и ЦАП и т.д.) предусмотрено несколько модулей последовательных интерфейсов: UART, TWI, SPI. Эти интерфейсы и стандарты передачи данных с их помощью будут обязательно рассмотрены в других статьях. Здесь же пока отметим, что посредством интерфейса SPI программируется FLASH-память программ, а также ПЗУ микроконтроллера - EEPROM.
Следует отметить, что архитектура микроконтроллеров AVR имеет гарвардскую организацию памяти, при которой память данных и память программ расположены отдельно. FLASH-память программ содержит коды операций в определенном порядке, другими словами, саму программу для выполнения. Для временного хранения различных данных в процессе работы микроконтроллера предусмотрена внутренняя оперативная память - SRAM. Для хранения констант и данных даже после отключения питания микроконтроллера предусмотрена энергонезависимая память данных - EEPROM. Для подключения к микроконтроллеру различных исполнительных устройств (реле переключения, светодиоды, семисегментные индикаторы), либо устройств управления (клавиши, логические датчики) используются порты ввода/вывода. Также посредством этих портов может быть программно реализован интерфейс обмена данными.
Отдельное место в бортовой периферии микроконтроллеров AVR занимает сторожевой таймер. В его функции входит вывод микроконтроллера из режимов энергосбережения либо перезапуск микроконтроллера, если в процессе работы возник какой-либо сбой, и произошло зависание.
Набор остальных периферийных устройств определяется моделью микроконтроллера, и в любом случае перед использованием конкретной модели необходимо ознакомиться с официальной документацией на нее.
2. Описание ATtiny2313
ATtiny2313 - низкопотребляющий 8 битный КМОП микроконтроллер с AVR RISC архитектурой. Выполняя команды за один цикл, ATtiny2313 достигает производительности 1 MIPS при частоте задающего генератора 1 МГц, что позволяет разработчику оптимизировать отношение потребления к производительности.
AVR ядро объединяет богатую систему команд и 32 рабочих регистра общего назначения. Все 32 регистра непосредственно связаны с арифметико-логическим устройством (АЛУ), что позволяет получить доступ к двум независимым регистрам при выполнении одной команды. В результате эта архитектура позволяет обеспечить в десятки раз большую производительность, чем стандартная CISC архитектура.
ATtiny2313 имеет следующие характеристики: 2 КБ программируемой в системе Flash память программы, 128 байтную EEPROM память данных, 128 байтное SRAM (статическое ОЗУ), 18 линий ввода - вывода общего применения, 32 рабочих регистра общего назначения, однопроводный интерфейс для встроенного отладчика, два гибких таймера/счетчика со схемами сравнения, внутренние и внешние источники прерывания, последовательный программируемый USART, универсальный последовательный интерфейс с детектором стартового условия, программируемый сторожевой таймер со встроенным генератором и три программно инициализируемых режима пониженного потребления. В режиме Idle останавливается ядро, но ОЗУ, таймеры/счетчики и система прерываний продолжают функционировать. В режиме Power-down регистры сохраняют свое значение, но генератор останавливается, блокируя все функции прибора до следующего прерывания или аппаратного сброса. В Standby режиме задающий генератор работает, в то время как остальная часть прибора бездействует. Это позволяет очень быстро запустить микропроцессор, сохраняя при этом в режиме бездействия мощность.
Прибор изготовлен по высокоплотной энергонезависимой технологии изготовления памяти компании Atmel. Встроенная ISP Flash позволяет перепрограммировать память программы в системе через последовательный SPI интерфейс или обычным программатором энергонезависимой памяти. Объединив в одном кристалле 8- битное RISC ядро с самопрограммирующейся в системе Flash памятью, ATtiny2313 стал мощным микроконтроллером, который дает большую гибкость разработчика микропроцессорных систем.
ATtiny2313 поддерживается различными программными средствами и интегрированными средствами разработки, такими как компиляторы C, макроассемблеры, программные отладчики/симуляторы, внутрисхемные эмуляторы и ознакомительные наборы.
3. Способы генерации аналоговых сигналов
3.1 Генерация аналоговых сигналов с помощью ШИМ
Микроконтроллеры AVR содержат несколько таймеров/счетчиков, позволяющих генерировать ШИМ-сигналы. Это все реализовано аппаратно и работает без участия ядра. ШИМ сигналы генерируются на выводах, обозначенных OCxn, где x - номер таймера, к которому он привязан, n - номер регистра сравнения (может отсутствовать). Например, у AtTiny2313 имеются четыре вывода: OC0A, OC0B, OC1A и OC1B (см. рисунок).
Рисунок 2 - Цоколевка
ШИМ в сочетания с аналоговым фильтром может использоваться для генерации аналоговых выходных сигналов, т.е. в качестве цифро-аналогового преобразователя (ЦАП). В качестве основы используется последовательность прямоугольных импульсов с постоянным периодом следования (фиксированная частота преобразования). Для генерации различных аналоговых уровней регулируется заполнение импульсов и, таким образом, изменяется длительность импульсов. Если необходимо сформировать высокий аналоговый уровень, то длительность импульса увеличивают и наоборот.
Усреднение аналогового сигнала за один период (с помощью аналогового фильтра) позволяет сгенерировать аналоговый сигнал. При заполнении импульсов 50% аналоговый сигнал равен половине напряжения питания, а при 75%-ом заполнении импульсов - аналоговый сигнал равен 75% от напряжения питания.
На рисунке ниже приведена блок-схема устройства 8-битного счетчика/таймера (16-битный от него почти не отличается).
Рисунок 3 - Блок-схема устройства 8-битного счетчика/таймера
В верхнем правом углу есть рамочка Clock Select, из которой выходит сигнал clkTn. Это тактовые импульсы. Их частота задается предделителем и меньше либо равна тактовой частоте микроконтроллера fosc. Они поступают в блок управления (Control Logic), откуда дальше передаются в счетный регистр TCNTn. По каждому тактовому импульсу значение этого регистра увеличивается.
Значение в TCNTn непрерывно сравнивается со значением регистров ORCnA и OCRnB. Этим занимается блок сравнения (обозначаем знаком "=" на рисунке). При совпадении, которое называется "compare match", (пусть совпали TCCNT0 и OCR0B) на выходе блока сравнения возникает сигнал, который поступает в блок Waveform generation. При этом блок Waveform generation меняет состояние вывода OCnx (например, сбрасывает в 0). При переполнении TCCNT также генерируется сигнал и блок Waveform generation меняет состояние вывода OCnx (например, устанавливает его в 1).
Для генерации сигналов и управления мощностью чаще всего используют режим "быстрый ШИМ" (fast PWM). При этом OCnx сбрасывается при наступлении compare match, а устанавливает при переполнении счетчика. Достоинством данного метода является достаточно большая частота ШИМ, что позволяет использовать его для генерации меняющихся во времени сигналов.
Рисунок 4 - Режим быстрой ШИМ
Так же имеется режим ШИМ с коррекцией фазы ("Phase correct PWM"). При этом счетчик сначала считает вверх и при совпадении OCnx сбрасывается. А после достижения максимума счетчик начинает считать вниз. При совпадении по счету вниз OCnx устанавливается в лог. 1. Затем счетчик продолжает считать вниз, пока не обнулится, после чего снова считает вверх. Достоинством этого метода является неизменность расстояния между центрами прямоугольных импульсов (в отличие от fast PWM). Данный режим чаще всего применяется для управления электродвигателями. К недостаткам метода относится в два раза больший период ШИМ.
Рисунок 5 - Режим ШИМ с коррекцией фазы
3.2 Генерация аналоговых сигналов с помощью R-2R матрицы
В R-2R ЦАП значения создаются в специальной схеме, состоящей из резисторов с сопротивлениями R и 2R. Это позволяет существенно улучшить точность по сравнению с обычным взвешивающим ЦАП, так как сравнительно просто изготовить набор прецизионных элементов с одинаковыми параметрами. ЦАП типа R-2R позволяют отодвинуть ограничения по разрядности. С лазерной подгонкой резисторов на одной подложке достигается точность 20-22 бита. Основное время на преобразование тратится в операционном усилителе, поэтому он должен иметь максимальное быстродействие. Быстродействие ЦАП единицы микросекунд и ниже (т.е. наносекунды).
Рисунок 6 - ЦАП R-2R
R-2R резисторная матрица содержит почти в 2 раза (2n + 1) больше резисторов, чем простая резисторная матрица, но сопротивления этих резисторов малы - обычно 5 и 10 кОм. Они требуют небольшого участка полезной площади кристалла и могут быть изготовлены с хорошо согласованными значениями сопротивлений.
Чтобы получить выходной сигнал в виде напряжения для ЦАП с формированием весовых токов резистивными цепями, можно использовать инверсное включение резистивной матрицы. Из-за изменяющейся нагрузки источник опорного напряжения должен обладать низким выходным сопротивлением, в противном случае возможна немонотонность характеристики преобразования. Инверсное включение резистивной матрицы довольно широко применяется в ЦАП с выходом в виде напряжения, включающем также встроенный ОУ в неинвертирующем включении в качестве буфера.
Преимущества данной схемы:
1) Возможность увеличения разрядности
2) Неплохая частота дискретизации
3) Схемотехническая простота и повторяемость
Недостатки:
1) Качество ЦАПа сильно зависит от применяемых резисторов
2) Сопротивление ключей порта микроконтроллера вносят искажения
3) Громоздкость на плате
4. Разработка программ генерации синусоидального напряжения
4.1 Хранение значений синусоиды в памяти программ
Любая программа представляет собой определенный алгоритм действий, которые должен выполнять микроконтроллер. Для хранения программы и ее последовательного выполнения в микроконтроллерах AVR предназначена встроенная FLASH-память программ. В данной области памяти хранится откомпилированная, то есть переведенная в машинный язык программа.
Объем памяти данного типа варьируется от 1 килобайта до 256 килобайт. Первое число в наименовании конкретной модели микроконтроллера указывает на размер памяти программ в килобайтах из ряда: 1, 2, 4, 8, 16, 32, 64, 128 и 256. Например, у ATtiny11 объем памяти программ составляет 1 килобайт, а у ATmega2560 - 256 килобайт. Число циклов перепрограммирования FLASH-памяти программ у микроконтроллеров AVR может достигать 10 тысяч. Организация памяти программ представлена на следующем рисунке.
Рисунок 7 - Структура памяти программ
Память программ состоит из набора пар 8-разрядных регистров, другими словами отдельная ячейка памяти программ представляет собой двухбайтное слово со своим адресом. Двухбайтовая организация памяти программ не случайна. Дело в том, что любая команда микроконтроллеров архитектуры AVR имеет длину ровно два байта. Исключением являются команды типа JMP, CALL, LPM и другие, оперирующие с 16-разрядными и более длинными адресами и занимающие 4 байта, эти команды используются в моделях с объемом памяти программ более 8 килобайт. Во всех остальных случаях при выполнении очередной команды программный счетчик сдвигается ровно на два байта. Исходя из количества команд, используемых в программе, можно подсчитать необходимый объем памяти программ для выбора модели микроконтроллера.
При сбросе микроконтроллера или включении питания программный счетчик обнуляется и начинается выполнение программы с ячейки памяти программ с адресом $0000. Обычно, начиная с этого адреса, то есть в самом начале программы располагают таблицу векторов прерываний, смысл которой мы рассмотрим позже. Однако, если в программе прерывания не используются, то прямо отсюда могут начинаться непосредственные указания к действию. Конечный адрес зависит от объема памяти программ и для удобства обозначается константой FLASHEND.
Следует отметить, что в последних адресах памяти программ может располагаться специальный загрузчик, который может управлять загрузкой и выгрузкой прикладных программ из основного объема памяти. Данная функция доступна только для микроконтроллеров семейства mega. Для извлечения данных из памяти программ используется команда lpm.
4.2 Хранение значений синусоиды в ОЗУ. Применение косвенной адресации
Оперативная память микроконтроллеров AVR реализована в виде статической памяти RAM (SRAM). Статической она называется потому, что регенерация находящихся в памяти данных не происходит. Данные, находящиеся в SRAM не сохраняются после отключения напряжения питания микроконтроллера, именно поэтому она и называется оперативной памятью. Объем ОЗУ микроконтроллеров AVR составляет от 128 байт (в моделях семейства tiny) до 4-8 кбайт в поздних представителях семейства mega. Ячейки ОЗУ адресуются побайтно, следовательно, для адресации, например 8 кбайт памяти, достаточно 2-байтного адреса.
ОЗУ микроконтроллеров AVR состоит из набора 8-разрядных регистров, пронумерованных по порядку, и делится условно на несколько областей. Порядковый номер регистра в области SRAM есть не что иное, как его адрес. Организация оперативной памяти представлена на рисунке 8.
Рисунок 8 - Организация оперативной памяти микроконтроллеров AVR
Первые 32 адреса SRAM занимают регистры общего назначения, те самые, что входят в состав CPU и непосредственно связаны с АЛУ. Данные регистры являются рабочей областью. Сначала сюда заносятся различные данные (это могут быть данные из какого-либо периферийного устройства или какая-то константа). Затем посредством АЛУ выполняются требуемые операции. Результат операции может быть отправлен из регистра общего назначения в периферийное устройство. Здесь также могут быть выделены регистры под промежуточные значения и буферные регистры. Шесть последних регистров общего назначения образуют три регистровых пары - 16-разрядные регистры X, Y и Z. Структура этих регистров представлена на рисунке 9.
Рисунок 9 - Структура регистровых пар X, Y, Z
Как видно из рисунка, 16-разрядный регистр Х образован парой регистров общего назначения R26-R27, причем его младшим байтом XL (от low) является регистр R26, ну а старшим XH - регистр R27. Аналогичные заключения справедливы и для регистров Y и Z. При использовании специальных команд данные регистры можно использовать в качестве указателей адресов, например, при обращении к ячейкам памяти SRAM. С помощью регистра Z удобно извлекать различные константы, хранящиеся в памяти программ.
Регистры ввода/вывода
Непосредственно за регистрами общего назначения располагается область 64 регистров ввода/вывода. В данной области памяти располагаются регистры, посредством которых обеспечивается доступ ко всем периферийным устройствам. С помощью этих регистров осуществляется управление, настройка и запуск необходимых модулей, а также получение информации об их состоянии. Таблица регистров ввода/вывода может быть получена из технической документации на конкретный микроконтроллер. Для старших моделей Mega со сложной структурой (например, ATmega128) 64-х регистров ввода/вывода может оказаться недостаточно, поэтому для этих целей выделяется еще 160 дополнительных регистров (в адресном пространстве от $0060 до $00FF).
Внутреннее ОЗУ
Сразу за областью регистров ввода/вывода располагается непосредственно внутреннее ОЗУ данных микроконтроллера. Эта область памяти используется для временного хранения некоторых переменных и констант, использующихся во время работы. Следует уточнить, что регистры ввода/вывода не отнимают адресное пространство у области внутреннего ОЗУ. Адреса внутренней оперативной памяти располагаются сразу поле адресов регистров ввода/вывода. А вот объем подключаемого внешнего ОЗУ всегда ограничен адресом $FFFF, и если в конкретной модели используется большое число регистров ввода/вывода, то объем возможной подключаемой внешней памяти уменьшается. Конечный адрес области внутреннего ОЗУ зависит от конкретной модели микроконтроллера и обычно обозначается константой RAMEND для удобства при программировании. В конце оперативной памяти обычно располагают программный стек, при отсутствии аппаратного.
Внешнее ОЗУ
Возможность подключения внешней оперативной памяти имеется только у некоторых моделей (ATmega8515, ATmega162, ATmega128, ATmega2560 и др.). Внешняя подключаемая память может быть любой статической разновидностью (FLASH, RAM, EEPROM) с параллельным интерфейсом. При подключении внешнего ОЗУ необходимо учитывать, что максимальный адрес ячейки ОЗУ, которую может использовать микроконтроллер, составляет $FFFF.
Таким образом, ОЗУ микроконтроллеров AVR условно делится на несколько областей:
- регистры общего назначения;
- регистры ввода/вывода,
- внутреннее ОЗУ и внешнее ОЗУ.
Регистры общего назначения используются для совершения различных операций с рабочими переменными, поэтому эти регистры можно называть рабочими. Регистры ввода/вывода позволяют нам работать с периферией. Ну а внутреннее и внешнее ОЗУ необходимы для временного хранения данных в процессе работы микроконтроллера.
4.3 Хранение значений синусоиды в энергонезависимой памяти (EEPROM)
Постоянное запоминающее устройство EEPROM предназначено для хранения данных, записанных при программировании микроконтроллера и получаемых в процессе выполнения программы. При выключении напряжения питания данные сохраняются. Ячейка памяти содержит 8 разрядов. Емкость EEPROM микросхемы ATtiny2313 составляет 128 байт.
Иногда нужно сохранить данные так, чтобы они восстановились после перезагрузки контроллера. Этим занимается EEPROM, почти все контроллеры серии AVR имеют на борту некоторое количество этой памяти. Физически и логически эта память находится в отдельном адресном пространстве, а чтение из EEPROM и запись туда осуществляется через специальные порты.
Чтобы что-то записать в EEPROM нужно в регистры адреса EEARH и EEARL (EEPROM Address Register) положить адрес ячейки в которую мы хотим записать байт. После чего нужно дождаться готовности памяти к записи - EEPROM довольно медленная штука. О готовности к записи докладывает флаг EEWE (EEPROM Write Enable) регистра управления состоянием EECR, когда он будет равен 0, то память готова к следующей записи. Сам байт, который нужно записать, помещается в регистр EEDR (EEPROM Data Register). После чего взводится предохранительный бит EEMWE (EEPROM Master Write Enable), а затем, в течении четырех тактов, нужно установить бит EEWE и байт будет записан. Если в течении четырех тактов бит EEWE не выставлен, то предохранительный бит EEMWE сбросится и его придется выставлять снова. Это сделано для защиты от случайной записи в EEPROM память.
Чтение происходит примерно аналогичным образом, вначале ждем готовности памяти, потом заносим в регистры нужный адрес, а затем выставляем бит чтения EERE (EEPROM Read Enable) и следующей командой забираем из регистра данных EEDR наше число, сохраняя его в любом регистре общего назначения.
Заключение
По итогам курсового проектирования были созданы три программы, которые используют различные виды памяти и выводят синусоиду. Так же были приобретены теоретические и практические знания по проектированию и разработке таких программ.
Библиографический список
1. Белов А.В. Самоучитель разработчика устройств на микроконтроллерах AVR . - Санкт-Петербург, "Наука и техника" 2010 г.
2. http://www.atmel.ru/
3. ATtiny 2313 Data Sheet.
4. Гребнев В.В. Микроконтроллеры семейства AVRфирмы Atmel. -М. "ИП РадиоСофт" 2002 г.
Размещено на Allbest.ru
Подобные документы
Исследование принципов разработки генератора аналоговых сигналов. Анализ способов перебора адресов памяти генератора аналоговых сигналов. Цифровая генерация аналоговых сигналов. Проектирование накапливающего сумматора для генератора аналоговых сигналов.
курсовая работа [513,0 K], добавлен 18.06.2013Проектирование цифрового генератора аналоговых сигналов. Разработка структурной, электрической и функциональной схемы устройства, блок-схемы опроса кнопок и работы генератора. Схема делителя с выходом в виде напряжения на инверсной резистивной матрице.
курсовая работа [268,1 K], добавлен 05.08.2011Условия возникновения генерации синусоидальных сигналов. Обзор генераторов гармонических колебаний. Схема моста Вина. Формулы расчета элементов генераторов. Разработка RC-генератора с фазовращателем на операционном усилителе с частотой генерации 2 кГц.
курсовая работа [144,8 K], добавлен 21.10.2014Назначение и виды генераторов испытательных сигналов. Проектирование ГИС с использованием аналоговых и цифровых интегральных микросхем серии К155. Работа основных его элементов. Выбор функциональной схемы. Конструкция, детали и налаживание устройства.
курсовая работа [173,9 K], добавлен 18.10.2010Классификация цифровых приборов. Модели цифровых сигналов. Методы амплитудной, фазовой и частотной модуляции. Методика измерения характеристики преобразования АЦП. Синтез структурной, функциональной и принципиальной схемы генератора тестовых сигналов.
дипломная работа [2,2 M], добавлен 19.01.2013Встроенные математические модели стандартных компонентов. Основные источники импульсного и синусоидального сигналов. Независимые источники напряжения и тока сложной формы. Коммутирующие устройства, стрелки и контакты, устройство выборки-хранения.
курсовая работа [294,7 K], добавлен 18.03.2011Устройство коммутаторов аналоговых сигналов. Сущность коммутации сигналов - метода, с помощью которого сигналы, поступающие от нескольких источников, объединяются в определенном порядке в одной линии. Многоканальные, матричные коммутаторы, мультиплексоры.
реферат [556,8 K], добавлен 20.12.2010Временные функции, частотные характеристики и энергия сигналов. Граничные частоты спектров сигналов. Технические характеристики аналого-цифрового преобразователя. Информационная характеристика канала и расчёт вероятности ошибки оптимального демодулятора.
курсовая работа [1,2 M], добавлен 06.11.2011Разработка структурной схемы системы связи, предназначенной для передачи данных и аналоговых сигналов методом импульсно-кодовой модуляции для заданного диапазона частот и некогерентного способа приема сигналов. Рассмотрение вопросов помехоустойчивости.
курсовая работа [139,1 K], добавлен 13.08.2010Расчет амплитуды аналоговых сигналов яркости и цветности. Представление аналоговых сигналов в цифровой форме. Цветовой треугольник внутри локуса. Область применения построчного, черезстрочного и с кратностью деления на "3" принципа формирования растра.
курсовая работа [1002,3 K], добавлен 04.03.2011