Atxmega: Мистер «Х» или ATXmega (на примере ATXmega32A4) быстрый старт. / AVR / Сообщество EasyElectronics.ru

ATxMEGA — Новейшие микроконтроллеры Атмел ATxMega

Рейтинг ATxMega

ATxMega на Русском

AVR® XMEGA — 8/16-битные высокоэффективные маломощные флэш-микроконтроллеры

       Новое семейство AVR XMEGA™ компании Atmel переносит 8/16-битные микроконтроллеры на новый уровень системных характеристик. Возрастающее внимание к системным характеристикам объясняется тем, что все больше и больше 8/16-битных семейств микроконтроллеров становятся неадекватными современным требованиям. Чтобы надеяться на востребованность микроконтроллера, он, в добавок к интегрированию устройств ввода-вывода с улучшенными характеристиками, должен иметь более низкую стоимость, размеры и потребляемую мощность. В этой связи, микроконтроллеры AVR XMEGA могут выступать в качестве эталонных 8/16-битных микроконтроллеров.
      Микроконтроллеры AVR XMEGA выполнены на основе: Технологии picoPower второго поколения Инновационной системы обработки событий «Event System», которая обеспечивает независимую от ЦПУ быстродействующую передачу данных между внутренними периферийными устройствами 4-канального контроллера ПДП, улучшающего характеристики микроконтроллера Быстродействующих 12-битных АЦП и ЦАП Ускорителя криптографических алгоритмов AES и DES
      Микроконтроллеры AVR XMEGA производят такое же ошеломляющее впечатление, которое производили их предшественники микроконтроллеры AVR после своего появления. Новые микроконтроллеры способны работать при напряжении питания всего лишь 1.6 В и достигать производительности 32 MIPS на тактовой частоте 32 МГц. Микроконтроллеры содержат флэш-память размером 16…384 кбайт и поставляются в 44…100-выводных корпусах. Микроконтроллеры XMEGA являются микроконтроллерами общего назначения и могут использоваться в широком числе применений, в т.ч. аудиосистемы, ZigBee® системы, медицинская техника, контроллеры автоматизации, коммуникационное оборудование, измерительные приборы, оптические трансиверы, системы управления электроприводами, бытовое электрооборудование, оптические трансиверы и любая другая продукция с батарейным питанием.
Сверхмалое энергопотребление
      Технология picoPower компании Atmel признана рынком, как лидирующая энергосберегающая технология. Использованная при реализации микроконтроллеров AVR XMEGA технология picoPower второго поколения позволяет еще больше улучшить эффективность использования батарейного источника. То, что микроконтроллеры гарантируют нормальное функционирование при напряжении 1.6 В означает, что, например, в составе мобильных телефонов, они могут быть запитаны от стабилизированного источника напряжением 1.8В±10%, тем самым, позволяя снизить себестоимость системы и увеличить длительность работы от батарейного источника.
Система обработки событий
       Подобно рефлекторным свойствам человеческого организма инновационная система обработки событий «Event System» позволяет организовать передачу данных между встроенными периферийными устройствами без вмешательства ЦПУ или использования ПДП. Этим гарантируется 100%-ая предсказуемость и малое время реагирования. До 8 одновременных событий или условий прерывания в периферийных устройствах могут автоматически инициировать действия в других периферийных устройствах.

12-битные АЦП и ЦАП
       Для обеспечения высокоточной обработки аналоговых сигналов в состав микроконтроллеров XMEGA интегрированы 12-битные преобразователи аналоговых сигналов. АЦП микроконтроллеров XMEGA могут достигать частоты преобразования до 2 МГц, что делает их самыми быстродействующими и точными на фоне АЦП обычных микроконтроллеров. Поскольку микроконтроллеры XMEGA также интегрируют два 12-битных ЦАП на частоту преобразования до 1 МГц и четыре усовершенствованных аналоговых компаратора, это делает их лидерами по степени интеграции компонентов для аналоговой обработки.
Контроллер ПДП
       4-канальный контроллер ПДП обеспечивает быстродействующую и независимую от ЦПУ передачу данных, позволяя существенно улучшить рабочие характеристики. Контроллер ПДП микроконтроллеров XMEGA способен организовать автоматическую передачу данных между всеми типами памяти данных и периферийными устройствами.

Совместимость и инструментальные средства для проектирования

       Микроконтроллеры XMEGA используют тот же набор инструкций, что и существующие микроконтроллеры AVR. Все представители семейства XMEGA совместимы по расположению выводов и на 100% совместимы по программному коду, поэтому, разработчики смогут повторно использовать, как исходный код, так и бинарный код в любом проекте.
       Микроконтроллеры XMEGA поддерживаются полным набором существующих простых в использовании инструментальных средств для микроконтроллеров AVR, в т.ч. интегрированная среда для проектирования AVR Studio, наборы для проектирования и отладчики.

Состав семейства AVR XMEGA
       Все микроконтроллеры XMEGA A рассчитаны на работу при напряжении 1.6…3.6В, поддерживают тактовые частоты до 32 МГц и содержат:
4 канала ПДП;
8 канальную систему обработки событий «Event System»
Ускоритель криптографических алгоритмов AES и DES
Часы реального времени
Схему контроля напряжения питания
Сторожевой таймер
Внутренний RC-генератор
Наименование Флэш-память, кбайт Стат. ОЗУ, кбайт Количество линий ввода-вывода Количество 16-битных таймеров Количество SPI/TWI/USART 12-битный АЦП 12-битный ЦАП Количество аналоговых компараторов
ATxmega64A1 64 4 78 8 4/4/8 2×8 2×2 4
ATxmega128A1 128 8 78 8 4/4/8
2×8
2×2 4
ATxmega192A1 192 8 78 8 4/4/8 2×8 2×2 4
ATxmega256A1 256 16 78 8 4/4/8 2×8 2×2 4
ATxmega64A3 64 4 50 7 4/4/7 2×8 1×2 4
ATxmega128A3 128 8 50 7 4/4/7 2×8 1×2 4
ATxmega192A3 192 16 50 7 4/4/7 2×8 1×2 4
ATxmega256A3 256 16 50 7 4/2/7 2×8 1×2 4
ATxmega16A4 16 2 36 5 2/2/5 1×12 1×2 2
ATxmega32A4 32 4 36 5 2/2/5 1×12 1×2 2
ATxmega64A4
64
4 36 5 2/2/5 1×12 1×2 2
ATxmega128A4 128 8 36 5 2/2/5 1×12 1×2 2

AVR XMEGA™

© ATxMega

Atxmega программирование

Нужны еще сервисы? Архив Каталог тем Добавить статью. Как покупать? Для скачивания файла воспользуйтесь торрент клиентом uTorrent.


Поиск данных по Вашему запросу:

Atxmega программирование

Схемы, справочники, даташиты:

Прайс-листы, цены:

Обсуждения, статьи, мануалы:

Дождитесь окончания поиска во всех базах.

По завершению появится ссылка для доступа к найденным материалам. ПОСМОТРИТЕ ВИДЕО ПО ТЕМЕ: XMega Video Game System

Руководство по 8-битным AVR-микроконтроллерам XMEGA A


По всему сайту В разделе Везде кроме раздела Search. Войти через: vk. Самоучитель раскрывает секреты микропроцессорной техники, затрагивает основы цифровой логики, принципы программирования.

Написан простым, понятным языком, снабжен схемами, иллюстрациями и практическими примерами. После популярной теоретической части автор переходит к МК-Пресс, Синтаксические особенности языка С и методы работы с перечисленными выше инструментальными средствами в книге подробно не рассматриваются, Рассмотрено применение микропроцессоров для создания измерительных устройств Приведены основные средства и методы измерения Подробно описаны основные компоненты измерительных систем, датчики, АЦП и ЦАП, генераторы сигналов, исполнительные устройства, индикаторы, линии передачи данных и интерфейсы Изложены принципы построения систем Прочитав эту книгу, читатели познакомятся с микроконтроллерами семейства AVR, программным обеспечением, необходимым для конструирования и программирования схем на основе этих микроконтроллеров, а при желании познакомятся с их применением на практике, собрав какую-либо из Release 6.

This guide makes a few assumtions. Your linux should be a fairly recent linux distribution. For this document an Ubuntu Most of the following is for AVR8. Учебное пособие. ISBN Предназначено для студентов всех форм обучения по специальностям, изучающим проектирование автоматических измерительных и управляющих систем на микроконтроллерах, может быть использовано в курсовом и дипломном проектированиях. Учебное пособие в простой и доступной форме знакомит читателей с языком Cengage Learning PTR, The book begins with the binary Формат ISO.

Часть 1 из 3. Издательство неизвестно. Всех их особенности задокументированы на функциональном уровне и описаны по общей методике. Набор для построения робота из набора. Описывается синтаксис языка С. Описание библиотек для работы с роботом. Листинги программ. Atmel, In addition, the library provides the basic startup code needed by most applications.

There is a wealth of information in this document which goes beyond simply describing the interfaces and routines provided by the library. We hope that this China:CD, Диск содержит datasheet на все установленные микросхемы, а также 21 пример программ. Из диска удалена программа AvrStudio4.

Ульяновск: УлГТУ, PDF, 2 МБ Изложены вопросы проектирования микропроцессорных устройств, включая разработку программного обеспечения для микроконтроллеров. Рассмотрение архитектуры микроконтроллеров и особенностей функционирования периферийных устройств ведется на примере популярного микроконтроллера ATmega семейства AVR Санкт-Петербург,


Про ATxmega

По всему сайту В разделе Везде кроме раздела Search. Войти через: vk. Самоучитель раскрывает секреты микропроцессорной техники, затрагивает основы цифровой логики, принципы программирования. Написан простым, понятным языком, снабжен схемами, иллюстрациями и практическими примерами. После популярной теоретической части автор переходит к

Аппаратный модуль USB в восьмибитных микроконтроллерах от Atmel появился давно. Но четкого руководства «шаг за шагом» на.

Каталог статей

Войдите , пожалуйста. Хабр Geektimes Тостер Мой круг Фрилансим. Войти Регистрация. Поэтому делюсь своим опытом. Опыт достаточно поверхностный, однако позволяет разработчикам, у которых нет возможности вникать в тонкости USB стека, в сжатые сроки обеспечить взаимодействие контроллера с компьютером по интерфейсу USB. На канале Atmel на YouTube есть ролики как это делается. Однако многим удобнее читать, нежели смотреть видео — для этих людей данный пост. Также, я опишу реализацию на стороне ПК. К слову, я думал, что они pin-to-pin совместимы, но это не полностью так, будьте внимательны!

Мистер «Х» или ATXmega (на примере ATXmega32A4) быстрый старт.

Отправить комментарий. Программатор USBasp. Это всего лишь предупреждение, не ошибка, работе оно не мешает. Если вы всё же хотите от него избавиться, то нужно обновить прошивку USBasp, данная процедура подробно расписана в статье Прошивка USBasp. Как видно из скриншота, значение младшего конфигурационного байта равно 0xff, команда отработала успешно.

В качестве информационной базы при подготовке цикла использовались оригинальные материалы центра Atmel AVR в Норвегии, впервые представленные на техническом тренинге в сентябре года.

Микроконтроллеры AVR XMEGA компании Atmel

Тема в разделе » Микроконтроллеры AVR «, создана пользователем neddi , 31 июл Войти или зарегистрироваться. Искать только в заголовках Сообщения пользователя: Имена участников разделяйте запятой. Новее чем: Искать только в этой теме Искать только в этом разделе Отображать результаты в виде тем. Быстрый поиск.

>>> Руководство для мк xmega на русском

Он основан на проекте LUFA , но существенно доработана аппаратная и программная части: все интерфейсы выведены на один разъем через преобразователи уровней, управляющая программа оптимизирована под конечную схему в исходных текстах убрано все лишнее и исправлена пара ошибок , добавлена калибровка RC-генератора по методике AVR Уровни выходных сигналов соответствуют напряжению на контакте 2 разъема XP1 Vtarget , который должен быть соединен с выводом питания программируемого контроллера. Светодиоды около разъема USB индицируют состояние устройства. Сразу при подключении эти светодиоды индицируют первую цифру серийного номера: зеленый светодиод — 0, красный — 1. При бездействии: зеленый — не готов; красный — готов, но напряжение на интерфейсном разъеме менее 1. При работе зеленый светодиод мигает при выполнении команд. Светодиоды около интерфейсного разъема отображают подачу напряжения с программатора на интерфейсный разъем: красный — около 3В, зеленый — около 5В может существенно отличаться из-за отсутствия стабилизатора , оба не горят — напряжение должно подаваться со стороны контроллера.

По сравнению с сериями ATmega и ATtiny ATXmega приобрела довольно много дичайше приятных плюшек, а именно: Тактовая частота.

Программирование xMega через UART

Atxmega программирование

Корпорация Atmel не престает удивлять и радовать своей продукцией. В частности микроконтроллерами. И что в этом кристалле интересного?

Последние выложенные файлы

ВИДЕО ПО ТЕМЕ: Программирование МК AVR. Урок 14. USART. Связь МК с ПК. Часть 1

By terkin , June 7, in Программаторы и отладочные модули. Подскажите какой программатор можно купить для Xmega, если конкретней то собираюсь программировать ATxmegaA1. Нахожусь в Таиланде, поэтому хотелось бы купить на АлиЭкспрессе ну или где-то, где в Таиланд быстро доставляют. Ну и желательно недорогой. Информации про программирование Xmega почти нет или я не так ищу.

Логин или эл.

Микроконтроллеры XMEGA — новые возможности проверенного решения

Используете ли Вы отладчики и если да, то какой? Программирую и отлаживаю через PDI и через бутлоадер по компорту после первичной прошивки бутлоадера. Какая среда лучше — вопрос привычек и личных предпочтений. Мой аргумент в пользу моего комплекта — Атмел раньше всех начинает поддерживать свои же новые продукты. Благодаря этому уже больше года плотно работаю с atxmega32a4 с первых инженерных чуть глючных образцов.

Нужны еще сервисы? Архив Каталог тем Добавить статью. Как покупать?


Режим прямого доступа к памяти микроконтроллера ATxmega

Микроконтроллеры Atxmega [1], в отличие от своих предшественников ATmega, имеют гораздо более высокую производительность, что обеспечивается не только повышенной тактовой частотой, но и более развитой внутренней архитектурой, в которой присутствует ряд новых узлов. Один из них — контроллер прямого доступа к памяти (ПДП), с помощью которого организуется прямая пересылка информации между ячейками памяти данных микроконтроллера, минуя процессор. Роль последнего сводится лишь к настройке контроллера ПДП и управлению его работой.

Рациональное использование прямого доступа к памяти (ПДП) позволяет существенно ускорить работу программ, в ходе выполнения которых необходимы регулярные пересылки массивов данных между модулями микроконтроллера. Ускорение происходит как за счёт большой скорости пересылки, так и за счёт освобождения от участия в ней процессора, который в это время может выполнять другие фрагменты программы.

Прежде чем рассматривать сам контроллер ПДП, необходимо остановиться на некоторых особенностях архитектуры микроконтроллера, которые необходимо знать для эффективного использования ПДП. Элементы любой вычислительной системы можно разделить на активные и пассивные. К активным относят те элементы, которые могут генерировать обращения к другим элементам системы. Типичный пример — процессор. В микроконтроллерах семейства ATmega это единственный активный элемент. В семействе ATxmega в их число вошёл и контроллер ПДП.

Одновременное функционирование в системе нескольких активных элементов может приводить к конфликтам между ними при одновременном обращении к одному и тому же пассивному элементу. Доступные для обращений со стороны нескольких активных элементов пассивные элементы принято именовать общими ресурсами вычислительной системы. Типичный пример — память, к которой активные элементы регулярно обращаются и при этом нередко конфликтуют между собой. Если не предпринять никаких мер, то результат конфликта один — остановка работы обоих конфликтующих элементов и обычно вычислительного процесса в целом.

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

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

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

Следует напомнить, что в микроконтроллерах имеется память двух видов: память программ (часто называемая FLASH-памятью) и память данных. Память программ не относится к общим ресурсам, так как доступна только процессору. Поэтому в дальнейшем будем рассматривать только память данных, доступную как процессору, так и контроллеру ПДП.

Память данных микроконтроллера состоит из однобайтовых ячеек. Все 16 Мбайт адресного пространства этой памяти разбиты на четыре области:

0000Н-0FFFH — память ввода-вывода, в которой находятся программнодоступные регистры всех модулей микроконтроллера, в том числе процессора;

1000Н-1FFFH — энергонезависимая память (EEPROM). У разных микроконтроллеров её объём неодинаков, поэтому реальное значение верхней границы этой области следует брать из описания конкретного микроконтроллера;

2000H и выше — внутренняя и внешняя память данных с произвольным доступом. Верхняя граница внутренней памяти этого типа (ОЗУ) зависит от её объёма в конкретном микроконтроллере. Например, микроконтроллер ATxmega64 имеет ОЗУ объёмом 4 Кбайт, следовательно, его верхняя граница — 2FFFH. Через порты к микроконтроллеру может быть подключена внешняя память данных, начальный адрес которой на единицу больше максимального адреса внутреннего ОЗУ, а конечный может достигать 0FFFFFFH.

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

Шина памяти данных микроконтроллера устроена так, что позволяет организовать одновременное обращение активных устройств к разным областям памяти данных. Это даёт возможность организовать параллельную бесконфликтную работу с ними процессора и контроллера ПДП. На рис. 1 показан пример такой работы. Здесь процессор читает содержимое EEPROM, аконтроллер ПДП в то же самое время пересылает информацию из внешней памяти во внутреннее ОЗУ Если процессор и контроллер ПДП одновременно обратятся к одной области памяти, то возникнет конфликт, который должен разрешить арбитр шины по приоритетному принципу. Естественно, в такой ситуации программа исполняется медленнее, чем при бесконфликтной работе.

Рис. 1. Блок-схема алгоритма работы программы микроконтроллера

 

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

Контроллер ПДП имеет четыре автономных канала пересылки информации. Для каждого канала должны быть установлены индивидуальные значения параметров, определяющих схему пересылки: источник запуска, систему адресации, уровень приоритета. Это позволяет пересылать до четырёх информационных потоков параллельно.

Пересылка массива информации по каналу ПДП называется транзакцией. Максимальный размер транзакции — 16 Мбайт. Она выполняется блоками объёмом до 64 Кбайт, а передача блока, в свою очередь, может происходить пакетами из одного, двух, четырёх или восьми байтов. При блочной схеме пересылки контроллер ПДП захватывает шину на всё время передачи блока, при пакетной — только на время передачи пакета. Столь сложная структура транзакции позволяет с минимальными простоями обслуживать обращения процессора и контроллера ПДП к одной и той же области памяти.

Поясним это на примере. Пусть в ходе выполнения некоторой программы контроллер ПДП должен переслать последовательность результатов работы АЦП в ОЗУ. Причём АЦП выдаёт новый однобайтовый результат каждую микросекунду, а всего нужно переслать 2000 результатов (байтов). Если эту транзакцию осуществить одним блоком такого объёма, то контроллер ПДП, получив доступ к ОЗУ, не освободит его до завершения передачи всего блока. Поэтому в течение 2000 мкс ОЗУ будет недоступно процессору.

Это неразумно, поскольку между пересылками по каналу ПДП двух смежных байтов проходит 1 мкс, а операция записи байта в ОЗУ выполняется за один машинный такт (около 0,03 мкс при тактовой частоте 32 МГц). Другими словами, лишь 3 % времени транзакции ОЗУ будет занято операциями записи, а в течение оставшихся 97 % будет бесполезно простаивать, оставаясь недоступным для процессора. Ему придётся ждать завершения транзакции. Понятно, что это сильно замедлит работу программы.

В рассматриваемом случае целесообразно настроить контроллер ПДП на пакетную передачу, задав размер пакета 1 байт. Контроллер ПДП станет захватывать шину каждую микросекунду всего на один машинный такт. В оставшуюся часть микросекунды ОЗУ будет свободно для обращений к нему процессора.

Настраивают контроллер ПДП записью необходимых кодов в его управляющие регистры. Рассмотрим основные из них. При описании регистров и их разрядов использованы их оригинальные мнемонические имена на английском языке. Многие системы программирования (например, BASCOM AVR) позволяют указывать эти имена вместо истинных адресов, что облегчает программирование. В скобках после имён описываемых разрядов указаны их порядковые номера в соответствующем регистре от 7 (старший) до 0 (младший).

Те разряды, которые на момент написания статьи зарезервированы для использования в дальнейших модификациях микроконтроллера, обычно доступны только для чтения, которое, как правило, даёт нулевой результат. Если запись в них разрешена, то записывать рекомендуется только нулевые значения. Более подробно о контроллере ПДП рассматриваемых микроконтроллеров и его регистрах можно узнать в [2].

Общие регистры контроллера ПДП

Регистр CTRL — управление контроллером ПДП.

ENABLE (7) — разрешение (единица) или запрет (ноль) работы контроллера ПДП.

RESET (6) — запись единицы в этот разряд приводит к установке контроллера ПДП в исходное состояние. По её завершении разряд обнуляется автоматически. Действует только при ENABLE=0.

DBUFMODE[1:0] (3, 2) — режим двойной буферизации: 00 — выключен; 01 — включён в каналах 0, 1; 10 — включён в каналах 2, 3; 11 — включён во всех каналах. Двойная буферизация гарантирует непрерывность передачи информации при последовательном использовании двух каналов ПДП. Как только передача в первом канале завершается, разрешается работа второго канала, и наоборот.

pRiMODE[1:0] — установка приоритетов каналов ПДП: 00 — обработка запросов всех каналов карусельным методом; 01 — высший приоритет у канала 0, запросы остальных каналов обрабатываются по карусельному методу; 10 — высший приоритет у канала 0, следующий — у канала 1, запросы остальных каналов обрабатываются по карусельному методу; 11 — высший приоритет у канала 0, затем в порядке уменьшения приоритетов следуют каналы 1-3.

Разряды 4, 5 зарезервированы для будущих модификаций.

Регистр INTFLAGS — флаги состояния прерываний от контроллера ПДП.

Ch4ERRIF-CH0ERRIF (7-4) — флаги прерываний по ошибкам в каналах ПДП. Исходное значение — 0000. Ошибка в любом из каналов ПДП приводит к установке единицы в соответствующем разряде. Запись единицы в один из этих разрядов приводит к его обнулению.

Ch4TRNFIF-CH0TRNFIF (3-0) — флаги прерываний по завершению транзакций в каналах ПДП. Исходное значение — 0000. Флаг устанавливается (разряд переходит в единичное состояние), когда транзакция в соответствующем канале завершена. Если задано неограниченное число повторений, флаг устанавливается по окончании передачи каждого блока. Запись единицы в разряд снимает флаг.

Регистр STATUS — состояние контроллера Пдп.

Ch4BUSY-CH0BUSY (7-4) — флаги занятости каналов. Флаг устанавливается (переходит в единичное состояние) при начале транзакции. Он снимается (переходит в нулевое состояние) при отключении канала, при установке флага прерывания по завершении транзакции или при ошибке в канале.

Ch4PEND-CH0PEND (3-0) — флаги ожидания пересылки блока. Устанавливаются, когда заданная пересылка блока фактически не происходит. Автоматически снимаются с началом пересылки или при отмене транзакции.

Регистры канала ПДП

Регистр CTRLA — управление каналом.

ENABLE (7) — запись единицы в этот разряд разрешает работу канала. Разряд автоматически обнуляется по завершении транзакции. Если в него записать ноль во время пересылки информации, то пересылка будет остановлена лишь после опустошения внутреннего буфера передачи.

RESET (6) — запись единицы в этот разряд приводит к установке канала в исходное состояние. Разряд автоматически обнуляется по завершении этой операции. Действует только при ENABLE=0.

REPEAT (5) — запись единицы в этот разряд активирует режим повторения пересылки блоков. Предварительно следует указать число повторений в регистре REPCNT Разряд автоматически обнуляется при запуске последнего из заданных повторений пересылки.

TRFREQ (4) — запись единицы в этот разряд приводит к генерации запроса на пересылку информации по каналу DMA. Разряд автоматически обнуляется с началом пересылки.

SINGLE (2) — запись единицы в этот разряд разрешает однократную передачу пакета информации, длина которого указана в поле BURSTLEN этого же регистра. Передачу инициирует источник информации. Значение в этом разряде нельзя изменить, если канал занят.

BURSTLEN[1:0] (1, 0) — задаёт число байтов в пакете: 00 — 1; 01 — 2; 10 — 4; 11-8. Его нельзя изменить, если канал занят.

Разряд 3 этого регистра зарезервирован для будущих модификаций.

Регистр CtrLb — управление каналом.

CHBUSY(7) — флаг занятости канала. Устанавливается, когда канал начинает транзакцию. Автоматически снимается при отключении канала, при установке флага прерывания по завершению транзакции или при установке флага прерывания по ошибке в канале.

CHPEND (6) — флаг ожидания пересылки блока по каналу. Он автоматически снимается с началом пересылки или при её отмене.

ERRIF (5) — флаг прерывания по ошибке в канале.

TRNIF (4) — флаг прерывания по завершении транзакции. Вместе с его установкой может генерироваться запрос прерывания. Если режим повторения не включён, установка флага и завершение транзакции происходят по окончании пересылки блока. В режиме бесконечного повторения флаг устанавливается после каждой передачи блока. Этот флаг не снимается автоматически с началом обработки прерывания. Его нужно снимать принудительно записью единицы в этот разряд.

ERRINTLVL[1:0] (3, 2) — приоритет прерывания по ошибке в канале: 00 — прерывание запрещено; 01 — низкий приоритет; 10 — средний приоритет; 11 — высокий приоритет.

TRNINTLVL[1:0] (1,0) — приоритет прерывания по завершению транзакции. Устанавливается также, как в разрядах ERRINTLVL[1:0].

Регистр ADDRCTRL — управление адресом.

SRCRELOAD[1:0] (7, 6) — устанавливают момент перезагрузки регистра адреса источника информации начальным значением: 00 — нет перезагрузки; 01 — перезагрузка в конце передачи блока; 10 — перезагрузка в конце передачи пакета; 11 — перезагрузка по окончании транзакции. Значение в этих разрядах не может быть изменено, если канал занят.

SRCDIR[1:0] (5, 4) — задают режим изменения адреса источника информации: 00 — адрес не изменяется; 01 — адрес увеличивается на единицу после пересылки каждого байта; 10 — адрес уменьшается на единицу после пересылки каждого байта; 11 — зарезервировано. Значение в этих разрядах не может быть изменено, если канал занят.

DESTRELOAD[1:0] (3, 2) — аналогичны SRCRELOAD[1:0], но для приёмника информации:

DESTDIR[1:0] (1, 0) — аналогичны SRCDIR[1:0], но для источника информации.

Регистр TRIGSRC — выбор источника запуска канала.

TRIGSRC[7:0] (7-0) — задают модуль или устройство ввода-вывода микроконтроллера, который будет формировать сигнал запуска передачи информации по каналу. Значение, которое необходимо загрузить в этот регистр, вычисляется как сумма базового значения, полученного из табл. 1, и смещения, полученного из табл. 2 — табл. 5.

Таблица 1

Источник запуска

База

Разряд TRFREQ регистра CTRLA

000H

Система событий

001H

АЦП А

010H

ЦАП А

015Н

АЦП В

020H

ЦАП В

025Н

Таймер-счетчик СО

040Н

Таймер-счетчик С1

046Н

SPI порта С

04AH

USART С0

04ВН

USART С1

04ЕН

Таймер-счетчик D0

060Н

Таймер-счетчик D1

066Н

SPI порта D

06АН

USART D0

06ВH

USART Dl

06ЕН

Таймер-счетчик Е0

080Н

Таймер-счетчик Е1

086 Н

SPI порта Е

08АН

USART Е0

08ВН

USART Е1

08ЕН

Таймер-счетчик F0

0A0H

Таймер-счетчик F1

0А6Н

SPI порта F

0AAH

USART F0

0АВН

USART F1

0AЕН

 

Таблица 2

Канал

Смещение

АЦП

ЦАП

0

0

+0

1

1

+1

2

Нет

+2

3

Нет

+3

0-3

Нет

+4

 

Таблица 3

Состояние таймера- счётчика

Смещение

Переполнение или вычитание из нуля

+0

Ошибка

+1

Захват или сравнение в канале А

+2

Захват или сравнение в канале В

+3

Захват или сравнение в канале С*

+4

Захват или сравнение в канале D*

н-5

* — Только в таймере-счётчике 0

 

Таблица 4

Состояние USART

Смещение

Прием завершен

+0

Регистр данных пуст

+1

 

Таблица 5

Событие

Смещение

0

+0

1

+1

2

+2

 

Пример. Необходимо запустить ПДП от канала 2 АЦП В. Из табл. 1 находим базовое значение кода запуска от АЦП В, равное 020Н, а из табл. 2 — смещение для канала 2 АЦП, равное +2. Итак, TRIGSRC=20H+2=22H.

Регистр REPCNT — счётчик повторений передачи блока.

REPcNt[7:0] (7-0) — оставшееся число повторений передачи блока, его начальное значение необходимо записать в этот регистр до разрешения повторений разрядом REPEAT регистра CTRLA. По завершении каждой передачи блока содержимое счётчика уменьшается на единицу. По достижении нулевого значения транзакция считается законченной. Разрешение повторений при нулевом значении в регистре REPCNT приводит к бесконечному повторению передачи.

Регистры SRCADDRO, SRCADDR1, SRCADDR2 — адрес источника информации (соответственно его младший, средний и старший байты). Перед началом передачи в них заносится 24-разрядный адрес первой ячейки области памяти, из которой будет передаваться информация. В процессе передачи блока содержимое этих регистров изменяется, как задано разрядами SRCRE-LOAD и SDRCDIR регистра ADDRCTRL.

Регистры DESTADDRO, DESTADDR1, DESTADDR2 — адрес приёмника информации. Устроены и функционируют аналогично регистрам SRCADDR0- SCRADDR2, но характер изменения их содержимого устанавливают разряды DESTRELOAD и DERTDIR регистра ADDRCTRL.

Практическое использование ПДП

Рассмотрим практическое использование ПДП на примере программы микроконтроллера цифрового осциллографа. В ходе приёма информации от АЦП и её отображения на ЖКИ циклически выполняются следующие действия:

— приём от внутреннего АЦП с периодом 0,5 мкс оцифрованных отсчётов исследуемого сигнала и запись их в буферную область ОЗУ объёмом 7200 байт;

— вывод на ЖКИ изображения масштабной сетки объёмом 3048 байт;

— отображение на ЖКИ осциллограммы (выборки объёмом 240 байт из буферной области ОЗУ).

Естественно, перед началом цикла настраиваются (конфигурируются) все модули микроконтроллера, участвующие в выполнении программы.

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

— регистры АЦП отображаются в область памяти ввода-вывода;

— электронная масштабная сетка представляет собой массив байтов, подготовленный заранее и хранящийся в программной (FLASH) памяти микроконтроллера. В ходе вывода на индикатор он затирает осциллограмму, выведенную на него в предыдущем цикле;

— индикатор подключён к микроконтроллеру через интерфейс внешней памяти данных, его регистры находятся в адресном пространстве этой области.

Применительно к структуре памяти микроконтроллера в каждом цикле работы программы необходимо, во-первых, 7200 байт пересылать из памяти ввода-вывода в ОЗУ, во-вторых, 3048 байт — из программной памяти во внешнюю память данных, в-третьих, 240 байт — из ОЗУ во внешнюю память данных.

Рис. 2. Блок-схема алгоритма работы программы микроконтроллера без ПДП

 

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

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

К выполнению третьего этапа — отображению на индикаторе информации из буфера в ОЗУ — можно приступать только после заполнения буфера. Если ПДП не используется, это условие легко соблюдается автоматически, так как процессор обычно выполняет участки программы в строгой последовательности. ПДП, работая параллельно с процессором, изменяет ситуацию. При этом очевидно, что процессор перешлёт 3048 байт масштабной сетки быстрее, чем канал ПДП заполнит буфер ОЗУ объёмом 7200 байт, да ещё с задержками на 0,5 мкс между байтами. Поэтому, прежде чем начинать построение осциллограммы на ЖКИ, процессор должен убедиться в окончании транзакции ПДП.

Сделать это можно, проанализировав значения разрядов одного из регистров CTRLA или CTRLB либо регистра iNtFLAGS. В разряд ENABLE регистра CTRLA программно записывают единицу, разрешая начать транзакцию. По её завершении в этом разряде автоматически появляется нулевое значение. В разряде TRNIF регистра CTRLB флаг окончания транзакции автоматически устанавливается по её завершении. В регистре INTFLAGS имеются флаги Ch4TRNFIF-CH0TRNFIF, обозначающие окончание транзакций соответственно в каналах ПДП с третьего по нулевой.

Состояние какого регистра анализировать для фиксации момента окончания транзакции — дело вкуса программиста. Следует, однако, иметь в виду, что автоматически установленный в регистре CTRLB флаг после его анали-занеобходимо снимать принудительно. То же самое относится к флагам в регистре INTFLAGS. Во фрагментах программы на языке BASCOM AVR, рассмотренных в статье далее, анализируется состояние флага в регистре INTFLAGS.

Блок-схема алгоритма работы программы микроконтроллера, использующей ПДП, показана на рис. 3. Оцифровку исследуемого сигнала выполняет нулевой канал АЦП А, работающий в восьмиразрядном непрерывном режиме. Буферная область ОЗУ начинается с адреса 3000Н и имеет объём 7200 байт. Для пересылки в неё результатов работы АЦП используется нулевой канал ПДП.

Рис. 3. Блок-схема алгоритма работы программы микроконтроллера, использующей ПДП

 

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

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

Config Dma=Enabled,Doublebuf=◊

Disabled, Cpm=Ch0rr123

Здесь и далее знак ◊ в конце строки означает, что она продолжается в следующей. В компьютер их следует вводить одной строкой без этого знака. Директива разрешает работу контроллера ПДП, запрещает двойную буферизацию (в ней нет необходимости, так как предполагается использовать только один канал ПДП) и задаёт наивысший приоритет каналу 0.

Следующая директива настраивает используемый канал 0 ПДП. В соответствии с поставленной задачей ему задаются пакетный режим передачи с длиной пакета 1 байт и без повторения блоков, постоянный адрес источника — регистра младшего байта результата АЦП А, начальный адрес приёмника информации &h4000 — адрес начальной ячейки буфера в ОЗУ — с инкрементированием после передачи каждого байта и перезагрузкой начального значения по окончании транзакции. Последнее подготавливает канал к следующей транзакции. Объём транзакции — 7200 байт, источник запуска — нулевой канал АЦП А.

Рассматриваемая директива имеет вид Config Dmach0=…. Далее следует длинный список параметров, которые задают значения, загружаемые в регистры канала 0, рассмотренные выше. Получить подробную информацию об этой директиве можно в раздел «Help» среды BASCOM AVR. Кратко отметим лишь, что начальные адреса источника и приёмника информации нельзя указывать константами. Они должны загружаться из переменных. Если один из этих адресов лежит в области памяти ввода-вывода, т. е. представляет собой адрес программно доступного регистра, то его можно задать с помощью встроенной в BASCOM AVR функции Varptr(Имя_Регистра). Она возвращает адрес регистра, носящего указанное в качестве параметра имя. Это весьма удобно, так как помнить имена регистров значительно легче, чем их адреса. При этом использовать промежуточную переменную для хранения полученного адреса нет необходимости.

Учитывая изложенное, вторая директива конфигурирования канала 0 ПДП имеет вид 

Adr=&h400

Config Dmach0=Disabled,Burstlen=1,◊

Chanrpt=Disabled, Tci=L0, Eil=Lo,◊ 

Singleshot=Enabled, Sar=None,◊

Sam=Fixed,Dar=Transaction,Dam=Inc,◊

Trigger=&h20,Btc=7200,Repeat=1,◊

Sad=varptr(adca_ch0_resl),Dadr=Adг

Перед ней в переменную Adr занесено значение начального адреса приёмника информации (буфера в ОЗУ), из которой оно перегружается в тело директивы. Начальный адрес источника информации (регистра младшего байта результата работы нулевого канала АЦП А adca_ch0_resl) указан с помощью функции Varptr.

В приведённом виде директива не разрешает работу канала. Если сразу разрешить его работу (Config Dmach0= Enabled….), то транзакция может начаться немедленно после исполнения этой директивы и получения от АЦП А первого сигнала готовности результата. Это может случиться до входа в основной цикл программы, когда ещё не завершена вся необходимая настройка. Поэтому разрешать работу канала ПДП следует позже, в начале основного цикла программы.

В качестве альтернативного способа конфигурирования контроллера ПДП (как и любого другого модуля микроконтроллера) можно пользоваться записью необходимых кодов непосредственно в его регистры. Этот приём удобен при частичном реконфигурировании модуля. Например, чтобы изменить только источник запуска канала ПДП, проще загрузить новое значение в регистр TRIGSRC, чем переписывать всю директиву конфигурирования.

Согласно блок-схеме алгоритма (рис. 3), первым действием в цикле должно быть разрешение работы канала ПДП. Это выполняется записью единицы в разряд ENABLE регистра CTRLA канала командой

Set Dma_ch0_ctrla.7

После неё канал ПДП начинает заполнять буфер в ОЗУ На фоне этой транзакции процессор выводит на экран масштабную сетку, побайтно считывая её из командной памяти

Restore setka

For I = 1 To 3048

Read Dispdata

Gosub Eram_Data_w

Next

Здесь Setka — метка начала массива байтов изображения координатной сетки во FLASH-памяти; Eram_Data_w — имя подпрограммы, выводящей байты на индикатор.

После вывода масштабной сетки на индикатор процессор проверяет, завершена ли транзакция каналом ПДП (то есть заполнен ли буфер). Если нет, он ждёт её завершения. Признаком завершения транзакции служит флаг CH0TRNFIF в регистре INTFLAGS:

Bitwait Dma_intflags.0,Set

По завершении транзакции этот флаг следует снять:

Set Dma_intflags.0

Теперь можно приступать к отображению осциллограммы. Для упрощения условимся, что будем отображать первые 240 байт буфера ОЗУ:

Addr=&h4000

Step=5

For I=0 to 239

Dispdata=inp(Addr)

Gosub Eram_osc

Addr=Addr+Step

Next

Здесь Eram_osc — имя подпрограммы, осуществляющей необходимые преобразования считанных из буфера данных и их отображение.

Микроконтроллеры ATxmega и система программирования BASCOM AVR

Разработчики системы программирования BASCOM AVR заявляют, что полноценную работу с микроконтроллерами ATxmega эта система обеспечивает, начиная с версии 2.0.7.5. Более ранние версии, начиная с 2.0.5.0, предоставляют лишь ограниченные возможности такой работы. Данных о возможности разработки программ для ATxmega с помощью ещё более ранних версий BASCOM AVR у автора нет.

Как определить, пригодна ли имеющаяся версия для ATxmega? Лучше всего, конечно, поискать нужную информацию на http://mcselec.com/ — сайте разработчика BASCOM AVR. Если нужной информации там не нашлось, запустите BASCOM AVR. В его главном окне откройте пункт меню «Options- Compiler-Chip». В поле «Chip» открывшегося окна разверните выпадающий список файлов с необходимой компилятору информацией о микроконтроллерах и поищите в нём файлы, имена которых начинаются с «xm» (например, файл xm128a3def.dat описывает микроконтроллер ATxmega128A3). Если файл, относящийся к нужному микроконтроллеру, имеется — всё в порядке. В противном случае версию системы BAS-COM AVR следует обновить.

И последнее. В версиях BASCOM AVR ниже 2.0.7.5 в начальной части исходного текста программы после директив, описывающих тип микроконтроллера, задающих его тактовую частоту и размер стека, обязательно должны находиться следующие директивы:

$lib «xmega.lib»

$external _xmegafix_clear

$external _xmegafix_rol_r1014

Именно они обеспечивают корректную работу системы программирования с микроконтроллерами семейства ATxmega.

Литература

1. 8/16-bit Atmel XMEGA A3U Microcontroller. — URL: http://www.atmel.com/images/ atmel-8386-8-and-16-bit-avr-microcontroller-atxmega64a3u-128a3u-192a3u-256a3u_ datasheet.pdf (13.08.14).

2. 8-bit Atmel XMEGA A Microcontroller. XMEGA A MANUAL. — URL: http://www.atme!. com/Images/doc8077.pdf (13.08.14).

Автор: А. Савченко, пос. Зеленоградский Московской обл.

ATXMEGA128A1-AU — Microchip — 8-битный MCU, AVR ATxmega Family ATXmega Микроконтроллеры серии A, 32 МГц

ATXMEGA128A1-AU — это маломощный, высокопроизводительный 8-битный/16-битный микроконтроллер AVR XMEGA A1 в 100-контактном корпусе TQFP. Выполняя инструкции за один такт, устройства AVR XMEGA достигают пропускной способности ЦП, приближающейся к одному миллиону инструкций в секунду (MIPS) на МГц, что позволяет разработчику системы оптимизировать энергопотребление по сравнению со скоростью обработки. Устройство XMEGA A1 имеет пять программно выбираемых режимов энергосбережения.Режим ожидания останавливает ЦП, позволяя SRAM, контроллеру прямого доступа к памяти, системе событий, контроллеру прерываний и всем периферийным устройствам продолжать работу. Он имеет поддержку библиотеки QTouch для емкостных сенсорных кнопок, ползунков и колесиков.

  • Максимальная рабочая частота 32 МГц
  • 128 КБ самопрограммируемой флэш-памяти программ
  • Раздел загрузочного кода 8 КБ, SRAM 8 КБ, EEPROM 2 КБ
  • 16-битный счетчик реального времени (RTC) с отдельным генератором
  • Пропускная способность 2MIPS на частоте 32 МГц
  • 78 программируемых контактов ввода/вывода
  • Четырехканальный контроллер прямого доступа к памяти, восьмиканальная система событий и восемь 16-битных таймеров/счетчиков
  • Диапазон рабочего напряжения от 1.от 6 В до 3,6 В
  • Восемь USART, четыре двухпроводных и четыре SPI интерфейса
  • Диапазон рабочих температур от -40°C до 85°C

Приложения

Дизайн и разработка встраиваемых систем, промышленный, Моторный привод и управление, Автоматизация и управление процессами, Коммуникации и сети, замер, Медицинский, Бытовая электроника, Автоматизация зданий, Управление энергопотреблением

Предупреждения

Рыночный спрос на этот продукт привел к увеличению сроков поставки.Сроки доставки могут меняться. Товар освобожден от скидок.

новейших вопросов ‘atxmega?tab=unanswered’ — Stack Exchange

новейших вопросов ‘atxmega?tab=unanswered’ — Stack Overflow на русском
Сеть обмена стеками

Сеть Stack Exchange состоит из 178 сообществ вопросов и ответов, включая Stack Overflow, крупнейшее и пользующееся наибольшим доверием онлайн-сообщество, где разработчики могут учиться, делиться своими знаниями и строить свою карьеру.

Посетите биржу стека
  1. 0
  2. +0
  3. Авторизоваться Зарегистрироваться
Электротехника Stack Exchange лучше всего работает с включенным JavaScript

Ваша конфиденциальность

Нажимая «Принять все файлы cookie», вы соглашаетесь с тем, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой использования файлов cookie.

Принять все файлы cookie Настроить параметры

 

Плата ATxmega-A1U Xplained Pro

Поддержка платы ATxmega-A1U Xplained Pro.Подробнее…

Поддержка платы ATxmega-A1U Xplained Pro.

Обзор

ATxmega-A1U Xplained Pro является эталоном для разработки с помощью XMEGA.

MCU

4 канала
MCU ATxmega128A1U
Семейный AVR / ATxmega
Производитель Microchip (ранее Atmel)
Вспышка 128KiB
RAM 8KiB
EBI 16MIB SRAM, 128MIB SDRAM
EEPROM 2KIB
Частота до 32 МГц
Таймеры
(32 бит объединение 2 х 16 бит)
ACS 4 аналоговых компаратора
ADCS 2 — 16 каналов — 12 бит — 2MSPS
ADCS 2 — 2 канала — 12 бит — 1msps
UARTS 8 (можно использовать в режиме SPI ) с 1 ИК-портом
SPI 4
I2CS 4 (называемые TWI)
USB 1 порт
DMA
Система событий 8 каналов
EXT.INT Все GPIOS
Crypto AES / DES, CRC-16, CRC-32
VCC 1.6V — 3.6V
Datasheet DataSeet
XMEGA Руководство Руководство
Руководство Руководство пользователя
Файлы проекта Файлы

Перепрошивка устройства

ATxmega-A1U Xplained Pro поставляется с полным EDBG + CDC-ACM.EDBG работает с инструментом avrdude по умолчанию. Тем не менее, указанный ниже программист должен иметь в файле /etc/avrdude.conf:

идентификатор программиста = «xplainedpro_pdi»; desc = «Atmel AVR XplainedPro в режиме PDI»; тип = «jtagice3_pdi»; тип_соединения = USB; usbpid = 0x2111; ;

Чтобы прошить ATxmega128A1U, просто выполните:

 make BOARD=atxmega-a1u-xpro flash
 

Серийный терминал

CDC-ACM перечислит устройство /dev/ttyACM.

 make BOARD=atxmega-a1u-xpro термин
 

Встроенная отладка (OCD)

 выполнить отладку
 
Конфигурация периферийной платы XplaxmegaA MCU1.
файл   доска.h
  Определения для платы ATxmegaA1U Xplained Pro.
файл gpio_params.h
Конфигурация выводов SAUL, сопоставленных GPIO.
 
файл   periph_conf.h
 
 

Программатор ATxmega за 0 долларов США.50 | AVR Freaks

Я нашел этот проект в Интернете. Я не знаю, это действительно работает или нет! Но вроде нормально.


Программатор ATxmega за 0,50$ или как заставить ваш USBASP поддерживать PDI

Знаете ли вы XMEGA, новое семейство микроконтроллеров AVR? Они выглядят очень мило, особенно для тех, кто уже освоил архитектуру AVR. Больше скорости (32 МГц!), больше периферийных устройств (5 USART! 16 каналов ШИМ!), модульная конструкция, и вы по-прежнему можете использовать те же самые известные инструменты.А потом читаешь про программный интерфейс и… что?! Что случилось с провайдером? Я бы ни за что не купил совершенно новую модель программатора только для того, чтобы поиграть с их новым микроконтроллером!

Прерывание V-USB, нарушающее работу часов PDI
 — но не нарушающее их

К счастью, реализация нового протокола программирования в USBASP оказалась не такой сложной. Изначально я думал, что это почти невозможно, потому что PDI требует постоянного тактового сигнала и отключается, если тактовая частота падает ниже 10 кГц.Строгая синхронизация является проблемой для V-USB (реализация протокола USB, используемого в USBASP), поскольку он обрабатывает все передачи USB в программном обеспечении и не может делать обе вещи одновременно (как парень, которому не хватает мозговых способностей, чтобы ходить и говорить одновременно). ). Тесты показали, что прерывание, обрабатывающее базовую передачу управления, крадет только 40-50 мкс, и этого достаточно, чтобы обеспечить надежное столкновение битов PDI. Отправка большего количества полезной нагрузки (больше, чем обычное управляющее сообщение) нарушило бы тактирование, но программатор можно запланировать на работу в пакетном режиме, поэтому он собирает все данные с USB и только затем начинает передачу PDI (надеясь, что не будет нового USB). передачи на некоторое время).

Часы-биты (слева)
и часы-таймер (справа)

Моя реализация переключается на тактирование аппаратного таймера, чтобы часы работали во время интенсивных прерываний передачи USB. На самом деле это не обязательно, потому что программатор также может отключаться и снова подключаться после каждой передачи, но я думаю, что PDI может больше понравиться непрерывным часам 😉


Физическое соединение

Если у вас обычный USBASP, то это 5В, а PDI работает на 3,3В.Простой способ уменьшить напряжение — просто добавить стабилитроны и несколько резисторов. Как видите, SCK становится PDI DATA, а MOSI становится PDI CLK.

R1 и R2 кажутся излишними, но я разместил их здесь после официальной документации Atmel PDI. Дело в том, что линия DATA двунаправленная и физический уровень должен уметь обнаруживать коллизии. Моя реализация этого не делает, но могла бы, благодаря линии MISO (может быть, кто-то когда-нибудь это реализует…). Еще одна странная вещь — это RESET-соединение, похоже, что это должно быть GND, и да, это GND, который можно отключить по желанию.Постоянное соединение GND разрывает шину PDI, поэтому его необходимо отключить перед получением чего-либо от PDI.

Если ваш USBASP 3,3В, то проще:

Блок питания

Если вы хотите питать свою схему от USBASP на 5 В, то, конечно, вам нужен стабилизатор на 3,3 В, но это не является частью проекта.

Программное обеспечение

Очевидно, вам понадобятся 2 части программного обеспечения:
1. Прошивка USBASP с поддержкой PDI

Распаковать, применить патч, скомпилировать:

смолка xvzf usbasp.2011-05-28.tar.gz

cd usbasp.2011-05-28/прошивка

патч <полный/путь/из/usbasp-pdi-usbaspfirmware-20120816.diff

сделать main.hex

…и установить в свой USBASP

Примечание. ATmega48 не поддерживается, так как область флэш-памяти слишком мала для увеличенного размера программы. Я тестировал его только на ATmega8, потому что это то, что есть в моем USBASP. ATmega88 тоже должен работать.

2. AVRDUDE с поддержкой USBASP с PDI

Получите исходный код AVRDUDE и примените патч к версии 1092:

.

svn co svn://svn.sv.gnu.org/avrdude/trunk -r 1092

cd багажник/avrdude

патч <полный/путь/из/usbasp-pdi-avrdude2091-20120816.diff

./бутстрап

./настроить

сделать

./avrdude -C avrdude.conf -c usbasp -p x16a4 -U flash:w:../../../xmega/xmegatest.hex  -E noreset

avrdude: устройство AVR инициализировано и готово к принятию инструкций

Чтение | ################################################### | 100% 0,02 с

avrdude: Подпись устройства = 0x1e9441

avrdude: ПРИМЕЧАНИЕ. Программатор поддерживает стирание страниц для устройств Xmega.

Каждая страница будет стерта перед ее программированием, но стирание чипа не выполняется.

Чтобы отключить стирание страниц, укажите параметр -D; для стирания чипа используйте опцию -e.

avrdude: чтение входного файла «../../../xmega/xmegatest.hex»

avrdude: входной файл ../../../xmega/xmegatest.hex автоматически определяется как Intel Hex

avrdude: запись flash (440 байт):

Написание | ################################################### | 100% 0.29с

avrdude: 440 байт флэшки записано

avrdude: проверка флэш-памяти на соответствие ../../../xmega/xmegatest.hex:

avrdude: загрузить данные флэш-памяти из входного файла ../../../xmega/xmegatest.hex:

avrdude: входной файл ../../../xmega/xmegatest.hex автоматически определяется как Intel Hex

avrdude: входной файл ../../../xmega/xmegatest.hex содержит 440 байт

avrdude: чтение встроенной флэш-памяти:

Чтение | ################################################### | 100% 0.27с

avrdude: проверка…

avrdude: проверено 440 байт флэш-памяти

avrdude сделано. Спасибо.

И результат:

Канонический мигающий светодиод!

Что теперь?

Это работает для моего ATxmega16A4 + Linux, но было бы неплохо узнать, работает ли это также на любом другом оборудовании (особенно, что надежность соединения PDI зависит от прерываний V-USB).Итак… загрузите его, протестируйте (и, возможно, исправьте), и, если все пойдет хорошо, его, вероятно, можно будет включить в официальные выпуски USBASP и AVRDUDE.

Резюме

  • Добавьте простой интерфейс к USBASP и вы сможете программировать ATxmega
  • Если у вас уже есть USBASP, то интерфейс можно сделать за считанные минуты почти бесплатно (но если придется покупать USBASP, то это все равно самый дешевый способ запрограммировать ATxmega)
  • Обновленный USBASP по-прежнему может программировать старые AVR (без интерфейса)
  • Есть подвох: надо ставить новую прошивку в USBASP с помощью другого программатора

ATXMEGA128A1U-AU — Microchip — 8-битный микроконтроллер, низкое энергопотребление, высокая производительность, микроконтроллеры AVR семейства ATxmega ATXmega серии A

ATXMEGA128A1U-AU — это маломощный высокопроизводительный 8-битный/16-битный микроконтроллер AVR XMEGA в 100-контактном корпусе TQFP.Это устройство достигает пропускной способности, приближающейся к 1MIPS на МГц, за счет выполнения мощных инструкций за один такт. Это позволяет разработчику системы оптимизировать энергопотребление в зависимости от скорости обработки. Это устройство имеет четырехканальный контроллер прямого доступа к памяти, восьмиканальную систему событий и программируемый многоуровневый контроллер прерываний, 16-битный счетчик реального времени (RTC), восемь гибких 16-битных таймеров/счетчиков с каналами сравнения и ШИМ.

  • 128 КБ флэш-памяти
  • 2 КБ EEPROM и 8 КБ памяти SRAM
  • Максимальная рабочая частота 32 МГц
  • Напряжение питания от 1.от 6 В до 3,6 В
  • 78 линий ввода-вывода общего назначения
  • Восемь USART, один USB 2.0, четыре SPI, четыре интерфейса I2C и SMBus
  • Механизм шифрования AES и DES
  • Два 12-битных 16-канальных аналого-цифровых преобразователя и два 12-битных двухканальных цифро-аналоговых преобразователя
  • Поддержка библиотеки QTouch
  • Диапазон рабочих температур от -40°C до 85°C
  • Оригинальная упаковка поставщика: Лоток

Приложения

Дизайн и разработка встраиваемых систем, Осветительные приборы, замер, промышленный, Моторный привод и управление, Автоматизация и управление процессами, Коммуникации и сети, Бытовая электроника, Медицинский

Предупреждения

Рыночный спрос на этот продукт привел к увеличению сроков поставки.Сроки доставки могут меняться. Товар освобожден от скидок.

АТХМЕГА

ATXMEGA — отличный новый чип. У него много аппаратного обеспечения на борту и огромное количество аппаратных регистров.

Однако некоторые изменения в архитектуре нарушают совместимость с обычными процессорами AVR (ATMEGA/ATTINY).

 

Не пропустите раздел часто задаваемых вопросов — ATXMEGA ниже!

 

ATXMEGA предлагает огромное количество интерфейсов, таких как UART, I2C, SPI, счетчик/таймер, 12-битный аналоговый ввод/вывод, а также новые функции, такие как DMA (прямой доступ к памяти), система событий или аппаратное шифрование/дешифрование AES.

 

Дополнительную информацию об АНАЛОГО-ЦИФРОВОМ ПРЕОБРАЗОВАТЕЛЕ ATXMEGA (АЦП) см. здесь:

КОНФИГУРАЦИЯ АЦПХ

 

Все ATXMEGA имеют свои регистры по одному и тому же адресу. Некоторые микросхемы могут иметь не все регистры, потому что оборудование находится не внутри микросхемы, но все файлы DAT* похожи. И все оборудование имеет фиксированное смещение. Это позволяет использовать динамический код. Например, Bascom-AVR теперь может использовать переменную для UART, и код нужен только один раз, потому что все оборудование имеет фиксированное смещение.

 

* Файлы DAT являются регистровыми файлами. Файлы регистров хранятся в каталоге приложений BASCOM-AVR, и все они имеют расширение DAT. Файл регистров содержит информацию о микросхеме, такую ​​как внутренние регистры и адреса прерываний. Информация о регистровом файле берется из файлов определений ATMEL.

 

ATXMEGA работает с 3,3 В, поэтому, пожалуйста, не подключайте что-либо, выдающее 5 В, к контактам XMEGA. Используйте для этого Level Shifter.

Максимальное напряжение для разъема ATXMEGA Pin составляет 3,6 В.

При использовании внутреннего генератора с частотой 32 МГц требуется не менее 2,7 В постоянного тока. Внутренний генератор с частотой 32 МГц достаточно стабилен для многих приложений. Максимальная тактовая частота процессора составляет 12 МГц при использовании XMEGA всего с 1,6 В постоянного тока.

 

Прочтите указания по применению AVR1012: XMEGA Контрольный список схем для особых соображений при проектировании вашего оборудования.

 

 

Вы можете найти образцы Bascom для ATXMEGA в папке Bascom-AVR:

Общие образцы …….. BASCOM-AVR\ОБРАЗЦЫ\ЧИПЫ

 

 

1. One Family Manual, как, например, для ATXMEGA128A1, это Atmel AVR XMEGA A Manual
2. Другое руководство для одиночных чипов, например, для ATXMEGA1. 128A1/192A1/256A1/384A1 Руководство.В этом руководстве вы найдете, например, функции альтернативных выводов. Таким образом, вы можете найти, какой вывод на порту C является выводом SDA и SCL, когда вы хотите использовать интерфейс I2C/TWI этого порта.

 

Помимо руководств по микросхемам ATXMEGA, на веб-сайте ATMEL доступно множество примечаний по применению, которые объясняют, например, систему событий ATXMEGA или прямой доступ к памяти (DMA) и т. д.

 

 

1. Последняя ПОЛНАЯ версия Bascom-AVR (демонстрационная версия Bascom-AVR не поддерживает ATXMEGA).
2. Оценочная плата, такая как оценочный комплект Atmel AVR XMEGA® Xplained или любая другая оценочная плата ATXMEGA с разъемом PDI (программный и отладочный интерфейс).
3. Программатор, такой как AVRISP MKII или любой другой программатор PDI или JTAG, поддерживающий ATXMEGA.
4. Последняя версия AVR-Studio 4.X или 5.X только для установки фьюз-битов и прошивки загрузчика в ATXMEGA.
5. Программирование ATXMEGA может быть выполнено непосредственно из BASCOM-IDE. См. также LIBUSB для получения дополнительной информации.

 

 

1. Регистровый файл для микросхемы, инициализации кристалла и стеков

 

$regfile = «xm128a1def.dat»
$crystal = 32000000                     ’32MHz
$hwstack = 64
$swstack = 40
$framesize = 64

 

2. Включите и настройте генератор по вашему выбору:

 

Config Osc = Enabled , 32mhzosc = Enabled         ‘включение внутренних генераторов 2 МГц и 32 МГц

 

3. Выберите источник генератора для системных часов и прескалера (это должно совпадать с $crystal = XXXXXX). Далее настройте внутренний генератор 32 МГц в качестве системных часов без предварительного делителя, чтобы системные часы были 32 МГц, что соответствует $crystal = 32000000

 

.

Системные часы конфигурации = 32 МГц, Prescalea = 1, Prescaleabc = 1_1 

 

4. Если вы намерены использовать прерывания, вам необходимо настроить их перед использованием команды Enable Interrupt. Bascom-AVR автоматически активирует прерывание среднего уровня, если в коде есть Разрешить прерывание, но не прерывания низкого и высокого уровня.

 

Приоритет конфигурации = статический, вектор = приложение, Lo = включено, Med = включено, Hi = включено

 

5. Также, если вы хотите использовать EEPROM, вам необходимо настроить его перед использованием:

 

Config Eeprom = Mapped             ‘Настройка режима памяти для EEPROM в XMEGA

 

 

6. После этого вы можете добавить Enable Interrupts и свой код в основной цикл.

 

Do
‘Введите код
Цикл

 

 

End                                           ‘конец программы      

 

 

$ Regfile = «xm64a3def.dat»
$ Crystal = 32000000
$ HWStack = 40
$ SWSTACK = 16
$ Framesize = 32

Config osc = Enabled, 32MHzOcc = Enabled
Config SYSCLOCK = 32 МГц, Prescalea = 1, PrescaleBC = 1_1
Config Portb = Output
 
Do
toggle Portb.0
Waitms 1000
цикл
 
end ‘конец программы

 

 

В: Как установить источник тактовой частоты и тактовую частоту с помощью ATXMEGA?

A: См. КОНФИГУРАЦИЯ OSC и КОНФИГУРАЦИЯ СИСТЕМНОЙ БЛОКИРОВКИ

.

 

В: Нужно ли мне устанавливать предохранители XMEGA, чтобы начать работу?

A: Нет, для начала не нужно устанавливать фьюзы, потому что в отличие от megaAVR или ATTINY, где фьюзы используются для установки источника тактового сигнала и частоты, вы можете установить источник тактового сигнала и частоту в программе Bascom-AVR.

Вам также не нужен внешний источник синхронизации. Вы можете использовать внутренний 32MHz или 2MHz RC-генератор в качестве источника тактового сигнала.

 

В: Какой уровень прерывания (Низкий, Средний, Высокий) используется, если я не указываю приоритет?

A: MED используется, когда не указан приоритет.

 

В: Поддерживается ли AVR-DOS для XMEGA?

A: Да, см. Файловая система AVR-DOS

 

В: Что еще поддерживается (Статус: Bascom-AVR 2.0.7.6) где пользователи форума Bascom-AVR просили ?

A: Следующий список:

— 1-WIRE, EEPROM, XRAM, система событий, сервоприводы конфигурации, драйвер AVR-DOS SDHC, DCF77, RTC32,

— Поддержка ввода/вывода Xmega с большой памятью, имитация ЖК-дисплея xmega, dmxslave, RS-485, импульсный вход, импульсный выход, DMA

— Симулятор Bascom, система событий, getrc5, CONFIG POWER_REDUCTION, буферизованный последовательный вывод (com1-com4)

— виртуальная конфигурация карты портов, конфигурация tcXX для таймеров xmega, компаратор xmega, $forcesofti2c заставит xmega использовать программное обеспечение i2c

— Шифрование/дешифрование AES, xmega TWI, SPI, UART

 

Q: Где я могу узнать, какой вывод ATXMEGA является SDA и SCL?

A:  От ATMEL

доступны 2 руководства.

1.Одно семейное руководство, например, для ATXMEGA128A1, это Atmel AVR XMEGA A Manual

.

2. Другое руководство для отдельных микросхем, например, для ATXMEGA128A1, это

.

ATxmega64A1/128A1/192A1/256A1/384A1 Руководство. В этом Руководстве вы найдете, например,

Альтернативные функции контактов. Таким образом, вы можете найти, какой вывод на порту C является выводом SDA и SCL, когда вы хотите

.

используйте интерфейс I2C/TWI этого порта.

 

В: Как запрограммировать/прошить ATXMEGA?

A: Программная поддержка провайдера отсутствует.Поддерживаются только JTAG и PDI. Конечно, загрузчик MCS можно использовать, но сначала вам необходимо запрограммировать чип, например, с помощью программатора AVRISP MKII. После этого программирования

  ATXMEGA можно сделать напрямую из BASCOM-IDE

.

 Важно также то, что программатору AVRISP MKII требуется напряжение питания 3,3 В от Цели.

 

Q: Есть ли специальный исходный код загрузчика, который я могу использовать для ATXMEGA?

A: Пример загрузчика находится в следующей папке Bascom-AVR (C:\……\BASCOM-AVR\ОБРАЗЦЫ\ЗАГРУЗКА)

, например ATXMEGA32A4 или ATXEMGA128A1. Для других чипов ATXMEGA исходный код можно легко адаптировать.

 

В: Что такое интерфейс программирования и отладки (PDI)?

A: Программный и отладочный интерфейс (PDI) — это собственный интерфейс Atmel для внешнего и встроенного программирования    

   отладка устройства.

 

Q: Как читать/писать из/в регистр ATXMEGA?

A: Если вы хотите или вам нужно писать или читать регистры ATXMEGA напрямую, вам просто нужно найти имя, используя  

  Файл ATXMEGA DAT.

   Например, если вы хотите прочитать версию ATXMEGA, в файле DAT есть регистр Mcu_revid.

 Файлы DAT можно найти в папке BASCOM-AVR.

   Позаботьтесь о защищенных регистрах. Прежде чем вы сможете писать в эти регистры, вам нужно освободить их. Примером этого       является сброс программного обеспечения.

 

Q: Как инициировать программный сброс ATXMEGA?

A: Прежде чем вы сможете записать бит программного сброса, вам необходимо снять защиту от записи для этого бита и зарегистрироваться.

 ‘разрешить изменение защищенных регистров для следующих 4 циклов инструкций ЦП

 

Q: Как внешние прерывания (прерывания порта) используются с ATXMEGA?

A: Каждый порт XMEGA (например, PortA или PortF) с выводами от Pin0….Pin7 имеет 2 прерывания (INT0 и INT1). Таким образом, для каждого порта доступны INT0 и INT1.

Прерывания порта должны быть разрешены, прежде чем их можно будет использовать, например, Int1 на PortA = PORTA_INT1

 

Действия по использованию PortE.0 в качестве прерывания порта, где используется INT0:

 

1. включить прерывание INT0 на порту E

 

On Porte_int0 Port_e_int0__isr
Включить Porte_int0 , Lo                                 ‘Включить это прерывание как прерывание низкого уровня
Включить прерывания

 

 

2.Config Porte.0 как вход:

 

Config Pine.0 = Input                                       ‘Установить PINE.0 в качестве входа

 

3. Настройте реакцию:

 

Config Xpin = Porte.0 , Outpull = Pullup , Sense = Falling ‘включить Pull up и реакцию на спадающий фронт  

 

4. Установите маску прерывания (какой контакт будет активирован для генерации INT0 в этом случае):

Porte_int0mask = &B0000_0001                               ‘включить PIN0 в маску INT0            

 

1 = контакт активирован для прерывания

0 = вывод деактивирован для прерывания

 

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

 

5. Процедура обслуживания прерывания:

 

‘Подпрограмма обслуживания прерывания порта E INT0
Port_e_int0__isr:

 
‘сделайте что-нибудь….

 
Возврат

 

 

Дополнительная информация для прерываний порта:

Для асинхронного считывания только контакт 2 порта на каждом порту имеет полную поддержку асинхронного считывания. Это означает, что для ребра

Обнаружение

, контакт 2 обнаружит и зафиксирует любой фронт, и он всегда будет запускать запрос на прерывание.Другие контакты порта имеют

Ограниченная поддержка асинхронного считывания

[ATXMEGA A Manual].

 

 

См. также ниже пример прерывания порта (внешнее прерывание)

 

В: Для чего мне нужны Fuse Bits (предохранители) с ATXMEGA?

 

Q: Как записать в 16-битный (Word) регистр ATXMEGA?

A: Вам не нужен 16-битный (Word) регистр, потому что компилятор сделает это за вас автоматически.

   Для этого вы можете найти раздел [WIO] (Word IO) в файле DAT. Вы можете напрямую записывать в 16-битный регистр только через        определенный регистр в разделе [WIO] файла DAT

.

   Если есть необходимость вручную записывать/читать в/из 16-битного регистра, вам всегда нужно записывать/считывать младший байт (LSB)

   и затем старший байт (MSB).

 

В: Существует ли также линейная архитектура памяти, как у ATMEGA или ATTINY AVR?

A: Сила AVR в линейной архитектуре памяти.В ATXMEGA это было изменено: регистры помещены в отдельное адресное пространство. Это приводит к сбою кода, подобного этому:

 

   Clr r31

Ldi r30,10 ; указать для регистрации R10

   Ld r24,z+   ; значение нагрузки от R10 и вкл. указатель

 

   Код типа LDS r16, 0  не будет загружать содержимое регистра R0 с Xmega

.

   Если ваш код ASM содержит такой код, вам необходимо его переписать.

 

В: Поддерживает ли демо-версия Bascom-AVR ATXMEGA?

A: ATXMEGA недоступна в PDIP.Это означает, что ATXMEGA не совсем подходит для любительских проектов.

  В результате ДЕМО-версия не поддерживает ATXMEGA.

 

 

В: Для чего нужны регистры виртуальных портов?

A: «Регистры виртуальных портов позволяют отображать регистры портов в расширенном пространстве памяти ввода-вывода виртуально

   в области памяти ввода-вывода. При сопоставлении порта запись в регистр виртуального порта будет

.

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

.

   для битовых манипуляций и специальных инструкций памяти ввода-вывода IN и OUT в регистре порта, которые

   обычно находится в расширенном пространстве памяти ввода-вывода. Есть четыре виртуальных порта, так что до четырех

   порты могут быть сопоставлены практически одновременно. Сопоставляемые регистры: IN, OUT, DIR и

.

  INTFLAGS. [из руководства ATXMEGA A]

 

Q: На каком порту ATXMEGA я могу найти COM1…..COM8 ?

А: См. таблицу ниже:

 

    COM1 —> Usartc0
COM2 —> Usartc1
COM3 —> Usartd0
COM4 —> Usartd1
COM5 —> Usarte0
COM6 —> Usarte1
COM7 —> Usartf0
COM8 —> Usartf1

 

Q: Поддерживается ли Serialin и Serialout для интерфейсов UART выше COM4

A: Да, начиная с версии 2077, все 8 UART поддерживают буферизованный последовательный ввод и вывод.

 

 Для ATXMEGA первые 4 UART могут использовать, например, серийный номер:

.

 SERIALIN   : первый UART/UART0        —> COM1
SERIALIN1 : второй UART/UART1 —> COM2
SERIALIN2 : третий UART/UART2        —> COM3
SERIALIN3 : четвертый UART/UART3        —> COM4
SERIALIN4 : четвертый UART/UART4        —> COM5
SERIALIN5 : четвертый UART/UART5        —> COM6
SERIALIN6 : четвертый UART/UART6        —> COM7
SERIALIN7 : четвертый UART/UART7        —> COM8

 

 

 Например, с ATXMEGA128A1 вы получаете 8 UART:

 Каждый из 8 USART имеет, например, прерывание приема, которое можно использовать для анализа входящих данных:

 

    ATXMEGA128A1 Прерывания приема:
COM1 —> Usartc0_rxc
COM2 —> Usartc1_rxc
COM3 —> Usartd0_rxc
COM4 —> Usartd1_rxc
COM5 —> Usarte0_rxc
COM6 —> Usarte1_rxc
COM7 —> Usartf0_rxc
COM8 —> Usartf1_rxc

 

   В процедуре обработки прерывания необходимо использовать функцию inkey(#X), поскольку inkey(#X) считывает регистр данных, а

   поэтому сбрасывает флаг прерывания.Без чтения регистра данных или сброса флага прерывания вручную

   прерывание будет срабатывать снова и снова.

 

   Пример процедуры прерывания:

 

  Rxc_isr:
     Rs232 = Inkey(#1)
    ‘сделать что-нибудь с данными
 Вернуть

 

 

В: Как узнать причину сброса ATXMEGA (например, включение питания, сторожевой таймер или пауза программного обеспечения)

A: Для этого RST_STATUS существует специальный регистр, который вы можете прочитать и проанализировать.

  Вы также можете прочитать регистр R0 с помощью функции GetReg(R0): myvar=GetReg(r0). Вам нужно сделать это в самом начале вашего кода.

 

 

В: Как автоматически откалибровать внутренние генераторы 2 МГц и 32 МГц во время работы?

A: Автоматическая калибровка внутренних генераторов во время работы активируется путем включения DFLL (цифровых контуров автоподстройки частоты) и автокалибровки.

 

  ‘Внутренний генератор 32,768 кГц используется для калибровки

Osc_dfllctrl = &B00000000

‘Включить DFLL и автокалибровку                                  
Установить Dfllrc32m_ctrl.0                                      

 

   Дополнительная подсказка от ATMEL для некоторых ревизий чипов:

«….Для работы одного из них должны быть включены оба DFLL и оба генератора

Чтобы использовать автоматическую калибровку во время работы для внутренних генераторов 2 МГц или 32 МГц,

DFLL для обоих генераторов и оба генератора должны быть включены для работы одного из них.

Решение проблемы/Временное решение

Включены как DFLL, так и генераторы при использовании автоматической калибровки во время выполнения для одного из

.

внутренних генератора…..»

 

 

В: Сколько циклов записи/стирания флэш-памяти и EEPROM можно выполнить с помощью ATXMEGA?

A: Один цикл записи состоит из стирания сектора с последующим программированием того же сектора. Вы можете найти максимальные номера для ATXMEGA128A1 здесь:

 

XMEGA Flash и EEPROM Циклы записи/стирания:

 

Для устройств ATxmega128A1

 

Флэш:

25°C — 10 тыс. циклов записи/стирания

85°C — 10K циклов записи/стирания

 

ЭСППЗУ:

25°C 80K- Циклы записи/стирания

85°C 30K- Циклы записи/стирания

 

 

 

 

‘———————————————— ————————————————— ———————
‘  Настройка внешних прерываний с помощью XMEGA
‘  Проверено успешно с BASCOM 2.0.7.5 и плату XMEGA128A3 от Chip45
‘   14 августа 2012 г.
‘——————————— ————————————————— ————————————-
‘________________________________________________________________________________
$regfile = «xm128a3def.dat»
$ hwstack = 256
$ SwStack = 128
$ Frangize = 128
‘_________________________________________________________________________________________________________________________________________________________
‘ для 16 МГц Кристалл
$ Crystal = 32000000
Config osc = Отключено, Extcc = Enabled, Диапазон = 12MHZ_16MHZ, Startup = XTal_1kClk, 32ххzosc = Включено
‘ Установите условия OSC PLL:
Osc_pllctrl = &B1100_0010                                 ‘ опорный внешний генератор, установите коэффициент умножения PLL на 2 (биты 0–4)
Set Osc_ctrl.4 ‘Enable PLL осциллятор
Bitwait Osc_status.4, Set’ Ожидание до ФАПЧ опорного тактового сигнала источника является стабильным
Clk_ctrl = & B0000_0100 ‘Система переключатель часов, чтобы ФАПЧ
Config Sysclock = ФАПЧ, Prescalea = 1, Prescalebc = 1_1
‘________________________________________________________________________________
‘ Настройка:
Led1 Alias ​​Portd.0 : Config Portd.0 = Output: Led1 = 1
 
‘Каждый порт XMEGA имеет два вектора прерывания: INT0 и INT1.
‘ Например, XMEGA A3 имеет 7 портов: A, B, C, D, E, F, каждый с 8 контактами в диапазоне от 0 до 7, и порт R, всего с двумя контактами, обычно используемый внешним XTAL.
‘Поэтому до 12 контактов могут использоваться в качестве внешних прерываний с XMEGA A3 (или до 14, если внешний XTAL не используется и PORTR.0 и PORTR.1 свободны)
‘Для каждого порта можно использовать любые два контакта. быть определен как внешний источник прерывания следующим образом:
‘       В следующем примере следующие порты настраиваются как внешние источники прерывания:
‘           PORTB.0  используя вектор прерывания INT0 из PORTB
          PORTB.3  используя вектор прерывания INT1 из PORTB
             (выводы порта B не могут быть определены как внешние источники прерываний)
           Установите этикетки обслуживания прерываний для используемых векторов прерываний и
«Включить прерывания прерываний
».
На PORTB_INT0 B0_B0_ISR: Enable PORTB_INT0, HI
на PORTB_INT1 B1_B3_ISR: включить PORTB_INT1, LO
на Porta_int0 a0_a3_isr: включить porta_int0, lo
‘ Я выбираю имена меток, чтобы указать используемый вектор прерывания и вывод, который будет назначен
‘        следующим.Например, B1_b3_isr: использует вектор INT 1 порта B, назначенный контакту b3
 
‘ 2) Конфигурация контактов в качестве входных данных и определение того, что должно вызывать прерывание: низкий уровень, высокий уровень или переходы: повышение, понижение или и то, и другое
        Config Portb. 0 = Вход: Config Xpin = Porta.0, Sense = Rising
        Config Portb.3 = Input: Config Xpin = Portb.3, Sense = Falling
        Config Porta.3 = Вход: Config Xpin = Porta.3, Sense = Оба
‘       К этим контактам подключены три переключателя, PORTB.0. a3 to Porta_int0
 
‘     Обратите внимание, что одному и тому же вектору может быть назначено несколько выводов. Например, у нас может быть
     написано:
     PROTB_INT0MASK = &B0000_1001                        ‘ Назначить выводы b0 и b3 порту b_int0 ISR может
‘    различить, какой вывод вызвал прерывание, и выполнить другой код.Это способ
‘     иметь более двух внешних источников прерываний на порт). Другой способ — назначить другие контакты
‘     каналам событий.
 
‘ 4) Напишите подпрограммы обслуживания прерываний (найдите после цикла do, где они  не будут
‘      выполняться, за исключением тех случаев, когда они вызываются)
‘          B0_b0_isr:
‘            ‘ Делайте что угодно на каждом переднем фронте контакта b0 Return ‘


‘ B1_B3_ISR:
» Делайте все, что на каждом падающем краю PIN-края B3
‘Возврат

‘a0_a3_isr:
‘ ‘Делайте что угодно на каждом восходящем и падающих краях PIN-кода A3
‘ return

‘5) Дон не забудьте включить прерывания и настроить приоритеты
      Enable Interrupts
      Config Priority = Static, Vector = Application, Lo = Enabled, Med = Enabled, Hi = Enabled
_________________________________________________________________________________
 
B0_b0_i sr:                                               ‘ Коммутатор, подключенный к PORTB.0 Будет включить светодиод каждый раз PORTA.3 будет переключать светодиод каждый раз, когда он переходит в состояние LO или HI
  Переключение светодиода 1
Возврат

Портативные программаторы

AVR и ATxmega.Заменено версией 3


Kanda представила новые портативные программаторы AVR версии 3, которые заменяют существующие стандартные версии AVR и ATxmega (X). Версия 1 (HH0120) все еще доступна, но версия 2 (X) больше не выпускается.

Портативный программатор AVR USB Starter Kit

Стартовый комплект USB для ручного программатора AVR 256K
Ручной программатор AVR с 256 КБ памяти, USB-интерфейсом для ПК и программным обеспечением.Загрузите программатор с ПК, и он полностью портативный, одним нажатием кнопки…

Код заказа
HH0110

Цена: $195,00

Портативный USB-программатор AVR

Ручной программатор 256K для AVR
Теперь с поддержкой JTAG
Автономный программатор для простого программирования микроконтроллеров AVR в полевых условиях и на производстве, не рекомендуется для новых пользователей…

Код заказа
HH0120

Цена: $185,00

8-канальный портативный комплект USB AVR

Стартовый комплект USB для 8-канального ручного программатора AVR
Теперь поддерживает программирование JTAG, а также обычное программирование ISP.

8-позиционный портативный программатор AVR с 2 МБ памяти, а также USB-интерфейсом для ПК и программным обеспечением. Не для новых пользователей…

Код заказа
HH0810

Цена: $209.00

8-канальный USB-программатор AVR

8-позиционный ручной программатор AVR для AVR ISP
При программировании TPI и JTAG, а также обычном последовательном программировании требуется дополнительный адаптер.
Для новых пользователей предлагается версия 3…

Код заказа
HH0820

Цена: $199,00

Портативный программатор AVR

Автономный портативный программатор AVR
Портативный программатор AVR с 31 слотом для разных целей.Легко загружается с ПК, питается от батареи и прост в использовании…

Код заказа
PP0110

Цена: 299,00 $

Портативный программатор AVR XMEGA

Портативный программатор AVR и ATxmega
Новая версия поддерживает программирование AVR ISP, UPDI, TPI и JTAG, а также программирование ATXMEGA PDI и JTAG. Заменено новой версией 3…

Код заказа
HH0120X

Цена: $169.00

Комплект ручного программатора AVR-XMEGA

Стартовый комплект для ручного программатора AVR и XMEGA
Включает USB-загрузчик и портативный программатор ATxmega и AVR с UPDI. Заменено новой версией 3…

Код заказа
HH0110X

Цена: $189,00

8-полосный портативный программатор AVR XMEGA

8-позиционный портативный программатор AVR и XMEGA
Новая версия 8-полосного ручного программатора Kanda AVR с увеличенным объемом памяти.

0 comments on “Atxmega: Мистер «Х» или ATXmega (на примере ATXmega32A4) быстрый старт. / AVR / Сообщество EasyElectronics.ru

Добавить комментарий

Ваш адрес email не будет опубликован.