fixik_papus: (Default)
[personal profile] fixik_papus
"...или бегством к незнакомому стремиться?"
(с) надеюсь, все помнят, кто

Универсальный вопрос на любую тему: от неудобных ботинок до эмиграции.
Я же сейчас озадачился им вот по какому поводу.

Свалилось предложение разработать небольшой специализированный электронный блочочек.
К предложению приложена схема "прототипа" 30-летней давности. Формата А1 - куча "рассыпухи" на древних чипах серии К140 и К155, с АЦП последовательного приближения тоже на "рассыпухе" и гальванической изоляцией на трансформаторах ТИМ-5В. Для понимания алгоритма, так сказать.
(живьем "образец" еще не видел)
Серия будет 36 штук, плюс несколько "в запас".

Ныне всю эту требуху можно и нужно выкинуть и воткнуть микроконтроллер. Особенно учитывая требование "какого-нибудь интерфейса" (дословно из ТЗ) для подключения к ПЛК и панели. (в ПЛК и панель тоже предстоит влезть, но это проще).

Вот тут, собственно, и встал вопрос из заголовка.
Такими делами я не занимался лет 12. Или даже 13. И с той далекой молодости остались навыки по обращению с 8-битными контроллерами тех времен (80х51, AVR, PIC). Вспомнить их, как начнешь делать - несложно.

Но беглый обзор нынешнего состояния дел в области микроконтроллеростроения показал наличие просто замечательной (на бумаге) штуковины под названием STM32.
Для нашего простенького приборчика, по прикидкам, хватит и останется самого простого и дешевого представителя семейства - STM32F030F4 ценой в розницу 2 (два) доллара. И за эти два доллара - полноценное 32-битное ядро ARM и полный фарш периферии.

Но!
С одной стороны -
"Красиво на бумаге" - это одно. А "опыт работы" - это другое.
Понятно, что Си - он и в Африке Си. Тем более хорошо знакомая среда от Keil.
Но всяческих нюансов всегда вылезет немало. С соответствующими непредсказуемыми бяками и задержками.

С другой стороны -
вымирание 8-битных процессоров очевидно и неизбежно; а возможность освоить что-то новое и перспективное за чужой счет - всегда полезна.
Да и жене объяснить вечер за программатором "я тут не просто самообразованием занимаюсь, а деньги в семью зарабатываю" - всяко проще.

Предложение нужно выдать в понедельник. Сижу в раздумьях...

Если у кого есть опыт работы с STM32 - буду рад услышать. Особенно - о проблемах и недостатках, о которых производители почему-то не любят упоминать...
Date: 17 Mar 2016 21:19 (UTC)

From: [identity profile] gray-bird.livejournal.com
Бюджет есть?
Если надо написать нечто специфическое в незнакомой архитектуре, формулируешь и за малый прайсТЗ нанимаешь в инете исполнителя.
Под готовое ТЗ и при адекватном тестировании это будет быстро и нормально.
Date: 17 Mar 2016 22:02 (UTC)

From: [identity profile] wormball.livejournal.com
Штирлиц знал, что запоминается только начало и конец..
Date: 18 Mar 2016 06:01 (UTC)

From: [identity profile] fixik-papus.livejournal.com
Этот подход имеет один очевидный минус:
архитектура так и останется для себя - незнакомой
А учиться на не-ответственных, но оплачиваемых проектах - милое дело (под это дело можно еще и простенький отладчик прикупить)

(no subject)

From: [identity profile] gray-bird.livejournal.com - Date: 18 Mar 2016 06:06 (UTC) - Expand
Date: 18 Mar 2016 11:43 (UTC)

From: [identity profile] bmc938.livejournal.com
Я один раз так сделал, а потом оно через несколько месяцев вдруг работать перестало. Так что ну его нафиг, я лучше сам разберусь.
Date: 17 Mar 2016 21:28 (UTC)

From: [identity profile] toster666.livejournal.com
Как мне кажется, стм32 сейчас - это новый стандарт или прорыв, каким были в свое время авр.
Потом, отладчик для авр (если покупать целиком :) ) - под 10 тыс.
Отладчик для стм32 - 2.5 тыс. Фирменный, вроде есть еще китайские клоны за 1 долл, но мне таким было бы неприятно пользоваться.
CubeMX - генерит очень глючный код, но что то полезное в нем есть :)
В целом конечно стм32 гораздо сложнее авр-ок.
Date: 17 Mar 2016 21:48 (UTC)

From: [identity profile] stifff.livejournal.com
Качаешь STM32CubeMX, конфигурируешь в несколько нажатий мыши.
Генерируешь проект в Keil (в бесплатный лимит ещё и FreeRTOS запихнуть можешь)
Пару вечеров поизучать нужные HAL ручки
И золотой ключик в кармане.

Для простоты можно взять какую-нибудь плату из разряда discovery/nucleo

Сейчас всё стало гораздо проще
Date: 18 Mar 2016 05:26 (UTC)

From: [identity profile] riseofdeath.livejournal.com
Систему есть смысл ставить, когда в ней есть смысл. А то видел, когда народ пихал ее просто так, причем в серьезные проекты.

(no subject)

From: [identity profile] fixik-papus.livejournal.com - Date: 18 Mar 2016 06:04 (UTC) - Expand
Date: 18 Mar 2016 11:07 (UTC)

From: [identity profile] aterentiev.livejournal.com
>в бесплатный лимит
а оно все платное?

(no subject)

From: [identity profile] stifff.livejournal.com - Date: 18 Mar 2016 11:17 (UTC) - Expand

(no subject)

From: [identity profile] juray.livejournal.com - Date: 18 Mar 2016 18:03 (UTC) - Expand
Date: 17 Mar 2016 21:51 (UTC)

From: [identity profile] dz.livejournal.com
На всякий случай - богатый источник готовых модулей на stm: http://www.starterkit.ru/

Я тоже хочу на stm переехать - похоже, экономически это очень даже обосновано. Но навскидку - там всё существенно более муторно, чем в avr. Одна только конфигурация clock-ов - семь вёрст, и всё лесом. Действительно, есть генератор конфигураций, но я только чтобы в нём галки выставить потратил полдня. Пока отложил...

По идее, на него ставится вот это: http://www.ethernut.de/en/download/index.html

Но, опять же, сконфирурировать с ethernet-ом у меня пока не вышло. А это привлекательно.

Впрочем, для связи с ПЛК хватит модбаса по 485...
Date: 17 Mar 2016 21:56 (UTC)

From: [identity profile] stifff.livejournal.com
С генератором (котоырй STM32CubeMX) в простых случаях все очень просто. Намного проще, чем писать руками. Плюс оно и библиотеки HAL подтягивает и периферию инициализирует.
И тот же FreeRTOS одной галкой включается

К avr не хватало такой лентяйки
Date: 17 Mar 2016 22:42 (UTC)

From: [identity profile] curious-2009.livejournal.com
Как раз сегодня френд писал - http://kincajou.livejournal.com/3883538.html
Date: 18 Mar 2016 01:58 (UTC)

From: [identity profile] Юрий Рыженко (from livejournal.com)

Задачи не знаю, но взял бы stm32f103.
Все же запас по памяти, перефирии и мегагерцам не так много стоит, но душу греет.

Date: 18 Mar 2016 06:02 (UTC)

From: [identity profile] fixik-papus.livejournal.com
В этом проекте и так запас 100-кратный по всему :)
Date: 18 Mar 2016 05:06 (UTC)

From: [identity profile] 100-kitaizev.livejournal.com
Данный вопрос стоит вешать на хабр или гиктаймс, всё-таки там тусуется намного больше людей по теме...
Date: 18 Mar 2016 05:59 (UTC)

From: [identity profile] fixik-papus.livejournal.com
Я там не писатель. Я там читатель.
Да и народ там ныне в основном по теме смартфонов и интернета.
Edited Date: 18 Mar 2016 06:16 (UTC)

(no subject)

From: [identity profile] juray.livejournal.com - Date: 18 Mar 2016 17:57 (UTC) - Expand
Date: 18 Mar 2016 08:30 (UTC)

From: [identity profile] ikaktys.livejournal.com
ну почитать таам есть немного

https://geektimes.ru/search/?q=stm32

(no subject)

From: [identity profile] 100-kitaizev.livejournal.com - Date: 18 Mar 2016 15:22 (UTC) - Expand
Date: 18 Mar 2016 05:55 (UTC)

From: [identity profile] nivanych.livejournal.com
> вымирание 8-битных процессоров очевидно и неизбежно

Бывает удобно нечто с 8 ножками.
А STM'ки 32-битные такие бывают?...
Вроде, меньше, чем 48 ножек, там не бывает.
Что уже не так уж страшно, конечно.
Но 8 ножек же удобнее, если бОльшего и не надо!
Вот что FPGA'шек таких не бывает, это печаль.
Date: 18 Mar 2016 06:00 (UTC)

From: [identity profile] fixik-papus.livejournal.com
TSSOP20. Физический размер чуть больше текста "TSSOP20" на Вашем мониторе :)

(no subject)

From: [identity profile] kiltum.livejournal.com - Date: 18 Mar 2016 06:07 (UTC) - Expand
Date: 18 Mar 2016 06:01 (UTC)

From: [identity profile] extracomplex.livejournal.com
Разрабатывал устройства и на базе AVR8 (MegaAVR) и на STM32Fxxx.
Главное различие: AVR8 расчитан на гораздо более грубое питание, в целом он более живучий.
STM32 более "нежные" чипы. Требуется куча bypass cap, хорошо фильтрованное питание, согласование по ногам IO и т.п.

AVR8 хорошо подходит для простых алгоритмов. Ноги IO выдерживают ток до 20mA сильно сокращают "обвязку".
STM32 хорошо работает в коммуникационных задачах, где нужны сетевые стеки, пожирающие килобайты оперативки.

С точки зрения программиста сейчас 90% кода генерится Wizard-ом автоматически, под обе архитектуры.
STM32 ближе к ПК, у него единое адресное пространство на все.
AVR8 архитектурно имеет 3 вида памяти ROM, RAM, EEPROM. Каждая адресуется с нуля своим набором команд. Это добавляет отказоусточивости (код только в ROM) и гемора программисту.
Date: 18 Mar 2016 06:06 (UTC)

From: [identity profile] kiltum.livejournal.com
Если что, можешь обращаться. Кактусы ел и ем.
Date: 18 Mar 2016 08:40 (UTC)

From: [identity profile] ikaktys.livejournal.com
https://geektimes.ru/post/255334/

Нельзя просто так взять и поморгать светодиодом на STM32


гыгы

(no subject)

From: [identity profile] kiltum.livejournal.com - Date: 18 Mar 2016 08:43 (UTC) - Expand
Date: 18 Mar 2016 06:11 (UTC)

From: [identity profile] tan-maun-ei.livejournal.com
Около года назад так же переезжал с AVR на STM32F4. Могу сказать следующее: для начального изучения периферии (если заниматься вечерами и не использовать конфигураторы) уйдёт 2-3 недели. Из недостатков увидел только один: несовместимость выходов (и части входов) с уровнями TTL.
Date: 18 Mar 2016 09:47 (UTC)

From: [identity profile] fixik-papus.livejournal.com
"с уровнями TTL"
Это до сих пор является обязательным требованием?
Я-то думал, что вся сигнальная электроника давным-давно переползла на 3.3 вольта

(no subject)

From: [identity profile] tan-maun-ei.livejournal.com - Date: 18 Mar 2016 11:16 (UTC) - Expand
Date: 18 Mar 2016 08:11 (UTC)

From: [identity profile] zurabob.livejournal.com
Я работаю и с stm32, и с AVR - переползание на стм заняло несколько полных дней. Но это нужно, только если действительно есть желание дальше разрабатывать на них, иначе зачем тратить время?
8битники вполне живы и будут еще долго жить на несложных проектов. Даже камни с жутким для кодинга на С ядром 8051 выпускают новые, не говоря уж о AVR, STM8,...
По стм:
- корпус с шагом 0.5 менее приятно паять, чем AVR с шагом 0.8 или 1.27;
- 3.3В питания неудобно сопрягать с 5в периферией, если надо конечно;
- китайский STLINK за 3 бакса на али работает отлично, отладка и загрузка быстры и надежны;
- STM32CubeMX для несложных проектов лучше использовать только для визуальной конфигурации ножек, лень в изучении даташита может аукнуться неожиданным поведением индусского кода;
- удобны только базовые функции CMSIS, дальше риск индусского кода и двойного изучения: даташита и поведения функции;

Date: 18 Mar 2016 09:41 (UTC)

From: [identity profile] gapel.livejournal.com
>Даже камни с жутким для кодинга на С ядром 8051 выпускают новые, не говоря уж о AVR, STM8,...
ммм, блин сколько с СилЛабовскийи работал - не знал что у них жуткий коддинг)))

(no subject)

From: [identity profile] fixik-papus.livejournal.com - Date: 18 Mar 2016 09:44 (UTC) - Expand

(no subject)

From: [identity profile] gapel.livejournal.com - Date: 18 Mar 2016 14:26 (UTC) - Expand

(no subject)

From: [identity profile] zurabob.livejournal.com - Date: 18 Mar 2016 09:57 (UTC) - Expand

(no subject)

From: [identity profile] gapel.livejournal.com - Date: 18 Mar 2016 14:27 (UTC) - Expand

(no subject)

From: [identity profile] kincajou.livejournal.com - Date: 18 Mar 2016 14:16 (UTC) - Expand

(no subject)

From: [identity profile] zurabob.livejournal.com - Date: 18 Mar 2016 15:24 (UTC) - Expand

(no subject)

From: [identity profile] kincajou.livejournal.com - Date: 18 Mar 2016 15:31 (UTC) - Expand

(no subject)

From: [identity profile] zurabob.livejournal.com - Date: 18 Mar 2016 16:19 (UTC) - Expand

(no subject)

From: [identity profile] kincajou.livejournal.com - Date: 18 Mar 2016 18:21 (UTC) - Expand

(no subject)

From: [identity profile] zurabob.livejournal.com - Date: 18 Mar 2016 19:18 (UTC) - Expand
Date: 18 Mar 2016 13:41 (UTC)

From: [identity profile] redsh3208.livejournal.com
STM - исключительно барыжная контора не для людей, которой главное поскорее и побольше налепить новых моделей, а там хоть трава не расти.

Ошибки никогда не правят. Периодически сворачивают производство чего-либо, уничтожая все упоминания и документацию на сайте (гуглить для примера "Странное поведение компании
STmicroelectronic"). Слышал как раз недавно историю - хотели использовать их МК со встроенным радиомодулем ZigBee (отладочный комплект, кстати, за 45 тысяч купили) и тут оказалось, что STM-овцы какую-то там лицензию проплатили всего на год - возникло разбирательство и модель свернули (как обычно уничтожив все упоминания на сайте).
Для сравнения - Atmel, который сейчас на каждом углу хаят все кому не лень, свои МК вылизывает. При этом документация на всё, что когда-либо выпускалось аккуратно выложена, если что-то заменяют на новое - думают об обратной совместимости и выкладывают подробные списки отличий и рекомендации по переходу...

Делают отвратительно и не для людей. Если устаревшие вымирающие восьмибитки имеют вход опоры АЦП вплоть до 8-ногой тиньки (не говоря о наборчике встроенных опор и прочих мелочах типа дифференциального биполярного режима), то у хвалёного STM32 - только в 100-ногих корпусах, иначе тупо притянуто к питанию. Вообще, уродство в огромном количестве мелочей. Если у приличного МК запись бита в SFR - одна командочка (ибо это МК, он тесно работает с цифровой обвязкой, хотя любителям всяких стм-кубов это никогда не понять), то в STM - читай целиком весь регистр из соотв. локации в памяти, и потом пиши обратно, спасибо "мощному" армовскому ядру. Причём считать слово из памяти - целая последовательность, т.к. даже обратиться по константному адресу или загрузить константу в регистр одной командой невозможно, опять же спасибо хвалёному армовскому ядру. Впрочем, стм-щики придумали тут "хитрый подход" т.н. битбэндинг, позволяющий обратиться к биту аж за три команды вместо пяти (ценой ещё большей каши в коде - обращению к посторонним адресам)...

Малая надёжность, множество ошибок, малый диапазон питания, слабые гпио, кривые библиотеки, отсутствие какой-либо приличной бесплатной интегрированной среды разработки и т.д. Можно перечислять сколько угодно, но просто главное что нужно знать про халтурщиков и барыг - то что они халтурщики и барыги. Это видно сразу, если хоть немного смотреть на суть и детали, а не только на "за два доллара" и "полный фарш периферии".

Конечно, если главное при выборе компонентов - чтобы обязательно поставить 32 бита, там где хватает даже кучки рассыпухи и чтобы к "старью" не притрагиваться ни при каких условиях, то на всякие мелкие детали типа общей продуманности насрать (в т.ч. и потому путного ничего с таким подходом не сделать, а тормозное глючное барахло лепить можно абсолютно на чём угодно). Делать же приличную вещь приятнее и удобней на том что хорошо продумано и сделано с уважением к тем, кто будет этим пользоваться. А не как у СТМ. Тот же Сименс и множество прочих контор активно как использовали 8051, так и используют. И не смотрят на то, что для идиотов это "старьё", "вымирающие 8-битки" и т.п.
Date: 18 Mar 2016 14:20 (UTC)

From: [identity profile] kincajou.livejournal.com
STM32F103 пережил уже не одну инкарнацию и выпускается лет 10, наверное. И будет выпускаться, пока есть спрос. Его даже китайцы начали копировать - значит, спрос ТОЧНО есть.

(no subject)

From: [personal profile] ex0_planet - Date: 18 Mar 2016 14:33 (UTC) - Expand

(no subject)

From: [identity profile] redsh3208.livejournal.com - Date: 18 Mar 2016 15:24 (UTC) - Expand

(no subject)

From: [identity profile] alexey goncharovsky - Date: 20 Mar 2016 12:19 (UTC) - Expand

(no subject)

From: [personal profile] ex0_planet - Date: 20 Mar 2016 12:22 (UTC) - Expand

(no subject)

From: [identity profile] redsh3208.livejournal.com - Date: 20 Mar 2016 14:33 (UTC) - Expand

(no subject)

From: [identity profile] alexey goncharovsky - Date: 20 Mar 2016 15:28 (UTC) - Expand
Date: 18 Mar 2016 14:39 (UTC)

From: [identity profile] avl.livejournal.com
Из моей практики - STM и LPC работали стабильно и без проблем. А возможности в реальном времени смотреть переменные и даже рисовать графики а-ля логический анализатор - вообще песня! Только контроллер и дебаггер должны это поддерживать (ULinkPro например поддерживает). Про STMCube позволяющий легко и быстро понять на каких выводах что висит и сгенерировать код инициализации для STM, уже написали выше. Их HAL мне тоже нравится.

А вот что бы крайне не советовал - так это ATMEL, хотя и порог вхождения туда ниже. Про Атмел однажды даже на хабре написал, с чем пришлось столкнуться: https://habrahabr.ru/post/147025/
Date: 20 Mar 2016 11:47 (UTC)

From: [identity profile] alexey goncharovsky (from livejournal.com)
Про Атмел стоит сказать что в описанном на хабре случае вы схватились за инструмент, с которым не умеете обращаться и наступили на все возможные грабли.

(no subject)

From: [identity profile] avl.livejournal.com - Date: 20 Mar 2016 14:19 (UTC) - Expand

(no subject)

From: [identity profile] alexey goncharovsky - Date: 20 Mar 2016 15:12 (UTC) - Expand

(no subject)

From: [identity profile] avl.livejournal.com - Date: 20 Mar 2016 20:23 (UTC) - Expand

(no subject)

From: [identity profile] alexey goncharovsky - Date: 20 Mar 2016 21:37 (UTC) - Expand
Date: 19 Mar 2016 03:25 (UTC)

From: [identity profile] sergey gimaev (from livejournal.com)
вот так приходишь к людям "на посмотреть что-то не работает". промышленная установка, все дела. открываешь шкаф, а там (пусть даже заводская плата не из под утюга) с мелкокнотроллером (атмел - не атмел пофиг). и пусть даже грамотная плата. но вот выгорел у проца один порт. прошивки - нет, исходников - нет.
делайте из готовых компонентов. ясно, что бюджет и т.д. но ну его нафиг.
Date: 19 Mar 2016 03:56 (UTC)

From: [identity profile] fixik-papus.livejournal.com
Не, тут немного другой расклад
В шкафу вполне себе стандартный контроллер
А сия штуковина - интеллектуальный датчик, подцепленный к контроллеру по шине

(no subject)

From: [identity profile] sergey gimaev - Date: 19 Mar 2016 04:06 (UTC) - Expand

(no subject)

From: [identity profile] muzzy0.livejournal.com - Date: 26 Mar 2016 18:53 (UTC) - Expand

(no subject)

From: [identity profile] sergey gimaev - Date: 27 Mar 2016 04:13 (UTC) - Expand

(no subject)

From: [identity profile] muzzy0.livejournal.com - Date: 27 Mar 2016 08:32 (UTC) - Expand

(no subject)

From: [identity profile] sergey gimaev - Date: 27 Mar 2016 08:57 (UTC) - Expand

(no subject)

From: [identity profile] muzzy0.livejournal.com - Date: 27 Mar 2016 10:02 (UTC) - Expand
Page generated 4 Mar 2026 22:26
Powered by Dreamwidth Studios