Чем круче если в большинстве обычная мега? Если бы был нормальный высокопроизводительный МК с развитой периферией, то ардуина была бы хороша как отладочная плата.
Hustas, слушайте Мурика, он - профессионал, по 8 или более часов в день работу работает на STM32, он об этот камень все зубы сточил - он-то знает, что вам лучше!
и вообще, кто сомневается в святости ARM (и STM32 - как пророка его [да будут благословенны во веки веков руки тех китайцев, что его сделали!!!]), тот заслуживает костра. скорпион не даст соврать.
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Кстати... АРДУИНО включает в свой состав и АРМы и интеловские "пеньки" и, возможно иное будет добавляться (пока там только ПИКовых нету, но судя по совладельцу атмела вполне возможно и их добавление). Именно с этой точки зрения - единый компилятор для нескольких семейств данная IDE (и ессно платформа) представляет наибольший интерес. Второй плюсик - удобство в отношении "абстрактных вычислений" и интеллектуальных приложений. А вот в отношении прикладных ОСРВ там иной подход - предобработку/постобработку реального времени должна выполнять "периферия с мозгами". В целом весьма достойное внимания направление "недостающего звена" между "примитивом с мозгами" и ПК/сетевыми приложениями.
Итак, давайте я внесу свою лепту в этот холивар, давно я в таком не участвовал.
Сначала отвечу на вопрос по существу. Итак, Ардуино. Ардуино - это изделие для:
- гуманитариев, которых мучает желание быть похожими на тру-инженеров, и тоже "делать крутые штуки", или хотя бы делать вид, что делают; - программистов-прикладников, из электроники с трудом вспоминающих только закон Ома, но любящих проводить досуг за колупанием железа (микроконтроллер - это же вроде бы тоже компьютер...); - просто людей, не ставящих себе целью заниматься электроникой всерьез, а "чтобы мигало, когда вот тут кнопку нажмешь" - занятия электроникой в рекреационных целях.
Вообще, если бы у меня была девушка, и она программировала бы Ардуино (LilyPad какой-нибудь, скажем), я бы только умилялся.
Dixi.
Касаемо ARM. Все зависит от задачи и применения. В серийных устройствах ARM привлекает меня просто потому, что по причинам, не относящимся к радиотехнике, они дешевле. Потому я ставлю STM32, в особенности STM32F030xxxx. Если же мы говорим о "разумном любителе" - тут я продолжаю рекомендовать AVR, в особенности для начала. Это простая и ясная архитектура с простыми и ясными инструментами, которую приятно программировать на ассемблере для уяснения фундаментальных вещей, и по которой написаны тонны достаточно качественной литературы. Освоение AVR (разумеется, не в рамках Ардуино) дает хорошие основы, с которыми потом можно приступать к чему угодно, хоть к тем же STM32.
Начинать с ARM/STM32 я никогда не советую, не в последнюю очередь и из-за того информационного хаоса, который творится вокруг этой архитектуры по причине моды на нее. Но да, эти чипы дешевле.
В хоббийном плане я ставлю чипы по настроению и исходя из задачи.
MSP430 тоже хороши, но они еще дороже, потому последнее время я с ними почти не работаю.
STM8 еще дешевле, чем STM32F0xx, но они, мягко говоря, в некоторых местах специфичны, а еще для них нет нормального компилятора, так что, что цену на них выставляют практически на вес, меня не соблазняет. К слову, это та архитектура, которую я бы точно не рекомендовал начинающему...
Что до использования SPL, Cube и прочего - это все сродни Ардуино. В целом это попытки сделать изначально сложное и продвинутое простым до убогости в целях привлечения масс, и попытки эти очень существенно снижают ценность изначально неплохих решений.
Ну и каждое семейство хорошо по-своему. Например, я не вижу альтернатив ATtiny13 среди чипов от ST, прежде всего в плане аналоговой периферии. Возможность выбрать внутреннюю опору для АЦП бесценна. А зато таймер 1 в STM32 умеет генерировать комплементарный сигнал с защитным интервалом...
_________________ Разница между теорией и практикой на практике гораздо больше, чем в теории.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Итак, давайте я внесу свою лепту в этот холивар, давно я в таком не участвовал. ... Ну и каждое семейство хорошо по-своему. Например, я не вижу альтернатив ATtiny13 среди чипов от ST, прежде всего в плане аналоговой периферии. Возможность выбрать внутреннюю опору для АЦП бесценна. А зато таймер 1 в STM32 умеет генерировать комплементарный сигнал с защитным интервалом...
При таком подходе и не дать ардуинке право на существование как еще одному подвиду элементной базы?
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Если же мы говорим о "разумном любителе" - тут я продолжаю рекомендовать AVR, в особенности для начала. Это простая и ясная архитектура с простыми и ясными инструментами, которую приятно программировать на ассемблере для уяснения фундаментальных вещей
Самая простая и ясная у PDP, msp430 и ПИК24, ну никак не АВР. Первая канула во времени, msp дороговаты, остаётся ПИК24. Ну и как это коррелирует с вашими выводами?
Цитата:
Начинать с ARM/STM32 я никогда не советую, не в последнюю очередь и из-за того информационного хаоса, который творится вокруг этой архитектуры по причине моды на нее. Но да, эти чипы дешевле.
Это как в былую эпоху рассвета АВР утверждать, что 8051 правильнее чем модный АВР. Странноватый спич.
Цитата:
STM8 еще дешевле, чем STM32F0xx, но они, мягко говоря, в некоторых местах специфичны, а еще для них нет нормального компилятора, так что, что цену на них выставляют практически на вес, меня не соблазняет. К слову, это та архитектура, которую я бы точно не рекомендовал начинающему...
Компиляторы есть и вполне съедобные, код на выходе вполне адекватный. Выбор как бы тоже есть. А архитектура... а что архитектура? Архитектура по сути давно известная, аккумуляторная, на базе ST7. Ну подправили под сегодня. А специфика есть во всех МК, даже в АВР. Там специфика флэша вообще не комильфо, не говоря о неадекватной раздутости системы команд. Для новичка есть где сломать свой мозг на АСМе.
Цитата:
я не вижу альтернатив ATtiny13 среди чипов от ST
STM8S003. Скоро и STM8S001 в продаже нарисуется.
А вообще это всё фигня. Тема то совсем не об этом, как бы. Ардуина, при всей своей убогости, ещё жива. А значит юзать её или нет это чисто индивидуальное желание, индивидуальный выбор, хоть и не всегда осознанный. И никакие советы здесь не помогут.
При таком подходе и не дать ардуинке право на существование как еще одному подвиду элементной базы?
Э-э-э, я ведь не о элементной базе, а о самом подходе. Нет ничего плохого в том, чтобы купить дешевую ардуино-плату и использовать ее как макетку, может быть даже с родным загрузчиком, если это удобно. Родной ардуиновый загрузчик, кстати, отлично поддерживается AVRdude. Собственно, AVRdude и используется под капотом Arduino IDE.
Плоха экосистема Ардуино, рассчитанная на дилетантов. То есть, может быть, для дилетантов-то она и неплоха, но и называть ее надо соответствующе - игрушкой, и относиться к ней соответствующе. На ней невозможно сделать ничего приличного, и невозможно вырастить приличного инженера.
Это примерно как игра на гитаре в три аккорда в сравнении с классической гитарой - если захочешь освоить классическую гитару, все равно потом придется переучиваться почти с нуля.
А так я вполне даю ей право на жизнь. Я же писал:
Цитата:
если бы у меня была девушка, и она программировала бы Ардуино (LilyPad какой-нибудь, скажем), я бы только умилялся.
Как-то так, но не более. Проблема в том, что множество людей склонны считать Ардуину чем-то серьезным и чуть ли не вершиной технологий. А хуже всего то, что не только считают, но и делают на ней вещи, которые, вообще говоря, не терпят шуток. Мне вообще жутко от того, что я могу проехаться в таком лифте, как по ссылке.
Цитата:
Самая простая и ясная у PDP, msp430 и ПИК24, ну никак не АВР. Первая канула во времени, msp дороговаты, остаётся ПИК24. Ну и как это коррелирует с вашими выводами?
Отлично коррелирует. Просто мои выводы не коррелируют с вашими. Вам вот кажется, что самая простая и ясная архитектура у PDP-11, а мне - что у AVR. Хотя я уже писал, что PDP-11 (которые реинкарнировали как MSP430) мне тоже нравится.
Цитата:
Это как в былую эпоху рассвета АВР утверждать, что 8051 правильнее чем модный АВР. Странноватый спич.
Я бы не сказал, что эпоха расцвета AVR такая уж былая. AVR как были, так и есть, и будут. Как и 8051, кстати. Вполне вероятно, что в годы, когда AVR был последним гламурным достижением, действительно лучше было изучать основы на 8051, потому что изучать нужно то, что уже устоялось. Это уж нам пускай какой-нибудь аксакал расскажет, как оно там было в те годы...
Цитата:
Компиляторы есть и вполне съедобные, код на выходе вполне адекватный.
Дело не в коде. Знаете почему я в текущем устройстве поставил STM32F030F3P6 а не STM8S003F3P6, который чуть ли не в два раза дешевле (и тоже бы наверняка подошел, логика там совсем простая)?
STM8 поддерживают IAR, Cosmic и SDCC. От IAR я давно отказался по причине его в конец долбанутой лицензионной политики. Cosmic вроде как бесплатный, но его надо регистрировать. Регистрация бесплатна, но всего на год, потом надо обновлять. А что там через год будет - вопрос. В плане поддержки ST (и их соглашению с Cosmic Software) верить нельзя...
SDCC я отмел, дочитав документацию до половины. Хотя да, его, гм, особенности соответствуют уровню своеобразия STM8, так что он вполне гармонирует с чипом.
Когда я на STM8 делаю что-то для себя, то использую пробную версию Cosmic, ограниченную по размеру, но с неограниченным сроком использования. Увы, писать на ней код для продукта как-то нехорошо, наверное.
А вот для ARM есть GCC (и Em::Blocks/EmBitz на его основе), с которым вообще никаких проблем.
Цитата:
STM8S003
Хехе. А вы закройте рекламные проспекты ST и откройте даташит и Reference Manual на него.
Во-первых, корпус не SOIC и не восьмивыводной (иногда это большой минус).
Во-вторых, более узкий диапазон питающих напряжений.
В-третьих, необходимость навешивать конденсатор Cext (вот уже первый видимый костыль).
Но хуже всего, конечно, с аналоговой периферией.
Во-первых, нет компаратора (полезная штука, позволяет, например, превратить ATtiny13 в программируемую MC34063).
Во-вторых, нет внутренней опоры.
В-третьих, входа для подключения внешней опоры тоже нет! Кроме того, на диапазон VDDA наложены серьезные ограничения.
Про компиляторы для STM8 я уже писал.
Вообще, встроенный опорный источник - это боль всей серии STM8/32. Его чаще всего нет, а где есть - его нельзя подключить к АЦП, только измерить относительно питания. Ну и ST традиционно забивает на внешний вход опоры. Так что аналоговая периферия в STM8/32 в основном "чтобы была", особенно в младших сериях.
Цитата:
Рукоплещу неистово!
Спасибо.
_________________ Разница между теорией и практикой на практике гораздо больше, чем в теории.
Но Вы же пользуетесь АРМ (в том числе и STM) несмотря на наличие в них весьма сложной скрытой от пользователя аппаратно-программной структуры. Чем же подход ардуино-платка=МК с указанным к применению компилятором, в рамках которого она работоспособна отличается?
Я уже писал, что не пользуюсь STM32Cube и прочими Ардуиноподобными творениями. Так что от меня ничего не скрыто.
Вообще, программирование STM32 ничем особо не отличается от программирования AVR, или MSP430, или STM8. Просто параграфы в документации длиннее.
Неужели "ничего не скрыто"? А система управления памятью? Даже у тех же STM8 (не говоря об АРМах)... С точки зрения программиста там проблем вроде и незаметно (производитель постарался чтобы тот "троянский конь" практически незаметен был), да и даташит достаточно "мутит" - в принципе какое пользователю дело до сидящего внутри спецконтроллера со своим ПО и интерпритатором пока все в даташит пользователя / руководство программиста вписывается.
Вторая точка система дебаггер-отладчика онлайновая...
Так что возможностей вогнать МК вспецрежим с "что-то пошло не так" не меньше, чем в ардуинке.
... в наше время человек, работающий с STM32 и при этом не впадающий в истерику от их крутости - это редкость.
Да, верно. YS, видно, занимается ими всерьез, знает хорошо и плюсы, и не менее хорошо их минусы. Т.е. оценивает абсолютно трезво и без фанатизма, и не зациклен на одной этой платформе. Плюс!
_________________ Каждый имеет право на свое личное ошибочное мнение.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Вам вот кажется, что самая простая и ясная архитектура у PDP-11, а мне - что у AVR.
Это вам кажется. Загляните в геморный код меги и в прекрасный код того же ПИК24, где на АСМе как на Си, а на Си ка на АСМе. У вас к меге просто бытовой фанатизм. И этим всё сказано.
Цитата:
Во-первых, корпус не SOIC и не восьмивыводной (иногда это большой минус).
Фейк. ТССОП20 занимает не больше места чем СОИК. СТМ8С001 уже в СОИК.
Цитата:
Во-вторых, более узкий диапазон питающих напряжений.
Я вас умоляю! На сколько? А уменьшение тактовой частоты с падением напряжения питания у меги уже не в счёт?
Цитата:
В-третьих, необходимость навешивать конденсатор Cext (вот уже первый видимый костыль).
Да, это аргумент! Прямо аргументище!
Цитата:
Но хуже всего, конечно, с аналоговой периферией. Во-первых, нет компаратора (полезная штука, позволяет, например, превратить ATtiny13 в программируемую MC34063).
Вот не надо! Из меги MC34063 как из говна конфета. И вы это прекрасно знаете. Да и аналоговая у меги ниже средней, от рождения.
Цитата:
Во-вторых, нет внутренней опоры.
В большинстве случаев она никому и не нужна. При желании в СТМ8 можно заюзать напряжение с Cext. В СТМ8Л уже всё есть - и копараторы, и опора. Но вы почему-то скромно так промолчали об этом.
Цитата:
В-третьих, входа для подключения внешней опоры тоже нет! Кроме того, на диапазон VDDA наложены серьезные ограничения.
Нашли чем удивить. Это не только к СТМ8 относится. Или вы считаете себя умнее производителей МК? Ну-ну! Какие ограничения? Прям такие серьёзные? Лепите уже что попало.
Мега уже сама по себе одно сплошное ограничение, во всех отношениях. А вы ищите соринку где-то сквозь бревно в глазу меги.
... в наше время человек, работающий с STM32 и при этом не впадающий в истерику от их крутости - это редкость.
Да, верно. YS, видно, занимается ими всерьез, знает хорошо и плюсы, и не менее хорошо их минусы. Т.е. оценивает абсолютно трезво и без фанатизма, и не зациклен на одной этой платформе. Плюс!
На меге он зациклен, от рождения.
Последний раз редактировалось scorpi_0n Пт июл 21, 2017 14:28:10, всего редактировалось 2 раз(а).
"...единое адресное пространство размером 4 ГБ..." какое ж оно "единое" если имеем дело с раздельными физическими областями ОЗУ и ЕЕПРОМки? Да еще каждая со своими контроллерами доступа? (STM8 PM0044 Programming manual стр19/162 Figure 4. Memory Interface Architecture).
Просто я к тому, что платка ардуинки фактически такая же частичка элементной базы, разве что с несколько большим размером. И при грамотной работе мало чем отличается в применении.
какое ж оно "единое" если имеем дело с раздельными физическими областями
По аналогии можно сказать что у PC тоже не единое адресное пространство (знаете что в старших адресах находятся порты в/в, скажем 256 МБ выделено под окно памяти видеокарты, с этим связано то что в x86 системах без PAE доступно меньше 4 ГБ ОЗУ)? Или все же у компа оно единое, как считаете?
Другими словами в STM32 флеш, ОЗУ, регистры периферии и ядра находятся в одном адресном пространстве. Например область ОЗУ начинается с адреса 0x20000000, а флеш с 0x08000000. Если это не единое адресное пространство, тогда что? Картинка из "умной" книжки.Спойлер
Все честно описано в документации. Правда, в случае чипов на ARM несколько сложнее понять, что где надо читать, потому что часть интересного написана в даташите, часть - в reference manual, а часть (относящаяся к ядру) - вообще в отдельных документах, расположенных на другом сайте (ARM Inc). При этом большинство народа делает круглые глаза в духе "какая документация? Вот же STM32Cube есть!" Отсюда и идут слухи про какую-то мистику.
Честно сказать, я не совсем понял, о чем вы, но, видимо, вы имеете в виду всякие фишки типа продвинутого конвейера, speculative execution и прочих милых вещей, которые, действительно, приводят к тому, что сказать, как действительно будет выполняться программа, становится почти невозможно.
Чаще всего точный ход программы нам в принципе и не важен. Где важен (типично - необходимость строгого порядка доступа к памяти) - там можно вставить инструкцию типа data memory barrier.
Однако там, где нам действительно более всего важен четкий порядок доступа (область адресов периферии), memory barrier, как бы это сказать, включен по-умолчанию (2.2.2, Memory System Ordering of Memory Accesses).
Так что ничего из ряда вон выходящего там нет. Хотя, конечно, софтовый 1-Wire для Cortex-M3 писать вряд ли стоит... С другой стороны, если уж мы про него, при наличии нескольких UART'ов в чипе один из них можно отдать под эмуляцию 1-Wire, тем более что контроллеры с ядром ARM обычно имеют изобилие периферии, нужной и ненужной.
Отладочный интерфейс тоже описан в отдельных документах.
ARV, Zhuk72, вы меня совсем захвалите. Хоть бы что ли какая-нибудь девушка заглянула в эту тему, да узнала бы, какой я хороший... На самом деле, вся моя добродетель состоит всего лишь в том, что я читаю документацию, а не только рекламные брошюры, как большинство адептов STMicroelectronics.
Цитата:
Загляните в геморный код меги и в прекрасный код того же ПИК24, где на АСМе как на Си, а на Си ка на АСМе.
Я в код меги не только заглядывал, я его писал. Как на Си, так и на ассемблере. И для MSP430 писал. Тоже и на Си, и на ассемблере. С PIC24 не работал, врать не буду.
Честно сказать, я не вижу ничего особенно выдающегося в том, чтобы код на ассемблере читался как код на Си. Это все же разные языки.
Цитата:
ТССОП20 занимает не больше места чем СОИК.
А дело ведь не в месте. Если мы про любителя - то SOIC паять проще. Если про профессионала - при ручной пайке средней партии плат пайка восьми точек стоит дешевле, чем пайка двадцати...
Цитата:
Я вас умоляю! На сколько? А уменьшение тактовой частоты с падением напряжения питания у меги уже не в счёт?
Минимальное у STM8S выше почти в два раза, кстати. 2.95 В vs 1.8 В (VCC=VREF). Потому AVR можно питать от двух AA-батареек напрямую, а STM8S - нельзя (большая часть емкости батареек будет выкинута впустую). STM8L - можно, но их уже нельзя питать от 5 В.
Есть много применений, где тактовая частота не так важна, а вот способность использовать батарейку целиком имеет ценность.
Цитата:
Да, это аргумент! Прямо аргументище!
А что, вас не смущает лишняя деталь, в которой нет особого смысла, кроме того, что производителю было лень по-человечески модифицировать ядро/технологию, и он просто прикрутил стабилизатор, да еще и такой, которому для стабильности нужен внешний конденсатор?
Цитата:
Вот не надо! Из меги MC34063 как из говна конфета. И вы это прекрасно знаете.
Я знаю, что сделать на ней управляющую логику и заодно стабилизатор очень удобно, потому что я так делал. Один чип вместо трех.
Цитата:
В большинстве случаев она никому и не нужна.
Я почти всегда использую ее.
Цитата:
При желании в СТМ8 можно заюзать напряжение с Cext.
А куда его подключать? И потом, где в документации написано, что напряжение с Cext можно использовать для посторонних нужд? Вы используете хаки в серийных устройствах?
Цитата:
В СТМ8Л уже всё есть - и копараторы, и опора. Но вы почему-то скромно так промолчали об этом.
Мы с вами обсуждали конкретно STM8S003, который именно вы мне сходу предложили в качестве аналога ATtiny13. Теперь, когда выяснилось, что он не аналог, вы пытаетесь объяснить мне, что его очевидные недостатки - не баги, а ценные фичи, и вообще, производителю виднее. Да-да, если Apple убрали 3.5 мм разъем с устройства, то они молодцы и в авангарде прогресса. С входом внешней опоры в STM8/32 видимо, то же самое...
Кроме того, в STM8L опору все так же нельзя использовать как опору для АЦП - ее можно только измерять и по ней калиброваться.
Цитата:
Или вы считаете себя умнее производителей МК? Ну-ну!
Я считаю себя вправе выбирать из того, что мне предлагают производители МК. Разные производители.
Кстати говоря, не боги горшки обжигают. Думаете, там все гении? В обширных отделах "производителей МК" как и везде, полно самых разных людей, и идиотов в том числе, и на руководящих постах в том числе, и среди разработчиков тоже... Конкретно про ST я наслышан рассказов от своих знакомых в одном крупном российском дистрибьюторе компонентов. Не знаете истории про то, как в ST разогнали всех, кто занимался разработкой серии F100, и сделали "заново и хорошо"?
Цитата:
Какие ограничения? Прям такие серьёзные?
АЦП работает от 1.8 В, а опора составляет 1.2 В. Это серьезно, потому что не позволяет запитать АЦП от опоры...
Цитата:
На меге он зациклен, от рождения.
Вообще, начали мы с вами с обсуждения ATtiny. Про меги я пока вообще ничего не писал. Но могу написать, что ATXmega - очень неплохое семейство, кое-где периферией превосходящее популярные STM32... Правда, они дорогие и экзотические.
_________________ Разница между теорией и практикой на практике гораздо больше, чем в теории.
Последний раз редактировалось YS Пт июл 21, 2017 18:44:17, всего редактировалось 1 раз.
Заголовок сообщения: Re: Отговорите меня от АРДУИНЫ, или наоборот...
Добавлено: Пт июл 21, 2017 18:44:08
Модератор
Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57 Сообщений: 4510 Откуда: Планета Земля
Рейтинг сообщения:0 Медали: 1
Мурик писал(а):
в STM32 флеш, ОЗУ, регистры периферии и ядра находятся в одном адресном пространстве
Ложь и обман, вводящая читающих в заблуждение. Одного физического адресного пространства, априори, не может быть у разных видов памяти. Есть виртуальная адресация. Вот она да - линейная, для удобства доступа. Также и доступ к отдельным битам регистров (для атомарных операций) может производиться через виртуальную адресацию. Но это всё не значит, что все адреса физически выстроены в ряд.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 30
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения