Как выбрать микроконтроллер для проекта
Перейти к содержимому

Как выбрать микроконтроллер для проекта

  • автор:

Как выбрать правильный микроконтроллер для встраиваемого приложения

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

Выбор подходящего микроконтроллера для проекта — всегда сложное решение, потому что это сердце проекта, и от него зависит успех или неудача системы.

Существует тысячи различных типов микроконтроллеров, каждый из которых обладает уникальными характеристиками или конкурентными преимуществами — от форм-фактора до размера корпуса и емкости RAM и ROM, что делает их пригодными для определенных приложений и непригодными для определенных приложений. Таким образом, часто, чтобы избежать головной боли, связанной с выбором правильного, дизайнеры выбирают микроконтроллеры, которые им знакомы, которые иногда даже не совсем удовлетворяют требованиям проекта. В сегодняшней статье мы рассмотрим некоторые важные факторы, которые следует учитывать при выборе микроконтроллера, включая, среди прочего, архитектуру, память, интерфейсы и объем ввода-вывода.

Важные факторы, которые следует учитывать при выборе MCU

Ниже приведены некоторые из важных факторов, на которые следует обратить внимание при выборе микроконтроллера, включая, среди прочего, архитектуру, память, интерфейсы и объем ввода-вывода.

1. Применение

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

2. Выберите архитектуру микроконтроллера.

Архитектура микроконтроллера относится к внутренней структуре микроконтроллера. Для разработки микроконтроллеров используются две основные архитектуры;

  1. Архитектура фон Неймана
  2. Гарвардская Архитектура

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

Каждая из этих архитектур имеет свои преимущества и недостатки. Гарвардская архитектура, например, представляет собой компьютеры RISC (сокращенный набор инструкций) и, таким образом, может выполнять больше инструкций с меньшими циклами, чем компьютеры CISC (комплексный набор инструкций), основанные на архитектуре фон Неймана. Одним из важных преимуществ микроконтроллеров на основе Гарварда (RISC) является тот факт, что наличие разных шин для данных и набора команд позволяет разделить доступ к памяти и операции арифметического и логического блока (ALU). Это уменьшает количество вычислительной мощности, требуемой микроконтроллером, и приводит к снижению затрат, низкому энергопотреблению и тепловыделению, что делает их идеальными для разработки устройств с батарейным питанием. Многие ARM,Микроконтроллеры AVR и PIC основаны на архитектуре Гарварда. Примеры микроконтроллеров, использующих архитектуру фон Неймана, включают 8051, zilog Z80 и другие.

3. Размер бит

Микроконтроллер может быть 8-битным, 16-битным, 32-битным и 64-битным, что является текущим максимальным размером бит, которым обладает микроконтроллер. Разрядность микроконтроллера представляет собой размер «слова», используемого в наборе команд микроконтроллера. Это означает, что в 8-битном микроконтроллере представление каждой инструкции, адреса, переменной или регистра занимает 8-битное. Одно из ключевых значений размера битов — это объем памяти микроконтроллера. Например, в 8-битном микроконтроллере имеется 255 уникальных ячеек памяти в зависимости от размера бит, в то время как в 32-битном микроконтроллере имеется 4294967295 уникальных ячеек памяти, что означает, что чем выше размер бит, тем больше количество уникальных ячеек. ячейки памяти, доступные для использования на микроконтроллере. Однако в наши дни производителиразрабатывают способы предоставления доступа к большему количеству ячеек памяти микроконтроллерам меньшего размера посредством пейджинга и адресации, так что 8-битный микроконтроллер становится 16-битным адресуемым, но это имеет тенденцию усложнять программирование для разработчика встроенного программного обеспечения.

Влияние размера битов, вероятно, более заметно при разработке прошивки для микроконтроллера, особенно для арифметических операций. Различные типы данных имеют разный размер памяти для разного размера микроконтроллера. Например, использование переменной, объявленной как целое число без знака, которое из-за типа данных потребует 16 бит памяти в кодах, которые должны выполняться на 8-битном микроконтроллере, приведет к потере самого значимого байта в данных, который иногда может быть очень важно для достижения задачи, для которой было разработано устройство, на котором будет использоваться микроконтроллер.

Таким образом, важно выбрать микроконтроллер с размером бит, который соответствует размеру обрабатываемых данных.

Вероятно, важно отметить, что большинство приложений в наши дни относятся к 32- и 16-битным микроконтроллерам из-за технологических достижений, встроенных в эти чипы.

4. Интерфейсы для связи

Связь между микроконтроллером и некоторыми датчиками и исполнительными механизмами, которые будут использоваться в проекте, может потребовать использования интерфейса между микроконтроллером и датчиком или исполнительным механизмом для облегчения связи. Например, для подключения аналогового датчика к микроконтроллеру потребуется, чтобы микроконтроллер имел достаточное количество АЦП (аналого-цифровых преобразователей) или, как я упоминал ранее, изменение скорости двигателя постоянного тока может потребовать использования интерфейса PWM на микроконтроллере. Поэтому важно подтвердить, что выбранный микроконтроллер имеет достаточно необходимых интерфейсов, включая UART, SPI, I2C и другие.

5. Рабочее напряжение

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

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

6. Количество контактов ввода / вывода

Количество портов ввода / вывода общего или специального назначения и (или) контактов, которыми обладает микроконтроллер, является одним из наиболее важных факторов, влияющих на выбор микроконтроллера.

Если микроконтроллер должен иметь все другие функции, упомянутые в этой статье, но не имеет достаточного количества контактов ввода-вывода, как того требует проект, его нельзя использовать. Важно, чтобы микроконтроллер имел достаточно выводов ШИМ, например, для управления количеством двигателей постоянного тока, скорость которых будет изменяться устройством. Хотя количество портов ввода-вывода на микроконтроллере можно расширить за счет использования регистров сдвига, он не может использоваться для всех типов приложений и увеличивает стоимость устройств, в которых он используется. Поэтому лучше убедиться, что микроконтроллер, который будет выбран для проекта, имеет необходимое количество портов ввода / вывода общего и специального назначения для проекта.

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

7. Требования к памяти

С микроконтроллером связано несколько типов памяти, на которые разработчик должен обратить внимание при выборе. Наиболее важными из них являются RAM, ROM и EEPROM. Количество необходимой памяти может быть трудно оценить до тех пор, пока она не будет использована, но, судя по объему работы, требуемой от микроконтроллера, прогнозы могут быть сделаны. Эти упомянутые выше устройства памяти образуют память данных и программ микроконтроллера.

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

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

8. Размер упаковки

Размер корпуса относится к форм-фактору микроконтроллера. Микроконтроллеры обычно поставляются в пакетах, начиная от QFP, TSSOP, SOIC и заканчивая SSOP и обычным пакетом DIP, который упрощает монтаж на макетной плате для создания прототипа. Важно заранее спланировать производство и предусмотреть, какая упаковка будет лучшей.

9. Потребляемая мощность.

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

10. Поддержка микроконтроллера.

Важно, чтобы микроконтроллер, с которым вы работаете, имел достаточную поддержку, включая: образцы кода, справочные проекты и, если возможно, большое сообщество в Интернете. Работа с микроконтроллером впервые может быть сопряжена с различными проблемами, и доступ к этим ресурсам поможет вам быстро их преодолеть. Хотя использование новейших микроконтроллеров из-за тех крутых новых функций, с которыми они пришли, — это хорошо, рекомендуется убедиться, что микроконтроллер существует не менее 3-4 месяцев, чтобы гарантировать большинство ранних проблем, которые могут быть связаны с микроконтроллером было бы решено, так как разные клиенты должны были бы провести много тестов микроконтроллера с разными приложениями.

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

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

Выбор микроконтроллера

Выбор микроконтроллера [7] является одним из самых важных шагов, ведущих к успеху или провалу задуманного проекта. При этом необходимо учесть и оценить большое количество факторов. Обычно выбор проводится в 3 стадии:

Определение разработчиком необходимых характеристик МКпутем ответа на вопрос: «Что должен делать микроконтроллер в данной системе?». При этом немаловажной целью является выбор наименее дорогого МК, но удовлетворяющего требованиям по производительности, надежности, условиям применения и т. д.

Выбор микроконтроллеров или группы семейств МК, удовлетворяющих всем системным требованиям, включая необходимый подборлитературы, технических описаний и возможность получения консультаций, отдавая предпочтение однокристальным устройствам – из-за цены и надежности, с учетом стоимости и габаритов.

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

Рассмотрим основные критерии выбора МК в порядке значимости.

Пригодность МК для конкретной прикладной системы. Из возможных вариантов реализации системы (применением набора устройств автоматики, специализированных микросхем или однокристального МК промышленного производства) необходимо окончательно выбрать МК как гибкое, универсальное и недорогое средство автоматизации. Представляя основные задачи МК в разрабатываемой системе, необходимо выбрать МК с наиболее подходящим количеством контактов/портов ввода/вывода и набором встроенных дополнительных периферийных устройств (последовательные порты ввода/вывода, RAM, ROM, A/D, D/A, ШИМ, и т. д). Также надо убедиться в отсутствии избыточности по структуре и в оптимальном соотношении производительности и стоимости МК.

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

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

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

Системные требования. Системный анализ проекта позволяет ответить на ряд вопросов и выявить существенные системные требования, в числе которых:

состав периферийных устройств. Реализация некоторых функций ввода/вывода и обработки данных возможна как чисто программными средствами, так и с использованием встроенных специализированных средств – периферийных устройств, позволяющих повысить производительность МК, однако набор таких устройств для МК различных фирм-производителей и внутри семейств МК может различаться;

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

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

типы устройств ввода/вывода. Для связи с объектом управления и оператором могут потребоваться различные устройства: терминалы, выключатели, реле, контакторы, клавиатура, сенсоры и датчики (температуры, света, напряжения, тока, положения), звуковые устройства (микрофоны, синтезаторы), индикаторы: жидкокристаллические (LCD); светодиодные (LED), аналого-цифровые (ADC) и цифроаналоговые (DAC) преобразователи;

тип системы электропитания.В разрабатываемой системе может потребоваться стабилизированное напряжение питания не только для МК, но и для устройств связи с объектом. При этом номинальные значения напряжений и мощности источников вторичного питания (ВИП) будут определяться составом системы. В ряде случаев может потребоваться бесперебойная система электропитания со встроенными аккумуляторными батареями;

условия эксплуатации.Выбор элементов системы должен учитывать диапазон рабочих температур, атмосферного давления, влажности, а также агрессивность и взрывоопасность среды при эксплуатации и хранении системы;

массогабаритные характеристики.Наличие ограничений по массогабаритным характеристикам определяет много дополнительных требований, среди которых могут быть требования по базированию пользовательского программного обеспечения (на компакт-дисках, на твердотельных дисках, на микросхемах).

Основные особенности микроконтроллера.

Разрядность. Существуют группы 8-, 16-, 32-разрядных МК – по размеру АЛУ и индексных регистров или по размеру шин обмена данными и инструкциями.

Тактовая частота (или более точно – скорость шины) определяет, сколько операций ввода/вывода и вычислений может быть выполнено за единицу времени. Ранние МК могли работать в узком диапазоне частот, новые – в широком, вплоть до нулевой. Снижение тактовой частоты уменьшает потребление, а повышение – приводит к возрастанию вычислительной и потребляемой мощностей. Однако следует ожидать, что система с более высокой тактовой частотой будет стоить больше уже потому, что все дополнительные микросхемы (RAM, ROM, PLD) тоже будут дорогостоящими. В некоторых случаях выбор тактовой частоты может быть связан с требованиями определенной скорости обмена данными по последовательным каналам.

Язык программирования. Выбор языка программирования: ассемблер или язык высокого уровня (чаще всего «Си»).

Технология изготовления. Сравнивая технологии изготовления МК отметим, что N-канальную применяли в более ранних разработках. Современная технология HCMOS позволяет использовать полный диапазон напряжений от 0 до U питания, МК потребляют меньшую мощность, меньше нагреваются, имеют меньшие габариты и, следовательно, более дешевы в производстве, так как на одном кристалле получается большее количество чипов.

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

Память – устройство для хранения данных и программ. Оперативная память (RAM) используется для записи и хранения данных, полученных путем обмена с датчиками и терминалами или в процессе обработки (вычислений) во время работы системы. Постоянная память (ROM) используется для хранения программы, которая записывается один раз, до того как система начнет работать. Другие типы устройств памяти – перепрограммируемая (EPROM), электрически перепрограммируемая (EEPROM), FLASH – позволяют делать перезапись от сотен до десятков тысяч раз, что необходимо при отладке системы или может быть использовано для хранения некоторых параметров настройки.

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

Средства ввода/вывода включают порты параллельные и последовательные, аналого-цифровые (ADC) и цифроаналоговые (DАC) преобразователи, драйверы клавиатуры и дисплея – жидкокристаллического (LCD) или вакуумного флуоресцентного (VFD).

Сторожевой таймер (WDT) – таймер слежения за нормальным функционированием МК, система обнаружения отказа тактового генератора или «зависания» программы – бесконечного ожидания или циклического выполнения какой-то части программы в ущерб функционированию системы.

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

Набор команд микроконтроллера. Набор команд МК играет важную роль в определении возможностей системы: манипуляции с битовыми полями, арифметические операции, умножение, деление и табличные преобразования.

Система команд микроконтроллера тесно связана с архитектурой. На рис. 20 показаны примеры выполнения арифметической операции с двумя операндами для процессоров с различной архитектурой.

Для большинства 8-разрядных микроконтроллеров (типа MCS-51, PIC) с «классической» аккумуляторной архитектурой операция сложения выполняется в 3 этапа:

загрузка первого операнда в аккумулятор, имеющий связь с одним из портов арифметическо-логического устройства (АЛУ);

извлечение второго операнда из оперативной памяти, сложение с данными, находящимися в аккумуляторе, и автоматическая передача результата в аккумулятор;

пересылка результата выполнения операции по месту назначения (в ОЗУ).

Такой подход позволяет существенно уменьшить формат команд за счет сокращения адресной части (необходим адрес только одного операнда), что уменьшает объем памяти программ.

По мере развития микропроцессорной техники аккумуляторная архитектура стала тормозом в повышении производительности процессора, появилась регистр-регистровая архитектура (16-разрядные микроконтроллеры MCS-196).

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

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

Характеристика разработчика системы. Специально подготовленный и обученный персонал и наличие специальных средств разработки позволяет существенно сократить сроки и повысить вероятность успеха разработки.

Характеристика поставщика. Поставщиком может быть производитель МК или дилер нескольких компаний, обеспечивающий оптовые поставки.

Выбираем микроконтроллер вместе

Прочитав эту статью я заметил большой интерес к выбору микроконтроллера у читателей и решил взглянуть на эту проблему с другой стороны.
Могу предположить, что всех интересует выбор их первого, либо первого 32-х битного МК.
image
Тем, кто знает, что на фотографии нет ни одного микроконтроллера — прошу в комментарии, дополнить мой рассказ и тем самым поделиться своим опытом с начинающими. Остальным, непременно под кат!

На мой взгляд чем проще будет каждый этап обучения — тем проще будет дойти до самостоятельного плаванья. Поэтому я считаю, что на начальном этапе следует брать все готовое. Ничего не придумывать самому. Представьте:
вы выбрали контроллер,
проглядели даташит,
развели под него плату,
или нашли ее на просторах интернета,
купили все компоненты(или аналоги если советуемых не было),
запаяли все,
написали первый «hello world»,
собрали программатор, прошили контроллер

И… и ничего не происходит! Что-то не работает, и вы не можете понять что: то ли в пайке ошибка, то ли что-то с программой, то ли в интернете кривая схема, то-ли проблемы с софтом.

Новичка такая ситуация ставит в тупик, знаю это по себе.
Чтобы такого не случилось проще всего сделать первые шаги под чьим-то руководством.

Преимущество простого старта отлично показывает платформа Arduino. Посудите сами: возможности контроллеров совсем не велики, цены на платы огромны, зато огромная поддержка сообщества и все уже готова, любые платы расширения, кучи примеров.
За счет этого и живет платформа!

Давайте посмотрим какой у нас вообще есть выбор! На рынке огромное количество производителей и архитектур. Но выбор на самом деле совсем не велик:
я бы сразу отсек все 8-ми и 16-ти битные архитектуры, кроме PIC и AVR, да иногда производители предлагают отладочные платы и контроллеры по очень заманчивой цене
но я не советую их брать потому, что это малораспространенные архитектуры и на них меньше примеров + пересаживаться на другие контроллеры будет сложнее.
По той же самой причине отсек все 32-х разрядные архитектуры кроме ARM + с ними еще начинаются проблемы с примерами, и они постепенно вымирают.

Арм микроконтроллеры делятся на ARM7, ARM9, Cortex M0, 3, 4.
Седьмые и девятые постепенно замещаюся кортексами и вскоре их тоже не будет.

Итого имеем:
AVR
PIC
ARM Cortex

Про пики сказать много не могу, но по-моему AVR их вытесняет из-за распространенности Arduino.
Но я все-же советовал Cortex, их возможности намного шире, к тому же есть выбор между производителями, а это на мой взгляд большой плюс. Да и существует масса упрощающих жизнь библиотек и даже генераторов кода, которые новичкам позволят не сильно вчитываясь в юзер мануал написать первую программу.

Итак, какие производители представлены у нас?
NXP, ST, Freescale, TI, Luminary Micro, Atmel и много других но поменьше распространенных.

Как выбрать из такого большого количества производителей?
надо выбирать не контроллер а отладочную плату, библиотеки, среду разработки и сообщество.

Сам щупал только NXP, ST и Freescale.

Первые 2 производителя наводнили Москву и другие города России дешевыми/бесплатными отладками — это очень хорошо в том смысле, что всегда есть у кого спросить, есть к кому обратиться.
Также не нужны никакие программаторы — все есть на борту!
image
image

Для NXP есть альтернатива от Olimex www.chipdip.ru/product/lpc-p1343.aspx
Есть и минусы: когда захочется расширить их возможности придется искать новую.

Больше всего мне понравилась отлатдка от Freescale, с которой столкнулся на работе.
На мой взгляд это лучший вариант для новичка, но у нее есть один огромный минус:
пока довольно сложно найти в продаже и регионам придется заказывать, но оно того стоит:
Первое и самое важно преимущество: стандартные платы расширения (сначала покупаете стандартный набор, потом докупаете вайфай, сенсоры и тп)
image
image

Еще большущий плюс это среда разработки: благодаря Processor Expert можно генерировать код, и море примеров с объяснениями.

Итак подведем итоги:

1 купить Arduino Uno c AVR за 1000р на плате практически ничего нет, зато в продаже множество плат расширения и огромное сообщество

2 купить STM32L-DISCOVERY c M3 за 16.22дол c сенсорными кнопками, USB и маленьким LСD-дисплеем и дебагером на борту

3 купить за 1000р LPCEXPRESSO c M3 с просто выведеными контактами и дебагером на борту

4 купить KWIKSTICK с M4 за 30дол+ доставку с большим сегментным LCD, USB, входом под наушники, динамиком, сенсорными кнопками, литиевой батарейкой, микрофоном, ИК портом, слотом под SD-карту + возможность расширения функционала без пайки и больших вложений. Большой набор библиотек, примеров и хорошая IDE.

В итоге я считаю, что надо покупать STM32L-DISCOVERY и начинать с нее,
либо если не лень заморочиться с заказом платы и чуть-чуть побольше заплатить брать KWIKSTICK — с ней старт будет полегче, да и хватит ее на дольше, но для общения с коллегами нужен английский.

Прошу всех, знакомых с МК написать свой выбор отладочных средств для новичка, я с удовольствием дополню статьюю

UPD: stm32l-discovery по таким ценам можно купить в Компэле
Kwikstick на сайте freescale

Какой микроконтроллер выбрать

Микроконтроллер

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

Выбор микроконтроллера

Логотип компании Microchip Technology

Открывает наш парад компания Microchip Technology с серией PIC. Эти МК отличаются между собой разрядностью (8/16/32), набором периферии и корпусом чипа. Восьмибитные варианты же делятся на четыре семейства: baseline, mid-range, enhanced mid-range и PIC18. Более подробная информация приведена в таблице.

Выбор микроконтроллера. Таблица

Также есть 16-битные «пики» — PIC24F и DsPIC30/33F. Ну и 32-битные — PIC32MX. Эти непонятные сочетания букв и цифр — часть идентификатора чипа. То же, что и марки у машин. Например, широко распространенный камень PIC16F628A расшифровывается так: семейство PIC16F6 (Mid-range), а остальная часть имени — указатель на конкретный камень. У рассмотренных далее МК в имени может содержаться еще больше информации.

Цена и содержимое

Микроконтроллер PIC16F628A

Микроконтроллер PIC16F628A

Эти микроконтроллеры имеют среднюю стоимость. Например, камень PIC6F628 в Chipdip стоит около 150 рублей, а PIC18F2550 — 620 рублей.

Более дешевые экземпляры имеют в своем составе минимум периферии. У упомянутого ранее PIC6F628 следующие характеристики: встроенный тактовый генератор для работы с частотой 4 или 8 МГц; 18 пинов, из них 16 — ввод/вывод, а 2 — питание; для работы на более высоких частотах можно подключить кварцевый резонатор; Flash-память объемом 2048 слов; 4 аналоговых входа; два 8-битных таймера и один 16-битный; 224 байта ОЗУ (самому смешно); 128 байт EEPROM (это программно перезаписываемая энергонезависимая память, вроде жесткого диска); интерфейс UART.

Программирование и использование PIC

Программируют для микроконтроллеров, как правило, на ассемблере и на Си. Есть множество сред разработки: MPASM и MPLAB, MicroC, JALedit (язык JAL, сам про него впервые слышу). Скачать MPLAB

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

Вторым плюсом можно указать встроенные независимые (от тактового генератора) счетчики. Благодаря этому факту семейство зарекомендовало себя в качестве «мозгов» для частотомеров. Пара таких контроллеров лежит у меня в мастерской на черный день. Из минусов можно выделить только высокую стоимость оригинальных программаторов, которые зовутся PICkit.

Выбор микроконтроллера. PICKIT3

PICKIT3

В интернете есть множество статей по сборке достойных аналогов таких программаторов. Но вся соль в том, что для сборки программатора тебе нужно что? Правильно, программатор. На этот случай был разработан программатор Громова. Для его сборки почти ничего не нужно, а работает он от COM-порта компьютера. На момент его разработки популярность этой серии МК была высока, да и COM-порты были у всех ПК. Сейчас все это уже редкость, так что придется преодолеть порог вхождения либо раскошелиться.

Как выбрать микроконтроллер. Atmel

Логотип компании Atmel

Микроконтроллеры AVR производит компания Atmel. Если не знал, это те самые контроллеры, из которых собирают Arduino. Некогда Atmel была независимой компанией, но позже ее купила упомянутая ранее Microchip, которая продолжает выпускать эти МК. Они делятся на три семейства: tinyAVR (ATtinyxxx), megaAVR (ATmegaxxx), XMEGA AVR (ATxmegaxxx).

TinyAVR имеет следующие характеристики:

  • Flash-память до 16 Кбайт;
  • RAM до 512 байт;
  • ROM до 512 байт;
  • число пинов (ножек) ввода-вывода 4–18;
  • небольшой набор периферии.
  • FLASH до 256 Кбайт;
  • RAM до 16 Кбайт;
  • ROM до 4 Кбайт;
  • число пинов ввода-вывода 23–86;
  • расширенная система команд (ассемблер) и периферии.
  • FLASH до 384 Кбайт;
  • RAM до 32 Кбайт;
  • ROM до 4 Кбайт;
  • четырехканальный контроллер DMA (для быстрой работы с памятью и вводом/выводом);
  • «инновационная» система обработки событий.

Как и в случае PIC, у моделей AVR в названии содержится ценная информация. Например: ATMega328PU — семейство megaAVR, 32 Кбайта Flash, 8-битный, P — говорит о модификации (примерно как у пистолета Макарова модернизированного — ПММ).

Как выбрать микроконтроллер. Расшифровка названия чипа

Расшифровка названия чипа

Цена и начинка

Эти микроконтроллеры имеют, как и PIC, среднюю стоимость. Например, упомянутый ранее камень ATmega328P в Chipdip стоит 160 рублей, а ATxmega128A1 — 590 рублей.

TinyAVR дешевле и проще своих старших братьев. Немного характеристик ATmega328P: предельная частота работы 20 МГц (слышал, правда, что под охлаждением и посильнее разгоняли); 23 пина ввода-вывода; Flash-память на 32 Кбайта; 8 аналоговых входов; два 8-битных таймера и один 16-битный; 6 ШИМ-каналов; 2 Кбайта RAM; 1 Кбайт EEPROM; интерфейсы UART, SPI, I2C.

Программирование и использование AVR

Благодаря распространению плат прототипирования Arduino, как у нас, так и за рубежом, эти МК имеют низкий порог вхождения. Программируются на ассемблере, Си, C++; можно воспользоваться графическими генераторами кода типа Scratch (см. Scratchduino). Для работы есть Atmel Studio, IAR AVR, WinAVR. Ну и Arduino IDE, куда уж без нее. Лично я использую связку из Geany и avrdude. Для прошивки есть большое разнообразие программаторов: как дешевые, так и подороже. Я для этих целей прикупил недорогой экземпляр USBasp где-то за 1,5 доллара (на Aliexpress есть масса вариантов). А можно в качестве программатора использовать и Arduino UNO.

Информации об этих контроллерах в интернете много: чего только стоит канал AlexGyver! И благодаря Arduino существует масса обучающих наборов на любой вкус. В общем, низкий порог вхождения — весомый плюс этих контроллеров.

Кстати, если заказываешь из Китая, то взять плату с чипом будет дешевле, чем чип отдельно.

О компании ARM и ее продукции ты наверняка слышал. Однако производит эта компания не сами микроконтроллеры, а лишь архитектуру. Лицензию на нее покупают конечные производители и используют так, как им захочется. Кто только их не выпускал! Но как микроконтроллеры наибольшее распространение получили чипы компании STMicroelectronics.

Выбор микроконтроллера. STMicroelectronics

Логотип STMicroelectronics

Они делятся на два семейства: STM32 и STM8. Как понятно из названий, такие чипы бывают 8- и 32-битные. А каждое семейство делится на серии, которых достаточно много.

Что можно о них сказать? Это функциональный аналог AVR, только дешевле. Здесь есть три серии: STM8L c ультранизким энергопотреблением, STM8S для индустриальной аппаратуры и STM8A, именуемые «высоконадежными». Периферия у всех такая же, как у AVR, но есть встроенный тактовый генератор. Из плюсов могу выделить только низкое энергопотребление и маленькую цену. Замечу, у STM8 архитектура не ARM, а собственная. Она очень схожа с ARM и использует идентичный STM32 интерфейс прошивки. Компилятор для них используется тоже один, и при его работе ты просто указываешь, под какую архитектуру собирать код.

STM32

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

Прошивка и программирование

Прошиваются STM32 с помощью разработанного компанией ST интерфейса Single Wire Interface Module (SWIM). Еще у МК этой серии есть интерфейс отладки Serial Wire Debugging (SWD). Им я не пользовался, но в большинстве гайдов по STM есть описание его настройки.

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

Для STM32 есть самые разные программаторы — от весьма крутых до простеньких USB-свистков. Я, например, взял ST-LINK, на «Алиэкспрессе» он стоил около 1,6 долларов. Его достоинство в том, что он может прошить любой контроллер STM.

Программатор ST-LINK

Программатор ST-LINK

Стоит также упомянуть платы STM Nucleo. Вот одна из них.

Плата STM32 Nucleo

Плата STM32 Nucleo

Это что-то вроде Arduino из мира STM. Стоит дороговато, как и оригинальные Arduino, но вещь для новичка отличная. Если деньги есть, стоит взять. Здесь же стоит упомянуть «Амперку» с их «Искрой» и набором для начинающих. Тоже вполне достойный выбор для первого раза.

Плата Iskra JS

Плата Iskra JS

Для программирования можно воспользоваться средами Embedded Workbench, uVision и TrueStudio. Благодаря работе умельцев для этих же целей можно использовать и родной для многих Arduino IDE. Есть также онлайновый IDE — mbed studio.

Партия из пяти плат с обвязкой и STM8 будет стоить около 4,5 долларов. Плата BluePill с STM32F103 сейчас стоит 1,6 доллара. Плата NUCLEO-F072RB — 16,4 доллара. Ссылок давать не буду — на «Алиэкспрессе» все это легко ищется по запросу «stm32».

ESP32

ESP32

И, наконец, пара слов про ESP. С этими МК я не работал и знаю о них немного. Это 32-битные камни с модулем Wi-Fi на борту. Они используют архитектуру xtensa. На них собирают умные дома и прочие интересные штуки (смотри врезку ниже). Программировать можно опять же в Arduino IDE. Знаменитая ESP8266, неоднократно упомянутая на страницах нашего сайта, как раз и относится к этому семейству. К нему же относится ESP32, старший брат ESP8266.

Выводы

Кроме упомянутых выше производителей есть много других: Intel, Renesas Electronics, Texas Instruments и прочие. Но в сообществе электронщиков-любителей они не прижились, хоть и активно используются в промышленности.

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

После Arduino стоит перейти на STM. Для простеньких проектов бери восьмибитные чипы, для более сложных — 32-битные, и будет тебе счастье. И помни, что микроконтроллер — это уже не процессор, но еще не компьютер.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *