AVR или PIC для начала программирования микроконтроллера?[закрыто]

StackOverflow https://stackoverflow.com/questions/140049

  •  02-07-2019
  •  | 
  •  

Вопрос

В какой семье мне начать учиться?(Никогда не программировал на микроконтроллере)

Это было полезно?

Решение

Сегодня AVR и PIC, пожалуй, самые распространенные микроконтроллеры среди любителей.Оба имеют очень широкий спектр вариантов устройств, и оба могут использоваться для достижения аналогичных результатов.

Для новичка я бы предложил AVR по разным причинам:

  • Семейство AVR (крошечные, мега) целостно и легко для понимания.Архитектура мощная и современная и особенно подходит для компиляторов C.AVR, конечно, тоже можно запрограммировать на ассемблере.

  • Благодаря дружественной к C архитектуре, доступны качественные компиляторы C, как коммерческие, так и бесплатные.Вездесущий GCC портирован на AVR и называется avr-gcc.

  • Для начала все, что вам действительно нужно, — это несколько основных компонентов, сам чип AVR и макет.Даже кабель для программирования между ПК и AVR можно построить практически бесплатно (так называемый вигглер).Однако доступно несколько коммерческих комплектов разработки, в первую очередь собственный Atmel. СТК500.Коммерческий комплект разработки — более дорогой способ начать работу, но он не требует практически никаких предварительных знаний в области электроники.Некоторые комплекты разработки содержат, например, ЖК-дисплеи так что легко сделать интересные вещи.

  • Он имеет богатый сообщество любителей.

PIC известен своей своеобразной архитектурой.Многие любят PIC за это, некоторые ненавидят.AVR более прямолинеен и, похоже, не вызывает столь крайних и полярных мнений.

И AVR, и PIC используются во многих серьезных коммерческих приложениях.Однако это, конечно, не единственные варианты.Мой личный любимый микроконтроллер как для хобби, так и для коммерческой работы — семейство C8051 от Silicon Laboratories, особенно C8051.Ф530.Существует отличный бесплатный компилятор и ассемблер C для семейства C8051 под названием СДКК.

Краткое содержание:Вариантов много, но, пожалуйста, не позволяйте этому сбить вас с толку.Просто выберите один и начните с ним учиться.На самом деле освоить микроконтроллеры на удивление легко, если только вы решили приступить к делу!

Другие советы

Мой начальник освоил основы использования AVR за неделю, не имея предварительного опыта.

Я бы посоветовал АВР.Он намного превзошел PIC в качестве микроконтроллерной платформы для проектов любителей.В частности, рассмотрим платформу Arduino (и другие *duino), которая обеспечивает высококачественный AVR в удобном интерфейсе и популярном форм-факторе.

Я предпочитаю AVR PIC, архитектура которого мне кажется немного запутанной.Возможно, это касается только меня, и вас не будет беспокоить, если вы умеете писать на языке высокого уровня, скорее всего (на каком-то диалекте) C.

Поскольку вы новичок в микроконтроллерах, я предполагаю, что производительность не будет проблемой, поэтому вместо этого я бы посмотрел на наличие инструментов разработки:платы для прототипирования, IDE и инструменты моделирования/отладки.Лично мне очень понравилась AVR Studio (бесплатная среда разработки Atmel).

Джейсон упоминает MSP430 от TI, который действительно является отличным контроллером, особенно если вы работаете с приложениями с очень низким энергопотреблением.Но я бы не рекомендовал его новичкам, поскольку настройка немного громоздка.(Напоминаю, что описание генератора в руководстве пользователя занимало более 20 страниц.)

Некоторые люди отмечали странную (и недружественную к C) архитектуру PIC micro.Это справедливо для PIC меньшего размера, но 16-битные чипы (PIC24F, dsPIC30 и т. д.) имеют очень четкую архитектуру, которая очень хорошо работает с C.

Линия PIC24F имеет возможность назначать контакты функциям (таймеры, АЦП, последовательный ввод-вывод) «на лету», что немного упрощает проектирование.Среда MPLAB для отладки и разработки весьма удобна.

Я немного занимался программированием PIC — в основном потому, что мне нравилась идея, что чип стоил всего один-два доллара.Однако для новичка принимать решение исключительно по цене – это преждевременная оптимизация.

Программирование на ассемблере — это опыт.По сути, вам нужно изучить около 100 концепций, прежде чем вы сможете мигать светодиодом.(Сторожевой таймер, контакты сброса, 8-битные счетчики/переполнения, циклы задержки, шестнадцатеричные, двоичные, битовые маскировки, прерывания, запросы на обслуживание прерываний, порты ввода-вывода и т. д.) Все это очень познавательно — и приятно оказаться так близко на машину, но возможность написать что-то на C скроет часть этой сложности, и вы сможете сосредоточиться на результатах.По этой причине я бы посоветовал использовать AVR.(И я считаю, что цены теперь ближе к PIC.)

Также:Если вы заинтересованы в достижении цели (и не против потратить около 30 долларов), ознакомьтесь с ардуино.Парень, продающий их в моем местном магазине электроники, говорил, что продает их тоннами студентам-художникам.(Он использует IDE из проекта Processing и компилирует код с помощью avr-gcc.)

Обновлять:Исправлен комментарий о том, что Arduino запускает интерпретированный код.Также обновлена ​​приблизительная цена Arduino.

Я не понимаю, в чем дело с Arduino, это разрушит ваш шанс когда-либо понять, что на самом деле происходит.Я регулярно программирую с помощью AVR и PIC, в принципе особой разницы нет, я не понимаю, в чем тут такая суета.Однако для новичка держитесь подальше от Arduino, это может быть просто, но в этом и ловушка: он не дает вам понятия об аппаратной архитектуре и не дает представления о том, что происходит за кулисами, - то, чему новичкам необходимо научиться, чтобы стать эффективным программистом.Когда я был новичком, я начинал с ATmega32, USBasp-программатора за 20 долларов, AVR Studio (бесплатно) и AVRDude (поставляется с WinAVR) и следовал вводным руководствам в AVR Freaks.Это все, что вам нужно, Готово!!!

P.S.Если вы действительно хотите научиться программировать микросхемы и у вас есть время изучить ассемблер для вашей микросхемы, вы станете в 20 раз программистом на языке C, чем тот, кто начал использовать Arduino.

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

Я голосую за TI МСП430 ряд.Я широко использовал PIC (а также немного чипы Atmel), и, безусловно, самое важное для меня — это хорошая IDE для отладки.Компания TI проделала с этой задачей довольно хорошую работу, и их компилятор C++ работает очень хорошо.Вы можете приобрести ознакомительную плату менее чем за 100 долларов, включая IDE + USB-отладчик.У PIC более качественная и разнообразная аппаратная периферия, но MPLAB — это чушь, а единственная C++ IDE для PIC — это IAR, которая довольно дорогая.(более $2 тыс.)

Я/мы выбрали PIC главным образом потому, что за ту же цену есть больше периферийного оборудования.И что еще более важно, вы даже не можете найти сопоставимые AVR.Однако я выбрал одну из устаревших бесплатных версий (начал с PIC18, перешел на dspic33)

IDE бесплатна, компилятор (C) бесплатен в студенческой версии (которая отключает оптимизацию после первого месяца).Программисты начального уровня тоже довольно дешевы.Если у вас куча прерываний, счетчиков и таймеров, есть вероятность, что оптимизация вам вообще не понадобится.Программист прямо из Microchip стоит 30 долларов.

Обратите внимание, что приведенные выше замечания о том, что AVR больше ориентирован на разработку HLL, немного устарели, если только вы действительно не предпочитаете устаревшие архитектуры, такие как PIC12 и 16.

Обычно более современные PIC18 (8-битные) и 16-битные архитектуры (24F, 30F и dspic33, основанные на одном и том же основном ядре) обычно программируются на языке C.16-биттеры даже используют GCC.Сейчас также существуют 32-битные процессоры на базе MIPS, но они больше конкурируют с ARM в области обработки аудио/видео.Как ни странно, современные зачастую дешевле старых.Вероятно, они производятся более современным способом с более высоким выходом.

Еще одно замечание:тем временем Microchip/PIC купила Atmel/AVR, но я предполагаю, что в первые несколько лет это не сильно повлияет на продуктовые линейки.

Я очень жду 16-битной версии с поддержкой Ethernet 60MIPs, которая будет выпущена этим летом (на самом деле, уличная цена чуть выше 10 евро).

Если вы просто хотите узнать, что такое программирование MCU, хорошей идеей будет начать с Arduino.Это дешево, с удобной для новичков IDE (основанной на языке программирования обработки, синтаксис которого аналогичен C).

Но это не ответило на ваш вопрос, поскольку, хотя Arduino основан на AVR, вы не можете почувствовать, что за этой современной IDE стоит AVR MCU.:)

Когда я только начинал, я добился гораздо большего успеха с PIC.Я пытался получить простой стартовый комплект от Arduino, но не смог получить хороший базовый комплект, не потратив более 100-200 долларов США и не уменьшив настройку вместе.Купил отличный стартовый комплект от PIC примерно за 40 долларов, в нем есть все:IDE, программатор, стартовая плата со встроенными схемами для демонстраций и учебных пособий.Одна покупка.Кроме того, среду PIC было очень легко настроить и работать.Я играл с ним в течение часа.

Мой первый опыт работы с микроконтроллерами был с ООПик-Р.Это позволило мне проводить простые эксперименты с роботами, не слишком беспокоясь о коде.Благодаря объектно-ориентированному программированию все работает быстро и легко программируется.

Недавно я попробовал еще одну разновидность PIC, очень дешевую. Пикакс.Включенный программный интерфейс упрощает работу.Кроме того, для физического подключения PICAXE вам понадобится только порт RS-232 для его программирования и два контакта на чипе (нет необходимости выполнять сдвиг уровня).Я встроил PICAXE в очень маленькие контейнеры (доступны чипы SMD и DIP), и он работал довольно хорошо.

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

Насколько я знаю, самый дешевый способ запрограммировать AVR с помощью инструментов ATMEL — это ATMEL AVR ISP mkII за 35 долларов.Сторонние программисты можно найти за 10-15$.

Я бы сделал свой выбор, основываясь на наличии кросс-компилятора C.В прошлом выбор делался на AVR.Я не уверен, каков статус сейчас.

Я запрограммировал PIC на ассемблере, и это было не очень весело.C намного лучше во многих отношениях.

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

Я бы сказал, что мне проще всего найти микроконтроллер 8051, а компания Atmel придумала микроконтроллеры с таким количеством встроенных функций....но все же люди более предпочтительно используют AVR...я бы поднял руку с семейством 8051 (если бы мне было удобно), иначе AVR...

Я люблю АВР.его легко программировать и доступны ресурсы.Есть несколько сообществ, подобных Arduino, которые с ним работают.

Еще немного дискуссий о превосходстве AVR на другом Stack Overflow:http://embeddedgurus.com/stack-overflow/2009/04/pic-stack-overflow/

Меня сбивает с толку популярность 8-битных PIC.Его архитектура ужасна - ограниченный стек вызовов - это всего лишь первая ужасная вещь.Добавьте необходимость в подготовке и банковке вместе с единственным вектором прерывания, и у вас есть кошмар модели программирования.Это было бы одно, если бы это было нормой для 8 -битных устройств - но это не так.Архитектура AVR поражает картину, в то время как HC05 / HC08 также являются улицами впереди картинки.Учитывая выбор, я думаю, что я даже взял 8051 над картиной.Я не вижу никаких преимуществ затрат, преимуществ упаковки (Atmel только что выпустила SOT23-6 AVR, который по сути является набором инструкций, совместимых с их крупнейшими устройствами) или преимущества периферического набора.Короче, я не понимаю!Кстати, это не обвинение в микрочипе - они отличная компания, и мне очень нравится многие другие их продукты, их веб -сайт, техническую поддержку и так далее (возможно, именно поэтому картинка так широко используется?)

Я начал с Motorola M68HC11, все было достаточно просто.Я думаю, вы получите примерно то же самое с любыми 8-битными контроллерами.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top