Посоветуйте микроконтроллер

Здравсвтвуйте!

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

Что за устройство, распространяться не буду, но оно требует OpenCV (библиотеки для обработки видеоизображений) и много выходов(но это, я так понимаю, можно смоделировать через SPI). Писать я буду на С.

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

Какой можете посоветовать?

С уважением,
Саня

P.S. Понимаю, что вопросы глупые, просьба не пинать — новичок. Какую литературу по микроконтроллерам/процессорам(в чём отличие одного от другого?) вы можете предложить?
  • -2
  • 23 июля 2012, 09:49
  • asiniy

Комментарии (102)

RSS свернуть / развернуть
оно требует OpenCV
Обработка изображений на микроконтроллере? Тогда возьмите что нибудь типа Raspberry Pi.
+3
Спасибо, посмотрю в эту сторону.
0
что-нить из процессоров Cortex A8, Cortex A9 или Cortex A15(Freescale imx5 imx6, TI sitara, Ti da vinchi вообще для обработки видео заточены)
0
  • avatar
  • AcA
  • 23 июля 2012, 10:47
А в чём отличие микропроцессора от микроконтроллера?

Просто wikipedia таким языком объясняет, что не понять. Если на пальцах, то в том, что процессор делает логические операции, а контроллер — это процессор и приделанная к нему периферия?
0
В задачах. В Целом у микроконтроллера больше периферийных устройств сразу на борту.
0
МК — это маленький полноценный компьютер, обычно использующийся для управления сложными устройствами.
Не знаю почему все кричат про периферию. Это лишь дополнительные свистоперделки, которых в принципе может в МК и не быть.
0
если откусить от мк периферию — то по сути получится процессор. Разве что со встроенной флэш и оперативой (если она есть). А компьютер это и есть по сути процессор с периферией… Так что все правильно про периферрию говорят.
0
Системная память — это уже периферия? Совсем печаль… Хоть бы вики открыли…
A peripheral is a device connected to a host computer, but not part of it. It expands the host's capabilities, but does not form part of the core computer architecture
0
я ж нарисовал смайлик… :)
0
Только если следовать этой цитате, что Вы привели — то на МК вообще периферии нет.
Периферия — это устройство ввода-вывода. При этом оно не обязательно выглядит в виде отдельной коробки. Это отдельный функциональный блок. Который кстати к ядру МК тоже никакого отношения не имеет, если цепляться опять же за приведенную цитату.
0
Периферия — это дополнительные устройства, не образующие ядро вычислительной системы.
Память, шины, АЛУ, регистры — основные устройства.
АЦП, USB, таймеры, шимы — периферия.
0
а я про что?
0
если применительно к памяти, то она необязательно на борту, тем более у процессоров. Потому я и утрировал про шины…
0
А вы говорите «МК — это процессор+периферия». Бред же.
МК — это во-первых, небольшое (микро) устройство для управления (контроллер), во-вторых — полноценная вычислительная система. Набор дополнительных устройств (периферия) никаким боком сюда не относится.
0
Я забыл добавить что все это на одном кристалле. Но это вроде и из контекста понятно.

Если периферия никаким боком сюда не отностится, то о чем тогда данная цитата из реф-мануала от ST:
1.3 Peripheral availability
For peripheral availability and number across all STM32F10xxx sales types, please refer to
the low-, medium-, high- and XL-density STM32F101xx and STM32F103xx datasheets, to
the low- and medium-density STM32F102xx datasheets and to the connectivity line devices,
STM32F105xx/STM32F107xx.
или такая фраза:
AHB to APBx (APB1 or APB2), which connect all the APB peripherals
?
Наверное инженеры в ST чего-то попутали…
0
Память, шины, АЛУ, регистры — основные устройства.
АЛУ и регистры скорее составляющие части процессора. А шины и вовсе не устройство, а соединения устройств. Устройствами являются разве что контроллеры шин.
А периферия — это все, что не является процессором и памятью программ/данных (тот же EEPROM хоть и память, но уже периферия).
0
Не совсем верно. Согласно этой статье,
According to the most technical definition, the only pieces of a computer NOT considered to be peripherals are the central processing unit, power supply, motherboard, and computer case.

Очевидно, речь не о микроконтроллерах. И уж если на то пошло, ОЗУ не в списке «Не периферии».
0
Главное — это строчка, которую я привёл. Есть ядро системы, а есть дополнительные устройства — периферия.
Дальше уже идут домохозяечные рассуждения про системные блоки, и подключаемые к ним девайсы.
0
Дело в том, что вы правы конечно, но почему вы отделяете периферию от МК? (заметте, я сказал от МК а не от ядра)
0
Вопрос стоял так — «что такое микроконтроллер». Признаки у МК следующие:
1. маленькое.
2. устройство для управления.
3. содержит вычислительное ядро.
Всё. Остальное — детали конкретной реализации.
0
А я бы сказал «содержит вычислительное ядро и периферийные устройства». Опровергнуть можете?
0
пункт 2 как раз и подразумевает наличие периферии, т.к. не имея ее Вы не сможете ничем управлять. А вот состав этой периферии уже относится к деталям конкретной реализации
0
В больших контроллерах как раз никакой периферии нет. Втыкается в панель сам контроллер, рядом ставятся нужные блоки ввода-вывода. Управляет чем угодно.
0
большой контроллер не попадает под понятие микро…
0
А при чем тут какие-то «большие» контроллеры? Речь, насколько я помню, о микроконтроллерах. Давайте обратимся к Вашей любимой Википедии.
«Микроконтро́ллер (англ. Micro Controller Unit, MCU) — микросхема, предназначенная для управления электронными устройствами. Типичный микроконтроллер сочетает на одном кристалле функции процессора и периферийных устройств, содержит ОЗУ или ПЗУ.»
Не сочтите за хамство и дерзость, но здесь, по-моему, определение однозначно.
0
Ключевое слово — типичный. Типичный контроллер так сделан, потому что так удобно и эффективно. Однако никто тебе не запрещает сделать и по-другому. И это всё равно будет контроллер.
Если во всех современных домах есть окна — это не значит, что в доме обязаны быть окна.
0
Это уже несерьезно. Давайте теперь по исключениям шариться. Человек спросил — «что такое микроконтроллер?»
Ему ребята объяснили в общем случае. Потом пришли Вы, свысока всех их обозвали умниками, а теперь, когда Вас посадили в лужу, пытаетесь выкручиваться. Нужно уметь проигрывать спор.
0
Да ладно, просто Lifelover сегодня не в духе… Не будем докучать человеку… :)
0
Да я и не хочу докучать. Без обид, если что. =)
0
Заблуждайтесь дальше. Может когданить научитесь отличать общий принцип от деталей реализации.
0
Я буду только рад перестать заблуждаться: назовите мне современные МК без периферии. Совершенно голые.
А также давайте проанализируем их используемость в современной радиогубительской практике и применимость в данном случае (в случае автора).
Вас же не просят дать классификацию МК. Речь — о самом общем случае.
0
Совершенно верно! Разночтения-то у нас похоже не в понятии «периферия» а в понятии «вычислительное ядро».
0
Тут может накладывать отпечаток еще и то, что микроконтроллерами иногда называют готовое контроллерное устройство для управления чем-либо, а не сам чип. Из-за этого возможна путанница в понятиях при общении например заводского инженера эксплуатационщика и разработчика на МК. Потому как для разработчика МК — это чип, а для заводского инженера МК — это вся коробка (ну маленькая ведь).
0
Как и «микросхема» — кому чип, а кому и целая плата =)
0
Ну, во первых, не маленькое, а однокристальное.
Во вторых, периферия — ключевая часть именно для управления. Иначе это будет однокристальный компьютер. Я сомневаюсь, что МК без периферии (хотя бы GPIO) вообще есть. Собственно, само понятие МК возникло с первыми МК от интела, которые имели GPIO, таймеры и UART.

С твоим же определением в ту же кучу попадают однокристалки, СоКи и одноплатники. Хотя в принципе, все это понятия достаточно близкие с размытыми границами между ними.
0
А можно пример современного МК, не содержащего периферийных устройств?
0
И что тебе даст этот пример? Нельзя частным случаем доказать общее.
0
Во-первых, не «ты», на брудершафт не пили.
А во-вторых, ВСЕ современные МК содержат периферийные устройства. Так что можете прекращать умничать.
0
Вот структурная схема старого доброго ATMega8/8L (даташит стр. 3):


То, что помечено «AVR CPU» — вычислительное ядро, остальное по отношению к нему — периферия. Контроллер SRAM относится к ядру, сама память — не относится. Я надеюсь, теперь все встало на свои места. Легко смогу найти аналогию для платформ, к которым есть даташит в публичном доступе, если будет угодно.
0
Нда. Подскажите, можно ли изображение под кат запихать?
0
в комментах нет. Только если дать ссылкой, но уже поздно :)
0
Буду знать, спасибо =)
0
Видимо, под периферией подразумевается также встроенная память разного рода, система тактирования и сброса, супервизор питания и прочие жизненно важные вещи.
0
По большому счету оно к периферии и относится. Ту же шину данных и адреса вполне можно к устройствам ввода вывода отнести :)
0
Парни, под периферией я имел ввиду всякие там usb-выходы, места для батареек и выводы.

Так что микроконтроллер — это процессор с прикрученной «периферией». Так?
0
В общих словах — да. Но тут под периферией все же понимаются модули, находящиеся с процессорным ядром на одном кристалле.
0
Это как — на одном кристалле?
0
Прочти вот это. Должно внести некоторую ясность в терминологию.
0
Некоторую — да.
0
Микроконтроллер — это маленький компьютер, как правило содержащий дополнительные устройства — периферию. Предназначен для управления разными устройствами.
Процессор — это лишь часть любого компьютера, наравне с системной памятью, шинами для обмена данными между составными частями, и другими основными компонентами архитектуры.

В общем, не слушай этих умников…
0
Умники говорят тоже самое только более умными словами :)
0
Микропроцессор — это процессор на одной интегральной схеме.
Процессор — устройство, собственно выполняющее программу.
Микроконтроллер — микросхема, содержащая самодостаточный однокристальный компьютер (процессор, ОЗУ, память программ) и периферию, ориентированная на встраивание в другие устройства в качестве системы управления.

А вот то, что тебе предлагают — это система на кристалле (СнК, SoC). Похожа на микроконтроллер, но предназначена для вычислительных устройств, а не встраивания. Именно SoC'и называют «процессором» применительно к смартфонам, планшетам и подобным мобильным устройствам, по аналогии с ПК. Технически от МК отличается отсутствием на кристалле памяти, гораздо более мощным процессорным ядром и другим набором периферии (т.к. задачи другие).

Сами по себе СнК для любителей в большинстве своем бесполезны из-за корпусировки (большая часть SoC — BGA, часть из оставшихся требует память в BGA, к тому же их фиг достанешь в единичных экземплярах), поэтому смотреть стоит сразу на готовые платы (одноплатные компьютеры) на них, которые уже перечислили — raspberry pi, beagleboard, friendlyarm и прочие.
+1
И ещё такие вопросы:
1) AVR и Atmega (стоит на моей arduino) — одно и то же?
2) В чём отличие ARM от AVR?
0
1. Atmega-- подсемейство чипов архитектуры AVR.
2. В архитектуре. Глобальные.
0
Выбирай из двух: либо Ruby, либо МК.
0
Автор говорил, что собирается писать на С.
0
зачем ставить вопрос Либо/Либо? Никто не мешает разбираться и в том и в другом. Наоборот полезно для головы.
0
Не понял суть вопроса.
0
Это не Вам. Это ответ на коментарий Coocos
0
Да я понял, просто не туда тыкнул «ответ».
0
автор, слишком требователеные задачи…
тут обычные мк не потянут
погугли friendlyarm, beagleboard, beaglebone, pandaboard
там линух можно ставить :)
0
Благодарствую. Как я понял, это — тоже самое, что Raspberry pie, да?
0
Угу. С поправкой на то, что архитектура, схема, разводка и прочее полностью открыты (во всяком случае применительно к beagle). Вот так на вскидку я бы посоветовал beaglebone, она лучше приспособлена для добавления собственной периферии, IMHO.
0
Raspberry Pi ж вроде тоже открытый?
0
Частично. В FAQ на сайте «малины» есть такая заметка:

What hardware documentation will be available?

Broadcom don’t release a full datasheet for the BCM2835, which is the chip at the heart of the Raspberry Pi. We will release a datasheet for the SoC which will cover the hardware exposed on the Raspi board e.g. the GPIOs. We will also release a board schematic later on.

Как я это понял: документация будет по всему, что можно выжать из одноплатника, не изменяя его схемы. На BCM2835 есть даташит в публичном доступе, но мне сложно судить, насколько он полон.
0
Схематик и недошит уже есть.
А полных доков и сорцов и на OMAP нет, AFAIK — по крайней мере на GPU-часть.
0
Кстати, дай линк на даташит, который в публичном доступе. Или это и есть тот, который выложили raspberry pi, на «exposed hardware»?
0
0
Да, это он и есть.
0
И да, про GPU там вскользь.
0
Интересно, существует ли возможность программировать микроконтроллер сразу на Ruby или на Python например?
0
Теоретически, это возможно, с определенными ограничениями. Например, существует интерпретатор Python, пара слов о нем есть здесь.
0
Ruby Arduino Development — rubyforge.org/projects/rad/

Пишешь на С, потом интерпритирует
0
Наоборот же! Пишешь на Ruby, а он интерпретирует в код на C =)
0
Тьфу, да!
0
… если для примера, то можно и на Java STM3220G-JAVA Starter Kit, Custom Java Platform
0
Почему бы и нет? Портировать, например, tinyrb на жирные STM32 :)
Я одно время портировал tinyrb на младшей Discovery, но, к сожалению, так и не довел начатое до конца.

Кстати, а если брать микропроцессоры, тот же ARM9 или Cortex-A*, то поставил туда Linux и пиши хоть на MRI, хоть на Rubinius, хоть на JRuby :)
0
Все же рекомендую обратить внимание на платы с линуксом на борту (хоть тот же Raspberry Pi): с ними значительно проще начать работать. Можно, конечно, с нуля начинать к микроконтроллерам подходить, но тут предстоит усвоить очень много новой информации, посвятить этому уйму сил, времени и, вероятно, денег. К этому надо быть готовым.
0
А денег почему?
0
потому что для более-менее продуктивной работе с МК желательно иметь хотя бы минимальный отладочный комплект (типа Пинборда), т.к. он экономит кучу сил и времени. Ну и постепенно вместе с ростом задач/запросов растет количество различных прикладных и измерительных приборов типа осцилографов, паяльных станций и т.д.
0
Так этож тысяч 5-6, не более. Не?

Я уже купил такую вещь: amperka.ru/collection/Gotovye-nabory/product/matryoshka-z
0
аппетит приходит во время еды. :)
В качестве отладочного комплекта матрешка вроде пойдет
0
Ещё такие вопросы.

1) elbase.ru — не кидалы? Хочу у них закупиться.
2) M74HC595B1R подойдёт для SPI? Его можно воткнуть в плату расширения?
Что говорят все эти цифры/буковки? Файл справки от производителя даёт ответы, но полную закономерность мне не понять…
0
Я на базах закупался. Все неплохо, но не самые дешевые и фактическая цена может отличаться от заявленной на сайте.

595 нормально работают по SPI. На счет платы расширения не скажу — не знаю.
0
Спасибо.

Плата расширения — вот такую имел ввиду: amperka.ru/collection/Melochyovka/product/Breadboard
На elbase: elbase.ru/products/search/wbu-202 на 200р. дешевле.

Разница есть, но не всегда в сторону увеличения.

Ultrin, а какой интернет-магазин(магазин в СПб) самый дешёвый?
0
Прими во внимание: на Arduino нет порта OpenCV.
0
Да я понял уже, что это не тру =)

Всёж надо с чего-то начинать, правильно?
0
Для развлечения и обучения Arduino очень даже вариант.
0
Тру/Не тру — дело субъективное =)
Просто насколько я понял из прочитанного, кроме как на производительных платформах с линуксом собрать OpenCV не выйдет.
0
Кстати, не будет считаться за спам, если я буду выкладывать в сообщество свои поделки на arduino? (Когда они будут, конечно)
0
Если что-то интересное будет, то выкладывай конечно :)
Но вот про мигание светодиодами не надо. Здорово будет если про свои проекты на OpenCV расскажешь.
0
Я про мигание светодиодов выложу в середине августа, если выложу. Оно мигать так будет, что офигеете (если всё получится)
0
На счет магазинов СПб не знаю. Я не оттуда.
Сам последнее время тягаю детальки с E-bay и Aliexpress. Но тут кому что прощще. В наших магазинах надо закупать сразу кучу всего, чтоб стоимость доставки хоть как-то себя оправдала. А оттуда я тягаю по одной-две позиции неспешно, как деньги появляются.
0
годный наброс, столько насрали только чтобы узнать отличие мк от процессора
+5
… +1 :)
+1
Какой можете посоветовать?
… а скока у Вас денег :)
0
Тысячу долларов поидее могу скинуть.

Больше — не уверен.
0
На FrendlyARM OpenCV работает. Это уже проверенно. Но говорю сразу, ничерта сложного ты на нем не сделаешь. Там камень слабоват. Если нужна высокая производительность, то это уже к новым многоядерным кортексам. Но я вижу у тебя знания около нуля, так что не суйся.

Идеальный вариант. Бери доску с Atom. Там будет работать все, что нужно. Да и с производительностью по проще будет.

Порог вхождения ~500$. Если денег нет, то и не надейся. Хотя можешь взять планшес с атомом и возиться.
0
  • avatar
  • a9d
  • 24 июля 2012, 00:00
500$? Я могу за 500 баксов и нетбук купить…
0
Гм. Ты хочешь отладочную доску или нетбук? Если вопрос стоит так, то лучше оставь эту идею.
0
за 500 баксов он и правда может купить мощный бук с кучей памяти и прилепить фт2232 или типа нее для реализации гпио
0
Кстати, парни. Ни у кого нет инвайта на хабрахабр? А то мне бы не помешал в ближайший месяц-два.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.