Перейти к содержанию
  • записи
    53
  • комментариев
    1 217
  • просмотров
    81 657

Микроскоп в роли молотка?


Falconist

31 819 просмотров

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

Ситуация вчерашнего и сегодняшнего дней, категорически противоречащая этому утверждению: взял субподряд на изготовлении узла управления специфической мигалки для авто. Алгоритм такой: при подаче напряжения питания должно последовать 4 вспышки, после чего светодиод светится постоянно, пока не снято напряжения питания. Если снова подать питание - цикл повторяется. Если снять питание, пока идут вспышки, то при его новой подаче цикл начинается сначала. Причем, первый импульс должен начинаться в момент подачи питания.

Собственно, схема была уже изготовлена "умельцем", выполнена на микроконтроллере. Показана в работе клиенту. Тому не понравилась частота вспышек (слишком частые), потребовал ее уменьшить. А "умелец" куда-то сдрыстнул и сейчас находится за пределами реального доступа. ВСЁ! Прошивка неизвестна. Программатора нет. Средств изменения констант на плате нет.

Даже если бы всё (за исключением последнего пункта) и было - попробую ситуацию немного усугубить. Изменили константу, отвечающую за частоту. Прошили МК заново. Показали клиенту. Ему не понравилось количество вспышек. Потребовал увеличить с 4 до 8  Изменили константу, отвечающую за к-во вспышек. Прошили МК заново. Показали клиенту. Теперь ему снова не понравилась частота вспышек - слишком мала. Изменили константу, отвечающую за частоту. Прошили МК заново. Показали клиенту... И т.д. и т.п. Причем, клиент ничего не может поменять сам - только ехать на сервис, чтобы перепрошивали МК.

Причем, утрировал ситуацию я не сильно. Буквально вчера речь шла о 4-х вспышках. А сегодня генподрядчик возжелал, чтобы их было 8!

Покрутил я Т.З. и так и эдак... И уже ночью сообразил, что вся "хотелка" может быть реализована с помощью одной-единственной КМОП микросхемы CD4060:

Мигалка - логика.GIF

Собственно, схема известна, применяется в реле времени/таймерах, я только использовал младшие разряды счетчика для формирования начальных вспышек.

При подаче напряжения питания счетчик обнуляется через конденсатор С1 и запускается тактовая генерация. С выходов Q9 или Q10 (выбираемых перемычкой Х2) единичные импульсы поступают на силовой блок, запрещая его работу (т.е., формируя паузы между импульсами). Через 4-8-16 таких импульсов (опять же их количество выбирается перемычкой Х3), единица через диод VD1 "затыкает" генератор тактовых импульсов и счетчик остается в этом состоянии до снятия напряжения питания. На исполнительный узел поступает логический ноль, разрешая его работу. Частота генерации регулируется подстроечным резистором R1. ВСЁ! Алгоритм соблюден. Меняться в определенных пределах может клиентом, совершенно незнакомым с МК самостоятельно. Размеры платы практически такие же, как и с МК. Не требует программатора и умения программирования.

Засим еще раз повторюсь: я целиком и полностью "ЗА" широкое применение микроконтроллеров при условии, что для данной задачи их применение обосновано!!!


 

462 Комментария


Рекомендуемые комментарии



Прочитал всю тему. Изначально ситуация кривая - заказчик по ходу разработки меняет требования. В таких условиях что МК используй, что рассыпуху - без разницы. Если разработчик изначально не смог предвидеть, что заказчик начнёт менять ТЗ, то геморрой с реализацией новых хотелок обеспечен. Проблема в изменчивости ТЗ, а не в выбранном решении. Так что, МК тут ни при чем.

У меня вот как раз сейчас похожая задача. Стоит выбор - на чём реализовать управляемый резистором генератор ШИМ-сигнала :-) NE555, TL494 или Attiny13.

Минимальная обвязка получается у TL494, Attiny13 паять сложнее, NE555 - больше деталей

Ссылка на комментарий

На МК - самый простой, из обвязки - только потенциометр и кренка. Программа уже написана.

По середине - TL494, к потенциометру добавляется RC-цепочка без кренки.

А потом уже NE555 - ещё несколько деталей.

Изменено пользователем Darth_Vader
Ссылка на комментарий

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

Задача из-за изменений в задании, получается в несколько этапов:

  (1)Собрать устройство 4 вспышки.

  (2)Изменить частоту.

  (3)Изменить количество вспышек.

  (4)Изменить частоту.

  (5)Добавить регулировку.

Для мк по порядку :

  (1)Изготовление платы, распайка компонентов, прошивка.

  (2)Прошивка.

  (3)Прошивка.

  (4)Прошивка.

  (5)изготовление платы, перепайка компонентов, прошивка.

Для кмоп по порядку :

  (1)Изготовление платы, распайка компонентов.

  (2)Замена компонента.

  (3)Изготовление платы, перепайка компонентов.

  (4)Замена компонента.

  (5)Изготовление платы, перепайка компонентов.

Можно к каждому пункты подставить человеко-часы  и расходы на материалы и компоненты.

Получим индивидуальное, сравнение относительно описанной автором ситуации.  

Ссылка на комментарий

Вы забыли нулевой пункт: "(0) ПРАВИЛЬНО спроектировать устройство".

Тогда п.п. 2...5 для КМОП не будут нужны. вообще. А вот для МК п.п.  2..4 останутся.


 

Ссылка на комментарий

Что значит правильно? Предусмотреть хаотичность мыслей заказчика?

Что бы уж всё было совсем хаотично давайте введем индивидуальную длительность каждой вспышки :-)

Ссылка на комментарий
9 минут назад, Darth_Vader сказал:

Предусмотреть хаотичность мыслей заказчика?

Именно так! Если проектировщик не в состоянии предусмотреть все возможные и невозможные варианты использования своего детища, то нефиг ему браться за проектирование.

9 минут назад, Darth_Vader сказал:

индивидуальную длительность каждой вспышки

А вот эту задачу как раз легче и проще решить с помощью МК.

 

Ссылка на комментарий

Я ничего не забыл. Всё согласно описанной ситуации.

Или вы хотите сказать, что поставленную задачу в 4 вспышке реализовали бы сразу с перемычками Х3 и R1?  Тогда это явно выходит за рамки вашего "необходимая достаточность".  

12 минуты назад, Falconist сказал:

не в состоянии предусмотреть

 что заказчика может не устроить длительность каждой вспышки....

@Falconist Ну вы прям самокритичны :)

Ссылка на комментарий
25 минут назад, Falconist сказал:

Именно так! Если проектировщик не в состоянии предусмотреть все возможные и невозможные варианты использования своего детища, то нефиг ему браться за проектирование.

Невозможно и не нужно предусматривать всякий бред, выходящий за рамки ТЗ.

Сами же видите, что изменение не числа выспышек, а длительности вспышек приводит к тому, что ваша конструкция на рассыпухе сразу же отправляется в мусорку. А если вспышек нужно не 4 или 8, а, допустим, 7?

Паять логику поведения схемы значительно более затратно, чем её запрограммировать.

Изменено пользователем Darth_Vader
Ссылка на комментарий

Сытый голодного не понимает и никогда не поймет.

А холиваров достаточно в звуке, чтобы я еще и тут в них встревал. Свое мнение я изложил. За долгие годы только дважды или трижды избыточность спроектированных мною схем оказывалась недостаточной. Во всех остальных случаях ВСЕ "плюшки" не использовались, но были заложены изначально и использовались частично. Повторяю: ВО ВСЕХ остальных случаях! Отсюда и возникло пояснение к следствию из 2-го закона схемотехники ( http://forum.cxem.net/index.php?/blogs/entry/310-три-закона-схемотехники/ ) :

Цитата

Лучше поставить 3-4 лишних корпуса, чем заморачиваться с настройкой, если связи настолько хитры, что "косяк" только в одной из них делает неработоспособной всю остальную схему...
 

Просто проектировать правильно надо. А не искать "блох" на ровном месте, типа "допустим, 7".

Особенно меня восхищает "аргумент" "микроконтроллерофилов" о том, что "плата будет иметь меньшие размеры". При том же самом корпусе! Спрашивается, А НАФИГА?
 

Ссылка на комментарий

Схемотехника на рассыпухе жестко задана. Если что-то нужно поменять, нужно менять схему. Если использовать МК, то проект становится гибким. Пусть схема остается одна и та же. Помигать светодиодом. Программно можно реализовать очень много чего. Не меняя схемы. Если даже и придется что-то добавить, то при реализации проекта на макетной плате это не проблема.

Ссылка на комментарий

"Помигать светодиодом" = забить гвоздь микроскопом.

Можно, конечно, если никаких других знаний нет.

Об этом, собственно, и вся эта запись.

А вот свеженький пример "мигателя", абсолютно не понимающего, как нужно подключать эти самые светодиоды: http://forum.cxem.net/index.php?/topic/188266-подключение-нагрузки-через-транзистор-к-lm3915/
 

 

Ссылка на комментарий
4 часа назад, Falconist сказал:

"(0) ПРАВИЛЬНО спроектировать устройство".

Тогда п.п. 2...5 для КМОП не будут нужны. вообще. А вот для МК п.п.  2..4 останутся.

Вот в этой фразе вся сущность и отношение автора. Автор отверг возможность изначально правильно спроектировать устройство на мк с возможностью гибкой настройки без необходимости перепрошивки. Почему?

Автор отстаивает свою точку зрения используя изощрения, но мы используем сухой и нейтральный подход.

Рассмотрим три варианта:

1) Изначально "правильно" спроектированное устройство. 

На кмоп получаем регулировку частоты и изменение количества импульсов ограниченное  определенными значениями.

На мк получаем регулировку частоты и изменение количества импульсов без ограничений(в реальных пределах).

2) Вариант описанный автором

4 часа назад, Falconist сказал:

все возможные и невозможные варианты использования своего детища

На кмоп смотрим вариант 1) и понимаем, что для этого варианта - кмоп это не вариант. 

На мк смотрим вариант 1) и добавляем возможности управлять каждой отдельной вспышкой, возможности реализуемые при помощи дисплея, и прочего.(вполне вероятно, что заказчику в итоге захочется морзанку или "Мадрид чемпион"). 

3) Вариант изменений устройства описанный автором от 4 вспышек до возможности изменения количества и частоты. Он по пунктам расписан выше.

Подведем итоги...

Ссылка на комментарий
6 минут назад, EropbeB сказал:

Подведем итоги...


 

51 минуту назад, Falconist сказал:

холиваров достаточно в звуке, чтобы я еще и тут в них встревал.


 

Ссылка на комментарий

Я, например, считаю, что в описанной ситуации МК был использован совершенно правильно, а проблемы возникли из-за человеческого фактора. 

Ссылка на комментарий

Завтра клиент захочет, чтобы вспышек было уже другое кол-во, времянки изменить. Паузы и вспышки. Опять схему менять? А после завтра вообще другой алгоритм. Тогда как? Надолго у вас хватит терпения напрягать мозги изобразить хотелки на рассыпухе?

Ссылка на комментарий

Какой-нибудь "клоп" типа Attiny13 в данной конструкции более уместен, чем горсть рассыпухи - это будет более гибкое, надёжное и дешёвое решение.

Но конечно, надо уметь использовать МК - иметь программатор, уметь его программировать. Если этого вы не умеете, то тогда будет один негатив. 

Ссылка на комментарий

Ребята, мне скоро должно стукнуть 66 лет. Из-за единичного проекта учиться программировать? Мне быстрее и проще сделать все то же самое на жесткой логике. 

У вас с МК дружба? Я рад за вас.

Ссылка на комментарий

Вот, пишут про "... клиент захочет...". @Falconist как-то вроде упоминал - выведет он клиенту подстроечник какой, дырку в корпусе проделает под отверточку - пусть клиент сам крутит, что ему нужно.

А с МК - самому нужно будет прошивку менять. Или на стадии проектирования интерфейс предусмотреть, чтобы бабка в кедах, представляющая сторону заказчика, могла сама менять что ей вздумается (шишь ей - только то, что предусмотрено ТЗ).

Представим следующую ситуацию. Система - супер. Я как заказчик доволен. Производитель тоже балдеет - он туда супе МК всадил, много чего предусмотрел. Может прошивку под мои хотелки менять удаленно... Ноя, такая скотина, захотел, чтобы ручка для переноски аппарата была съемной. Хана - производитель в опе. А мне всего-то ручка мозг выносит.

Вывод - каждому гвоздю свой микроскоп. А желательно, конечно, чтобы пользовались молотком. Обычным, не отбойным.

Ссылка на комментарий

МК и подстроечник прекрасно дружат, пусть клиент крутит, если ему приспичит

4 минуты назад, Falconist сказал:

Ребята, мне скоро должно стукнуть 66 лет. Из-за единичного проекта учиться программировать? Мне быстрее и проще сделать все то же самое на жесткой логике.

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

Ссылка на комментарий

Тогда МК уже далеко не "клоп", а должен иметь хоть один аналоговый вход.

И, если "дружат", то покажите хоть один проект, где регулировки осуществляются переменным сопротивлением, а не кнопками.

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы публикуете как гость. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Добавить комментарий...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...