Haben Mikrocontroller einfachere ICs ersetzt?

37

Lohnt es sich beispielsweise noch zu lernen, wie man einen 555-Timer mit Widerständen und Kondensatoren abstimmt, wenn man ein Timer-Programm für einen Mikrocontroller in einer für Menschen lesbaren Programmiersprache schreiben kann?

Oder anders ausgedrückt: Gibt es Probleme, für die ICs gut sind, für die Mikrocontroller nicht?

user955
quelle
4
@ jes5199 - Ich bin mir nicht ganz sicher, inwiefern diese Frage ein Meta-Tag verdient. Kannst du deine Begründung kommentieren?
J. Polfer
3
Meine Vorstellung war, dass ich nicht eine Frage zu einem bestimmten Problem stellte, sondern zu dem gesamten Gebiet. Das kam mir ein bisschen meta vor.
user955
Eine Leiterplatte mit diskreten Bauteilen und einem als 555-Zeitgeber bezeichneten Chip ist viel besser lesbar als das auf einem Chip gespeicherte Programm.
Kaz

Antworten:

35

Meistens haben Mikrocontroller diskrete ICs ersetzt. Ich finde, dass selbst wenn ich eine Schaltung mit einem 555 entwerfen könnte, es wahrscheinlich ist, dass dieselbe Schaltung in ein paar Wochen optimiert werden muss, um etwas anderes zu tun, und ein Mikro bewahrt diese Flexibilität.

Es gibt jedoch einige Ausnahmen.

Diskrete Logik ist immer noch schneller als die meisten Mikrocontroller. Die Laufzeit und Schaltzeiten für die diskrete Logik liegen im Bereich von 1 bis 10 ns. Um dies mit einem Mikrocontroller abzustimmen, müssen Sie in der Lage sein, jede erforderliche Logik in einem Befehl zu implementieren und einen Takt im Bereich von 100 MHz bis 1 GHz zu haben. Sie können das tun, aber vielleicht nicht auf einem Steckbrett in Ihrer Garage.

Ein gutes Beispiel hierfür ist der Quadraturdecoder HCTL2020. Es dauert zwei Serien von Impulsen und sagt Ihnen, in welche Richtung Ihr Motor dreht. Es ist aus Gründen der Geschwindigkeit als nicht programmierbarer Chip implementiert.

Ein weiterer interessanter Bereich, in dem sowohl digitale Logik als auch Mikrocontroller ausfallen, ist die Signalfilterung. Wenn Sie ein analoges Signal haben, das Sie digital filtern möchten, müssen Sie es mit einer gewissen Rate abtasten. Unabhängig davon, wie schnell Sie es abtasten, wird das Rauschen im Signal, das bei Frequenzen auftritt, die über der Hälfte Ihrer Abtastfrequenz liegen, auf niedrigere Frequenzen heruntergefiltert, wodurch es zu Interferenzen mit Ihrem Signal kommen kann. Sie können dieses Problem mit einem Tiefpassfilter lösen, der aus einer Kappe und einem Widerstand besteht, bevor Ihre Abtastung erfolgt. Nach der Probenahme sind Sie geschraubt. (Natürlich ist es häufig so, dass das Rauschen Ihr Signal in der Frequenz nicht überlappt, und dann funktioniert ein digitaler Filter hervorragend.)

pingswept
quelle
> Diskrete Logik ist immer noch schneller als die meisten Mikrocontroller. Es sei denn, Sie verwenden eine Cypress PSoC3.
Rocketmagnet
3
@Rocketmagnet - Der PSoC ist wie ein FPGA noch eine reine Logik. Es ist zwar nicht diskret, aber genauso schnell.
Kevin Vermeer
29

Seltsamerweise hatte ich gerade eine unserer chinesischen Fabriken, die versuchte, einem Projekt ein Mikro hinzuzufügen, bei dem es völlig übertrieben war, und ich forderte sie auf, stattdessen ein 555 zu verwenden. Ein 555 kostet vielleicht 6 Cent, ein billiger Mikrocontroller 60 Cent. Wenn Sie Produkte in großen Mengen herstellen, ist dieser Kostenunterschied wichtig, und Sie möchten auf jeden Fall wissen, wie Sie den billigeren IC verwenden. Ja, sie sind besser darin, weniger zu kosten. :)

Endolith
quelle
12
Sie können auch Zuverlässigkeit hinzufügen. Jede Software hat einen verbleibenden Fehler, nachdem der letzte entfernt wurde.
27.
13

Ein Bereich, in dem diskrete Logik immer noch Mikros übertrifft, ist die Langzeitstabilität von Bauteilen.

Wird dieses Mikro in 10 Jahren verfügbar sein? 20? Werden die IDE und die Toolchain es in dieser Zeit noch unterstützen?

Sie können so ziemlich garantieren, dass diskrete Logik auch in Zukunft diskrete Logik sein wird. Micros, nicht so sehr. Wenn Sie ein Produkt entwerfen, von dem Sie erwarten, dass es eine lange Lebensdauer, eine generische Logik und so viel wie möglich aufweist, reduzieren generische Teile die Notwendigkeit, das Gerät neu zu entwerfen, wenn sich die Verfügbarkeit von Teilen verschiebt.

Sie sind auch kein SOL, wenn Ihr Chiphersteller nachbestellt ist. Viele Leute machen kompatible generische Logik, während es im Grunde kein generisches Mikro gibt.

Connor Wolf
quelle
11

Es ist oftmals billiger, diskrete Schaltkreise für eine einfache Aufgabe zu verwenden. Zum Beispiel eine blinkende LED. Der billigste PIC, ein PIC10F200, kostet ungefähr 0,35 US-Dollar in 5ku, und das vor Programmierkosten und unter Berücksichtigung der geringen Größe (und der damit verbundenen Probleme bei der Herstellung). Ein NE555-Timer kann dagegen für ungefähr US-Dollar erworben werden $ 0,10 von TI in 5ku, und eine vollständige Lösung würde wahrscheinlich bei rund US $ 0,20 wiegen.

Zu berücksichtigen ist auch, dass Mikrocontroller von Natur aus digitale Geräte sind. Sicher, die meisten haben ADCs und einige haben sogar DACs, aber sie arbeiten immer noch mit diskreten Zeiteinheiten und arbeiten mit einzelnen Bits und Bytes. Eine analoge Schaltung kann genau auf das abgestimmt werden, was der Entwickler benötigt, da analog theoretisch eine unendliche Auflösung hat **. Ein digitaler Schaltkreis ist durch seine langsamste Komponente begrenzt.

Schließlich gibt es die Frage der Versorgung. Zurück zu meinem ersten Beispiel, dem NE555. Das gibt es schon seit mehr als 20 Jahren und danach werden es wahrscheinlich noch 50 sein. Es ist so ein Gummibärchen-Teil, dass es wahrscheinlich für immer hergestellt wird (oder zumindest, bis herkömmliche Elektronen in der Elektronik veraltet sind). Ein PIC10F könnte jedoch jederzeit zu einem NRND gemacht werden. Bei einem einzigen Lieferanten wie Microchip besteht ein erhebliches Risiko, dass ein Produkt ruiniert wird.

** Okay, das ist nicht ganz richtig. In Wirklichkeit beschränken wir uns auf die Auflösung von Elektronen. 1 Ampere = 6,24 × 10 18 Elektronen / Sekunde. Die beste Stromauflösung, die Sie erhalten können, ist also Attoampere oder 10 ^ -18 Ampere, was etwa 6 Elektronen pro Sekunde entspricht. Für die meisten praktischen Zwecke ist dies jedoch in Ordnung. :)

Thomas O
quelle
4
Sie verwechseln Auflösung mit Präzision, ein häufig gemachter Fehler. Es macht keinen Sinn, eine Auflösung von> 10 Stellen zu haben, wenn die effektive Genauigkeit durch Drift nur zweistellig ist. Die digitale Lösung kann trotz einer diskreten und daher begrenzten Auflösung eine höhere Präzision aufweisen .
stevenvh
8

Vergessen Sie nicht die programmierbare Logik - CPLDs und FPGAs. Wenn Sie die diskrete Logik durch eine CPLD ersetzen, sind Sie nicht von der Einstellung von Teilen betroffen und können viel mehr Leistung, reduzierte Größe und niedrigere Kosten erzielen. Wenn Sie ein FPGA im System haben, können Sie einen Softcore darin implementieren, der bei Änderungen der Anforderungen problemlos aktualisiert und das Ganze problemlos "zukunftssicher" gemacht werden kann.

Leon Heller
quelle
6

Ich würde lernen, einen 555-Timer als "nur für den Fall" Wissen zu stimmen. Es ist dasselbe wie die Leute sagen: "Ich habe mein ganzes Leben ohne Algebra gut gelebt. Warum bringen wir es Kindern bei?" Wenn Sie nicht wissen, wie ein Tool verwendet wird, werden Sie nie ein Problem sehen, auf das es angewendet werden kann.

Eine konkrete Antwort: In FPGAs / ASICs ist heutzutage eine sehr schnelle digitale Logik implementiert, da sie auf einem Mikrocontroller / Prozessor zu langsam wäre (es sei denn, es handelt sich um einen speziell entwickelten Prozessor wie einen DSP).

Penjuin
quelle
6

In meinem aktuellen Projekt verwenden wir einen Marvell ARM9-Chip mit 500 MHz und einem FPGA, um viele DIO-Ports anzubieten. Dennoch gibt es Dinge, die in diskreter Logik gehandhabt werden. Beispielsweise wird eine Schrittmotorsteuerung für 4 einzeln gesteuerte Schrittmotoren benötigt. Es gibt einen Oszillator, der eine Frequenz mit einem Zähler erzeugt, durch den eine Anzahl von Impulsen laufen kann. Der Zähler wird vom Mikrocontroller eingestellt, arbeitet dann jedoch ohne weitere Steuerung vom Mikrocontroller aus, sodass Zeit für andere Aufgaben bleibt.

Wir hätten uns für mehr Mikrocontroller entscheiden können. Eine zentrale Steuerung, die mit traditioneller diskreter Logik arbeitet, kann sich jedoch als leistungsstarke und sehr zuverlässige Lösung erweisen.

Auch wenn Sie ein Problem haben, das klar definiert ist, sollte die Lösung immer so einfach wie möglich sein, aber nicht einfacher (Zitat darin versteckt ;-)). Wenn ein 555 funktioniert, warum würden Sie ihn nicht verwenden? Flexibilität könnte ein Argument sein, wie es jemand anders gewählt hat, aber es könnte nicht sein. Es hängt alles von Ihrem Problem und Ihrer Interpretation der einfachsten Lösung ab.

Wouter Simons
quelle
1
Ich würde denken, Ihr I / O-Expander-FPGA wäre ein großartiger Ort für den "logischen" Teil einer Schrittsteuerung.
Chris Stratton
5

Hochfrequenzkommunikationsanwendungen kommen in den Sinn. Auch wenn wir jetzt über "softwaredefiniertes Radio" verfügen, wäre es sehr überraschend, wenn die Signalverarbeitung mit 100 MHz + nicht immer mindestens einige analoge Stufen aufweist.

JustJeff
quelle
4

Sehr wenige meiner jüngsten Mikrocontroller-Designs erfordern eine diskrete Logik. Eine Ausnahme war die Implementierung eines Ctrl-Alt-Del-Reset-Typs, bei dem zwei Sekunden langes Drücken von zwei bestimmten Tasten auf einer benutzerdefinierten Tastatur einen Hard-Reset des Mikros bewirken würde. Ich habe ein NOR-Gatter (verwendet als UND-Gatter mit 2 invertierten Eingängen), ein UND-Gatter und ein 74HC123 verwendet. Es war praktisch, in der Lage zu sein, die spezifischen Gates, die ich in einzelnen Gates in einem SMT-Paket benötigte, anstelle der 4 Gates / Package in den DIP-Tagen zu erhalten.

Tcrosley
quelle
4

Ich hatte jahrelang die Chance, Softwareentwickler zu werden und arbeite jetzt als Elektronikingenieur.

Jedes System mit Komplexität bringt Fehler und Bugs mit sich. Sowohl die Mikrocontroller als auch die ICs haben ihre Vor- und Nachteile, basierend auf ihren Anwendungsgebieten.

Für kleine Projekte sind ICs schneller, billiger und zuverlässiger als Mikrocontroller. Bei Großprojekten mit Millionen von Eingaben, Analyse- und Vergleichslogiken haben Mikrocontroller gegenüber ICs den entscheidenden Vorteil.

Irgendwann versagt die gesamte Software, und selbst fehlerfreier Code kann leicht geändert werden, da er auf einem ROM gespeichert wird. Dies führt zu logischen Fehlern (z. B. Speicherlecks), die schwer zu erkennen sind, aber manchmal zu einer Katastrophe führen.

Um softwarebasierte Systeme vor Ausfällen in kritischen Anwendungen (wie z. B. militärischen oder lebensrettenden Systemen wie z. B. Zugsicherungssystemen) zu schützen, werden "ausfallsichere" Konzepte implementiert und entwickelt.

Ausfallsichere Systeme kehren in einen sicheren Zustand zurück, falls ein außergewöhnlicher Fehler auftritt. Normalerweise führen zwei Prozessoren den gleichen Code aus, vergleichen die Ergebnisse der einzelnen Befehle und wenn sie gleich sind, wird der Befehl ausgeführt. Andernfalls verwendet das System physikalische elektrische Relais, um in einen sicheren Zustand zurückzukehren.

Ausfallsichere softwarebasierte Systeme werden in Zugsicherungs- und ATP-Systemen (Automatic Train Protection) verwendet.

Das Entwerfen des gleichen komplexen Systems mit Ics bereitet jedem Ingenieur große Kopfschmerzen. Und deshalb wurde Software ab dem ersten Tag entwickelt!

hmdz
quelle
3

ICs können sehr domänenspezifisch sein. Ich denke an einen DTMF-Decoder. Ich könnte einen Mikrocontroller zum Dekodieren der beiden Frequenzen programmieren, aber es ist einfacher, schneller und billiger, einen handelsüblichen Chip zu verwenden.

Ich denke, es ist wichtig, genügend Kenntnisse über alle Tools zu haben, um zu wissen, welches Tool verwendet werden soll.

Robert
quelle
Kommt natürlich drauf an, ob du sowieso einen Mikrocontroller in der Schaltung brauchst. Ich hatte vor kurzem ein Projekt, in dem ich einen DMTF-Decoder brauchte. Die Chips kosten etwa Dollar in der Menge. Der Preisunterschied zwischen einem PIC24F oder einem äquivalenten dsPIC33F (der auch einen DSP hat) betrug ebenfalls ungefähr einen Dollar in der Menge. Die DTMF-Decoder-DSP-Routinen waren frei von Microchip. Außerdem habe ich jetzt einen DSP für andere Sachen.
Tcrosley
Zu Ihrer Information, ich habe vor ein paar Jahren einen ziemlich guten DTMF-Decoder für einen PIC 16C622 geschrieben, bei dem nur der Komparator als Eingang verwendet wurde.
Supercat
3

Es gibt einen großen Unterschied zwischen dem Entwerfen von Objekten mit nur diskreten Komponenten und dem Verwenden eines Mikrocontrollers. Software hat Fehler. Wenn Zuverlässigkeit ein wichtiger Aspekt ist, ist es möglich, das Design von Objekten aus diskreten Bauteilen zu überprüfen. Nicht einmal Knuth wagt es zu behaupten, dass seine Software fehlerfrei ist.

Natürlich kann Ihr Design auch Fehler enthalten, die nur in sehr seltenen Fällen auftreten, aber einfacher zu verstehen und zu beheben sind. Es ist möglich, dass Software auf äußerst undurchsichtige und nicht offensichtliche Weise versagt, die Sie nie finden werden.

hlovdal
quelle
2
Da diskrete Komponenten in diesem Fall wahrscheinlich ICs und keine Transistoren bedeuten, was lässt Sie denken, dass ICs fehlerfrei sind? Gut geschriebene Software führt zu Fehlern, nicht weil es sich um Software handelt, sondern weil sie komplizierte Anforderungen löst - eine fest verdrahtete Version könnte auch fehlerhaft sein. Sobald Sie einen Fehler gefunden haben, ist es billiger, Software-Fixes bereitzustellen, als Leiterplatten zu modifizieren, es sei denn, Sie haben einen großen Bestand an OTP-Mikros für Sie brennen lassen. Sie können jemanden darin schulen, ein Programmierkabel anzuschließen und ESD-Regeln viel schneller zu befolgen, als Sie ihn darin schulen können, SMT-Leiterplatten gut zu überarbeiten.
Chris Stratton
ICs gibt es in allen Arten von Komplexitätsstufen, einschließlich Mikrocontrollern. Die Wahrscheinlichkeit von Fehlern in einem IC ist proportional zur Komplexität des IC. Die Frage war nach einfacheren ICs wie dem 555-Timer, und ich denke, die kumulative Wahrscheinlichkeit, dass ein solcher IC und zusätzliche Komponenten Fehler aufweisen, ist viel geringer als die Wahrscheinlichkeit, dass der Mikrocontroller sie mit Fehlern ersetzt. Wenn Sie 1000 Komponenten durch einen Mikrocontroller ersetzen, werden sich die Chancen wahrscheinlich ändern, sodass das Bild nicht vollständig schwarzweiß ist. Aber für jedes LED-
Blinkgerät
... diese Frage als ungefähr empfinden, ich glaube immer noch, dass diskrete Komponenten das Potenzial haben, zuverlässiger zu sein. Und für Softwarefehler sind sie nicht deterministisch. Natürlich ist nichts zu 100% garantiert, aber wenn Sie eine Ampelsteuerung mit Komponenten implementieren, können Sie diese überprüfen und bereitstellen. Dabei können Sie sich darauf verlassen, dass sie X Jahre lang funktioniert, bis durch physische Abnutzung das Gerät wahrscheinlich ausfällt und ersetzt wird es mit einem neuen Gerät schon lange vorher. Sie können nicht davon ausgehen, dass Software für einen bestimmten Zeitraum zuverlässig funktioniert.
hlovdal
Software mit einer Komplexität, die mit wenigen Diskreten vergleichbar ist, kann auf der entsprechenden CPU mathematisch bewiesen werden. Diskrete Logik mit einer Komplexität, die mit herkömmlicher Software vergleichbar ist, kann auch nicht vollständig gegen das Unvorhergesehene abgesichert werden. In beiden Fällen können Sie jedoch häufig zusätzliche Komplexität verwenden, um einige Backup-Sicherheiten für den Fall bereitzustellen, dass der primäre Mechanismus ausfällt.
Chris Stratton
3

Die Antwort ist ja!

Sie müssen es als Hardware-Designer mit Produktionskostenorientierung betrachten. Der 555 ist ein alter IC, der als sehr einfach gilt. Wenn Sie ein EE sind, haben Sie es wahrscheinlich schon mehrmals in digitalen Elektronikkursen gesehen. Das Einrichten ist sehr einfach, da Sie für die meisten gängigen Anwendungen 2 oder 3 Formeln lösen müssen. Dies nimmt fast keine Zeit in Anspruch (da Sie das Teil bereits kennen und wissen, wie es zu verwenden ist und die Mathematik einfach ist). Die Zeit, die für die Einrichtung der Entwicklung einer 8-Bit-MCU und die Validierung der Software erforderlich ist, kann abhängig von der Umgebung, in der Sie arbeiten, Tage bis Monate dauern Verkürzen Sie möglicherweise auch die Markteinführungszeit.

Wahre Begebenheit - Ich habe früher für eine große medizinische Firma gearbeitet. Ich habe Prüfvorrichtungen für die Produktvalidierung entworfen. Die Vorrichtungen basierten teilweise auf Hardware und teilweise auf eingebetteter Software. Das Produkt, das das Unternehmen herstellt, interagiert mit verwundbaren Körperteilen, sodass die Menge an Inspektionen, die wir durchgeführt haben, verrückt war. Diesmal musste ich das Kommunikationsprotokoll anpassen, um Änderungen am Produkt selbst widerzuspiegeln. Die Änderung betrug vielleicht 10 Codezeilen in C und der Quarzoszillator wurde auch ausgetauscht, als die Baudrate geändert wurde und die ursprünglich installierte Frequenz nicht 11,0592 MHz betrug. Die Kosten für das Unternehmen betrugen wahrscheinlich 300 USD oder weniger, als Digikey die neuen Teile bestellte. Die Validierung der verbesserten Prüfvorrichtung dauerte mehrere Monate (! ) und beschäftigte mindestens mehrmals täglich etwa 3 bis 4 Personen mit verwandten Themen. Wie viel kostet das Unternehmen? Wahrscheinlich nördlich von $ 10.000 - $ 15.000. Diese Kosten spiegeln die tatsächlichen Kosten der geringfügigen Änderung des Designs wider. Oft kann man es speichern, und wenn man weiß, dass einige Lösungen fast fertig sind, kann man ein kleines Vermögen sparen.

user34920
quelle