47600 (597343), страница 13

Файл №597343 47600 (Микроконтроллеры AVR) 13 страница47600 (597343) страница 132016-07-30СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 13)

2) Изменение состояния этой ячейки вступает в силу сразу же после ее программирования.

3)Только в ATmega48x.

    1. Идентификатор

Все микроконтроллеры фирмы Atmel имеют три 8-битные ячейки, содержимое которых позволяет идентифицировать устройство. В первой ячейке содержится код производителя $00, во второй — код объема FLASH-памяти $01, а в третьей — код устройства $02. Как и конфигурационные ячейки, ячейки идентификатора расположены в отдельном адресном пространстве, доступ к которому возможен только в режиме программирования. Однако в отличие от конфигурационных ячеек ячейки идентификатора, по понятным причинам, доступны только для чтения.

Значение кода устройства у разных моделей может совпадать. Поэтому устройство следует идентифицировать только по совокупности значений ячеек $01 и $02, так как именно эта пара чисел является уникальной для каждого микроконтроллера.

    1. Калибровочные ячейки

В калибровочные ячейки при изготовлении микроконтроллера заносятся калибровочные константы, предназначенные для подстройки на номинальную частоту внутреннего RС-генератора. Количество этих ячеек зависит от того, на скольких частотах может работать внутренний RC-генератор. В моделях ATmega8515x/8535x и ATmega8x/16x/32x/64x/128x имеется четыре 8-битных ячейки, а в остальных моделях — одна ячейка. Располагаются они в старших байтах адресного пространства ячеек идентификатора.

Загрузка калибровочной константы в регистр OSCCAL осуществляется аппаратно при нахождении микроконтроллера в состоянии сброса. Однако в моделях ATmega8515x/8535x и ATmega8x/16x/32x/64x/128x генератор автоматически калибруется только на частоту 1 МГц. Поэтому при использовании другой частоты RС-генератора его калибровку необходимо осуществлять вручную. Для этого программатор во время программирования должен прочитать содержимое калибровочной ячейки и занести его по какому-либо адресу FLASH-памяти программ. А программа должна после старта считать это значение из памяти программ и занести его в регистр OSCCAL.

    1. Организация памяти программ и данных

В микроконтроллерах семейства Mega используется страничная организация памяти программ. При программировании весь объем FLASH-памяти разбивается на 16-битные страницы, размер которых, а также их количество зависят от объема памяти программ микроконтроллера.

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

Аналогичным образом организована и EEPROM-память. Размер 8-битных страниц EEPROM-памяти.

Однако следует отметить, что во многих моделях страничная организация EEPROM-памяти используется только при программировании в параллельном режиме, а программирование по последовательному каналу осуществляется побайтно.

    1. Программирование по последовательному каналу

В режиме программирования по последовательному каналу программирование памяти программ и данных осуществляется по последовательному интерфейсу SPI. Как правило, этот режим используется для программирования (перепрограммирования) микроконтроллера непосредственно в устройстве.

Схема включения микросхем в режиме программирования по последовательному каналу приведена на рис. 9.2. На этом же рисунке показано два варианта разводки колодки для подключения программатора, рекомендуемые компанией Atmel.

Рис. 9.2. Включение микроконтроллеров в режиме программирования по последовательному каналу

Как видно из рис. 9.2, для обмена данными между программатором и устройством используются три линии: SCK (тактовый сигнал), MOSI (вход данных) и MISO (выход данных).

Как и в рабочем режиме, при программировании по последовательному каналу микроконтроллеру требуется источник тактового сигнала. В качестве такового может использоваться любой из допустимых для микроконтроллера источников. При этом должно выполняться следующее условие: длительность импульсов как НИЗКОГО, так и ВЫСОКОГО уровня сигнала SCK должна быть больше 2 периодов тактового сигнала микроконтроллера.

Программирование осуществляется путем посылки 4-байтных команд на вывод MOSI микроконтроллера. Результат выполнения команд чтения снимается с вывода MISO микроконтроллера. Передача команд и выдача результатов их выполнения осуществляются от старшего бита к младшему. При этом “защелкивание” входных данных выполняется по нарастающему фронту сигнала SCK, а “защелкивание” выходных данных – по спадающему.

    1. Переключение в режим программирования

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

  • подать на микроконтроллер напряжение питания, при этом на выводах SCK и RESET должно присутствовать напряжение НИЗКОГО уровня. Выждать не менее 20 мс;

  • послать на вывод MOSI команду “Разрешение программирования”;

  • для контроля прохождения команды при посылке 3-го байта возвращается значение 2-го байта ($53).

  • после завершения программирования на вывод RESET можно подать напряжение ВЫСОКОГО уровня для перевода микроконтроллера в рабочий режим либо выключить его.

В последнем случае необходимо выполнить следующую последовательность действий:

  • подать на вывод XTAL1 напряжение НИЗКОГО уровня, если тактирование микроконтроллера осуществляется от внешней схемы;

  • подать на вывод RESET напряжение ВЫСОКОГО уровня;

  • отключить напряжение питания от микроконтроллера.

    1. Управление процессом программирования FLASH-памяти

Программирование памяти программ микроконтроллеров семейства Mega осуществляется постранично. Сначала содержимое страницы побайтно заносится в буфер по командам “Загрузка страницы FLASH-памяти”. В каждой команде передаются младшие биты адреса изменяемой ячейки (положение ячейки внутри страницы) и записываемое значение. Содержимое каждой ячейки должно загружаться в следующей последовательности: сначала младший байт, потом старший.

Фактическое программирование страницы FLASH-памяти осуществляется после загрузки буфера страницы по команде “Запись страницы FLASH-памяти”.

Следует помнить, что дальнейшее программирование памяти можно будет выполнять только после завершения записи страницы. Определить момент окончания записи можно тремя способами. Первый и наиболее простой способ — выдерживать между посылкой команд паузу. Второй способ заключается в контролировании содержимого любой из записываемых ячеек после посылки команды записи, а третий способ — опрос флага готовности RDY c помощью соответствующей команды.

    1. Управление процессом программирования EEPROM-памяти

Во всех старых моделях программирование EEPROM-памяти осуществляется обычным способом – побайтно. А в новых моделях появился альтернативный способ записи EEPROM-памяти – постраничный. Содержимое страницы побайтно заносится в буфер по командам “Загрузка страницы EEPROM-памяти”, а затем осуществляется фактическое программирование страницы EEPROM-памяти по команде “Запись страницы EEPROM-памяти”. Значения адресов, передаваемые в этих командах, определяются так же, как и при программировании FLASH-памяти. Для определения момента окончания записи можно использовать любой из описанных выше способов.

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

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

Схема включения микросхем в режиме параллельного программирования приведена на рис. 9.3.

Рис. 9.3. Включение микроконтроллеров в режиме параллельного программирования

Таблица 9.7. Обозначение и функции выводов, используемых при программировании в параллельном режиме

Сигнал

Вывод

Вход/Выход

Назначение

RDY/BSY

PD1

Выход

Состояние устройства:

0 – занято (выполняется предыдущая команда);

1 – готово к приему следующей команды.

ОЕ

PD2

Вход

Управление режимом работы шины данных РВ7...РВ0:

0 — выход, 1 — вход

WR

PD3

Вход

Сигнал записи (активный уровень — лог. 0)

BS1

PD4

Вход

Выбор байта (см. Табл. 14.14)

ХАО

PD5

Вход

Определяют действие, выполняемое по положительному импульсу на выводе XTAL1

ХА1

PD6

Вход

PAGEL

PD7

Вход

Сигнал загрузки страницы памяти

BS2

РАО

Вход

Выбор байта (см. Табл. 14.14)

DATA

РВ7...РВ0

Вход/Выход

Двунаправленная шина данных

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

  • загрузка команды;

  • загрузка адреса;

  • загрузка данных;

  • выполнение команды.

Последовательность подачи сигналов на выводы микроконтроллера при выполнении различных базовых операций приведена в табл. 9.8.

Таблица 14.7. Базовые операции программирования в параллельном режиме

Название операции

Действия

1

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

1.Установить выводы ХА1, ХАО в состояние 10.

2.Подать на вывод BS1 напряжение лог. 0.

3.Выставить на шину DATA код команды.

4.Подать на вывод XTAL1 положительный импульс.

2

Загрузка адреса

1.Установить выводы ХА1, ХАО в состояние 00 (загрузка адреса).

2.Установить выводы BS2:BS1 в состояние 00 (загрузка младшего

байта), 01 (загрузка старшего байта) или 10 (загрузка дополнительного

байта).

3.Выставить на шину DATA байт адреса.

4.Подать на вывод XTAL1 положительный импульс.

3

Загрузка данных

1.Установить выводы ХА1, ХАО в состояние 01 (загрузка данных).

2.Подать на вывод BS1 напряжение лог. 0 (загрузка младшего байта) или лог.

1 (загрузка старшего байта).

3.Выставить на шину DATA содержимое байта данных.

4.Подать на вывод XTAL1 положительный импульс.

4

Запись данных в буфер страницы

1.Подать на вывод BS1 напряжение лог. 1.

2.Подать на вывод PAGEL положительный импульс.

5

Запись байта конфигурации

1.Установить выводы BS2:BS1 в состояние 00 (запись младшего байта),

01 (запись старшего байта) или 10 (запись дополнительного байта). 2.Подать на вывод WR отрицательный импульс; при этом на выводе

RDY/BSY появляется сигнал НИЗКОГО уровня.

3.Ждать появления на выводе RDY/BSY сигнала ВЫСОКОГО уровня.

Запись страницы

1.Установить выводы BS2:BS1 в состояние 00.

2.Подать на вывод WR отрицательный импульс; при этом на выводе

RDY/BSY появляется сигнал НИЗКОГО уровня.

3.Ждать появления на выводе RDY/BSY сигнала ВЫСОКОГО уровня.

    1. Переключение в режим параллельного программирования

Первой операцией при программировании микроконтроллера является его перевод в режим программирования. Для перевода микроконтроллера в режим программирования необходимо выполнить следующие действия:

  • подать на микроконтроллер напряжение питания;

  • подать на вывод RESET напряжение НИЗКОГО уровня и сформировать не менее трех импульсов на выводе XTAL1;

  • подать на выводы PAGEL, XA1, ХА0, BS1 напряжение НИЗКОГО уровня на время не менее 100 нс;

  • подать напряжение 11.5... 12.5 В на вывод RESET и удерживать напряжение НИЗКОГО уровня на выводах PAGEL, XA1, ХА0, BS1 в течение, как минимум, 10 мкс. Любая активность на указанных выводах в течение этого времени приведет к тому, что микроконтроллер не перейдет в режим программирования выждать не менее 300 мкс перед посылкой следующей команды.

    1. Стирание кристалла

Команда “Стирание кристалла” должна выполняться перед каждым перепрограммированием микроконтроллера. Данная команда полностью уничтожает содержимое FLASH- памяти и EEPROM-памяти, а затем сбрасывает ячейки защиты (записывает в них 1). Однако на состояние конфигурационных ячеек данная команда не влияет. Кроме того, в ряде моделей микроконтроллеров семейства Mega можно предотвратить стирание EEPROM-памяти путем программирования конфигурационной ячейки EESAVE.

Для выполнения команды “Стирание кристалла” необходимо выполнить следующие действия:

  • загрузить команду “Стирание кристалла”;

  • подать на вывод WR сигнал НИЗКОГО уровня;

  • ждать появления на выводе RDY/BSY сигнала ВЫСОКОГО уровня.

    1. Программирование FLASH-памяти

Запись FLASH-памяти производится в следующей последовательности:

  • загрузить команду “Запись FLASH-памяти”;

  1. загрузить младший байт адреса (положение ячейки внутри страницы);

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

  3. загрузить старший байт данных;

  4. запомнить данные в буфере;

  5. повторить пп. 2...5 до полного заполнения буфера страницы;

  6. загрузить старший байт адреса (номер страницы);

  7. записать страницу.

  8. повторить все пункты для записи остальных страниц памяти программ;

  9. завершить программирование, загрузив команду “Нет операции”.

Необходимо отметить, что если для адресации ячейки памяти внутри страницы требуется меньше 8 битов (при размере страницы менее 256 слов), то оставшиеся старшие биты младшего байта адреса используются для адресации страницы при выполнении команды “Запись страницы”.

Характеристики

Тип файла
Документ
Размер
6,99 Mb
Тип материала
Учебное заведение
Неизвестно

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6363
Авторов
на СтудИзбе
310
Средний доход
с одного платного файла
Обучение Подробнее