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

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


Falconist

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

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

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

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

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

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

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

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

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

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

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


 

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


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



Только что, demiurg1978 сказал:

STK-500 отладочная плата и программатор AVR. Поддерживает как параллельное, высоковольтное программирование так и ISP (внутриплатное программирование). Удобна набором панелек для AVR в DIP-корпусах. Наличием 8 кнопок и 8 светодиодов. Минус - работает от COM порта.

AVR-Studio 4.19.

Прикупил китайский USBAsp и теперь никакого геморроя с СОМ-портами. STK500 еще послужит :)

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

Я периодически на форумах наблюдал плачи: купил сторонний программатор, не работает, помогите. Купил AVRISP MKII и никакого геморроя.

Ссылка на комментарий
Только что, mvkarp сказал:

Так, почему "высоковольтное"? Сгорит же контроллер.

12 вольт, если мне память не изменяет. Вместо 5.

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

В отладчике видно

А работает с моей платой или в ОЗУ компьютера крутится? Могу я в отладчике по шагам пройтись, чтобы в моей плате все вот так же по шагам работало? И как отладчик будет видеть состояние портов, регистров реального МК?

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

...Купил AVRISP MKII и никакого геморроя.

Его можно легко собрать самому (как и ST-Link2). Всего лишь AT90USB162 и "никакого геморроя".

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

В среде программирования

Т.е. реальных (физических) изменений на портах, например, ввода я не увижу? Придется их задавать вручную в отладчике, чтобы проверить функционирование программы?

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

Т.е. реальных (физических) изменений на портах, например, ввода я не увижу? Придется их задавать вручную в отладчике, чтобы проверить функционирование программы?

Отладчик с симулятором путаете. Proteus вам в помощь.

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

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

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

подтверждаю - STLink полноценный отладчик. Все что видишь на экране, происходит и в железе по шагам. Это собственно даже не от свистка зависит, а от продвинутости отладочного модуля в самом камне. Чем и хорош STM, что софтовым симулятором заморачиваться не нужно, все прекрасно в железе напрямую отлаживается.

11 час назад, Геннадий сказал:

Его можно легко собрать самому (как и ST-Link2)

стоит ли убиваться за 2,5 доллара?

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

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

стоит ли убиваться за 2,5 доллара?

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

У Texas Instruments такая же фишка есть - на Launchpad'e, который в своё время бесплатно раздавался, имеется программатор с отладчиком. Берёшь и по SBW программируешь и отлаживаешь МК. Я сначала МК от TI взял в руки, а потом уже AVR посмотрел - в своё время очень удивился, что для AVR отладчик это проблема, стоимостью под сотню долларов.

А вот до STM дошёл и как снова воздуха свежего глотнул.

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

ну TI то это тоже по сути ARM, только со своей периферией. Местами вкуснее, чем STM, но ценник отпугивает конкретно. Чем собственно STM и берет при всей своей местами глючности - простотой и ценой за оооочень хорошую производительность и доступность. На сегодняшний день аналогов ему на рынке просто нет. Вообще не понимаю людей, до сих пор тупящих на AVR

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

Вообще не понимаю людей, до сих пор тупящих на AVR

AVR реально проще для понимания.

С 16бит MSP430 на 8бит AVR перешёл без проблем. Примерно тоже самое все, а вот с STM дело туго идёт :D Хотя сразу видно, что потенциал и мощность STM32 с AVR просто несравнимые.

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

В чем состоят трудности то?

"Шаг сделаю - падаю, шаг сделаю - падаю" (с) "Ширли-мырли" :D

Периферии больше, периферия сложнее, настраивается по-другому, абстрактная модель новая...

На одних таймерах можно ногу сломать, такого наворочено, аж дух захватывает. А master-slave в таймерах STM32 вообще песня! :clapping:

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

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

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

Да всё там предельно ясно. 
Речь идёт об ардуино-подобному быдлокодированию с помощью калокуба :) 
 

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

вот они наглядно те кто обсерает, и те, кто понимает. Чего тут не понятного то? Есть инструменты, надо только уметь ими пользоваться. Куб далеко не идеал, но при определенной допилке кода (что совсем не трудоемко) очень даже преотличный инструмент. А те кто сравнивает этот метод с ардуино просто показывают свою неграмотность в вопросе. Ардуиной там и не пахло даже

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

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

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

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

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

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

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

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

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

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

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

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