Микроконтроллеры заменили более простые микросхемы?

37

Стоит ли, например, учиться настраивать таймер 555 с резисторами и конденсаторами, когда можно написать программу таймера для микроконтроллера на понятном человеку языке программирования?

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

user955
источник
4
@ jes5199 - Я не совсем уверен, как этот вопрос заслуживает метатега; Вы можете прокомментировать свое обоснование?
Дж. Полфер
3
я думал, что я задаю не вопрос о конкретной проблеме, а обо всей области. Это показалось мне немного мета.
user955
Печатная плата с дискретными компонентами и чипом, помеченным как таймер 555, гораздо удобнее для чтения человеком, чем программа, хранящаяся в чипе.
Каз

Ответы:

35

В основном микроконтроллеры заменили дискретные ИС. Я считаю, что даже если бы я мог разработать схему с 555, вполне вероятно, что эту же схему нужно будет настроить через несколько недель, чтобы сделать что-то еще, и микро сохраняет эту гибкость.

Но есть несколько исключений.

Дискретная логика все еще быстрее, чем большинство микроконтроллеров. Задержка распространения и время переключения для дискретной логики находятся в диапазоне 1-10 нс. Чтобы согласовать это с микроконтроллером, вы должны иметь возможность реализовать любую логику, которая вам нужна в 1 инструкции, и иметь тактовую частоту в диапазоне от 100 МГц до 1 ГГц. Вы можете сделать это, но, возможно, не на макете в вашем гараже.

Хорошим примером этого является квадратурный декодер HCTL2020. Он принимает две серии импульсов и сообщает вам, в каком направлении вращается ваш двигатель. Он реализован как непрограммируемый чип ради скорости.

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

pingswept
источник
> Дискретная логика все еще быстрее, чем большинство микроконтроллеров. Если вы не используете Cypress PSoC3.
Ракетный магнит
3
@Rocketmagnet - PSoC, как и FPGA, по-прежнему логика. Это не дискретно, конечно, но так же быстро.
Кевин Вермеер,
29

Как ни странно, у меня только что была одна из наших китайских фабрик, пытающаяся добавить микро к проекту, где это было полностью излишним, и я сказал им использовать 555 вместо этого. 555 стоит, может быть, 6 центов против дешевого микроконтроллера за 60 центов. Когда вы производите продукты в больших количествах, эта разница в стоимости важна, и вам наверняка захочется узнать, как использовать более дешевую ИС. Так что да, они лучше стоят дешевле. :)

эндолиты
источник
12
Вы можете также добавить надежность к этому. Каждое программное обеспечение имеет одну оставшуюся ошибку после удаления последней.
stevenvh
13

Одна из областей, в которой дискретная логика все еще выбивает микросхемы, - это долговременная стабильность деталей.

Этот микрофильм будет доступен через 10 лет? 20? Будет ли IDE и toolchain все еще поддерживать это в то время?

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

Кроме того, вы не СОЛ, если ваш производитель микросхем задерживается. Многие люди создают совместимую универсальную логику, в то время как в основном нет универсальной микро.

Коннор Вольф
источник
11

Часто бывает проще использовать дискретные схемы для выполнения простых задач. Например, мигающий светодиод. Самый дешевый PIC, PIC10F200, стоит около 0,35 долл. США в 5ку, и это до затрат на программирование и с учетом небольшого размера (и связанных с этим проблем с производством.) Таймер NE555, с другой стороны, может быть поднят примерно за США. $ 0,10 от TI в 5ku, и полное решение, вероятно, будет стоить около 0,20 долл. США.

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

Наконец, существует проблема предложения. Возвращаясь к моему первому примеру, NE555. Это продолжается уже более 20 лет и, вероятно, будет продолжаться еще 50 лет после этого. Это такая часть желе, что она, вероятно, будет производиться вечно (или, по крайней мере, до тех пор, пока обычные электроны не устаревают в электронике). Принимая во внимание, что PIC10F можно сделать NRND в любое время. С одним поставщиком, таким как Microchip, существует значительный риск, который может испортить продукт.

** Хорошо, это не совсем так. На самом деле мы ограничены разрешением электронов. 1 ампер = 6,24 × 10 18 электронов в секунду. Таким образом, наилучшее текущее разрешение, которое вы можете получить, - это аттоампер, или 10 ^ -18 ампер, что составляет около 6 электронов в секунду. Но для большинства практических целей это нормально. :)

Thomas O
источник
4
Вы путаете разрешение с точностью, часто допускаемой ошибкой. Нет смысла иметь> 10 цифр разрешения, если дрейф приводит к тому, что эффективная точность составляет только две цифры. Цифровое решение может иметь более высокую точность, несмотря на дискретное и, следовательно, более ограниченное разрешение .
stevenvh
8

Не забывайте программируемую логику - CPLD и FPGA. Заменив дискретную логику на CPLD, вы не затронуты тем, что детали будут сняты с производства, и сможете получить гораздо большую производительность, меньший размер и меньшую стоимость. Если у вас есть FPGA в системе, вы можете внедрить в нее мягкое ядро, которое можно легко обновить при изменении требований, и все это можно легко сделать «ориентированным на будущее».

Леон Хеллер
источник
6

Я бы учил учиться настраивать таймер 555 как знание «на всякий случай». Это то же самое, что и люди, которые говорят: «Я всю жизнь прожил без алгебры, почему мы учим детей?» Если вы не знаете, как использовать инструмент, вы никогда не увидите проблему, к которой он может быть применен.

Что касается конкретного ответа: очень быстрая цифровая логика реализована в FPGA / ASIC в настоящее время, потому что она будет слишком медленной на микроконтроллере / процессоре (если это не был специально разработанный процессор, такой как DSP).

penjuin
источник
6

В моем текущем проекте мы используем чип Marvell ARM9, работающий на частоте 500 МГц с FPGA, чтобы предложить множество портов DIO. Тем не менее, есть вещи, которые обрабатываются в дискретной логике. Например, управление шаговым двигателем необходимо для 4 шаговых двигателей, управляемых индивидуально. Существует один генератор для генерации частоты со счетчиком, который позволит проходить нескольким импульсам. Счетчик устанавливается из микроконтроллера, но затем работает без какого-либо дополнительного контроля со стороны микроконтроллера, что дает ему время для работы над другими задачами.

Мы могли бы выбрать больше микроконтроллеров. Но центральный контроллер, работающий с традиционной дискретной логикой, может оказаться мощным и очень надежным решением.

Кроме того, если у вас есть проблема, которая четко определена, решение всегда должно быть как можно более простым, но не более простым (цитата скрыта там ;-)). Если 555 работает, почему бы вам не использовать его? Гибкость может быть аргументом, как кто-то другой выбрал, но это не так. Все зависит от вашей проблемы и вашей интерпретации самого простого решения.

Воутер Саймонс
источник
1
Я думаю, что ваш расширитель ввода / вывода FPGA будет отличным местом для «логической» части шагового управления.
Крис Страттон
5

На ум приходят высокочастотные коммуникационные приложения. Даже несмотря на то, что у нас теперь есть «радио, определяемое программным обеспечением», было бы очень удивительно, если бы при обработке сигнала 100 МГц + не было хотя бы нескольких аналоговых каскадов.

JustJeff
источник
4

Лишь немногие из моих последних разработок микроконтроллеров требовали какой-либо дискретной логики. Исключением была реализация сброса типа Ctrl-Alt-Del, при котором нажатие двух специальных клавиш на пользовательской клавиатуре в течение двух секунд приведет к полной перезагрузке микроустройства. Я использовал вентиль NOR (используется как вентиль AND с 2 инвертированными входами), вентиль AND и 74HC123. Было удобно иметь возможность получать нужные мне ворота в виде одиночных ворот в пакете SMT вместо 4 ворот / пакета в дни DIP.

tcrosley
источник
4

У меня была возможность быть разработчиком программного обеспечения в течение многих лет, а теперь я работаю инженером-электронщиком.

Любая сложная система сопровождается ошибками и ошибками. И микроконтроллеры, и микросхемы имеют свои преимущества и недостатки в зависимости от области их применения.

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

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

Для пуленепробиваемых программных систем от сбоев в критически важных приложениях (таких как системы военного уровня или системы спасения жизни, такие как системы управления поездом) реализуются и разрабатываются концепции «отказоустойчивости».

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

Отказоустойчивые программные системы используются в системах блокировки поездов и ATP (Automatic Train Protection).

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

гексаметилдисилазан
источник
3

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

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

Роберт
источник
Конечно, зависит от того, нужен ли вам микроконтроллер в цепи. Недавно у меня был проект, где мне был нужен декодер DMTF. Чипсы стоят около доллара в количестве. Разница в цене между PIC24F или эквивалентным dsPIC33F (который также имеет DSP) также составляла около доллара. Процедуры DSP декодера DTMF были свободны от микрочипа. Плюс у меня теперь есть DSP для других вещей.
tcrosley
К вашему сведению, я написал довольно хороший DTMF-декодер для PIC 16C622 несколько лет назад, используя только компаратор в качестве входных данных.
суперкат
3

Существует одно большое различие между конструированием чего-либо с использованием только отдельных компонентов и микроконтроллера; Программное обеспечение имеет ошибки. Если надежность является важным аспектом, можно проверить конструкцию чего-либо, сделанного из отдельных компонентов. Даже не Кнут не осмеливается утверждать, что его программное обеспечение без ошибок.

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

hlovdal
источник
2
Поскольку дискретные компоненты в этом случае, вероятно, означают микросхемы, а не транзисторы, что заставляет вас думать, что микросхемы не содержат ошибок? Хорошо написанное программное обеспечение приводит к ошибкам не потому, что оно является программным обеспечением, а потому, что оно отвечает сложным требованиям - версия с жесткой проводной связью может также содержать ошибки. После того, как вы обнаружили ошибку, гораздо дешевле установить исправления для программного обеспечения, чем модифицировать печатные платы, если только вы не попросили кого-то записать большой запас микросхем OTP для вас. Вы можете научить кого-то подключать кабель для программатора и выполнять правила ESD намного быстрее, чем вы можете научить его хорошо переделывать SMT PCB.
Крис Страттон
Микросхемы существуют на всех уровнях сложности, включая микроконтроллеры. Вероятность ошибок в IC пропорциональна сложности IC. Вопрос был о более простых микросхемах, таких как таймер 555, и я думаю, что кумулятивная вероятность того, что такие микросхемы и дополнительные компоненты будут иметь ошибки, намного ниже, чем вероятность того, что микроконтроллер заменит их с ошибками. Конечно, если вы замените 1000 компонентов одним микроконтроллером, шансы, вероятно, изменятся, поэтому картина не будет полностью черно-белой. Но для любого светодиодного мигающего устройства или подобного, которое я ...
hlovdal
... воспринимая этот вопрос, я все еще верю, что отдельные компоненты могут быть более надежными. А для программных ошибок они недетерминированы. Конечно, ничто не гарантировано на 100%, но если вы внедрите контроллер светофора с компонентами, вы можете проверить его и развернуть, зная, что он будет работать в течение X лет, пока физический износ не приведет к выходу из строя и замене устройства. это с новым блоком задолго до этого. Вы никак не можете оценить, что программное обеспечение будет работать надежно в течение любого периода времени.
Хловдал
Программное обеспечение, сравнимое по сложности с несколькими дискретными, может быть математически доказано на соответствующем процессоре. Дискретная логика, сопоставимая по сложности с более распространенным программным обеспечением, на самом деле также не может быть полностью защищена от невообразимого - хотя часто в любом случае вы можете использовать дополнительную сложность, чтобы обеспечить некоторую безопасность резервного копирования в случае отказа основного механизма.
Крис Страттон
3

Ответ ДА!

Вы должны смотреть на это как на проектировщика оборудования с ориентацией на стоимость производства. 555 - это старая микросхема, которая считается очень простой. Если вы EE, у вас больше шансов, что вы видели это несколько раз на уроках цифровой электроники. Настроить его очень просто, так как вам нужно решить 2 или 3 формулы для наиболее распространенных приложений. Это почти не занимает времени (так как вы уже знаете эту часть и как ее использовать, а математику легко). Время, необходимое для настройки разработки даже для 8-битного микроконтроллера и проверки программного обеспечения, может занять от нескольких дней до нескольких месяцев, в зависимости от среды, в которой вы работаете. Таким образом, это может снизить расходы на разработку на суммы, которые вы не сможете себе представить, и также, возможно, сократить время выхода на рынок.

Правдивая история - я работал в огромной медицинской компании. Я разработал испытательные стенды для проверки продукта. Джигс был частично аппаратным, а частично программным. Продукт, который производит компания, взаимодействует с уязвимыми частями тела, поэтому количество проверок, которые мы сделали, было сумасшедшим. В этот раз мне пришлось настроить протокол связи, чтобы отразить изменения в самом продукте. Изменение составило, вероятно, 10 строк кода на языке C, и кварцевый генератор также был заменен при изменении скорости передачи, и то, что было изначально установлено, не было 11.0592 МГц ... Мне потребовалось около 2 часов, чтобы сделать это, включая документацию. Стоимость для компании, вероятно, составляла 300 долларов или меньше при заказе от Digikey новых деталей. Проверка улучшенного испытательного приспособления заняла несколько месяцев (! ) и занимал около 3 или 4 человек, занятых по крайней мере несколько раз в день смежными вопросами. Сколько это стоит компании? Вероятно, к северу от 10 - 15 тысяч долларов. Эта стоимость отражает истинную стоимость незначительных изменений в дизайне. Много раз вы можете сохранить его, и зная, что некоторые почти готовые решения могут спасти небольшое состояние.

user34920
источник