Как стать автором
Обновить

Все мои Ардуинки: часть вторая, ATtiny и STM

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров16K
Всего голосов 58: ↑58 и ↓0+80
Комментарии37

Комментарии 37

У Atmel тоже были сопоставимые 32-битные решения, сначала собственная архитектура AVR32, потом контроллеры с ядром ARM, но, как я понимаю, они проиграли конкуренцию именно из-за цены

Atmel проиграли не только из-за цены. Сами их контроллеры (AVR32) уступали в удобстве работы и насколько понимаю в периферии, а уже бонусом шла более высокая цена. У тех же ST был удобный HAL и в добавок CubeMX, а так же очень богатая периферия

Поэтому в следующий раз речь пойдёт о ... ESP8266 и ESP32 от Espressif. 

Ждем!

А если кто еще как обучить ESP32 Cam на распознавание объектов через edgeimpulse.com, так вообще праздник.

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

Да, это факт, очень многие платки годами лежат без дела. Очень часто до них не доходят руки. Или некогда, или надо ждать прочие детали, а пока они соберутся за месяц-другой-третий, уже и забываешь, зачем всё это было надо, и голова полна других идей. Но всё-таки раз в год и Ардуина стреляет. Хотя полезность проектов, в которых я их применяю, тоже под вопросом. Впрочем, мне кажется, всё DIY примерно такое. Типа как покупка 3D принтера, чтобы потом годами его настраивать и совершенствовать, и раз в год печатать какой-нибудь держатель филамента для него же. Деятельность больше ради процесса, а не результата.

Наверное, смысл в tiny - в меньшем энергопотреблении?

Теоретически да, но вроде фактическая разница не особо велика по сравнению с экономией за счёт снижения тактовой частоты и напряжения питания. Хотя, возможно, я просто не сталкивался с задачами, где эта разница может сыграть роль. Я знаю, что в таких случаях снижают напряжение питания до 1.8 вольт, и некоторые версии ATtiny вроде бы могут работать даже от одного вольта. А в проектах самодельных наручных часов предпочитают MSP430 вместо AVR и PIC из-за самого низкого потребления.

У nrf52840 очень низкое энергопотребление, в моих часах именно такой чип. Pine64 PineTime часы. Если нужен чип с BLE и очень низким энергопотреблением – nrf52840 однозначно выигрывает у esp32, они очень уж сильно жрут

У Tiny обрезанное ядро, упрощённая периферия и уменьшенное количество выводов, из-за чего они в начале нулевых стоили заметно дешевле Mega. По потреблению у всех AVR примерно одинаково, и только у Picopower оно стало чуть ниже.

У stm32 киллер фича - внутрисхемная отладка через stlink. К сожалению, работает только с debug build, а он получается жырным.

жырным

Ну, это же только elf от отладочной информации распухает. С прошиваемым бинарником чуть иная история.

Хм, а есть способ сгенерировать прошивку с вырезанным debug но точки останова ставить в исходном elf?

Без отладочной информации потеряется связь с исходниками, т.е. отлаживать можно будет только по дизассемблеру (проблем поставить бряку нет, достаточно выковырять нужный адрес). Тут вопрос - зачем её вырезать? Прошивка всё равно в бине/хексе, а там этого ничего нет.

Ну, если прошивка собрана с debug, то можно ставить точки останова и смотреть переменные. Но если не влезет в память, то ой Если собрать без debug, то в память влезет, но с отладкой ой

Выглядит так, что в debug помимо отладочной информации в elf (и в саму прошивку) попадают другие отладочные фичи (оно может включаться/выключаться при определении __DEBUG__ или подобного), также скорее всего отключена оптимизация. Скорее всего это причина дополнительного раздувания. Отладочные символы не попадают в прошивку (бинарник), это исключительно внешняя информация. Можно посмотреть флаги, выставить оптимизацию как релиз, но отладочные символы оставить. Хотя в таком режиме отлаживать чуть тяжелее.

Attiny85 с micronucleous в формате юсб-флэшки можно увидеть в руках Эллиота в "Мистер Робот" перед тем, как он решает пойти войной на Evil Corp.

Это и правда может быть удобным инструментом для взлома, используя, например, технику bad USB, когда такой контроллер эмулирует HID устройство, например, клавиатуру, запускает хоткеем консоль и вводит там нужные команды.

Жаль, что не упомянули младшую - ATtiny 10.

А есть на ней какие-то подобные платки? Среди установленных пакетов в Arduino IDE самые младшие из поддерживаемых ATtiny24/25. С голыми МК я работал только с 13-ой, 10-ую не пробовал.

У 6-ногих AVR другой интерфейс программирования, поэтому они вообще непопулярны.

Есть ещё замечательные stc8, не требующие совсем никакой обвязки, на них тоже портировано Arduino core.

С msp430 в экосистеме Ардуино всё очень печально. Упомянутая вами IDE Energia - заброшена лет 5-6.

Нецелесообразно оказалось. Ардуино слишком грубый инструмент, который не позволит использовать особенности микроконтроллера.

Фактически забивать гвозди микроскопом - использовать эти микроконтроллеры там , где можно использовать более дешевые микросхемы.

arduino прекрасно умеет использовать возможности atmega8, 328, 2560, 32u4 как и задумывалось. а при необходимости можно и дописать, только это будет не совместимо с другими платформами

В этих отличиях и смысл использования - низкое энергопотребление, сенсорные входы. Без этого они одинаковые с другими платформами.

Arduino не запрещает ни малое потребление ни особенные входы. Просто в основе этого фреймворка - бесконечный цикл и таймеры, занятые под счётчик микросекунд и pwn. И все библиотеки ожидают именно такого поведения. Если задействовать общепринятые трюки с играми в low power - программа уровня blink скорее всего заработает, а что то более сложное, с включением чужих либ, скорее всего нет.

Это не проблема msp430. Это типичные грабли ардуинщиков, упираясь в ограничения Ардуино они становятся беспомощными. Ардуино хороша для входа в экосистему микроконтроллеров, но вообще не предназначена для сколько нибудь серьезных проектов.

Решил я первый заказать плату для своего pet проекта на jlcpcb. Проектик тестировал на Ардуино Нано, потратил время на портирование на attiny85, 45. Однако при заказе оказалось, что самый бюджетный вариант - ESP32... Я вот до сих пор думаю, я где-то ошибся или реально такое странное ценообразование.

Можно подробнее, о чём речь? Голые чипы ESP32 дешевле атмелок? Или итоговые устройства на основе ESP32 дешевле аналогичных на атмелках? Или что?

Хм, как бы ESP32 и ATTiny45 настолько разные, что их совсем некорректно сравнивать. При заказе в Китае может оказаться, что в те же деньги оценен и какой-то пожилой SoC MediaTek, на которых штамповали дешёвые смартфоны, но вряд ли он вам подойдёт из-за одной лишь цены.

Да, такое бывает, что более мощный МК в рознице дешевле слабенького. Я думаю, дело в объёмах производства и продаж. Платы на Tiny не сказать что сильно востребованы, а ESP32 теперь каждой бочке затычка, особенно с выходом C3-Supermini.

Так серия атмела — старье, и кристаллы большие, и тиражи меньше. Остается в продаже исключительно для комплектации уже существующих устройств.

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

1 Изготовил плату специально под свое устройство

2 Скачал АтмелСтудию (сейчас микрочип) - это IDE которую производитель чипов распространяет.

Вобщем советую попробовать выйти из Arduino IDE

В первой части статьи я упоминал, что вошёл в Arduino IDE после Atmel Studio (тогда ещё AVR Studio 3) и нескольких лет программирования контроллеров AVR на ассемблере.

На момент написания статьи у меня работала только приведённая в ней ссылка.

"Ардуинить" в IDE ещё было можно для attiny13, используя плату Arduino как ISP-программатор.

На одной из Blue pill, на той, что более голубая, чип STM32 адовая перемаркировка. Это видно по поверхности ключа, которая имеет не однородную структуру. У другого чипа ключ гладкий и четкий

Зарегистрируйтесь на Хабре, чтобы оставить комментарий