Какую встроенную платформу (микроконтроллер) можно
Я программировал с 8 бит PIC в течение довольно долгого времени, но теперь нужно перейти к чему-то более мощному.
Я хотел бы, чтобы семейство чипов:
- Я могу получить хорошую (бесплатную) IDE для
- Паяльные пакеты, QFN или аналогичные (arm9 out)
- Хорошо масштабируется - некоторые из моих проектов потребуют небольшой чип для PWM/переключателей и т.д., но мне в конечном итоге хотелось бы запрограммировать цветной сенсорный экран TFT LCD с графическими виджетами, не имея необходимости снова изучать новую платформу! (для больших чипов ARM7TDMI для этого достаточно лошадиных сил?)
Любые советы/советы, которые очень ценятся.
Ответы
Ответ 1
Появилась интересная новая волна mcu: s с ядрами ARM Cortex-M3, M1 и M0, которые сейчас попадают на рынок. (Игроки Cortex mcu сейчас выглядят как ST, NXP и Atmel).
И STM32, может быть, интересный выбор для начала. Для разработки вы можете использовать gnu toolchain, OpenOCD и cheep jtag.
На самом деле это очень похоже на toolchain/workflow, поскольку ARM7...
Как IDE, некоторые используют Eclipse.
Небольшое примечание. Мои предложения, приведенные выше, основаны на инструментах с открытым исходным кодом, поэтому нет блокировки вендора.
Вы должны иметь возможность переключаться между M3, M1 и M0 mcu с той же инструментальной цепочкой,
если вы внимательно относитесь к различиям между ними.
Поэтому, чтобы начать с mcu на основе M3 и узнать, что ядро ARM Cortex может быть хорошей идеей.
И даже ты не так много M0 mcu: s там сегодня, я думаю, мы увидим их довольно много в будущем.
Но так как большинство клиентов можно найти в электронной промышленности с большим объемом, форм-факторы, которые могут быть припаяны вручную, вероятно, не будут такими распространенными. На самом деле это была одна из причин, почему я начал с дешевой панели заголовков.
И последнее, поскольку мы говорим о 32-битном mcu в той же ценовой шкале, что и 8-битные mcu: средний или большой размер, вы получаете гораздо больше энергии за те же деньги.
Ответ 2
Рассмотрим устройства на базе ARM Cortex M3. Это дает преимущество, заключающееся в том, что вы не привязываетесь к одному поставщику, поскольку ядро Cortex M3 лицензировано для многих поставщиков, а ARM является самой распространенной встроенной архитектурой на планете. Cortex-M3 заменяет архитектуру ARM7 и является значительным улучшением.
Части варьируются от младших деталей от подобных Luminary, предназначенных для использования в приложениях, традиционно занятых 8-битными с более мощным 32-битным ядром, до более дорогих устройств с большой встроенной флэш-памятью/SRAM и многочисленными периферийными устройствами, такими как USB, Ethernet, Драйверы CAN, LCD, контроллеры внешней памяти и т.д.
Из множества поставщиков можно выбрать буквально сотни компонентов с одинаковой архитектурой и поддержкой одинаковых цепочек инструментов, включая GNU/GCC. Части с достаточным объемом памяти или интерфейсами внешней памяти могут даже загрузить Linux, если вы чувствуете необходимость (uCLinux - примечание к приложению), и доступно любое количество ядер RTOS, как бесплатных, так и коммерческих.
Ответ 3
У нас есть хорошие впечатления от устройств Atmel, таких как AVR. Там есть бесплатная IDE, называемая AVR Studio, которая неплоха.
Ответ 4
TI MSP430 имеет ряд преимуществ:
- может быть запрограммирован с mspgcc в кодовых блоках,
- 16 бит,
- хорошо масштабируется с помощью небольших и больших чипов,
- поставляется в паяльной упаковке.
Ответ 5
Если вы хотите остаться в 8-битных семьях, попробуйте использовать микроконтроллеры AVR. Большим преимуществом является бесплатный и очень хороший компилятор AVR-GCC (WinAVR для Windows).
Однако вы также можете рассмотреть архитектуры ARM. Вероятно, чипы ARM7TDMI - лучшее решение для кого-то из 8-битного мира. Эти чипы используются в iPod и других mp3-плеерах - они определенно соответствуют задаче, которую вы описываете. Они могут даже запустить версию Linux (ucLinux).
Многие производители выпускают чипы ARM7TDMI: серии ATMEL AT91, серии NPC (Philips) серии LPC, серии STM STR. Компилятор GCC для ARM очень хорош. Он может быть интегрирован с Eclipse (см. YAGARTO, например). Для отладки доступны недорогие инструменты и комплекты. Посмотрите Olimex. Вам понадобится некоторое время, чтобы настроить свои инструменты (toolchain, IDE, JTAG-отладчики). Если вы готовы потратить немного денег, есть много коммерческих решений, которые сэкономят вам много времени и облегчат вашу жизнь.
Я не знаю, используете ли вы C уже, но если нет, вам абсолютно необходимо изучить его сейчас. Вы не можете совершить прыжок без него.
Ответ 6
На самом деле, я думаю, что архитектура AVR не настолько мощная, как PIC. Мы использовали ATMEGA128 для управления монохромным сенсорным дисплеем 240x80. Он работает, но я не рекомендую это делать. Переходите к чему-то большему с большим количеством бит.:)
Если вам нужен настоящий графический интерфейс с виджетами, я не думаю, что получить что-то вроде этого, работающего с 8-битным, стоит того. Помимо этого, я не думаю, что средний встроенный программист сможет справиться с этой задачей.
Я думаю, что я бы пошел на готовый модуль с 64 + МБ ОЗУ и 32 бит (или ARM Thumb2) для управления цветными TFT. Вероятно, большинство 32-битных контроллеров не входят в паяемые пакеты. Dunno, если вы можете припаять BGA с горячим воздухом, тем не менее.
Ответ 7
Если вы уже знаете 8-разрядные ПОС, то переход на их 16 или 32-разрядные ПОС позволит вам использовать все те же IDE/компилятор/программатор/отладчик, которые вы использовали для использования.
Microchip предлагает чипы с особой поддержкой для ЖК-дисплеев, управления двигателем (PWM) и (конечно) переключателей. Проверьте плату Explorer 16.
Ответ 8
Propeller микроны выглядят так, как будто они могут быть хорошими. У них есть другой подход, чем другие небольшие процессоры (все они работают одновременно с несколькими ядрами), и в зависимости от вашего приложения они могут быть только билетом. Там также доступно хорошее количество кода, и похоже, что их инструментальная цепочка доступна для бесплатной загрузки.
Высокая степень parallelism может быть немного трудна в работе с первой попыткой, но после того, как у вас это получилось, это очень приятно (я никогда не работал с Propellers, но я Ранее мы работали с небольшими массивами преобразователей INMOS, которые также создают сильно параллельную среду.)
Ответ 9
Я был в аналогичной ситуации (кроме того, что у меня нет свободного требования к компилятору).
Является консультантом R & D для индустрии медицинских изделий. Я использую 8-разрядные ПОС в течение длительного времени. Однако некоторые из моих проектов стали большими и более сложными, и мне нужен был более мощный uC или небольшой одноплатный компьютер. Я перешел в семейство LPC2000 (ARM7) с компилятором IAR и построил свой первый инструмент на базе LPC2368.
Самый маленький контроллер семейства LPC2000 - 48-контактный, и для него требуется небольшое количество внешних схем. Итак, для миниатюрных проектов я буду продолжать использовать ПОС.
Ответ 10
Я предполагаю, что вы знаете о линейке продуктов Arduino? http://arduino.cc
Он по-прежнему 8 бит, но у него есть IDE, и вы можете купить/сделать "экраны" для добавления дополнительных функций, например, Ethernet, ЖК-дисплеи, светодиоды, контроллеры мотора, аудио и т.д. И т.д.
Я использовал следующее "Цветной ЖК-дисплей и экран джойстика для Arduino"
http://www.nuelectronics.com/estore/index.php?main_page=product_info&cPath=1&products_id=10
(источник: nuelectronics.com)
Ответ 11
Я перешел на 16-разрядный микрочип dspic (я использую dpic 33Fja64mc510 и mc804, а также pic18F67j60 для нескольких небольших устройств с поддержкой Ethernet)
Преимущество:
- многие диапазоны доступны от одного и того же поставщика, которые можно использовать с одной и той же инструментальной цепочкой. (MPLAB/C30). комбинированные платы разработки и предложения поддержки, все под одной крышей. Поскольку uc-программирование - это только побочный бизнес для меня (5-10% случаев), это важно для меня.
- много периферии (2 uarts, 2 spi/i2c PMP, таймеры 6/8 и т.д.).
- Мне понадобилось оборудование квадратурного кодировщика.
- решение для одного чипа для большинства. Нет необходимости использовать плунжер или флеш-память. Кристалл, сила + сила и идите. хорошо для спецификации.
- доступны относительно высокие устройства pincount.
минус
- несмотря на то, что в прошлом году он был на дорожной карте, все еще нет 16-битного чипа со встроенной сетью Ethernet.
- детали MC с высоким pincount не обновляются с некоторыми другими недавними позитивами (RTC, периферийный pinselect). Какой афайк также был изначально на дорожной карте.
Как-то кризис или PIC32 привели к задержкам на 16-битных строках.
Ответ 12
Я знаю, что вы сказали, что AVR недостаточно мощным, но исходя из ваших требований (управляя сенсорным экраном и имеющим графические виджеты), на самом деле это: http://rossum.posterous.com/avr-homebrew-device-with-iphone-aspirations
Конечно, даже этот парень предлагает получить Arm Cortex-M3, поэтому, возможно, что-то вроде этого будет больше того, что вы ищете: http://www.sparkfun.com/commerce/product_info.php?products_id=8559
Ответ 13
В зависимости от ваших требований вы можете посмотреть .NET Micro Framework и устройство, такое как одна из плат от DeviceSoutions.net (есть несколько других, но это единственный бренд, который я использовал.)
Эта платформа хороша для простых интерактивных дисплеев, но в настоящее время не работает как ОС реального времени. (Я только использовал .Net Micro Framework 2.0 и 3.0 более новые версии и аппаратные средства, возможно, разные.)
Моими частями этой настройки микроконтроллера была возможность использовать С# и .Net для разработки встроенных проектов. Что касается бесплатной IDE... это отлично работает с Visual Studio Express.
(и нет, я не работаю ни для Microsoft, ни для DeviceSolutions.Net... Я просто поклонник платформы)
Ответ 14
Добавив свои собственные два цента, вы также должны сузить свои критерии с помощью поддержки микроконтроллера. Я работал с AVR, PIC и ARM. В ARM я специально использовал LPCxpresso. Переход от Arduino к PIC был неплохим, поскольку PIC имел хорошую поддержку. То, что я нашел сложным, переместилось на LPCxpresso, поскольку там не было поддержки сообщества, например, сообщества LPCxpresso. Существует поддержка, но вы также должны думать о том, сколько поддержки мне нужно, когда я застрял в конкретной проблеме, хочу ли я ее использовать, или я хочу, чтобы он поддерживал онлайн-сообщество?