LINUX.ORG.RU

27
Всего сообщений: 82

SATA device MCU

Гугль-фу не помогает найти ни одного даташита на хоть какую-нибудь микруху c SATA PHY используемую в качестве SATA device.

Контроллеры HDD это вообще что-то жутко секретное. Ну может кроме Marvell 88i6745, который немножко поковыряли известные в узких кругах персонажи типа Dejan’а, да и то даже pinout оного в свободном доступе начисто отсутствует.

Контроллеры CD/DVD тоже покрыты мраком. Только какие-то унылые ошмётки маркетоидных листовок.

C SSD контроллерами дела тоже не лучше.

Сосбственно вопрос - встречал ли кто-ниубдь в живой природе даташит на хоть какой-нибудь MCU у которого есть SATA PHY и который предназначен для использования в качестве SATA device?

Самое интересное, что доки на SATA интерфейс в общем-то открыты, есть даже opensource IP для FPGA реализующие SATA PHY. И ведь уже хренова туча лет прошла с момента появления первых SATA девайсов. А вот документацию ни на один мелкопроцессор c SATA device periferal найти не могу.

ЗЫ: Использовать SATA->IDE переходник и вешать обычный MCU на IDE не предлагать. Так неинтересно. :)

 , ,

Stanson ()

Как пользоваться отладочным интерфейсом SWIM?

Есть радиомодуль, вотакой: http://roboshop.spb.ru/SE8R01 (пока не начал сюда писать и не стал искать фотку, не знал что это не nrf24l01)

Есть usb переходник к нему, вотакой: https://ru.aliexpress.com/item/32834356013.html , удалось нагуглить что настройка контоллера на нем (скорость, канал), осуществляется через SWIM итерфейс. Это я так понял для младших STM-ок такой отладочный интерфейс.

Еще у меня есть программатор ST-Link V2, вотакой: https://ru.aliexpress.com/item/32322884886.html , который, как я понял умеет в этот свим.

Подскажите, кто в курсе, как этим пользоваться? В системе появляется один ttyUSB от переходника и один от прграмматора. Миников в оба порта молчит. Куда копать, кто опытный?

 

pihter ()

Как (быстро) работать с десятичными дробями в МК?

Всем доброго времени суток. На контроллере (а конкретно STM8 семейства) нет FPU. Встала задача - выполнить кое-какие вычисления на нем (в основном вычисление синусов и косинусов чисел, подаваемых извне). Контроллер, ясно дело, сменить не могу - уже выпустили 10000 плат и вдруг тут менеджер говорит мне реализовать новую фичу. Если брать int, то загрузка проца при вычислениях около 30%. При использовании чисел с плавающей запятой время реакции МК на событие в 5 раз больше нормы. Может быть, есть какой нибудь менее времязатратный способ работы с десятичными дробями? Точность нужна только в пределах 3-4 знака. Заранее спасибо.

 , , , ,

Generic ()

Выкатили Qt5 для микроконтроллеров и OS/2 O_o

Проект Qt представил редакцию фреймворка для микроконтроллеров и маломощных устройств - Qt for MCUs. Из достоинств проекта отмечается возможность создания графических приложений для микроконтроллеров, используя привычный API и инструменты разработчика, применяемые также для создания полноценных GUI для настольных систем. Интерфейс для микроконтроллеров создаётся с использованием не только C++ API, но и QML/Qt Quick Controls, переработанными для небольших экранов, обычно применяемых в бытовой электронике, носимых устройствах, промышленном оборудовании и системах умного дома.

Для достижения высокой производительности сценарии QML транслируются в код на C++, а отрисовка осуществляется при помощи отельного графического движка, оптимизированного для создания графических интерфейсов в условиях небольшого объёма оперативной памяти и процессорных ресурсов.

https://www.opennet.ru/opennews/art.shtml?num=51339#4

 , , ,

Deleted ()

А встречается ли в природе 2-х процессорные одноплатники?

Интересует плата, у которой будет один процессор для запуска linux, а второй - микроконтроллер для запуска реалтайм кода (желательно stm32 или похожее). Между ними SPI или еще какой быстрый интерфейс. GPIO как от большого процессора, так и от микроконтроллера. Еще чтобы были PWM, I2C, UART, Ethernet, USB. Если будет выход для подключени LCD панельки/монитора, вообще хорошо.

 , ,

cvs-255 ()

А как сейчас модно писать под STM32?

Хочу снова вкатиться в STM32, но наевшись в прошлые разы SPL и STM32Cube, хочу сразу начать писать хорошо и правильно.
Посему спрашиваю наиболее православные версии тулчейна для C (желательно clang), билд-системы (желательно cmake), программатора и отладчика и альтернативной библиотеки периферии (раньше использовал LibOpenCM3, но вдруг есть что-то лучше).
А если вдруг знаете какой-нибудь хороший тулчейн для Rust, стандартную библиотеку или RTOS, то тоже пишите. Эти три пункта мне не особо нужны, да и хорошие кандидаты на каждый из них у меня есть свои (llvm_baremetal, newlib и ChibiOS).
Или не стоит в 2018 пинать STM32? Пора переходить на SiFive?

 , , , ,

CYB3R ()

Сверхбыстрые тупые МК

Раньше был, например, 4 МГц PIC16F84 от Microchip, а маньяки из Parallax выпускали аналогичный SX28 но работавший на диких для того времени 75МГц.

А сейчас есть чо? Чтоб тупое (достаточно уровня AVR/PIC16), небольшое и работающее хотя бы на 3ГГц например.

 

Stanson ()

таймер iek ТЭ-15

сабж

сейчас в новой модификации таймера можно задать 16 циклов вкл/откл на сутки. есть потребность увеличить число циклов.

подскажите, плиз, можно ли это сделать для сабжа и каким образом?

 , ,

conalex ()

Arduino не загружается скетч

Сразу скажу, здесь я полнейший и абсолютный ноль, так что вот сообщение об ошибке Arduino IDE:

Плата:"Arduino/Genuino Mega or Mega 2560, ATmega1280"
Скетч использует 1470 байт (1%) памяти устройства. Всего доступно 126976 байт.
Глобальные переменные используют 9 байт (0%) динамической памяти, оставляя 8183 байт для локальных переменных. Максимум: 8192 байт.
avrdude: ser_open(): can't open device "COM1": No such file or directory
Проблема загрузки в плату. Помощь по загрузке: http://www.arduino.cc/en/Guide/Troubleshooting#upload .

Как понимаю, он не видит COM-порта. А как это обеспечить? Плата подключена через USB.

AVRками пользуюсь первый раз, не бейте сильно, rxtx есть, пользователь в группах tty и dialout присутствует.

 , , , ,

batya ()

И снова AVR vs ARM. Что разумнее выбрать?

Всем доброго времени суток. Давайте поговорим. Находил кучу холиваров по поводу того, что же лучше: AVR или ARM (STM32, например). Бросания говен в этих холиварах совершенно не интересны, поэтому, может ли кто-то внятно и адекватно выразить свое личное мнение по поводу того, какое семейство МК лучше. Я пишу на Си под arm-ы, embedded linux, поэтому, наверное, мне было бы проще использовать мой тулчейн gcc и скорее всего, я выбрал бы ARM-контроллеры, но что-то не замечал особой гибкости в их периферии и объемах памяти. Мне нравится, когда в МК есть только то, что мне нужно, а того, чего мне совершенно не нужно, там нет. Например, если стоит задача: снимать показания датчика света и отправлять по i2c, мне бы не хотелось использовать STM32 для такой простой задачи, ведь для этого нужен слабенький, маложрущий, маленький и дешевый МК, какой-нибудь AtTiny. (Ок, они все относительно дешевы, если штучно). Не хотелось бы углубиться и изучить что-либо, а потом, матерясь, забывать это и изучать другое. Каково ваше мнение, какие МК лучше? (И, по возможности, аргументацию). Спасибо.

 , ,

G-virus ()

Программатор на CH341A не программирует

Здравствуйте, друзья!

Прешел ко мне программатор на МС CH341A. Пытаюсь запустить его по статье: http://sakryukin.ru/?module=articles&c=articles&b=8&a=43 . Операционка у меня: Ubuntu 16.04.

Файл программатора скомпилировал как указано в статье, всё получилось..

При запуске (под root) командой: ./ch341prog -i Выдает строку: No CFI structure found, trying to get capacity from device ID. Set manually if detection fails.

Как с этим боротся...???

Здесь обсуждают подобную тему: http://vrtp.ru/index.php?showtopic=28123&st=210 Участник alex286 в Сообщении №: # 727412 расказывает о подобной проблемме.. Сделал как там написано... Не помогло...

Вот что творится у меня в терминале: http://paste.org.ru/?2ljcah

Как быть??

 , ,

timyr ()

Поиск хобби

Вечер в хату. Скучно мне, так получилось что сегодня вечером не с кем затусить, ну хоть напився и дуркую тут. Подумал - а чому бы не потыкать программирование микроконтроллеров. Познания в электронике какие-никакие есть, погроммирование вспомню. Но всё же хочется на выходе получить что-то полезное (хотя бы для чсв), а не мигание светодиодами. Есть какие-то идеи для начинающего? Поучающие статьи приветствуются.

 , , , ,

Inshallah ()

Mein Embedded

Пятничная тема про Embedded aka программирование микроконтроллеров (не совсем тождественные понятия, но всё же). Я работаю немногим дольше трёх лет (а вообще почти четыре), пока что в двух конторах работал. Хочу перетереть за жизнь с теми кто работает в этой же области (ну можно и не только с ними).

Сразу к делу.

Уныло это как-то всё. Я вполне допускаю, что это всё потому что я не бог весть какой инженер (программист) и мне просто не попадались сложные задачи, пусть так. Пишу я в основном на голом железе и под FreeRTOS. Писал под TMSы, STMы и немного AVR и PIC. Что у нас там есть? Интерфейсы передачи данных, АЦП, ШИМы да каналы захвата. Вот здесь можно DMA подключить. Иногда надо USB присобачить, совсем круто сымитировать или накатить настоящую файловую систему. Иногда что-то по сети передавать. Иногда надо что-то осциллографом смотреть, кому-то нравится, а я не люблю, отвлекает. Вообще стараюсь схемотехники не касаться, благо в обоих конторах этим отдельные люди занимались. Каждый раз моя разработка - или машина состояний на голом железе, или задач под FreeRTOS наструячить.

По предметной области - немного ЦОСа (фильтры подобрать/написать), немного ТАУ. Часто приходится парсить разные протоколы, иногда что-нибудь в матлабе моделировать, один раз приходилось систему стабилизации камеры писать (было прикольно, там и алгебра, и моделирование, но получилось не очень точно). Большая часть моих устройств занимается передачей данных, некоторые делают что-то конкретное (генерируют данные или управляют чем-то). Вообще мне кажется иногда, что лучше б я на конкретной инженерной специальности фокусировался, типа ЦОС или системы управления или что-нибудь ещё. Железо (имею в виду схемотехнику, от которой тащатся многие эмбеддеры, вероятно потому что многие из них изначально радиоэлектронщики) не люблю. Меня особенно дико выбешивает когда что-то не так запаяно и приходится это искать.

Вот и весь мой эмбеддед. Возможно я просто не сталкивался со сложными задачами. Возможно две работы - это небольшой опыт и много чего я не видел. Возможно разработка в эмбеддед и под всё остальное сейчас на самом деле не сильно отличаются.

Но просто я как-то глянул как дрова под Linux пишутся и ничего вообще не понял, откуда эти тонны структур и дескрипторов, что здесь мляха происходит. Открыл проект на С++ (не эмбеддед) и тоже почти нихрена не понял. У меня такое чувство, как будто программистская/CS жизнь проходит мимо меня. ИИ, анализ данных, современные языки программирования и многое-многое другое. Я и не спец по какой-то инженерной области, и не программист.

А у вас есть такое чувство? Вам нравится? У вас сложные интересные проекты? Чем вообще занимаетесь?

 ,

grimwaken ()

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

1) Есть датчик. У датчика есть интерфейс SPI. Я хочу опрашивать его пару тысяч раз в секунду и передавать значения без какой-либо обработки на компьютер на онтопике или смартфон на Android. При этом извращения в виде втыкания в смартфон всяких специальных приёмников через USB OTG не хочу. Должно быть нужно только приложение. В компьютер же можно что-нибудь и воткнуть (тот же Bluetooth донгл, но на ноутбуках практически всегда есть из коробки).

2) Поток данных - несколько килобайт в секунду. Однако было бы не плохо, если можно уходить в какой-нибудь режим ожидания и начинать передачу лишь по запросу. Да так чтобы это давало большой плюс к пункту 4.

3) Дальность: 5-10 метров это ок. Сотни метров не нужно.

4) Низкое энергопотребление. Вся система будет работать от аккумулятора и должна быть достаточно компактной (так что советы прикрутить к этой штуке аккумулятор от КАМАЗа идут лесом). В даташите на NRF24L01 указан ток потребления порядка 13 мА в момент передачи. С учётом того, что мне дальность можно поменьше (на улице дальность достигает 50-70 метров по моим личным тестам у этого модуля), как и скорость, то будем считать, что радиомодуль должен жрать не больше 5 мА в среднем.

По этим хотелками я прихожу к выводу, что мне должен идеально подойти Bluetooth (Wi-Fi явно завалит 4-ый пункт, а всякие NRF24L01 не проходят по 1-ому пункту - смартфон с ней работать не будет). Но тут есть вопрос: обычный Bluetooth или Low Energy? Поразбираться немного подольше я не против, если это даст заметный прирост в автономности. Или же BLE при непрерывной передаче нескольких килобайт данных в секунду жрёт не меньше, чем обычный Bluetooth?

Дальше. Есть два варианта - отдельный радиомодуль и отдельный микроконтроллер или комбинированное решение. По идее в плане энергопотребления второй вариант лучше, зато первый проще в реализации (я могу выбрать любой микроконтроллер, который умею программировать).

Так что можете посоветовать под мои хотелки, господа?

Вот, например, есть CC2540. Но там 8051 и не совсем понятно, что с SDK и компилятором (можно ли использовать какой-нибудь SDCC или надо обмазываться win-only софтом). Вроде как китайские платки с ним прошиты таким образом, чтобы управляться AT-командами. Возможно ли при этом будет воспользоваться всеми фишками BLE (допустим, я прикручу какой-нибудь MSP430 между радиомодулем и самим датчиком)?

Или, может быть, вы знаете какие-то другие хорошие микроконтроллеры со встроенным радиомодулем? Или может есть радиомодуль без микроконтроллера (чтобы не жрал лишнее), который бы я подключил к своему микроконтроллеру?

 , ,

KivApple ()

Электроника. С чего начать?

Здарова. К нг появились 10к руб и я решил сделать себе подарок. Сначала хотел купить набор lego technic 42054, но все же захотелось мне чего то более функционального и умного. Захотел я собрать что-нибудь на микрокотроллере или микропроцессоре такое, что бы и ездить могло и препятствия обходить и пикселями мигать на жк дисплее, короче говоря хочу освоить азы программирования и заодно собрать что то интересное для себя. Что можно использовать для моих целей? Что купить и с чего начать? Ардуино не очень то и хотелось бы, хотя оно простое вроде.

З.Ы.: линукс тут при том, что пишу с андроида у которого внутре ядро пингвинье и вообще это сайт бородатых программистов, вот.

 , , , ,

karton1 ()

mcu-info-util

Как уже я здесь немного говорил, я разрабатываю архиполезную (на мой взгляд) утилиту mcu-info-util. Она OpenSource, написана на Python и нативно работает под Linux.

Данная утилита нужна только тем, кто занимается разработкой прошивок для микроконтроллеров. Если вы этим не занимаетесь в качестве работы или хобби, то вам данный проект интересен не будет. mcu-info-util умеет следующее:

  • Находить компиляторы avr-gcc и arm-none-eabi (актуально для Windows, утилита ищет в реестре некоторые ключи, которые туда пишут установщики соответствующих тулчайнов, также производится поиск в PATH, для Linux только поиск PATH).
  • Подсказывать ключи, которые нужно передать компилятору и линковщику, чтобы успешно скомпилировать проект под целевой микроконтроллер (и если для AVR это всего лишь -mmcu=..., то для ARM всевозможные указания версии cortex, наличия модуля аппаратной математики и т. д.).
  • Генерировать скрипт линковки для ARM. Больше не нужно писать свой скрипт или искать готовый - достаточно названия микроконтроллера (например, STM32F103C8T6) и утилита создаст подходящий скрипт линковки.
  • Генерировать заголовочный файл с описанием регистров периферии выбранного микроконтроллера (в настоящий момент только для ARM, используется информация из файлов SVD, включённых в комплект поставки). Не нужно при использовании libopencm3 или CMSIS, но никто и не заставляет использовать.

Например, мы хотим собрать прошивку под микроконтроллер STM32F103C8T6:

$ mcu-info-util --mcu stm32f103c8t6 --find-compiler
/usr/bin/arm-none-eabi-gcc
$ mcu-info-util --mcu stm32f103c8t6 --print-flags
-D_ROM=65536 -D_RAM=20480 -D_ROM_OFF=0x08000000 -D_RAM_OFF=0x20000000 -mcpu=cortex-m3 -mthumb -DSTM32F1 -msoft-float
$ mcu-info-util --mcu stm32f103c8t6 --linker-script script.ld
$ mcu-info-util --mcu stm32f103c8t6 --header mcudefs.h

Разумеется, было бы разумно использовать mcu-info-util не самостоятельно, а внутри скриптов сборки. На этот случай я приготовил пару примеров - для make и для cmake в каталоге misc репозитория проекта.

Таким образом Makefile проекта может выглядеть как-то так (разумеется, проект будет поддерживать инкрементальную компиляцию с отслеживанием зависимостей исходных файлов) - https://github.com/KivApple/mcu-info-util/blob/master/misc/makefile-project/M...

А проект CMake как-то так - https://github.com/KivApple/mcu-info-util/blob/master/misc/cmake-project/CMak....

Выбор используемого микроконтроллера осуществляется всего лишь одной переменной - MCU. Скрипты произведут серию обращений к mcu-info-util, в итоге будет найден (если установлен) необходимый компилятор, флаги компиляции и при необходимости сгенерирован скрипт линковщика и заголовочный файл с описаниями регистров.

Согласитесь, это гораздо удобнее хардкода размеров ОЗУ и ПЗУ, путей к компилятору (в настройках IDE) и т. д. Функционал подобного уровня (выбор МК по названию и автонастройка проекта под него) предоставляют лишь коммерческие IDE, а моё решение не имеет каких-либо привязок. Вы можете использовать в своём проекте любые библиотеки (скажем, подключить исходники какой-нибудь RTOS), писать код в любой IDE (нужна лишь поддержка Makefile или CMake, либо возможность скриптовать систему сборки и прямые руки), данная утилита лишь берёт на себя необходимую рутину по выбору необходимого компилятора и флагов компиляции без которых проект банально не заработает.

В настоящий момент имеется поддержка только микроконтроллеров STM32 и AVR (также теоретически может нормально заработать для ARM от Atmel).

Данный пост на форуме имеет цель донести до потенциальных пользователей моей утилиты информацию о её существовании. Также хотелось бы услышать ваши мнение о нужности этой утилиты и в каком направлении мне её следует развивать. Ещё хотел бы спросить, как мне следует распространять информацию о моём проекте. По сути дела этот проект я начал в первую очередь для облегчения собственной жизни, но потом увидел, что он может быть полезен не только мне.

 ,

KivApple ()

Вызов функции и барьеры памяти

Допустим, мы пишем код для микроконтроллера. У нас есть две функции - enterCriticalSection и leaveCriticalSection. Они запрещают и разрешают прерывания соответственно. При этом делают это по-умному - используя счётчик таким образом, чтобы позволить рекурсивные блокировки. То есть если вызвать два раза enterCriticalSection, то прерывания будут разрешены только лишь после второго вызова leaveCriticalSection.

Теперь допустим, что у нас есть некоторая переменная, с которой мы работаем в двух местах - в обработчике прерываний и в этой «критической секции» (в обработчике прерываний во время работы с переменной мы тоже входим в критическую секцию, на всякий пожарный).

Мы уверены, что пока мы в обработчике прерывания, нового такого же прерывания не будет. Также мы уверены, что пока мы в критической секции, прерывание не выполнится. Поэтому мы не используем volatile при декларации переменной, чтобы зря не терять производительность.

Сегодня я столкнулся с тем, что судя по всему компилятор таки оптимизировал обращения к этой переменной сильнее, чем надо. Точнее, я могу сделать такой вывод по косвенным признакам - портилась структура связанного списка (добавление/удаление элементов туда как раз и осуществляется в критической секции). Как только я описал его поля как volatile - структура портится перестала.

Функции входа и выхода выглядят так:

void enterCriticalSection() {
	__asm__ volatile("cpsid i");
	counter++;
}

void leaveCriticalSection() {
	counter--;
	if (counter == 0) {
		__asm__ volatile("cpsid i");
	}
}

Функции вызывались из той же единицы трансляции, так что вполне могли заинлайнится.

Мог ли компилятор посчитать asm volatile(...) недостаточным условием для того, чтобы не использовать закешированные значения до его вызова?

Вставил после запрета прерываний и перед их разрешением asm volatile("":::«memory») и убрал volatile в декларациях переменных. Результат тот же - всё отлично работает.

Хорошо. А как насчёт вызова данных функций из других единиц трансляции, когда компилятор не будет знать, что внутри них есть asm("":::«memory»)? Он ведь догадается, что при вызове функции из другой единицы трансляции со значениями в памяти может случиться всё что угодно? Или, быть может, её надо как-то пометить для этого?

Я задаю эти вопросы в двумя целями:

1) Убедиться, что проблема скорее всего была именно в этом, а это не просто совпадение и на самом деле ошибка осталась.

2) Убедиться, что при вызове enterCriticalSection из другого модуля, всё будет работать так же хорошо.

 ,

KivApple ()

Формат данных от термометра

Добрый день.

Помогите, пожалуйста, разобраться с форматом данных измеренной температуры. Есть в наличии пирометр, отсылающий измерения на виртуальный COM-порт. Из инструкции к устройству: «применить последовательность 0х10, 0х27, старший байт температуры, младший байт температуры». Прослушал трафик устройства. Далее привожу табличку, в которой первым столбцом измеренная температура (DEC) а вторым и третьим — старший и младший байт, соответственно. Вот эта часть мне понятна:

-0,10   FF  FF
18,40   00  b8
25,50   00  FF
25,90   01  03
26,40   01  08
28,00   01  18
28,60   01  1E
29,30   01  25
29,50   01  27
31,00   01  36
31,20   01  38
31,60   01  3C
41,80   01  A2
43,00   01  AE
45,90   01  CB
49,60   01  F0
31,70   01  3D
31,80   01  3E
31,90   01  3F
А вот с этой частью я не могу разобраться:
23,10   00  27
24,50   00  35
24,80   00  38
39,70   01  0D
33,20   01  0C  3F
34,20   01  16  3F
34,50   01  19  3F
34,60   01  1A  3F
34,80   01  1C  3F
34,90   01  1D  3F
35,30   01  21  3F
35,80   01  26  3F
36,50   01  2D  3F
36,90   01  31  3F
37,00   01  32  3F
37,30   01  35  3F
37,70   01  39  3F
37,80   01  3A  3F
38,30   01  3F  3F

Собственно, помогите, пожалуйста, разобрать этот формат температуры.

 ,

h0x0d9 ()

О флюсах для пайки (особенно интересен ТТ)

ncrmnt

Линукс тут при том, что я флюсами паяю avr (которые используют gcc и свободные прошивки), а также платы к малине и blackswift.

Собственно, не совсем понятно: 1. надо ли смывать флюсы (ЛТИ-120, ТТ, ФКЭт, Ф-38Н, глицерин, RMA 223, ZJ 18, МЭК, Ф3) 2. какие именно надо смывать (какие по-настоящему полностью пассивные и их можно оставлять на плате, а какие могут привести к проблемам) 3. как смывать (какой растворитель, нужна ли ультразвуковая ванночка). 4. Какую купить утразвуковую ванночку и какие растворители можно юзать? Надо ли что-то делать с платой после вытаскивания из ванночки?

Как основной флюс юзаю ТТ, не смываю, проблем не было пока. Считаю этот флюс одним из самых гениальных изобретений человечества: провода лудятся даже с другой стороны поверхностным натяжением припоя.

Друг рассказывал, что у него была произвольная активация транзисторов в схеме управления реле, пока не смысл ТТ. Причём проявилось через несколько месяцев. Насколько это имеет место быть? И что делать?

 , , , ,

leretan ()

V-USB для AVR микроконтроллеров. Насколько стабильно для продакшена?

https://ru.wikipedia.org/wiki/V-USB

Читал, что есть проблемы со стабильностью: могут внезапно отваливаться устройства, а также кабель должен быть очень короткий (не более 5 см).

Насколько правда? Кто-нибудь юзал в продакшене? Для каких задач и для каких МК?

Какие могут быть подводные камни при использовании ардуины (atmega328) и attiny?

 , , , ,

leretan ()