Создание первого проекта
Следующая задача состоит в том, чтобы создать проект на основе AVR микроконтроллера и протестировать схему, компилятор и программатор.
Сначала перейдите в: Файл -> Создать -> Проект (англ. File -> New -> Project) и в открывшемся окне выберите: Исполняемый проект GCC C (англ. GCC C Executable Project), а в текстовом поле Имя (англ. Name) дайте любое название вашему проекту.
Следующее окно, которое должно появиться, — это окно выбора устройства. Из списка выберите Atmega168. Насколько мне известно, это окно не имеет никакого смысла, так как мы все равно передаем имя устройства в AVRDUDE вручную (пока я не могу найти способ заставить Atmel Studio 7 автоматически отправлять имя устройства в AVRDUDE через аргументы).
Результатом должен стать файл main.c, содержащий код нашей программы, который будет запускать AVR. Однако сгенерированный код ничего не делает, поэтому замените все содержимое файла main.c с помощью приведенной ниже программы (обязательно сохраните файл после ввода нового кода).
#define F_CPU 800000UL // Я использую кристалл 8 МГц #include <avr/io.h> #include <avr/delay.h> int main(void){ DDRD = 0xFF; // Сделать порт D портом выхода while(1){ PORTD = 0xFF; _delay_ms(1000); PORTD = 0x00; _delay_ms(1000); } }
Теперь пришло время скомпилировать код и загрузить его на устройство AVR. Первый шаг — убедиться, что наш проект использует компилятор WINAVR. Щелкните правой кнопкой мыши проект и выберите «Дополнительно» (англ. — Advanced) в окне свойств.
В окне «Дополнительно» убедитесь, что в поле «Набор инструментов» (англ. — Toolchain Flavour) выбран WINAVR.
Сохраните проект и скомпилируйте его, нажав: Build -> Build Solution (или нажав F7). Если все идет по плану, в окне вывода должно появиться следующее сообщение:
Build succeeded. ========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========
Это означает, что наш проект успешно скомпилирован и готов к передаче на наш чип. Чтобы запрограммировать устройство, убедитесь, что USBASP подключен как к ПК, так и к цепи Atmega, к цепи подано питание и что к микросхеме подключен кристалл (в случае, если микросхема была настроена для использования внешнего кристалла).
Затем, после всего этого, нажмите: Инструменты -> USBASP (англ. Tools -> USBASP), и все будет работать автоматически.
Если все хорошо, светодиод в вашей цепи должен начать мигать. Ниже приведен вывод AVRDUDE в Atmel Studio 7, показывающий, как выглядит успешная программа.
avrdude.exe: warning: cannot set sck period. please check for usbasp firmware update. avrdude.exe: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.01s avrdude.exe: Device signature = 0x1e9406 avrdude.exe: NOTE: FLASH memory has been specified, an erase cycle will be performed To disable this feature, specify the -D option. avrdude.exe: erasing chip avrdude.exe: warning: cannot set sck period. please check for usbasp firmware update. avrdude.exe: reading input file "0x26" avrdude.exe: writing lfuse (1 bytes): Writing | ################################################## | 100% 0.00s avrdude.exe: 1 bytes of lfuse written avrdude.exe: verifying lfuse memory against 0x26: avrdude.exe: load data lfuse data from input file 0x26: avrdude.exe: input file 0x26 contains 1 bytes avrdude.exe: reading on-chip lfuse data: Reading | ################################################## | 100% 0.00s avrdude.exe: verifying ... avrdude.exe: 1 bytes of lfuse verified avrdude.exe: reading input file "c:\users\robinlaptop\Documents\Atmel Studio\7.0\OurFirstAVR\OurFirstAVR\Debug\OurFirstAVR.hex" avrdude.exe: writing flash (184 bytes): Writing | ################################################## | 100% 0.11s avrdude.exe: 184 bytes of flash written avrdude.exe: verifying flash memory against c:\users\robinlaptop\Documents\Atmel Studio\7.0\OurFirstAVR\OurFirstAVR\Debug\OurFirstAVR.hex: avrdude.exe: load data flash data from input file c:\users\robinlaptop\Documents\Atmel Studio\7.0\OurFirstAVR\OurFirstAVR\Debug\OurFirstAVR.hex: avrdude.exe: input file c:\users\robinlaptop\Documents\Atmel Studio\7.0\OurFirstAVR\OurFirstAVR\Debug\OurFirstAVR.hex contains 184 bytes avrdude.exe: reading on-chip flash data: Reading | ################################################## | 100% 0.10s avrdude.exe: verifying ... avrdude.exe: 184 bytes of flash verified avrdude.exe: safemode: Fuses OK avrdude.exe done. Thank you.
Программные средства разработки Microchip
Microchip предлагает своим клиентам широкий перечень программных решений, позволяющих значительно упростить процесс разработки и отладки программного кода при работе с компонентами, входящими в экосистему компании.
На текущий момент пользователям доступны следующие решения:
-
MPLAB X IDE – полнофункциональная интегрированная среда разработки (IDE), предназначенная для разработки кода для микроконтроллеров PIC, цифровых сигнальных контроллеров (DSC) dsPIC, а также микроконтроллеров AVR и SAM. Среда построена на основе IDE NetBeans с открытым исходным кодом от Apache Software Foundation.
-
MPLAB Xpress – представляет собой бесплатную онлайн-среду разработки, которая не требует установки или настройки системы. MPLAB Xpress имеет более ограниченный функционал по сравнению с MPLAB X IDE, однако поддерживает ее наиболее популярные функции, такие как конфигуратор кода MPLAB.
-
Конфигуратор кода MPLAB (MCC) – бесплатный графический плагин для инициализации системы, который также предоставляет драйверы для работы с компонентами. MCC может использоваться для настройки широкого спектра периферийных устройств и поддерживает работу с микроконтроллерами AVR и PIC.
-
MPLAB Harmony – гибкий фреймворк, включающий в себя программные модули, которые выступают в роли строительных блоков при создании приложения. Используя MPLAB Harmony, разработчик может включить в свой проект библиотеки и программные драйверы как компании Microchip, так и сторонних производителей. MPLAB Harmony поддерживает работу с 32-битными микроконтроллерами PIC и SAM.
-
Компиляторы MPLAB XC – комплексное решение для компиляции разрабатываемого программного кода. MPLAB XC поддерживает 8-битные PIC и AVR в версии MPLAB XC8, 16-битные PIC и dsPIC DSC в MPLAB XC16 и 32-битные PIC и SAM в MPLAB XC32. Для компиляторов MPLAB XC доступны два вида лицензии: бесплатная – включает базовые функции оптимизации и PRO – ориентирована на проекты, требующие максимальной оптимизации по скорости и размеру бинарного файла.
- Microchip Studio (Atmel Studio 7) – интегрированная среда разработки (IDE) для написания кода и отладки микроконтроллеров AVR и SAM.
- Atmel START – бесплатный онлайн-инструмент для графического конфигурирования микроконтроллеров для встраиваемых приложений на базе микроконтроллеров AVR и SAM.
Как несложно заметить, те или иные программные средства подходят только для определенного типа контроллеров. В Таблице 1 приведены данные по возможности работы с программным обеспечением в зависимости от выбранного микроконтроллера или микропроцессора.
Таблица 1. | Данные по возможности работы программного обеспечения в зависимости от выбранного микроконтроллера или микропроцессора |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Для упрощения процесса работы, компания Microchip объединила информацию по своим продуктам в раздел Microchip Developer Help [], в котором подробно описаны все тонкости работы с приведенными выше программными пакетами, а также приведены ссылки на продукты, дополнительные ресурсы, видеоуроки, курсы и документацию.
Стоит также учитывать возможность работы программного обеспечения на той или иной операционной системе. Например, инструменты разработки MPLAB совместимы с операционными системами Windows, Linux и macOS, а Microchip Studio (Atmel Studio 7) способна работать только под Windows.
Разберем описанные выше программные решения более подробно.
Во-первых, аппаратное обеспечение
ATmega328P – это 28-контактный микроконтроллер от Atmel, один из линейки AVR. Вероятно, он наиболее известен, как наиболее часто используемый микроконтроллер в отладочных платах Arduino, но AT328P способен на гораздо большее, чем то, насколько он используется в Arduino. Если вы хотите увидеть некоторые доказательства этого утверждения, посмотрите на 660-страничное техническое описание.
ATtiny45 – 8-выводный микроконтроллер, который может считаться «младшим братом» ATmega328P. Он обладает многими из тех же функций, но у него не так много контактов ввода/вывода.
Для программирования ATmega328P и ATtiny45 используется последовательный периферийный интерфейс SPI; это трехпроводная (плюс общий провод) шина, состоящая из сигналов «Выход ведущего, вход ведомого» (Master Out, Slave In – MOSI), «Вход ведущего, выход ведомого» (Master In, Slave Out – MISO) и «Тактовый сигнал» (Serial Clock – SCK). Тактовый сигнал генерируется ведущим устройством (мастером) и используется для обеспечения синхронной связи между ведущим и ведомым (или ведомыми); поэтому SPI является «синхронной» шиной связи.
Схемы программирования
Схемы программирования показаны ниже
Обратите внимание, что резистор R2 и LED1 не требуются для программирования, но включены в схемы для тестирования, что будет описано ниже
Схема программирования ATmega328P с помощью AVR Pocket программатораСхема программирования ATtiny45 с помощью AVR Pocket программатора
Выбор программатора
Доступно несколько программаторов, работающих с ATmega328P и ATtiny45; Atmel-ICE находится в верхней части списка, является прекрасным программатором и будет рассмотрен в следующей статье. Пока что у нас есть менее дорогостоящие варианты, и скупым автором статьи использовался программатор Sparkfun AVR Pocket Programmer. Если вы предпочитаете что-то другое, не стесняйтесь выбирать тот, который соответствует вашим предпочтениям и вашему кошельку. Просто убедитесь, что он использует SPI интерфейс, как описано выше, и будьте готовы внести соответствующие изменения в информацию в этой статье.
ВНИМАНИЕ! Обязательно загрузите и установите на компьютер соответствующий драйвер для AVR Pocket Programmer, прежде чем подключать программатор в первый раз. Если Windows будет разрешено установить неправильный драйвер, то это будет сложно исправить
Инструкции для получения драйвера AVR Pocket Programmer приведены ниже.
AVR Pocket Programmer поставляется с шлейфовым кабелем, который должен быть подключен к микроконтроллеру Atmel. Он оснащен тремя разъемами: разъем 2×5 (мама), который вставляется в штырьковый разъем на AVR Pocket Programmer, еще один разъем 2×5 (мама) ниже на кабеле примерно через 23 см (в данной статье не используется), плюс разъем 2×3 (мама) на другом конце кабеля. Распиновка разъемов показана ниже.
Распиновка разъемов на кабеле программатора AVR Pocket Programmer
Сборки схем программирования на макетных платах
На следующих фотографиях показаны сборки схем программирования ATmega328P и ATtiny45 на беспаечных макетных платах. Шесть коротких перемычек используются для подключения необходимых проводов от разъема 2×3 (мама) к соответствующим контактам микроконтроллера на макете
Обратите внимание, что цвета проводов на фотографиях соответствуют обозначениям на схемах
Схема программирования ATmega328P с помощью AVR Pocket программатораСхема программирования ATtiny45 с помощью AVR Pocket программатора
Список комплектующих
Кроме нескольких перемычек, для сборки схемы программирования понадобятся следующие комплектующие.
Обозначение элемента | Описание |
---|---|
U1 | Микросхема, ATmega328P-PU, флеш 32 КБ, DIP-28, 1,8–5,5 В |
U1 | Микросхема, ATtiny45-PU, флеш 4 КБ, DIP-8, 2,7–5,5 В |
R1 | Резистор, 10 кОм, 0,25 Вт |
R2 | Резистор, 470 Ом, 0,25 Вт |
LED1 | Светодиод, T1 3/4, желтый |
C1 | Конденсатор керамический, 0,1 мкФ, 50 В |
нет | Программатор, AVR Pocket, PGM-09825 |
нет | Макетная плата, беспаечная, 400 контактов |
Brief history
The AVR architecture was conceived by two students at the Norwegian Institute of Technology (NTH) Alf-Egil Bogen and Vegard Wollan.
The original AVR MCU was developed at a local ASIC house in Trondheim, Norway called Nordic VLSI at the time, now Nordic Semiconductor, where the two founders of Atmel Norway were working as students.[] It was known as a μRISC (Micro RISC)[] and was available as silicon IP/building block from Nordic VLSI.[] When the technology was sold to Atmel from Nordic VLSI,[] the internal architecture was further developed by Alf and Vegard at Atmel Norway, a subsidiary of Atmel founded by the two architects. The designers worked closely with compiler writers at IAR Systems to ensure that the instruction set provided for more efficient compilation of high-level languages. Atmel says that the name AVR is not an acronym and does not stand for anything in particular. The creators of the AVR give no definitive answer as to what the term «AVR» stands for. However, it is commonly accepted that AVR stands for Alf (Egil Bogen) and Vegard (Wollan)’s Risc processor».
Note that the use of «AVR» in this article generally refers to the 8-bit RISC line of Atmel AVR Microcontrollers.
Among the first of the AVR line was the AT90S8515, which in a 40-pin DIP package has the same pinout as an microcontroller, including the external multiplexed address and data bus. The polarity of the RESET line was opposite (8051’s having an active-high RESET, while the AVR has an active-low RESET) but other than that, the pinout was identical.
Установка драйвера для USBASP в Windows 10
Если вы используете интерфейс JTAG, вам может потребоваться установка драйвера для USBASP если он не установился автоматически. Если вы не установите этот драйвер, то вы не сможете найти порт USBASP в программе Atmel Studio. Скачать драйвер USBASP можно по этой ссылке — http://www.mediafire.com/file/z576zrku371qyjs/windows-8-and-windows-10-usbasp-drivers-libusb_1.2.4.0-x86-and-x64-bit.zip/file.
После скачивания драйвера выполните следующую последовательность действий:
1. Распакуйте из архива скачанные файлы и поместите их на рабочий стол.
2. Подсоедините модуль USBASP v2.0 к своему компьютеру.
3. Откройте в Windows диспетчер устройств (Device Manager).
4. Теперь вы можете увидеть подсоединенный USBASP в списке устройств.
5. Кликните правой кнопкой мыши по “USBasp” и выберите “Обновить драйвер (Update Driver)”.
6. Select “Произвести поиск драйвера на своем компьютере (Browse my computer for driver software)”.
7. Найдите в открывшемся окне распакованную папку с драйвером для USBASP и щелкните «Открыть».
8. Если установка драйвера прошла успешно, то вы увидите сообщение примерно такое же как на нижеприведенном рисунке – в этом случае вам уже не нужно выполнять дальнейшие инструкции в этом разделе статьи.
9. Если вы увидите сообщение об ошибке как на приведенном рисунке, то вы в этом случае должны отключить цифровую подпись драйвера.
Чтобы сделать выполните следующие шаги:
— нажмите кнопку Shift и удерживая ее нажатой перезагрузите свой компьютер (кликните Restart в меню Windows пока держите ее нажатой);
— когда ваш компьютер перезагрузится не отпускайте кнопку Shift до тех пор пока не увидите “Advanced Options (Расширенные настройки)” на синем экране;
— отпустите кнопку Shift и кликните на “Startup Settings”;
— кликните на “Troubleshoot (Устранение проблем)”;
— выберите “Advanced Options (Расширенные настройки)”;
— после этого вы увидите на экране список расширенных опций и кнопку “Restart” в правом нижнем углу – кликните на ней;
— подождите пока компьютер снова перезагрузится. После этого вы увидите на экране ряд настроек;
— в открывшемся списке настроек выберите пункт “Disable Driver Signature Enforcement (Отключить цифровую подпись драйвера)”. Чтобы ее выбрать просто нажмите кнопку «7» на вашей клавиатуре (не путать с кнопкой «F7»);
— после нажатия этой кнопки компьютер перезагрузится и цифровая подпись драйвера будет отключена;
— после этого снова выполните шаги 1-8 из данного раздела статьи и драйвер для программатора USBASP будет успешно установлен.
Параметры домена
Yandex Индексация
В истории найдено изменений за 1 год 3 месяца. Первая дата: январь 2013.
Хотите увидеть весь график?
Каждый день мы будем обновлять данные о вашем сайте, чтобы вы не пропустили важные события.
Доступно на платных тарифах.
Описание:
Примерное количество проиндексированных страниц в выдаче Яндекса можно посмотреть через оператор site:, что мы и делаем. Он покажет результат поиска по URL сайта, но точную цифру страниц в индексе выдавать не обязан.
Точные данные Яндекс отображает в Яндекс.Вебмастере. График изменений количества находится в разделе «Индексирование сайта» — «Страницы в поиске».
Обновлено 17.05.2021 16:10
Google Индексация
20 500
В истории найдено изменений за 1 год 4 месяца. Первая дата: январь 2013.
Хотите увидеть весь график?
Каждый день мы будем обновлять данные о вашем сайте, чтобы вы не пропустили важные события.
Доступно на платных тарифах.
Описание:
Сколько страниц сайта Google точно проиндексировал, узнать невозможно. Поисковик не ведет базу данных по URL-адресам.
Примерное количество страниц в выдаче покажет оператор site:, на который мы ориентируемся. Число может быть искажено страницами, которые запрещены к индексу в robots.txt, но попали в выдачу из-за внешних ссылок на них.
Чуть более точное количество покажет раздел «Статус индексирования» в Google Search Console, но и эти данные могут быть искажены из-за применения фильтров.
Обновлено 17.05.2021 16:10
Фильтр АГС
Фильтр не найден
Описание:
Примерное количество проиндексированных страниц в выдаче Яндекса можно посмотреть через оператор site:, что мы и делаем. Он покажет результат поиска по URL сайта, но точную цифру страниц в индексе выдавать не обязан.
Точные данные Яндекс отображает в Яндекс.Вебмастере. График изменений количества находится в разделе «Индексирование сайта» — «Страницы в поиске».
Обновлено 17.05.2021 16:10
Яндекс вирусы
Сайт безопасен.
Описание:
Обычно заражение происходит из-за уязвимости, которая позволяет хакерам получить контроль над сайтом. Он может изменять содержание сайта или создавать новые страницы, обычно для фишинга. Хакеры могут внедрять вредоносный код, например скрипты или фреймы, которые извлекают содержимое с другого сайта для атаки компьютеров, на которых пользователи просматривают зараженный сайт.
Дополнительная информация:
Панель веб-мастера Яндекс
Обновлено 11.02.2017 20:07
PR-CY Rank
Рейтинг домена — 18 / 100
Ссылочное
Доверие
Трафик
В истории найдено изменений за 1 день. Первая дата: июнь 2021.
Хотите увидеть весь график?
Каждый день мы будем обновлять данные о вашем сайте, чтобы вы не пропустили важные события.
Доступно на платных тарифах.
Описание:
PR-CY Rank — рейтинг для оценки перспективности сайтов в качестве доноров для линкбилдинга. При формировании рейтинга мы анализируем трафиковые и трастовые параметры, а также ссылочный профиль сайта.
Влияние — потенциал влияния сайта на продвижение. Если влияние слабое, то слабым будет как отрицательный эффект (если рейтинг низкий), так и положительный (если рейтинг высокий) и наоборот. Потенциал влияния основан на размере постоянной аудитории сайта.
Ссылочный фактор — вычисляется на основе соотношения входящих и исходящих ссылок на сайт, значений Trust Rank, Domain Rank и др.
Трафиковый фактор — вычисляется на основании объёма и динамики трафика (отрицательная динамика портит рейтинг, положительная динамика — повышает).
Трастовый фактор — анализирует множество параметров, таких как “ИКС”, доля поискового трафика в общем трафике, адаптацию под мобильные устройства и множество других факторов, признанных поисковыми системами, как значимые для ранжирования.
Обновлено 17.05.2021 16:12
Какие бывают микроконтроллеры Atmel
Начнем с самого популярного, для освоения микроконтроллеров в целом, – Atmel AVR. Его можно разделить на два направления:
- 8-битные микроконтроллеры.
- 32-битные микроконтроллеры.
Среди простых проектов для любителей электроники особую популярность снискала именно 8-битная часть семейства. Есть хорошая справочная литература «Микроконтроллеры AVR семейства classic фирмы Atmel», в которой описана вся архитектура, назначение отдельных узлов, регистров и прочего. Не стоит беспокоиться, что она посвящена уже устаревшему семейству AVR Classic – в наши дни оно вытеснено контроллерами Attiny и Atmega, хотя самая маленькая и быстрая модель – AT90S2313 выпускается и по сей день, слегка в модернизированном виде – Attiny 2313.
Современные семейства программно и функционально совместимы с более старыми, а переход с Classic на Mega и Tiny требует минимальных трудозатрат и изменений программного кода. Среди семейства особенную популярность заслужил микроконтроллер с маркировкой Atmega 328p, применяемый во многих популярных платах Arduino. Почти все они имеют небольшое количество энергонезависимой памяти с ограниченным числом циклов записи (до 100 000) – EEPROM.
Такая память нужна не для текущих вычислений, потому что быстро закончится её ресурс, а для хранения данных в долгосрочной перспективе. Энергонезависимость EEPROM памяти обеспечивает сохранность всей информации после обесточивания микроконтроллера.
Семейство Atmel Smart базируется на архитектуре ARM. Компания правообладатель ARM свободно продает лицензии на разработку контроллеров со своей архитектурой разным производителям, что ускоряет распространение и популяризацию первых. Стоит отметить яркого представителя – микроконтроллер AT91SAM3X8E, является сердцем Arduino DUE, 32-бита. Это позволяет очень легко начать знакомство с такой архитектурой и разработку устройств энтузиастам электроники. Atmel ARM по характеристикам превосходит большинство микроконтроллеров Atmel AVR
Семейство Atmel 8051 – основано на по-настоящему легендарной архитектуре. Intel 8051 является одним из первых массовых микроконтроллеров с широчайшей сферой применения. Позволяет проектировать высокопрецизионные устройства с огромным быстродействием, практически сравнимым с быстродействием схем на логике. В линейке есть микроконтроллеры, работающие на частотах в 100 МГц, при этом выполняющие 100 миллионов операций в секунду, а это отличные показатели для этой архитектуры. Вы можете добиться быстродействия в долях микросекунд.
Техническое состояние сайта
Возраст домена
30 лет
Молодые и новые домены плохо продвигаются в высококонкурентных тематиках. Также важна история домена и сайта. Старые домены с плохой историей сложно продвинуть. Поисковые системы любят старые, тематические домены с хорошей историей (без фильтров, спама, черного сео и т.п.).
Обновлено 17.05.2021 16:10
Окончание домена
Домен продлен до 04.03.2022
Не забывайте продлевать доменное имя. Лучше включить автоматическое продление у своего регистратора. После окончания регистрации домена есть шанс потерять доступ к домену.
Обновлено 17.05.2021 16:10
SSL-сертификат
Cайт доступен по HTTPS.
Описание:
Для продвижения сайтов коммерческой направленности важна конфиденциальность обмена информацией междусервером и посетителями. Это повышает лояльность потенциальных клиентов к ресурсу, увеличивает уровеньдоверия, влияет на конверсию и рост позиций в выдаче практически по всем запросам.
Cтатьи по теме:
- Заявление Google
Обновлено 11.02.2017 20:07
Технологии, которые используются на сайте
Web фреймворк
Microsoft ASP.NET
IP
192.199.1.43
Местоположение сервера
Соединенные Штаты
Расположение сервера имеет значение для поисковых роботов. При ранжировании они отдают предпочтение сайтам, чьи серверы находятся в той же стране, что и целевая аудитория ресурса.
Обновлено 11.02.2017 20:07
Датацентр
ATMEL Corporation
Ошибки HTML кода
Найдено 100 ошибок и 109 предупреждений.
Описание:
Код без ошибок — это код, который соответствует стандартам W3C. Страницы с корректным кодом правильно отображаются в браузере, то есть имеют хорошие поведенческие факторы, и занимают более высокие позиции в выдаче.
Дополнительная информация:
Сервис W3C — проверка страниц на ошибки кода
Обновлено 11.02.2017 20:07
Обращение
Доступны следующие адресные пространства:
- Регистры общего назначения адресуются по их номерам (0–31), хотя полное 5-битное число не сохраняется в командах, которые могут работать только с подмножеством этих регистров.
- Регистры ввода-вывода имеют выделенное 6-битное адресное пространство, нижняя половина которого является адресуемой по битам; некоторые части имеют регистры ввода-вывода вне этого адресного пространства, которые называются «расширенным вводом-выводом» и доступны только как отображаемый в память ввод-вывод в адресном пространстве данных.
- Адресное пространство данных отображает 32 регистра общего назначения, все регистры ввода-вывода (включая те, которые также доступны через адресное пространство ввода-вывода) и ОЗУ; к нему можно обращаться либо прямо, либо косвенно через регистры указателя X, Y и Z, при необходимости с добавлением RAMPX, RAMPY и RAMPZ соответственно.
- Программная память ( флеш- память ) имеет отдельное адресное пространство, адресованное как 16-битные слова для получения инструкций.
- Для получения постоянных данных память программ адресуется побайтово через регистр указателя Z, при необходимости добавляемый RAMPZ.
- В некоторых устройствах EEPROM отображается в памяти; в других случаях к нему нельзя напрямую обращаться, а вместо этого доступ к нему осуществляется через регистры ввода-вывода адреса, данных и управления.
- Регистры общего назначения, регистр состояния и некоторые регистры ввода-вывода имеют битовую адресацию, причем бит 0 является наименее значимым, а бит 7 — наиболее значимым.
Первые 64 регистра ввода-вывода доступны как через ввод-вывод, так и через адресное пространство данных. Таким образом, у них два разных адреса. Обычно они записываются как от «0x00 (0x20)» до «0x3F (0x5F)», где первый элемент — это адрес ввода-вывода, а второй, в скобках, адрес данных.
Регистры специального назначения ЦП, за исключением ПК, доступны как регистры ввода-вывода. Некоторые регистры (RAMPX, RAMPY) могут отсутствовать на машинах с адресуемой памятью менее 64 Кбайт .
регистр | Адрес ввода / вывода | Адрес данных |
---|---|---|
SREG | 0x3F | 0x5F |
SP | 0x3E: 0x3D | 0x5E: 0x5D |
EIND | 0x3C | 0x5C |
РАМПЗ | 0x3B | 0x5B |
RAMPY | 0x3A | 0x5A |
RAMPX | 0x39 | 0x59 |
RAMPD | 0x38 | 0x58 |
Типичная карта памяти ATmega может выглядеть так:
Адрес данных | Адрес ввода / вывода | |
---|---|---|
0x0000 — 0x001F | Регистры R0 — R31 | |
0x0020 — 0x003F | 0x00 — 0x1F | Регистры ввода / вывода (с битовой адресацией) |
0x0040 — 0x005F | 0x20 — 0x3F | Регистры ввода / вывода (без битовой адресации) |
0x0060 — 0x00FF | Расширенные регистры ввода-вывода (только ввод-вывод с отображением в память) | |
0x0100 — RAMEND | Внутренняя SRAM |
где RAMEND — последний адрес RAM. В частях, в которых отсутствует расширенный ввод-вывод, ОЗУ будет начинаться с 0x0060.