На какое семейство камней (8 или 32 бита) бросить силы хоббисту?

Проголосовало: 203 | Воздержалось: 35

Использую МК для себя в хобби. От изучения кучь даташитов удовольствия не получаю. На данный момент работал лишь с 8б AVR-ками (кодинг под PC не в счет). Подбираюсь к STM. Пока что на 1 месте stm32. Цены на них практически = 8ми-биткам. Минусы: все же дороже, чем 8; корпуса сложнее к запайке. Плюсы: 32 бита со всеми вытекающими. Как 3 вариант: изучение и 8, и 32. Но тратить время на оба смейства не хочу. Кто что скажет? Без холиваров, по существу.

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

RSS свернуть / развернуть
Наиболее важно следующее:
— наличие выбора сред разработки / средств отладки (думаю, прикупить J-Link китайский)
— наличие готовых библиотек (да, я не очень люблю тратить время на изобретение велосипедов)
— простота освоения (толерантность камня к ошибкам кодинга)

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

По мне так ответ вроде как очевиден. Но те, кто уже успели пощупать особенно оба семейства, уверен, знают гораздо лучше. Вот к вам и взываю, о великие первоиспытатели! :) Спасибо!
0
LQFP корпуса у них почти одни и те же, паяются они одинаково легко. Плюс за STM32 — наличие полноценных опенсорсных средств разработки, большие объемы памяти и высокая производительность. Это дает возможность замахиваться на довольно сложные задачи, а в более простых не забивать себе голову экономией каждого байта прошивки или памяти.
+1
  • avatar
  • evsi
  • 16 марта 2012, 06:10
Большое спасибо за мнение!
0
По большому счету, большой разницы между разными МК нет. По строению они все аналогичны (процессорное ядро, память и периферия, управляемая через регистры в одном из пространств памяти). Ассемблер не особо нужен, но при необходимости набор команд конкретного ядра можно изучить весьма быстро, благо во всех МК нынче ядра RISC. На С особой разницы между ядрами вообще нет.
Несколько другое дело — периферия. Она разная и тут придется почитать даташит. Но на нее даташит и так нужен практически каждый раз — запомнить можно только несложную периферию, с которой постоянно работаешь. Нынешние МК — не 8051 с десятком регистров на всю периферию и упомнить тучу регистров и битиков малореально. Но все же, именно ознакомление с периферией (и ее багами) и есть большая часть освоения МК.
По этим причинам я интересуюсь сразу всеми распространенными семействами.
В голосовании, однако, выбрал STM32. Осваивать желательно начиная с того, что неплохо документировано, к тому же STM32 имеет и приличный запас на будущее. Плюс тулзы для нее (тот же J-Link) применимы и с другими армами. И на них есть GCC. Дополнительный плюс — по периферии STM8 и STM32 родственны, так что при желании применить STM8 его будет достаточно просто освоить — разве что программатор купить потребуется.
— простота освоения (толерантность камня к ошибкам кодинга)
Сомневаюсь, что такое бывает. Да и к тому же, толерантность — напротив, плохо при освоении. Зато STM32 имеет отличную аппаратную отладку, что сильно упрощает ловлю ошибок.
+2
  • avatar
  • Vga
  • 16 марта 2012, 06:10
Да, согласен, в общем-то, большое спасибо за мнение!
0
если хобби, то однозначно stm32 -> огромные перспективы у ARM очевидны. Если МАССОВОЕ ПРОИЗВОДСТВО дешевых, простых изделий, то stm8.
www.compel.ru/infosheet/ST/STM8S003F3P6/
9 рублей за контроллер…
0
Вот примерно так же сам я и думаю, но решил на всякий спросить. Спасибо за мнение!
0
Простите, но я вот совершенно не понимаю языковой конструкции «изучение МК». И давно не понимаю: с того времени как перешел с ассемблера на 8051 на С под тот же 8051. После было несколько архитектур, но шишек, как на 8051, что-то не набивал. Весь геморрой сводился к первоначальной инициализации МК и коду, абстрагирующему от железа, дальше уже правила алгоритмистики и особой привязки к железу нет.

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

В общем куда не глянь, для дома для единичных поделок брать любой кортекс-Мх и не обязательно стм32.
0
А под 8051 еще кто-то пишет?
0
Китайцы, всем своим количеством.
+2
Вы не поверите…
0
Даешь Silab!)
0
TI пишет… :-) У них стек ZigBee написан под 51. Вернее ZNP(сетевой процессор) под 51.
0
Вот именно, и не только TI, многие контроллеры RF, USB и т.п. имеют ядро на 8051, так что его рано списывать, если конечно хочется делать дешевые, маленькие и оптимальные штучки ;-).
0
51-е — самые распространенные восьмибитники, ни микрочип, ни атмел так и не смогли с этим ничего поделать, хотя и отгрызли изрядную долю рынка. Подозреваю, они помрут вместе с восьмибитниками как таковыми…
0
А то глядишь как Ленин… Жили, Живы, Будут жить! :-)
0
Опа, меня немного неправильно поняли или сам неверно спросил…
Кто-то из присутствующих, как хоббистов или как инжнеров что-то делает на 8051? Если да, то на Силабс, Атмел, ект..?
0
техасовские СС2ххх тоже вполне себе на 51-ом ядре…
0
Ну не всем и не все так легко дается :) Вместо «изучения МК» можно поставить «освноение МК». Нет, я конечно понимаю, что сущетсвует, наверное, такой уровень, при котором пересесть с одного МК на другой — это пол часа + чашка кофе. Но я такого уровня не достиг, да и не достигну скорее всего — задачи не те :) И цель такую перед собой я не ставлю.
У меня это исключительно для развлекалочки, для удовольствия. Причем удовольствие я лично получаю именно от того, что собрал какую-то полезную штуку и она работает. А не от того, что я разобрался с МК, смог его запрограммировать и т.п. Поэтому я не отказываюсь никогда от использования чужих кусков кода, когда это возможно, или тем более библиотек, вместо того, чтобы писать свои. Да, возможно для многих тут мои слова покажутся ересью, мол: как он вообще может такое говорить! =) Но вот так оно есть.
Причем заметьте, это не значит, что я отказываюсь от работы: от изучения, курения даташитов и т.п., я не прошу сделать все за меня (никогда не просил написать за меня кусочек кода или еще что-то подобное). Если есть что-то готовое и свободно доступное — использую, если нет — сделаю сам.
Но что-то я отвлекся :)

Но в общем и целом вы совершенно правы. Ну или мне так кажется.
+1
пересесть с одного МК на другой — это пол часа + чашка кофе
Я людьми подобной квалификации не знаком… Но за пару дней — неделю переписать нижний уровень и сделать поправки в логике программы, если надо — это очень многим вполне под силу…

У нас код делится на три группы:
hal — привязка к МК и его периферии, тут же привязка к текущей разводки платы
devices — привязка к внешним устройствам
algorothm — алгоритм работы
Запрос из внешнего устройства сводится к вызову цепочки функций, располагаемых algorothm -> devices -> hal
Если приучить себя писать так — то переход на новый МК повлечёт переписывание меньшей кучи кода
да и привязывать чужой код («библиотеки») проще. Минус — то, что код не особо оптимален.

Кроме того, к сожалению, текущие МК заставляют читать эрраты чуть ли чаще чем даташиты
0
В том и дело, что далеко не у всех и не всегда неделя эта имеется, а поковырять хочется. Конечно можно возразить: ну растяните на месяц, пол года. Тоже вариант, но в таком случае часто интерес и вовсе пропадает :( Я не утверждаю, что мое отношение — верное. Но какое уж есть.

А за советы в любом случае спасибо!
Я под PC когда пишу, всегда на уровни бью, а вот с МК как-то всегда казалось, что уж больно они маленькие для разделения на уровни, имплементации ОС и т.п., хотя сейчас конечно это уже не так, и во многих МК места подо все с головой хватает. Надо действительно просто себя приучить! Вы правы.
0
я помню как как на 286 писал аналог turbo vision, ООП и все дела… а 286 — это 16бит, несколько сотен КБ памяти, до 25MHz. при этом там был нехилый такой стек: биос, msdos и выше еще куча разной белиберды ;)
0
Я тоже извращался — в качестве курсовика (халтурка подвернулась, не себе) писал «Базу Данных» автосалона что ли… С кучей всяких там фишек, типа быстрого поиска, учета авто, клиентов, продаж и т.п. И все это на Turbo Pascal… Аппаратных ограничений особых тогда конечно не было, но все равно было весело. Вопрос один меня мучил — накой задавать в наше время студентам такие курсовики?..
0
Для себя решил так, что то простое или сделанное на коленке — AVR8 (может Xmega дальше)
решения с некоторым будущим и большей производительностью STM32 — из минусов могу отметить
1. Есесвенно корпус
2. Ужасная распиновка периферии и адская ее зависимость друг от друга
3. Мало портов в небольших корпусах — недавно пытался повторить на STM32F103RBT6 (LQFP64) конструкцию сделанную на Mega128 (TQFP64) не хватило 8 ног!
0
Для п.2 ST выпустила программулину для расстановки ножек с учетом различных зависимостей периферии)
0
Возможно что чуть больше специфичных ног в STM32 присутствует. Может попробовать поотключать ненужные спец-ноги и перевести их в режим GPIO? вдруг поможет? Ну и с ремаппингом поиграться.
0
К примеру у меги128 например 2+2 ноги питания у стм32 4+4
0
пардон у Меги 2+3
0
Да, количество ног одинаково, но поскольку ноги потоньше, для обеспечения надежного (не по току, а по помехам) питания их надо больше. IMHO, корректнее сравнивать по занимаемой площади и тут аналогом TQFP64 будет LQFP100, а там портов завались.
0
это да но истоят они подороже
0
Разница скорее обусловлена хотелками конкретного продавца и его источников, чем количеством ног. Для примера только что глянул цену на 103хС: 64 ноги — 45-50грн мелким оптом, 100 ног — 45-55грн таким же оптом. В розницу все еще веселее: 82-83грн за 64 ноги и 63грн за 100 ног. Вот такое вот загадочное ценообразование.
0
Под С — все равно (лучше и те и те). А под асм стм32 однозначно лучше (лучше и те и те:).
0
  • avatar
  • psv
  • 16 марта 2012, 12:02
Вот интересно, кому ж мой опрос в личном блоге не угодил-то?… Чем вообще мог не угодить опрос? =) Удивлен. Это я про минус :) Если я чего нарушил, правила какие, или неписаный кодекс чести — так вы хоть намекните, хоть в комментах, хоть в личку…

Кстати, давно думал, что при минусовании статьи надо ввести необходимое поле для заполнения «причина». Чтобы не просто так минусовали, т.к. минус никакой смысловой нагрузки не несет, а чтобы человек мог прочитать (пусть и анонимное без авторства) но сообщение о том, что же у него в посте/опросе/сообщении не так.

А так, ну минус и что, если я все равно не понимаю, за что мне его поставили. Как ребенка в угол поставить, а за что — не сказать.
+2
у меня для Вас плохие новости
-1
Либо вы меня не поняли, либо просто невнимательно прочли… Я ж написал, мне пофиг если и вообще в минуса уведут. Или совсем уберут эту карму. Не в этом дело. Я хотел обратить внимание на то, что для меня ценно понять, может я реально накосячил. А свои косяки я привык исправлять. Причем тут кармадрочерство? За ним я бы на хабру и пошел, кстати, и начал бы там размещать пачками Ардуино-статьи ;) Но меня там нет.
0
а при чём тут карма? Не ровняйте всех на себя.
+1
Мне не угодил. почему — я уже писал развернутый ответ.
Если бы вы нарушили правила, то это вопрос уже удаления поста/бана юзера. А так я высказал своё мнение «мне не нравится данный пост» собственно для чего +- и существует.
0
В смысле писали ответ на подобный вопрос где-то еще? То есть он уже задавался? Коли так, тогда признаю — виноват и каюсь. Честно говоря, я не поискал, перед тем как опрос разместить.

Ну вот и все, чего я хотел узнать — вопрос решен :)
0
под stm32 больше инструментария — gcc, например. плюс у ST вроде бы унификация неплохая, всегда можно будет на stm8 пересесть. обратное тоже верно ;)
0
  • avatar
  • bzzz
  • 16 марта 2012, 13:20
Ну будем посмотреть, пару камушков заказал уже давненько на пробу. Правда пока не пришли… Сначала надо будет научиться их паять :)
0
у меня уровень в ЛУТ — 0.5 из 10. тем не менее со второго раза сделал платку и посадил на нее stm32f100 за 30 ублей, выводил jtag (под линукс на тот момент не нашел поддержки swd). сразу все заработало…
0
Ну вот и поглядим, как придет :) У меня там в LQFP32, LQFP48 и LQFP64 — так сказать исключительно для тренировки ЛУТа и пайки.
0
тоже прицеливаюсь на LQPP64 — хочу побаловаться с f105, где есть usb host и загручик через usb же.
0
Я не парился, и приобрёл себе STM8SDISCOVERY и STM32F4DISCOVERY, которые обошлись мне в 805 рублей за обе.
Восьмёрки привлекают ценой, ну а stm32 есть stm32. Начал разумеется с последней, пока настраиваю инструментарий. Плюс теперь есть программаторы под обе архитектуры.
0
Честно говоря, не поверите, но у меня такой же комплект :) 32 дискавери уже лежит (ждет времени и сил моих), ну и 8-ая тоже до кучи из терры была заказана, когда надо было заказ добить.
Мне иногда так обидно на свое здоровье, эх, где б набраться сил… Ну да ладно, это оффтоп...
0
Ну и отлично, что переживать? Как пойдёт с 32й, получится что-нибудь рабочее, поднадоест (или появится необходимость мелочь какую-нибудь типа умной мигалки), можно достать восьмёрку и попробовать с ней поразвлекаться :)
0
Вопрошающий, вы энергетический вампир?
0
Ммм? О_о
0
бля. давайте без этого хоть здесь…
+2
Я считаю, следует начать с меньшего, т.е. в Вашем случае с 8-битного МК. Овладев более скудным МК Вы не только научитесь ценить предоставляемые ресурсы такие как память, но и поймёте, что вам действительно необходимо в более мощном МК. Зачем покупать Ferrari, когда нужно ездить только за детьми в школу и за молоком? Банальная нехватка цифровых входов/выходов на младшем МК, используя смекалку и опыт, решается сами знаете как и это не повод прыгать на 32-битные МК.
0
а цена?
зачем высчитывать такты, когда за те-же бабки можно взять гораздо более мощный камень и не страдать херней, а быстро и комфортно реализовать задачу?
хотя спорить не буду — опыт работы с ограниченными ресурсами (превеД, спектрум ;) ) весьма пользителен… ;)
0
хотя… в спеке была просто масса ресурсов. вот ранние х51 с килом флеша, 128байт рамы и одним мипсом на 12МГЦ тактовой — вот это реальный дефицит ресурсов…
0
Такой опыт можно получить при любом количестве ресурсов. Достаточно взять задачу потолще.
0
угу. типа распознавания образов с камеры на типичном контроллере в реалтайме. ))))))))))))))))
0
Я видел, вполне может быть, что даже тут, линк на описание самонаводящейся турели. А там распознавание образов в полный рост, хоть в первоначальном виде и несколько упрощенное.
0
Зачем покупать Ferrari, когда нужно ездить только за детьми в школу и за молоком?
Например, что бы получать удовольствие от езды, а не только перемещать задницу из точки А в точку Б.

Как по мне, то существует куда более весомая причина для того, что бы НЕ начинать с 8-битного МК — отсутствие опенсорсного тулчейна. На фоне этого мифическое «ценить ресурсы» как-то не очень убедительно выглядит.
0
Как по мне, то существует куда более весомая причина для того, что бы НЕ начинать с 8-битного МК — отсутствие опенсорсного тулчейна.
Это если STM8 (но там и ограниченными ресурсами не пахнет, они жирные почти как армы). А вот для AVR, C51 и MSP430 (этот хоть и 16 бит, но по спартанству бюджетная линия переплюнет оригинальный 8051) — вполне есть.
Но в «ценить ресурсы» я тоже большого смысла не вижу.
0
Да, речь об STM8, ведь изначально в топике шла речь именно о нем.
0
Например, что бы получать удовольствие от езды, а не только перемещать задницу из точки А в точку Б.
Наймите шофера и он будет вас катать в ваше удовольствие.
0
Это, как раз, и будет
перемещать задницу из точки А в точку Б
0
В частном случае, когда А=Б, перемещения не происходит и задача вырождается в поездку с целью получения удовольствия.
0
Как бы то ни было, это вполне весомая причина для того, что бы покупать ферарри, даже если в нем нет необходимости, но есть возможность и желание. Совершенно аналогично и с контроллерами. Даже в таймер для экспозиции я лучше поставлю какую-нибудь стм-ку и графический экран, чем буду лепить на аттини с семисегментниками и переживать за каждый байт прошивки.
0
А при этом народ жалуется что «Эклипс тормозит», «Винда много ресурсов жрет», «торрент комп вешает»,…
0
Я описал прямо противоположную ситуацию — избыток ресурсов применительно к задаче. Так что пример неудачный.
0
что-то я не понял. вы рекомендуете покупать ферри что бы не ценить ресурсы, тогда почему не удачный?
0
Смотрим оригинал:
Зачем покупать Ferrari, когда нужно ездить только за детьми в школу и за молоком?
Как не сложно догадаться, я советую покупать то, что нравится и на что хватает средств даже если задача сводится к тому, что бы поморгать светодиодом. Причина предельно проста: это любительское решение, а не профессиональное. И задача стоит получить удовольствие самому, а не удовлетворить заказчика или работодателя.
0
Проголосовал за третий пункт, ибо задачи бывают очень разные.
Если жмёт цена и место на плате, то пока что восьмёрки. (Не далее как сегодня заказал 25 шт. STM8S003F3P6 по 4 грн. штука, на замену подорожавшим и исчезающим из продажи P89LPC921. Разница в цене оказалась пятикратная!)
Армов по полбакса и даже по баксу пока не бывает, в смысле в розницу. И с мелкими корпусами там не очень, QFN разве что. Но вот летом должны выйти STM32F05x, взял на заметку.
0
  • avatar
  • Katz
  • 18 марта 2012, 16:33
Похоже к лету намечается серьезная схватка на этом рынке. NXP тоже готовит к выпуску LPC111x в мелконожечных корпусах (типа SO20/TSSOP20/TSSOP28). Похоже многим ATTiny придется несколько потесниться.
0
В свете выхода на рынок микропотребляющего ядра Cortex-M0+ (Freescale и NXP уже купили на него лицензии) ситуация становится ещё интереснее. Потеснятся MSP430, в частности.
0
Очень интересно было бы увидеть парочку статеек про ассемблер для STM32.
0
А чем статьи psv не угодили?
+1
Не видел, извините. Очень благодарен за наводку!
0
ARM причем stm32 или LPC не имеет значения )

я сам начинал несколько месяцев назад с ардуино потом на МК часики, потом шим потом диодики, потом освоил ЛУТ, потом захотел нормальный ТФТ дисплейчик подсоединить и поперли ограничения… так что АРМ — степеней свободы будет больше, бубна тоже )))
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.