из растущих 8-битных AVR, не знаю, куда двигаться дальше

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

У меня возникли проблемы с поиском/выбором новой линейки микроконтроллеров для изучения. я посмотрел на

  • NXP - Не могу найти программиста
  • Freescale — необходимо зарегистрироваться в IDE
  • AVR32 - Ограниченный выбор чипов на digikey

Чипы NXP выглядят действительно красиво, но, как и в случае со всем, кроме PIC/AVR/Ardiuno, кривая обучения довольно крутая.

Мне было интересно, может ли кто-нибудь предложить линейку микроконтроллеров, которые удовлетворяют (в порядке важности) следующим требованиям.

  1. Чипы для ручной пайки. (Я могу сделать LQFP 100)
  2. 32 бит
  3. Хост Linux
  4. Бесплатный набор инструментов
  5. Хорошая/бесплатная IDE
  6. Стартовая стоимость <500$ для неограниченного программирования/отладки/компиляции
  7. поддержка CAN
  8. Поддержка Ethernet/USB

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

Спасибо.

В чем проблема с регистрацией в IDE Freescale?
Прыгаете через обручи, чтобы иметь привилегию использовать их фишки, которые вы купили?
Да, ну, они скажут, что им нужно знать, кто вы, чтобы предоставлять лучший сервис, читать, чтобы продавать свои вещи. Хуже, если вам нужно зарегистрироваться только для того, чтобы загрузить техническое описание (со мной это случалось несколько раз). Жизнь тяжелая :-)
Необходимость «регистрироваться» для покупок в Интернете — беспрецедентный шаг. FWIW, их форумы также требуют этой регистрации, так что это тоже хорошо.
«Linux host» — вы хотите заниматься разработкой на своем ПК с Linux? Или вам нужен чип, способный работать с Linux?
@stevenvh, в случае с Wavecom было невозможно найти что-либо (таблицы данных, сообщения на форуме, документы и т. д.) с помощью поисковой системы, поскольку все требовало регистрации. Скачивание старой версии IDE теперь также является проблемой, когда они были приобретены.

Ответы (12)

Я определенно рекомендую NXP - достойный набор микросхем, хорошие периферийные устройства (UART с гибким baudgen и FIFOS, SPI с FIFO и т. д.), отличная документация* и гибкие возможности программирования. Получите отладчик JTAG/SWD (части Cortex используют SWD — меньше выводов, чем JTAG, и могут выполнять такие действия, как установка точек останова во время работы). Я использую бесплатную версию встроенного рабочего места IAR для кикстарта — у него ограничение на код 32 КБ, что меня устраивает, но имейте в виду, что обновления размера кода стоят дорого. Кажется, что многие люди нормально работают с GCC/winarm. Некоторые компоненты Cortex (например, LPC1343) могут загружать прошивку с USB-накопителя с помощью встроенного загрузчика. Доступность запчастей, как правило, хорошая - я никогда не пытался найти запас. Существует также множество devboards/breakouts, доступных для частей NXP.

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

АРМ, АРМ, АРМ.

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

PIC, AVR и MSP430 страдают от того, что полностью принадлежат одной компании.

Имейте в виду, что с микроконтроллерами ARM Cortex-M3 от NXP будет ближе к Cortex-M3 от ST или Luminary, чем ARM9 или ARM7TDMI от NXP. Чаще всего компиляторы, отладчики и программисты являются общими для разных ядер, а не производителей.

Получение набора инструментов Codesourcery GCC ARM и дешевого ключа ARM JTAG поможет вам пройти долгий путь.

дешевый ключ ARM JTAG == OpenOCD
@Johan Или вы можете объединить существующую ATmega в одну.

Я бы выбрал NXP. За короткое время Cortex-M3 стал стандартом для контроллеров ARM (я предполагаю, что под Freescale вы подразумеваете Coldfire). Начиная с ARM7TDMI NXP также имеет традицию обширного семейства устройств на выбор.
Что касается программиста для NXP, IMO любой программист JTAG должен выполнять эту работу (CMIIW).

редактировать
В настоящее время я читаю о mbed , который выглядит как самый простой способ начать работу с NXP Cortex M3 (используемый контроллер LPC1768). Вы программируете/компилируете онлайн (поэтому Linux не является проблемой) и программируете через USB (устройство выглядит как запоминающее устройство, на которое вы можете скопировать скомпилированную программу). Программист не требуется. Программы, написанные для mbed, должны быть напрямую переносимы на LPC1768 на других платах.

Попробуйте 16-битные PIC24 и dsPIC. Многие из них доступны в DIL и обеспечивают скорость до 40 MIPS. Доступно бесплатное программное обеспечение для разработки, а отладчик/программатор PICkit 3 стоит довольно дешево — 50 долларов. В следующей версии MPLAB будет поддержка Linux, доступна бета-версия.

Я думал, вы сможете получить бесплатные инструменты для ARM. Программирование должно выполняться из последовательного загрузчика или (открытого) JTAG. Некоторые микросхемы и модули STM32 и NXP, которые я рассмотрел, оставили у меня такое впечатление.

Мне тоже вспомнился этот вопрос .

Если вы действительно хотите перейти на 32-битную версию, попробуйте PIC32. Высокая доступность от Microchip. Для отладки Linux MPLAB X находится в бета-версии 4 и поддерживает Linux, Windows и Mac OS X. Я думаю, вам также понадобится PICkit 3 или аналогичный программатор за 50-60 долларов.

Однако я бы больше склонялся к 16-битным dsPIC и PIC24, потому что они намного дешевле, их можно отлаживать с помощью PICkit 2 и их легко программировать. Также они доступны в DIP-пакетах, хотя для вас это не имеет значения (?). Я немного предвзято отношусь к ним, учитывая, что использую их в своем проекте.

В настоящее время доступно более дюжины PIC32 в 28-контактном DIP-корпусе, что делает их идеальными для прототипирования. Также новая линейка PIC32MZ (доступна только в SMD) имеет до 2 МБ флэш-памяти, 512 КБ ОЗУ и поддерживает хост CAN/Ethernet/USB 2.0.

Единственный 32-битный процессор, выпускаемый в настоящее время в корпусе DIP, — это Parallax Propeller . (Тот же чип также доступен в гораздо меньших 44-контактных корпусах QFP и 44-контактных QFN, все с 32 контактами ввода-вывода общего назначения). Для него также есть несколько инструментов разработки, которые работают под Linux .

Таким образом, он легко соответствует вашим первым 2 критериям и большинству (увы, не всем) вашим остальным критериям.

Взгляните на СЭЗ Домино . Он не отвечает всем вашим требованиям, но предлагает довольно много, если вам не нужен контроль на самом низком уровне.

Серия чипов Cypress PSoC сочетает в себе функции, которых я не видел ни в одной другой ИС.

Чип PSoC5 включает в себя 32-битный ARM Cortex M3, но, насколько я могу судить, все они упакованы во что-то вроде TQFP100. Серии микросхем PSoC1 и PSoC3 включают в себя множество микросхем в корпусе DIP, но все они имеют одно или другое 8-битное ядро.

В дополнение к ЦП, чип также имеет программируемое межсоединение, что-то вроде небольшой FPGA, и несколько встроенных аналоговых операционных усилителей.

http://www.psocdeveloper.com/

ARM Atmel могут удовлетворить все требования, в основном

Чипы для ручной пайки. (Я могу сделать LQFP 100)

Они поставляются в TQFP, и вы можете использовать один из меньших на 64 контакта.

32 бит

Чек об оплате

Хост Linux

Разрабатываю исключительно в Linux

Бесплатный набор инструментов

GCC ARM Toolchain, который теперь проще настроить с помощью скриптов сборки, таких как набор инструментов вызова руки.

Хорошая/бесплатная IDE

У тебя есть я там. Предположительно можно настроить eclipse или, может быть, kdevelop для выполнения этой работы, но я не пробовал. Я использую вим и кейт.

Стартовая стоимость <500$ для неограниченного программирования/отладки/компиляции

Программирование и компиляция обойдутся вам примерно в 100 долларов за прототип минимальной платы. Чипы поставляются со встроенным загрузчиком в ПЗУ, который позволяет программировать чип. Вам не нужен отладчик, чтобы запрограммировать его. Вы можете получить фирменный (и заблокированный) сеггер Atmel примерно за 100 долларов. Если вы можете себе это позволить, я бы посоветовал не покупать заблокированный, а заплатить 200 или 300 за разблокированный. Есть также другие варианты, которые намного дешевле, которые я не пробовал. Usbprog выглядит очень многообещающе.

поддержка CAN

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

Поддержка Ethernet/USB

Поддержка USB есть. Поддержка Ethernet должна быть добавлена ​​извне. Хотя примеров на выбор много.

У нас есть CAN на ATSAM. По крайней мере, у ATSAM3X8E есть один, поскольку Arduino Duo, используя этот чип, выставил один.

Я использую демонстрационную плату lpc4330-xplorer для NXP LPC4330. Я использую созданный вручную набор инструментов, но вы можете использовать Yagarto (если вас не волнует жесткий FP) или любой компилятор ARM, если вы можете копаться в сценариях компоновщика. У NXP есть несколько действительно отличных периферийных устройств, таких как State Configurable Timer (вы можете прочитать: генератор функций), который способен делать довольно много вещей. У них также есть несколько хороших SGPIO. Кроме того, у них есть множество таймеров на борту. Это также двухпроцессорный процессор (чип на базе M4-M0). Конечно, вся их линейка LPC довольно хороша.

Честно говоря, линейка Cypress pSOC тоже выглядит неплохо, но у меня не было возможности ее использовать. Все остальные определенно имеют свое применение и аудиторию, но я использую среду разработки Linux, не IDE и несколько инструментов командной строки. Я выбираю этот путь, потому что, когда что-то идет не так, а это всегда происходит, мне легче выследить проблему, если мне не нужно отслаивать слои инструментов. Кроме того, нет ограничений по коду. И, хотя это не совсем ясно из интернет-поиска, линейка LPC довольно хорошо поддерживается открытым исходным кодом.

Наконец, LPC предоставляет достаточное количество примеров кода в LPCOpen. Опять же, чтобы быть справедливым, если вы хотите, чтобы он скомпилировался с помощью инструментов с открытым исходным кодом, это требует небольшой работы, но это не сложно. У них даже был довольно хороший пример веб-сервера. У них также есть поваренная книга SCT (чтобы понять SCT, нужно немного, но как только вы это сделаете, это действительно приятно), но может потребоваться некоторое время, чтобы разобраться с примерами, а примеры SCT в LPCOpen жалкие. Но установка и запуск чипов NXP того стоит. Я даже провожу немного времени с NuttX (я устал от кода на голом железе ВСЕ время) и lpc4330-xplorer.

В любом случае, удачи в том, что вы выберете.

Вот мои варианты:

  • Много операций ввода-вывода, но медленная скорость приемлема? Сгруппируйте AVR. Я пробовал использовать SMBus по линиям I2C, и это, по крайней мере, приемлемо.
  • Нужна скорость? Серия ATSAM хорошо сочетается с корпусами TQFP100 и TQFP144. У нас есть Arduino SAM3X8E в Arduino Duo. У ATSAM также есть MII/RMII, но интерфейсный чип может быть сложным. Если вы хотите прочитать строку ATSAMA5 и подумать еще раз, Allwinner A20, вероятно, превзойдет ее.
  • Больше скорости, мультимедиа, наверное поддержка линукса? Поскольку я из Китая, очень интересен конкретный отечественный производитель: Allwinner. Их SoC Cortex-A7, двухъядерный A20 за 5 долларов и четырехъядерный A31 за 10 долларов, а также восьмиъядерный процессор big.LITTLE Cortex-A15/7 SoC A80 за 20 долларов, все с респектабельным встроенным графическим процессором с поддержкой OpenGL и OpenCL, несмотря на то, что в корпусах BGA, достаточно хороши для Android-планшетов среднего и высокого уровня, более чем достаточно для полноценного Ubuntu Server, несколько демонов сжигают графические процессоры, обрабатывая числа, маршрутизируя пакеты со скоростью линии 1 Гбит/с или управляя двумя 1080P или Дисплей 4К.