Рубрика «atmel arm»

Интересные семейства микроконтроллеров Cortex от Atmel - 1

Общаясь с разработчиками различной электроники (как любителями, так и профессионалами), я и мои коллеги обратили внимание, что широкой публике практически неизвестны микроконтроллеры Atmel на платформе Cortex-M. Я решил подготовить обзор по новым семействам микроконтроллеров, чтобы показать: не AVRом единым интересен Atmel.

Немного истории

Эпоха ARM Cortex-M началась с платформы Cortex-M3. Несмотря на то, что Atmel стал одним из первых производителей микроконтроллеров на платформе ARM7TDMI, компания не проявила интереса к новой платформе, сфокусировавшись на развитии собственных платформ. В результате этого, первыми серийными контроллерами нового типа стали микроконтроллеры STM32 от компании ST.

Вторым обстоятельством послужило то, что выпуск первых микроконтроллеров на платформе Cortex-M у Atmel пришелся не на лучшие времена. Следствием этого стали существенно более высокие цены на Atmel’овские контроллеры в сравнении с ST.
Оба этих обстоятельства закрепили приоритет за микроконтроллерами STM32. Причем это лидерство год за годом закреплялось все сильнее, поскольку в Сети стало появляться все больше и больше материалов по разработке на STM32. А к аналогам от Atmel на нашем рынке стал применяться один из двух стереотипов:
1. Atmel = AVR
2. Cortex’ы от Atmel дорогие и не интересны для использования.

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

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

Читать полностью »

Использование ASF и Atmel Start в IAR - 1

ASF и IAR

Библиотека для продуктов Atmel ASF имеет две версии: встроенную в Atmel Studio и так называемую stand-alone. Stand-alone версия может использоваться, например, в IAR. Так как сам по себе IAR несколько аскетичен с точки зрения различных фишек типа автозаполнения, то использование ASF как внешней библиотекой, не так интерактивно и удобно, как в Atmel Studio, но тем не менее, можно один раз все настроить и использовать новинку Atmel Start — WEB конфигуратор кода для удобства и ускорения разработки.
Читать полностью »

В одной из прошлых статей мы писали про USB bootloader на микроконтроллере SAM D21 с ядром Cortex M0+. Использование флешки для обновления прошивки очень удобно, но подходит не для всех случаев. Например, если доступ к устройству ограничен или проблематичен, а связь с ним устанавливается удаленно. В подобных случаях, к разработке бутлоадера следует отнестись с особой тщательностью. Иначе, в случае ошибки высока вероятность получить «кирпич» и огромное число проблем себе на голову. Примером такого труднодоступного устройства может быть управляющая плата «умного» архитектурного светильника, висящего на фасаде здания на 7-м этаже.
Удаленное обновление прошивки микроконтроллера - 1Читать полностью »

1-Wire slave на МК. Часть 2: Реализация в коде - 1
Первая статья цикла: 1-Wire slave на МК. Часть 1: Железо

Что есть в инетрнете по 1-Wire slave

В интернете про реализацию 1-Wire мастера можно найти множество информации, статей, application notes для микроконтроллеров на любой вкус и цвет.
А вот для реализации со стороны Slave материалов немного. Исходных кодов и того меньше. В итоге был найден один исходник для PIC, с ассемблерными вставками и ошибками. Недавно появилась статья на хабре для MSP430 от resetnow. Под катом наш вариант реализации задачи.Читать полностью »

Немного теории

Тактирование микроконтроллеров Atmel SAMD20-21 - 1
Согласно документации на микроконтроллеры Atmel серии SAMD20/21 система тактирования состоит из следующих блоков:

  • блок источников сигнала (управляется SYSCTRL)
    • Clock source – это базовая частота в системе. Это может быть, например, внутренний осциллятор 8 МГц (OSC8M), внешний осциллятор (XOSC), блок цифровой фазовой автоподстройки частоты (DFLL48M);
  • базовый контроллер тактовой частоты (GLCK-generic clock controller), который управляет системой распределения тактовых сигналов и состоит из:
    • базовых генераторов частоты (Generic Clock Generator) — это программируемый предделитель, к которому может быть подключен любой источник сигнала. С выхода генератора 0 (GCLKGEN[0], GCLK_MAIN) сигнал идет на блок управления питанием (Power manager), который генерирует главный тактовый сигнал;
    • базовые тактовые сигналы (Generic Clocks) – обычно это сигналы, которые тактируют периферию. Базовые тактовые сигналы, с помощью базовых мультиплексоров сигнала могут использовать любой из доступных в системе тактовых сигналов. Разные периферийные блоки могут использовать разные тактовые сигналы. Выход мультиплексора 0 используется как источник опорного сигнала для блока цифровой фазовой автоподстройки частоты. Обратите внимание, что в таком случае выход с DFLL не должен использоваться как опорный сигнал для генератора, выход которого используется как опорный для мультиплексора 0.
  • блок управления питанием (PM – Power manager)
    • блок управления питанием управляет синхронным тактированием системы. Это включает в себя CPU, шины (APB, AHB) и синхронную (с точки зрения CPU) периферию. Он содержит маски тактирования, с помощью которых можно включать и выключать пользовательский интерфейс периферии, а также делители для тактовых сигналов CPU, шин.

Читать полностью »

1-Wire slave на МК. Часть 1: Железо - 1
Для одного из проектов по автоматизации потребовалось сделать устройство, которое является подчинённым 1-Wire устройством, принимает команды от мастера и выставляет на своих выходах значение аналогового сигнала в диапазоне от 0 до 10В.
Проанализировав линейку стандартных микросхем 1-Wire от Maxim, стало ясно, что нет микросхемы, которая позволит реализовать подобный функционал.
Потому было принято решение реализовывать 1-Wire slave на микроконтроллере. Надеюсь, данный материал будет интересен и полезен людям, которые делают «умный дом» своими руками, т.к. 1-Wire достаточно популярная шина в подобных проектах. В качестве камня был выбран МК Cortex M0+ ATSAMD20G16 от Atmel, но о реализации в коде расскажем во второй части. Забегая немного вперед, скажу что в третьей части цикла пойдет речь о реализации собственного семейства устройств для линуксовой библиотеки OWFS (One Wire File System). А сегодня расскажем о некоторых аппаратных решениях, к которым мы пришли в процессе разработки.
Читать полностью »

Немного теории

Atmel® Software Framework (ASF) — программная библиотека для микроконтроллеров, которая содержит широкий набор встраиваемого кода для микроконтроллеров Atmel из всех семейств: megaAVR, AVR XMEGA, AVR UC3 и SAM.
Основные преимущества:

  • упрощается использование и освоение микроконтроллеров, так как библиотека написана на высоком и среднем уровнях абстракции;
  • ASF разработана для использования на любой стадии проектирования;
  • ASF интегрирована в Atmel Studio (которая пришла на смену AVR Studio и поддерживает все семейства мк Atmel) с графическим пользовательским интерфейсом, но также может использоваться с компиляторами IAR и GCC;
  • ASF бесплатна.

Atmel Software Framework (ASF): как это работает? - 1
Читать полностью »

Возможность обновления прошивки на серийно выпускаемых изделиях, или на единичных изделиях, находящихся в эксплуатации у заказчика трудно переоценить. Это не просто даёт возможность последующего устранения багов и расширения функционала, но и позволяет разработчику с более лёгким сердцем выпускать «еще сыроватый» продукт на рынок, если руководство того требует.
USB bootloader на микроконтроллере: обновление прошивки с флешки - 1
Поэтому важность наличия bootloader'а во вновь разрабатываемых устройствах в большинстве случаев не вызывает сомнений. В данной статье пойдет речь о разработке bootloader'а по интерфейсу USB на микроконтроллере Atmel SAM D21 с ядром Cortex M0+. А конкретно на SAMD21J18A. У микроконтроллеров SAM D20/21 нет предзаписанного бутлоадера, поэтому придётся заниматься его программной реализацией. На сайте Atmel можно найти Application notes, как сделать его с использованием стандартных интерфейсов (UART, I2C, SPI, USB). Под катом описание процесса создания USB-бутлоадера.
Читать полностью »