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

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


Falconist

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

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

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

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

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

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

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

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

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

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

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


 

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


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



а если придется менять скважность импульсов вспышек?

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

Представим, что все таки применили мелкий МК. Частота и скважность вспышек в данном случае решается двумя подстроечными резисторами на входах АЦП. Число вспышек (от 1 до 16 к примеру) DIP переключателем. Было бы намного красивее.

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

Согласен Решение было бы верное. Но для этого надо иметь как минимум голову на плечах, а не кочан капусты. Кстати, дополнительный подстроечный интерфейс = расползание схемы. О компактности схем с МК говорить тогда уже сложно.

По поводу скважности - покумекали с генподрядчиком и так и эдак и решили, что при частоте порядка 0,2...0,4 Гц изменения скважности будут фактически незаметны. Для этой мигалки важна заметность вспышек. А она как раз нормальная (не буду врать, что наилучшая - именно "нормальная") при скважности 2. Проверено экспериментально с помощью вот этой цацки: http://forum.cxem.net/index.php?/blogs/entry/316-импульсный-коммутатор-нагрузки/ 
 

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

Отвечая про конкретный вопрос о скважности и именно для представленной схемы - диодами с младших выходов через перемычки реализовать логическое "И" или "ИЛИ" - вот вам и скважность, выбираемая пользователем.

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

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

Не только начинающие )) Я вот тоже поклонник этого дела и не стесняюсь. Правда подход у меня свой

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

Но вот "Абдуринки" - мешают начинающим изучать схемотехнику. 

Они нужны для изучение программирования. Схемотехника и программирования вроде бы рядом, но всё же это разные направления, хороший программист не обязательно должен быть очень хорошим электронщиком, МК конечно на стыке схемотехники и программирования, но ведь есть HTML программирование, да есть и другие высокоуровневые языки программирования, где просто не нужно задумываться как работает машина, а над тем как работает машина пусть думают создатели компилятора, а те кто кричат что высокоуровневые языки программирования "абдуринки" пусть сами подумают сколько времени уйдёт что написать, что то типа Autocad, 3ds Max на машинных кодах, а главное как они это будут портировать потом на машину с другой архитектурой :)

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

Скажу пару слов по поводу "абдуинки" как тут выразились. Поклонники платформы Arduino, Raspberry Pi, .NET MicroFramework и др. одноплатников пришли со стороны программистов. Я думаю процентов 80-90 не меньше. Достаточно почитать хабр и гиктаймс чтобы убедится в этом. Плюс немалый процент детей, для которых как ни крути, а сразу понять схемотехнику и кодинг достаточно трудно. И многие с ардуинки впоследствии перешли на более "true mcu" платформы stm32, avr и др. Поэтому ардуино вряд ли можно обвинять, что народ расслабился и ушел в нее с более правильных платформ. Не было бы арудино - не было бы и этих людей, и стало бы меньше микроконтроллерщиков. Арудино - это "попсовый" инструмент и быстрый старт для привития микроконтроллерных идей в массы. И плюсов у нее очень много, можно сколь угодно ее хаять, но против цифр статистики ее популярности не попрешь.

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

@admin , Вы неверно меня поняли.

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

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

Мне неприятно видеть такую ситуацию. Конструктор, владеющий контроллером и не владеющий периферией - это тупиковое направление. Ему нужен "драйвер", который будет управлять им. Ибо будет, как у Райкина: "К пуговицам претензии есть?"
Уже рассказывал как-то. Будучи на третьем курсе и подрабатывая на кафедре, столкнулся с ситуацией, когда два аспиранта, программист и схемотехник, не могли найти решение. Не работает плата, и все тут. Попросил я эту плату со схемой и с описанием работы с ней программы в общагу. На завтра система "чудесным"! образом заработала.
Может, воспитание у меня такое? Если у меня есть велосипед, то шины накачать, цепь смазать и вообще знать, как оно устроено я просто обязан. Или и велосипедик на СТО скоро гонять будем?

А потом возмущаемся, что отстали от Запада навсегда. Что слабые инженеры. Что вообще мы в ...опе. Сколько тут, на форуме, "громких" слов было сказано про загнивающую Родину и про Великий Запад. Прям, боги там. А мы, извините, дауны.

Вот с подобного, с ограничения в мышлении все и начинается. бестолковое применение МК в силу того, что оно проще, так и останется бестолковым. Мало того. При таком подходе мы и сами не сможем изобрести ничего подобного. Вот тогда сможем с уверенностью сказать про полный абзац. :(

Совсем не хочется видеть, даже в мыслях, этот "абзац".

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

@mvkarp , подпишусь под каждым словом!

Бессмертные слова: "Детям - мороженое, бабе - цветы". И не перепутай, Кутузов!.." Беда не в микроконтроллере. Это - гениальное изобретение. Беда в том, что реально раздаются "Бабе - мороженое, детям - цветы". Только потому, что так проще.

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

Года два-три тому делал с кем-то курсач. В общем, изобретали на обычной логике делитель частоты с переменным двухзначным коэффициентом деления, где переменную устанавливает пользователь.
Естественно, проще зашить в МК простенькую программульку, вывести интерфейс - и все на этом. Но это курсач. Логика стандартных серий, и все тут.

Получил удовольствие.

Скрытый текст

 

Не помню, что там за усложняющие условия были. Но, естественно, сделали. Больше удовольствия было не от того, что мозги слегка напряглись и поработали, а от того, что студент просил только помощь. От меня временами предоставлялись обрывки узлов, как я сам видел решение. И просто направлял студента. Практически, все он сделал сам. И разобрался, и что-то узнал. Сделал курсач и защитился.

Приятно вот с такими людьми работать.

 

 

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

Похоже, что "наоборот" тяжелее дается.
Схемотехник, на мой взгляд, понимает, где находится грань. И, если даже не владеет контроллерами, при необходимости их изучит. Основы их построения в башке уже есть (АЛУ, регистры, таймеры, порты...).
Не владеющий схемотехникой этой грани не видит. Ее просто нет, т.к. нет набора других вариантов решения задачи. Есть контроллер, а другого ничего нет. Потусторонний мир, так сказать.

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

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

Естественно, проще зашить в МК простенькую программульку, вывести интерфейс - и все на этом. Но это курсач. Логика стандартных серий, и все тут.

Нужно делать на лампах и реле, а если шить контроллер то только так https://habrahabr.ru/post/152052/ , нет товарищи, всё это изобретение колеса, пускай квадратного но своего, для реальной жизни оно не применимо. Нужно учить ту базу которая доступна и дешева на данный момент, просто кто то не освоил МК, и им проще на том в чём они разбираются, чаше всего те кто хейтят МК, сами МК не освоили :) Кто то застрял на МП39Б, а кто то на К155ЛА3...

Цитата

Логика стандартных серий, и все тут.

ATmega чем сегодня нестандартная серия ? Олдфаги против ньюфагов.

Цитата

А потом возмущаемся, что отстали от Запада навсегда. Что слабые инженеры. Что вообще мы в ...опе. Сколько тут, на форуме, "громких" слов было сказано про загнивающую Родину и про Великий Запад

Идеи Чучхе идёт лесом, только кооперация,интеграция и глобализация. Даже МЦСТ это понимает по этому ПЛИС, а не К155ЛА3, Linux, а не скрепная ОС с нуля :)

Вот пример, видеокарта «Радуга», где логика "стандартных серий" ?

Сам не ярый фанат микроконтроллеров, но даже у меня забомбило...

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

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

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

по поводу стоимости да. Поэтому народ и наглеет (про себя говорю в основном)

тот же STM32F030F4P6 обходится нынче в 36 рублей. И за ту же цену продается рассыпуха древней древности. Даже простецкий таймер 555 стоит нынче в ближайшем лабазе почти так же. Так где 555 а где STM? Вот поэтому и пихаю куда только можно. Экономлю. А прошу начирикать на это дело в нынешних условиях ну час-полтора, если с сервисом. Самое долгое - 2 дня писал на зарядное устройство. Технологии аднака...

То что описано в данном ТЗ с платой, с прошивкой и изготовлением заняло бы пару дней максимум.

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

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

Не, народ за деревьями так леса и не увидел...

То, что МК удобен и многофункционален - сомнений не вызывает. ДЛЯ РАЗРАБОТЧИКА!!! А как быть пользователю, если ему надо автономно поменять какие-то параметры? Причем, неоднократно. Добавлять на плату средства подстройки (кнопки/энкодеры, какой-никакой дисплей и т.п.)? О компактности можно сразу же забыть. Не делать этого - получаем "сферического коня в вакууме".

Нож и вилка хороши за обеденным столом.

Скальпель и зажим - за операционным столом.

И никак наоборот!
 

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

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

Я ж говорю, на худой конец можно выполнить просто полный функциональный аналог CD4060, если так будет спокойнее клиенту ))

Изменено пользователем mail_robot
Ссылка на комментарий
2 минуты назад, mail_robot сказал:

частный случай криворукого разработчика

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

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

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

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

 

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

Не, народ за деревьями так леса и не увидел...

Однако, на казусе сегодня приключился типа афоризм: "без конкретного ТЗ , результат ХЗ" (С)

Было бы нормальное ТЗ, то уже и в первой разработке было бы несложно ввести пару кнопок настройки, и организовать типа меню пользователя. МКшка бы была более востребована, и оправдано её использование.

И если б заказчик более четко осознавал свои конкретные хотелки, не пришлось бы носиться с перепрошивками.

И тогда бы не пришлось микроскопом гвозди заколачивать, и мелочь рассматривать через молоток

ИМХО.

С уважением, Сергей 

Изменено пользователем Sukhanov
Ссылка на комментарий
19 минут назад, mail_robot сказал:

Они так же все равно не повторят

Да я, собственно, потому и опубликовал эту схему. Может, кому-то и пригодится.
 

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

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

С логикой , так не получится , захочет , к примеру заказчик  7 вспышек или 11  - все нужно новую плату делать, да и корпусов больше будет. Опять же любой починить сможет и схему передрать , если , конечно , маркировку на микросхемах не затереть ))

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

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

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

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

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

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

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

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

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

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