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

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


Falconist

31 833 просмотра

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

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

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

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

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

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

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

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

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

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


 

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


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



Что-то вы зациклились на решении "конкретной абстрактной" задачи. :) Бросьте. Тема не о том. Тем более что обе схемы не без изъянов (для малых времен между перепадами).

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

На лампах лучше получится.

А если учесть, что опрос состояний портов происходит синхронно с тактовой частотой генератора, то о каком решении "какая кнопка раньше" с помощью МК можно говорить? Разве что задействовать входы внешних прерываний определяемых асинхронно. Но и то "старшинство" векторов может подвести.

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

@Геннадий Здравствуйте, я с программирование знаком только на школьном бейсике времен начала 90х.

Увидел в ленте фразу

54 минуты назад, Геннадий сказал:

опрос состояний портов происходит синхронно с тактовой частотой генератора

 Поясните пожалуйста, что значит.

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

 

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

@TpuoIoaH Всё делается одновременно и сложнее (для первоначального понимания), и проще (для более опытных программистов) - программируется реакция на определённое событие. Например, при появлении сигнала на входе (это событие) происходит вызов подпрограммы (это реакция). Постоянного опроса в цикле не происходит :D

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

 

С ассмом не дружите? Беда!!!

А между "если" время идет и кнопки могут быть нажаты обе за один такт МК. Какая раньше, сможете определить? Думаю нет, ведь Вы будете заниматься обработкой "если".

Почитайте Евстифеева. Он многое на русском объясняет.

ports.jpg.e3a6317b60169c197c68c8fb5d06e93f.jpg

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

На лампах лучше получится.

А если учесть, что опрос состояний портов происходит синхронно с тактовой частотой генератора, то о каком решении "какая кнопка раньше" с помощью МК можно говорить? Разве что задействовать входы внешних прерываний определяемых асинхронно. Но и то "старшинство" векторов может подвести.

Без конкретных значений тактовой частоты МК и частоты входного сигнала разговор беспредметный

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

Разговор беспредметный в любом случае. В схеме фазового детектора МК уступает D-триггеру при любой тактовой частоте.

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

Рисовать ПП, травить, паять - одинаково что МК, что рассыпуха.

Решение на МК дольше - запускать среду, создавать проект, писать прошивку, компилировать, отлаживать, прошивать готовое изделие (надо еще иметь программатор).

Решение рассыпухи проще - одновибратор и D-триггер. 

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

Я напомню, что изначально шла речь про использование МК в конкретном автомобильном устройстве для управления светодиодами.

Там использование МК, на взгляд, абсолютно уместно.

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

А мне показалось, что речь шла о повсеместном использовании МК. Даже тогда, когда это не оправдано. О том, что молодежь, увлекаясь Дуринкой, не знает как согласовать уровни это Дуринки и нагрузки (где-то рядом свежая тема с вопросом). О том, что такие Дуринки иссушают мозг горе-конструкторам, особенно, если "писанина" выполняется на ЯВУ, т.е. без малейшего понятия работы создаваемого устройства.

Как-то так.

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

 

Лично я начал изучение мк avr имея некоторую базу по электронике. И зачастую вопрос логика или мк даже не стоит. МК. Мне личное время дороже.

Ссылка на комментарий
8 часов назад, Геннадий сказал:

А мне показалось, что речь шла о повсеместном использовании МК. Даже тогда, когда это не оправдано.

@Геннадий Эту мысль мне мои оппоненты усиленно пытались приписать.

Если у человека постоянно прилюдно спрашивать "Как давно вы перестали бить свою жену?", то этот вопрос и запомнится. А ответ: "Да я вообще не женат" будет пропущен мимо ушей.

Вот сейчас именно это мы и наблюдаем :D

Цитата

О том, что молодежь, увлекаясь Дуринкой, не знает как согласовать уровни это Дуринки и нагрузки (где-то рядом свежая тема с вопросом). О том, что такие Дуринки иссушают мозг горе-конструкторам, особенно, если "писанина" выполняется на ЯВУ, т.е. без малейшего понятия работы создаваемого устройства.

Ардуино позволяет установить низкий порог вхождения в тему микроконтроллеров и вообще DIY - и это её несомненный плюс, а не минус. Больше народа интересуется этой темой, 10 человек поморгают светодиодом, 1 займётся по-серьёзному. А высокий порог вхождения всех 11 отсечёт. И ничего страшного, что они задают тупые вопросы - это обратная сторона низкого порога. Но лучше уж так, чем по подъездам в вену иглу вставлять.

 

6 часов назад, mvkarp сказал:

Первые же "успехи" кружат голову и не позволяют изучать остальное.

Это зависит от конкретного человека, imho. Всех одним миром мазать неправильно.

8 часов назад, TpuoIoaH сказал:

Уточните пожалуйста, сигнал при этом оценивается?

@TpuoIoaH Не очень понял вопрос.

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

изначально шла речь про использование МК в конкретном автомобильном устройстве

Это Вы так хотите полагать. А на самом деле это был только пример, иллюстрирующий 

9 часов назад, Геннадий сказал:

повсеместное использование МК. Даже тогда, когда это не оправдано

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

7 часов назад, mvkarp сказал:

вроде именно @Falconist ,если не ошибаюсь, и прозвал их Абдуринки.

Нет, не я. Я только воспользовался этим подсмотренным где-то термином.

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

Ардуино позволяет установить низкий порог вхождения в тему микроконтроллеров

Абсолютно верно. Беда только в том, что настолько низкий, что можно провести аналогию с поваром, поставленным за операционный стол удалять аппендикс (вроде как умеет же разделывать мясо). Вот недавний яркий пример: http://forum.cxem.net/index.php?/topic/188721-требуется-консультация-по-оптимизации-простого-устройства-на-базе-arduino/#comment-2744833 Встречались мы с ним, разговаривали. Парень толковый, раз при нулевых знаниях в электронике, смог слепить хоть что-то работающее. Но это "что-то" мне сильно напомнило "этажерку" братьев Райт с реактивным двигателем. В общем, просидел он всю встречу с отвисшей челюстью и ушел с затуманенными мыслями глазами.

 

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

Только в этом вашем примере использование МК как раз и оправдано. Я-то с вашим посылом согласен, что не стоит МК пихать куда ни попадя (и примеры мы тут же рассмотрели), но не в данном конкретном примере :)

Изменено пользователем Darth_Vader
Ссылка на комментарий
1 час назад, Falconist сказал:

В общем, просидел он всю встречу с отвисшей челюстью и ушел с затуманенными мыслями глазами.

Ну и пусть. Научится ещё.

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

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

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

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

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

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

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

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

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

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