>> Железо: uC простой чип содержащий в себе все критически важное для работы
> Атмел какой-нибудь умеет и прошивку терятьЯ это уже не первый раз (вероятно от вас же) слышу, но не как не могу воспроизвести - зажигание на atmega ДВС по-прежнему работает, сварочный осциллятор тоже с atmega также без проблем. Кстати если я запускаю осциллятор менее чем в метре от десктоп - он перезагружается.
> и настолько простой что даже исключения
> не реализует и когда он начинает лопатить мусор - он это
> будет делать долго, пока вачдог его не снесет. К этому моменту
> он может успеть потереть себе флэш/еепром.
Добавить контрольную сумму eeprom? Поставить fuse lock на запись в flash?
> А какой-нибудь Cortex M3 не
> сильно проще одноплатника.
Все же существенно проще, да и он тоже фактически самодостаточен (минимум внешней обвязки, может работать без внешней ram, есть свой rom).
> На старших STM32 даже линукс всерьез запускают.
Да, но смысл? Если действительно нужна полноценная ОС, то лучше взять одноплатник с большими возможностями.
>> Софт: Linux + софт = миллионы строк кода vs 100-5000 строк на uC.
> Эти 100 строк не обеспечивают ни отображение статуса, ни удаленное управление.
Почему же? Если мигание светодиодами (а ля роутер) - 10-20 строк, управление с ИК - тоже 10-20 строк. Управление через радио модуль - примерно тоже.
Да и даже если наберется 2000 строк (и это дофига - круизконтроль + система зажигания + logger на sd card + lcd) это существенно меньше, чем linux + drivers + user space/apps.
Последнее время я активно работал над rockbox - там плееры на SoC (что-то среднее между STM32 и современными одноплатниками). Багов неимоверное количество, в основном в драйверах, многие проявляются в очень редко, дебагать сложно. Вложенные вызовы IRQ тоже не добавляют комфорта. Иногда наступает ситуация которая приводит к вызову defaul handler IRQ, хотя handler для этого IRQ задан. Сама обработка IRQ - строг по datasheet.
C sd cards отдельная проблема - некоторые баги вылазят только на определенных карточках. Да и сам sd спецификация приводит в уныние. Про usb лучше вообще не вспоминать.
Linux тоже содержит кучу багов и еще более заковыристых.
После этого смотришь на avr - все просто, понятно, однозначно - написать bug free программу вполне реальная задача при том за относительно короткий промежуток времени.
>> Спрошу прямо: вы бы доверили свою жизнь или жизнь близких SoC с
>> linux или предпочли бы что-то по надежнее на простом uC?
> Linux сейчас управляет метро, летает в космос, и вообще.
Да, знаем как оно там летает: https://www.linux.org.ru/news/linux-general/11648238
Это даже не смешно, а очень печально: безграмотность достигла космического уровня.
> Вашему любимому атмелу
> жизнь вообще доверит только суицидник, они обнаружение некондиционного питания сроду сделать
> не могли и глючили вплоть до слета прошивки.
atmega datasheet:
Keep the AVR RESET active (low) during periods of insufficient power supply voltage. This
can be done by enabling the internal Brown-out Detector (BOD). If the detection level of the
internal BOD does not match the needed detection level, an external low VCC Reset Protec-
tion circuit can be used. If a reset occurs while a write operation is in progress, the write
operation will be completed provided that the power supply voltage is sufficient.
>> Всегда, если используется автономный источник питания.
> Если у меня 100 датчиов как тут хотел владелец унитазов, с батарейкой
> работаюещй год, значит я буду менять 100 батареек за год. Т.е.
> замена батарейки где-то раз в 3 дня. А если на месяц
> куда-то умотал, потом целое техобслуживание - дюжину батареек заменять.
Это да, но под автономным я имел ввиду не только батарейки, но и АКБ с зарядкой от солнечных батарей или других нестабильных источников питания.
>> Обоснуйте? Есть возможность получить гарантированное время реакции на GPIO
> Зависит от того какое время надо. Зачем в умном доме жесткий реалтайм?
Всякое бывает - иногда нужно вымереть точно длительность импульса от датчика или наоборот сформировать точный импульс (или серию).
Сейчас думаю над задачей - как исключить перегрузку сети. Тоже нужно за гарантированный отрезок времени обнаружить перегрузку и отключить часть потребителей (по списку приоритета) для ее устранения.
>> Тот что ставят для подсветки - он ограничен ее потребностями. Практически на
>> любом uC 3 или больше PWM 8-16 bit, с кучей разных режимов и практически любой частотой.
> Да что там, у кортексов 3-фазный motor control есть. Только умное реалтаймное
> управление моторами - очень отдельный случай, где вам конечно пригодится реальное
> время но это на отдельный проект потянет.
>> Это стандарт де факто для бытовой техники.
> Какой еще техники?
Стиральные машины, индукционные плиты, etc - практически все используют внутри 5v для логики.
> Датчики и модули обычно 3.3V желают.
Смотря на какой uC ориентирован датчик. Если без четкой принадлежности - то обычно 5v. Да и работать с GPIO 5v + датчик на 3.3v проще, чем GPIO 3.3v + датчик 5v.
>> датчики приводятся к уровню 5v. Имея 5v можно напрямую управлять обычным mosfet.
> У обычного MOSFET напряжение упраления 10V
Полное - да. А если токи не большие - 5v вполне хватает.
>> Для gpio тоже удобно - меньше ток, меньше потери, меньше уровень помехи.
> Это чего бы это он меньше?
Если нагрузка требует определенной мощности (ватт), то по закону ома.
> Потребление CMOS пропорционально квадрату напряжения.
На gpio не только CMOS цепляют.
> чем ниже напряжение тем меньше наводок оно создает.
Да. Но собирает и их гораздо лучше, что для нашего случая (управление силовой электроникой и датчики, а то и сама плата около нее) важно.
>> Очень сомневаюсь: atmega 8a (самый ширпотреб, даже не industrial) Operating Temperature
>> -55°C to +125°C
> Это все прекрасно, только атмега сама по себе вообще не умеет сети.
> И дом получается какой-то не умный.
Для этого есть модули. Даже если модуль связи ушел в ребут/отказ - основная задача продолжает выполнятся - микроядерность и модульность в чистом виде.
>> И да 9: Устойчивость к EMI то же на порядок ниже.
> Это еще бабушка надвое сказала. Одноплатник обычно питается от импульсного широкодиапазонного
> зарядника, который выдерживает очень многое. Дальше там менеджер питания, который тоже
> с запасом сделан (при номинале в 5 вольт - abs maximum
> бывает вольт 10-20) и т.к. это скоростной импульсник на мегагерц-два, ему
> не так уж важно что там на входе за пакость. А
> вот насколько ваши поползновения в конструировании цепей питания будут устойчивее этого...
Пример с осциллятором я уже приходил. uC работает прямо внутри него. Сложная электроника даже на расстоянии начинает глючить - начиная с потери usb устройств, заканчивая зависанием/перезагрузкой.