Hi, was ist der erste Mikrocontroller gewesen? Waren das schon Bauteile
in den Computern in den 60er Jahren oder erst so mit dem C64 oder den
Amigas? Oder kann man von Mikrocontrollern und Logikgattern(FGPAs) schon
sprechen, seit dem die Transistoren da sind?
Alles eine Frage der eh schon recht schwammigen Definition von
Microcontroller. Kandidaten gibts da einige. Z.b.
- Der AGC in der Block II Variante der Apollo Missionen
- AL1
- MP944
- CADC
- TMS1000
- GI250
- Intel 4004
Rolf M. schrieb:> Von https://en.wikipedia.org/wiki/Microcontroller#History :>> "The Smithsonian Institution says TI engineers Gary Boone and Michael> Cochran succeeded in creating the first microcontroller in 1971."
Der Text ist ja auf englisch :-(, warum gibts den nicht in Deutsch?
Nach meinem persönlichern Erleben war es Mitte der 70er der 8048 /8748
bzw. die MCS-48-Familie. Da ging es flächendeckend los, und mit der
51-er-Familie als Nachfolger hat sich das Konzept "Mikrocontroller" dann
explosionsartig ausgebreitet.
Die 8048 und 8051 waren bei Bastlern sehr beliebt, da sie auch mit
externem EPROM laufen konnten.
Ich hatte dann auch 1993 die ersten AT89C51 mit Flash-Programmspeicher
gekauft.
Peter D. schrieb:> Die 8048 und 8051 waren bei Bastlern sehr beliebt, da sie auch mit> externem EPROM laufen konnten.
Genau, aber in der Industrie und Handwerk schon auch, weil man nicht
unbedingt teure maskenprogrammierte Bausteine anfertigen lassen musste,
sondern ebenfalls mit den preiswerten externen Speichern arbeiten
konnte. Sogar Einzelstücke, Kleinserien, spätere Programmmodifikationen
und Updates waren damit plötzlich kein Problem mehr.
Das Schönste aber am 8051 war und ist die mächtige Einzelbitverarbeitung
- wie gemacht für Steuercomputer aller Art. Dafür liebe ich ihn noch
heute. An modernes Multimedia und seine Erfordernisse war damals ja noch
nicht zu denken.
Peter D. schrieb:> Ich hatte dann auch 1993 die ersten AT89C51 mit Flash-Programmspeicher> gekauft.
Ich auch, der Komfortgewinn war phänomenal, denn bevor ich einen eigenen
EPROM-Löscher hatte, bin ich in meiner Not sogar in die Sonnenbade- und
Bräunungsabteilung der benachbarten Schwimmhalle ausgewichen ;-)
Diodenes schrieb:> Ich auch, der Komfortgewinn war phänomenal, denn bevor ich einen eigenen> EPROM-Löscher hatte, bin ich in meiner Not sogar in die Sonnenbade- und> Bräunungsabteilung der benachbarten Schwimmhalle ausgewichen ;-)
grins, der Verkauf von Braeunungslampen muss damals
enorm gewesen sein.
Vor allem bekam der Begriff Eprom-Brennen einen echten
Hintergrund. Zu lange und zu nahe an der "Hoehensonne"
und man verbrannte sich nicht bloss die Finger, sondern
auch der Chip war teilweise "geroestet".
Gruss Asko.
Die erforderlichen Löschzeiten, verbunden mit begrenztem Vorrat an
EProms, erzogen aber zu mehr Disziplin beim Programmieren :-)
Heute ist man da schon mal etwas grosszügiger.
Mein erster ernstzunehmender MC war der 8051. Mit dem 8048 hatte ich nur
theoretischen Kontakt.
Der erste wirklich vom Entwickler frei programmierbare Mikrocontroller
war der 8048/49 bzw. deren EPROM-Varianten 8748/49 oder die "ROMless"
Variante 8035/39.
So gesehen würde ich den als ersten "echten" Mikrocontroller bezeichnen.
Ich selbst habe mit denen angefangen.
Die Befehlscodes waren einfach aufgebaut. Man konnte ohne die Hilfe
eines Computers das Programm einfach von Hand schreiben und manuell in
den HEX-Code übersetzen. Das ganze dann per Tastatur in ein
EPROM-Programmiergerät eingetippt und gut wars.
War ein Fehler drin, musste man eben neu probieren.
Mein erstes Projekt war eine Steuerung für ein 12Kanal Lichtsteuerpult
(Bilder). Das muss so um 1987 gewesen sein. Der handgestrickte Prototyp
funktioniert heute noch.
Die EPROM-Versionen des Chips kosteten damals um 100,- DM und somit fast
ein kleines Vermögen.
Gruß
Joachim
Hallo
als Anschlussfrage:
Die ersten µC mit Flashspeicher gab es (für den Hobbyisten) ab 1993?
Oder haben die zwei Schreiber nur zufällig im selben Jahr zum erstenmal
µC mit Flash Speicher genutzt?
Und eine eventuell seltsam klingende Frage die aber durchaus ernst
gemeint ist:
Wie hat man als Hobbyist ohne beruflichen Hintergrund in der
"Vorinternetzeit" gelehrnt einen µC zu Programmieren?
War das nur mit Büchern / Zeitschriften ohne unterstützung durch andere
"echte" :-) Menschen nicht eine arge Quälerei?
Topsi
Topsi schrieb:> War das nur mit Büchern / Zeitschriften ohne unterstützung durch andere> "echte" :-) Menschen nicht eine arge Quälerei?
Aber neien :-) Im Gegenteil, die Lektüre des 'Intel Microcontroller
Handbook' mit der ausführlichen Beschreibung des Befehlssatzes von MCS48
und MCS51 gaben mir die Ruhe, nochmal ausführlich über das zu lösende
Problem nachzudenken. Ausserdem war der Befehlssatz des 8051 eine wahre
Freude.
Ein grösseres Projekt war damals eine programmierbare Tastatur für den
Apple Desktop Bus, da musste man dann allerdings teure Addison-Wesley
Bücher heranziehen, in dem dann der Apple Kram beschrieben war:
http://www.apple-forever.com/detail/131.htmlhttp://www.worldcat.org/title/macintosh-family-hardware-reference/oclc/19126610
CocaCola schrieb:> Hi, was ist der erste Mikrocontroller gewesen? Waren das schon> Bauteile> in den Computern in den 60er Jahren oder erst so mit dem C64 oder den> Amigas? Oder kann man von Mikrocontrollern und Logikgattern(FGPAs) schon> sprechen, seit dem die Transistoren da sind?
Fahr mal nach Paderborn und besuche das Nixdorf Museum.
http://www.hnf.de/besucherinfo.html
mfg klaus
Topsi schrieb:> Wie hat man als Hobbyist ohne beruflichen Hintergrund in der> "Vorinternetzeit" gelehrnt einen µC zu Programmieren?
In Kursen bei den Großrechner-Herstellern wurden zunächst die
Spezialisten der Anwender geschult. Dabei entstand zunehmende
Übersichtlichkeit über die benötigten Fertigkeiten wie Systemanalyse,
Programmstruktur und Befehlsvorrat
1. Selbst große Rechner wurden in Maschinensprache programmiert. Die
Assembler für Kontroller mit ihren Mnemonics waren aus diesen
anlagenspezifischen Programmiersprachen abgeleitet.
2. Die Fähigkeit, Abläufe in Form von Flussdiagrammen und dgl. zu
zergliedern gab es schon lange. Sonst konnte man ja für die Großrechner
keine Buchungsprogramme usw. schreiben.
3. Auch der Umgang mit Zahlensystemen ( binär, oktal, hex ,dezimal) war
auch schon längst Stand der Technik
Als dann später die Mikrokontroller aufkamen, waren die Grundlagen so
vereinfacht und strukturiert worden, dass sie auch Hobbyisten mit
erträglichem Aufwand zugänglich waren. Vor Allem der 6502 und der 8031
waren schnell zugänglich, da damals eine Fülle neuer Zeitschriften
entstand, anhand derer ausreichend Information zur Verfügung stand. Ein
VC20 oder ein Z80- Kleincomputer war damals für jeden Bastler der
attraktive Einstieg in die neue Technik. Jedermann hatte Zugang zu dem,
was bisher nur wenigen Spezialisten an millionenteueren Rechnern
vorbehalten war.
Laut Definition ist ein Mikrocontroller ein Mikroprozessor, vereint mit
Programm- und Daten-Speicher und IO-Baugruppen in einem Chip, so dass
bereits Anwendungen ohne zusätzliche externe Bauelemente (abgesehen
evtl. von Taktgeber und einigen passiven BE wie Stützkondensatoren)
realisiert werden können.
Logischerweise wird es kaum Mikrocontroller VOR Mikroprozessoren gegeben
haben.
Topsi schrieb:> Wie hat man als Hobbyist ohne beruflichen Hintergrund in der> "Vorinternetzeit" gelehrnt einen µC zu Programmieren?
Bei mir war das vor meiner beruflichen Anwendung so:
Ich schrieb damals alle möglichen Halbleiterfirmen direkt an.
Die Adressen hatte ich aus Fachzeitschriften, die in der Firma auslagen,
wo ich meine Ausbildung machte.
In meinem Schreiben bat ich um Datenbücher, Hard- und Softwaremanuals
und auch Muster zu Lernzwecken.
Fast alle Firmen waren da großzügig. Ich bekam manchmal kartonweise
Bauteile und stapelweise Bücher. Z.B. bekam ich von Analog Devices ein
Mustersortiment aller gängigen A/D- und D/A-Wandler. Die waren damals
extrem teuer!
Von Siemens bekam ich Bücher zum 8080, 8085 und den 8048
Mikrocontrollern. Damit ließ sich ohne weiteres programmieren.
Ähnlich war es mit dem 8051. Nur war dieser ohne Assembler auf einem
Computer wesentlich schwerer zu programmieren.
Der 8051 war schon eine Erlösung, konnte der doch endlich multiplizieren
und dividieren und auch mehr RAM adressieren.
Ich habe gut 10 Jahre lang ausschließlich 8051 benutzt und kannte
irgendwann alle Assemblerbefehle in- und auswendig.
Gruß
Joachim
Topsi schrieb:
> War das nur mit Büchern / Zeitschriften ohne unterstützung durch> andere "echte" :-) Menschen nicht eine arge Quälerei?
Früher hat man einfach jede Form von Information auf toten Bäumen
gehortet. Manche hab ich heute noch, von anderen bin ich, meist durch
Frauen, getrennt worden. Um aufzuräumen!?
Andere Menschen mit hexadezimalen Neigungen mußte man damals ohne
Internet finden, entsprechend gering war die Trefferquote.
Und man hat viel länger nachgedacht. Ein typischer Zyklus:
- Programm schreiben
- hand-assemblieren nach Hex
(15km fahren)
- Hex in Prommer tippen
(5km fahren)
- EProm in Maschine stecken
- Testen, fluchen, möglichst viel messen und ausprobieren
(10km fahren)
- nachdenken und
nächster Durchlauf.
Bald danach kam Turbo-Pascal, wo man mit "Compile" schneller den
nächsten Fehler erreichte, als mit den Cursor-Tasten. Das war der Anfang
vom Ende des geplanten Programmierens ;-)
Das mit den Datenbüchern etc. von Siemens und Co. kann ich nur
unterschreiben. Dort stand ALLES drin, was man wissen musste, inkl.
kompletter Listings ganz konkreter industrieller Anwendungen, eigentlich
unglaublich. Die zahllosen Elektronikzeitschriften der damaligen Zeit
haben letztlich häufig auch nur aus diesen Werken zitiert und damit das
Wissen "unter's Volk" gebracht. Trotzdem verdienstvoll.
Topsi schrieb:> War das nur mit Büchern / Zeitschriften ohne unterstützung durch andere> "echte" :-) Menschen nicht eine arge Quälerei?
Das war schon deshalb keine Quälerei, weil die Assemblersprache des 8051
ein ganz großer Wurf war! Die Entwickler haben sich erfolgreich große
Mühe gegeben, eine wirklich gut zu handhabende und in sich weitgehend
logische Sprache zu entwerfen. Die einzige kleine Klippe beim 8051 war
für manchen vielleicht die Handhabung des Adressraums bzw.
Speichermanagement.
Wenn man diese wunderschöne Assemblersprache mal mit der anderer
Prozessoren vergleicht, dann ... oh je!
Dafür ist die Programmierung in beispielsweise C nicht gerade eine
Domäne des 8051, aber dafür wurde er nicht entworfen. Es geht aber
natürlich trotzdem.
Wenn Deine Frage also wäre, was nicht der erste Mikrocontroller war,
sonder DER Mikrocontroller schlechthin, dann wäre es für mich ganz
eindeutig die MCS-51-Familie. Das Ding ist Käfer, Golf und Corolla in
Einem.
Topsi schrieb:> War das nur mit Büchern / Zeitschriften ohne unterstützung durch andere> "echte" :-) Menschen nicht eine arge Quälerei?
das schon, aber es war auch ein Abenteuer.
Wenn ich mir die Antworten dazu so anschaue würde mich der
Alterdurchschnitt der Forumsmitglieder interessieren, ich tippe auf über
50.
Nur leicht gedrückt von ein paar Teenys die sich hier die Hausaufgaben
machen lassen ...
>Ein typischer Zyklus:
Haha, ja genau! Da kommen alte Erinnerungen.
Ich hatte 1987 noch gar keinen Computer.
Mein Arbeitgeber hatte einen "Kontron" EPROM-Programmer, so ein
Mordsteil mit HEX-Tastatur.
Also dahem Programm geschrieben und übersetzt, dann am nächsten Tag in
der Arbeitspause in den Prommer getippt und EPROM gebrannt.
Abends daheim probiert, geflucht, geschaut, neu übersetzt.
Am nächsten Tag EPROM in die Lösch-Schublade und in der Pause neu
programmiert.
Irgendwann lief es :-)
Der erste eigene PC/XT "Turbo 10MHz" und ein Universalprogrammer "Hilo
All02" war ein Segen.
Es gab hin und wieder Treffen mit Gleichgesinnten, z.B. bei und auf der
Ham Radio Messe in Friedrichshafen oder der Hobby & Elektronik in
Stuttgart. Einmal im Jahr eben..
>ich tippe auf über 50.
Ja mei - wie die Zeit halt vergeht.. :-)
Gruß
Joachim
Walter S. schrieb:> Wenn ich mir die Antworten dazu so anschaue würde mich der> Alterdurchschnitt der Forumsmitglieder interessieren, ich tippe auf über 50.
Hm, das glaube ich eigentlich nicht, kommt halt auf die Frage an.
Wenn Du freilich fragst, "was habt ihr beim Mauerfall oder bei der
Mondlandung gemacht", dann werden dazu klarerweise nicht viele Antworten
von Leuten kommen können, die damals noch mit der Trommel um den
Christbaum gesprungen sind.
Kein Drama. Das Forum ist schon sehr schön gemischt. Und sogar auf
Fragen außerhalb des Mikrocontrolleruniversums gibt es hier regelmäßig
sehr brauchbare Antworten...
;-)
Für mich war damals in den 80er Jahren der 8048, der "Erste".
Da ich damals noch keinen PC hatte, nur einen HP-71B Handrechner,
schrieb ich mir in HP Basic meine eigene Werkzeuge. So enstand ein
Assembler und Disassembler und andere Werkzeuge. Alles mußte auf einem
alten Zentronics Drucker der 40kg+ wog und sich wie ein Düsenflugzeug
beim Lauf anhörte, ausgedruckt werden im 5x7 Matrix Format. Dann mußten
die HEX Daten per Hand in ein EPROM geladen werden. Umständlich war das
ganze schon...
Da tut man sich heutzutage in jeder Hinsicht schon viel leichter und
jedermann hat prinzipiell Zugangsmöglichkeit. Damals war diese Technik
wirklich nur in der Industrie zu finden mit ihren teuren Werkzeugen über
die man als Angehender Technik Interessierter nur träumen konnte.
>ich tippe auf über 50.
Naja, wer den 8048/35/39 noch zu seinen Hoch-Zeiten selbst benutzt hat,
der ist eben inzwischen auch rund 35 Jahre älter. Aber das hat nichts zu
bedeuten, außer, daß man nicht jedem Hype nachrennt und auch manche
"Revolution" irgendwann früher schon mal gesehen hat. Eigenschaften, die
einer, der bei Verkaufsstart dieses MCs noch nicht mal geplant war,
verständlicherweise nicht haban muß. Dazu noch das ungute Gefühl, daß
die Zeit knapper wird. Aber das wird jeder selbst erleben.
In den 70ern war Fairchilds F8 die wohl meistverkaufte 8-Bit
Mikrocontroller-Serie. Kenner des davon inspirierten 8048 werden gewisse
Ähnlichkeiten erblicken, was aufgrund der Personalhistorie von Intel
allerdings nicht weiter verwundert.
Den F8 kennt heute kein Aas mehr, was man nicht unbedingt bedauern muss.
Der hatte in der ersten Generation die Besonderheit, aus mindestens 2
Chips zu bestehen: Einem ALU/RAM-Chip und einem oder mehreren
PC/ROM-Chips - jeder Chip mit Programmspeicher hatte eine eigene Kopie
des Program Counters an Bord.
Programmierung im Entwicklungssystem war vergleichsweise einfach, weil
es Programm-Chips gab, die an Stelle eines internen Mask-ROMs extern
angeschlossene EPROMs, SRAMs oder sogar DRAMs unterstützten.
http://hcvgm.org/Static/Books/F8%20User's%20Guide%20(1976)(Fairchild)(Document%2067095665)-1.pdf
Heiko Jakob schrieb:> - Der AGC in der Block II Variante der Apollo Missionen
Den würde ich eher als Makrocontroller bezeichnen. ;-)
Für Mikro war er als Gattergrab zu gross und viel zu hungrig.
CocaCola schrieb:> Der Text ist ja auf englisch :-(, warum gibts den nicht in Deutsch?
Weil das ganze Thema von englischer Sprache geprägt ist. Klingt hart,
aber wer sich mit diesem Thema auseinander setzen will, der muss sich
mit Englisch anfreunden.
Wenn du mit dieser Sprache über Kreuz bist, dann solltest du dir
vielleicht fairerweise auch einen anderen Namen suchen. ;-)
Ich hab auch mit dem 8048 angefangen. Die Eproms dafuer hab ich mir auf
einer selbstgefaedelten Steckkarte im Apple][+ gebrannt. Software in
Mbasic unter CP/M selber geschrieben. Geloescht habe ich die Teile mit
einer 250HQL Birne wo ich das aeussere Glas abgemacht hatte. Damit
konnte man auch gleich Platinen belichten und aus meinem Kinderzimmer
kam immer ein gesunder Ozonduft. :-D
> Wie hat man als Hobbyist ohne beruflichen Hintergrund in der> "Vorinternetzeit" gelehrnt einen µC zu Programmieren?> War das nur mit Büchern / Zeitschriften ohne unterstützung durch> andere "echte" :-) Menschen nicht eine arge Quälerei?
Zum einen gab es mehr und bessere Fachzeitschriften. (z.B Elrad, die
fruehen c't) Zum anderen hab ich auf Amateurfunkmaerkten alles an
Datenbuechern gekauft was ging. Ausserdem gab es es vor dem Internet
schon andere Netze. (Z-Netz, Fido, Magic) Da wurde auch viel verschoben.
Ich hab z.B immer noch den hier auf der Platte:
[olaf] ~: tasm
TASM Assembler. Version 2.9.2, May, 1992.
Copyright (C) 1985-1992 by Speech Technology Incorporated
tasm: No files specified.
tasm -<nn> [-options] src_file [obj_file [lst_file [exp_file
[sym_file]]]]
Option Flags defined as follows:
-<nn> Table (48=8048 65=6502 51=8051 85=8085 80=z80)
(68=6800 05=6805 70=TMS7000)
(3210=TMS32010 3225=TMS32025)
Der kam also 1985 raus und damit konnte man dann 8048 und 8051
programmieren. Am Anfang unter CP/M, spaeter dann unter Linux 0.94a.
(Linux auf vier Disketten!) Ich glaube man musste 5 oder 10$ im Brief
nach Amerika schicken und bekam dann irgendwann eine Diskette mit dem
Sourcecode.
Davor musste man Memnonics im Kopf in Hexcodes uebersetzen und die
relativen Spruenge von Hand berechnen. Ich bin dann an der Uni mal durch
eine Klausur gefallen weil der Prof meinte ich haette abgeschrieben.
Dabei hab ich nur nicht verstanden das man bei Hex-Dez
umrechungen/berechnungen auch einen Rechenweg hinschreiben soll. Ich
dachte es reicht wenn man nur die Loesung hinschreibt. :-)
Man sieht, manches ist heute einfacher geworden. Andererseits wenn ich
heute nochmal 16Jahre alt waere und dann als erstes so einen absurd
zusammengehusteten Dreck wie Eclipse zu sehen bekommen wuerde, wer weiss
ob ich dann nicht was anderes gemacht haette. Es ist heute kein Problem
an jede beliebige Information zu kommen, allerdings ist die notwendige
Lernkurve viel steiler.
Olaf
Olaf schrieb:> Ich glaube man musste 5 oder 10$ im Brief> nach Amerika schicken und bekam dann irgendwann eine Diskette mit dem> Sourcecode.
Das hat bei mir nie geklappt. Die Mäuse hab ich zwar rübergeschickt,
aber habe von Speech Tech. nie was gehört. Allerdings habe ich jetzt
trotzdem Version 3.1 von TASM, der lustigerweise durch den TMS32025
letztes Jahr wieder in Benutzung kam.
Ein Kollege hatte ein deutsches Valvo-Datenbuch über den 8051, damit
habe ich angefangen.
Daneben gab es noch ein gutes Datenbuch von AMD und dann später das IC20
von Philips.
Ich kann mich nicht erinnern, daß da Fragen offen blieben oder gar
Fehler drin waren.
Was man heutzutage als PDFs hinterhergeworfen kriegt, ist mit der
Qualität der alten Datenbücher überhaupt nicht zu vergleichen.
Peter D. schrieb:> Ich kann mich nicht erinnern, daß da Fragen offen blieben oder gar> Fehler drin waren.
Bei den Atmel-8051ern waren die Errata-Sheets manchmal von stattlicher
Länge, und das dann auch noch in der zigsten Revision ;-)
Peter D. schrieb:> Was man heutzutage als PDFs hinterhergeworfen kriegt, ist mit der> Qualität der alten Datenbücher überhaupt nicht zu vergleichen.
Vor allem war da alles Wichtige meist in einem einzigen Schinken
versammelt. Heute ist das oft etwas unübersichtlicher.
Die Qualität war über die Zeit aber auch nicht immer konstant. Was
Philips teilweise aus den alten Valvo-Informationen gemacht hatte, war
teilweise schon arg traurig, und oft voll mit verheerenden
Flüchtigkeitsfehlern.
Trotzdem ist die Lage heute auch nicht gerade schlecht, eher im
Gegenteil. Google & Co. spucken heute in Sekundenschnelle Datenblätter
aus, von deren schierer Existenz man früher erst nach tagelangen
Telephonaten überhaupt etwas ahnte. Und dann hatte man sie aber noch
längst nicht...
Heute gibt's bessere Technik aber keine gute Programierer mehr, oder
wenig davon. Das ist halt das Problem weil der Mikrocontroller kann sehr
gut sein aber er tut nichts ohne ein Program. Deswegen sollte die
Industrie leichter zu programierende Mikrocontroller entwickeln. Das
haben die schon teilwese gemacht, Z.B PIC18 Serie, aber es sollte noch
leichter werden.
> Ich habe auch den "ersten" übersprungen und mit dem 8051 angefangen.
Sei dankbar! Der Grund warum so mancher alter Knacker immer noch an den
MCS51 haengt ist die Erinnerung an das Gluecksgefuehl das man beim
Umstieg von MCS48 auf MCS51 empfunden hat. :-)
> Ein Kollege hatte ein deutsches Valvo-Datenbuch über den 8051, damit> habe ich angefangen.
Und es war in Deutsch! Es traut sich ja keiner mehr zuzugeben aber es
gibt viele in unserem Land die sich erstmal mit English schwer tun.
Besonders wenn man noch 15 oder 16 ist und man sowieso mehr an Technik
als an Sprachen interessiert ist und in einer neuen Sprache etwas neues
lernen soll. Ich halte die Englischfixierung fuer einen grossen Fehler
der uns viel Geld kostet. Da sind uns die Franzosen oder Japaner
vorraus. Fuer Japan uebersetzt jeder Hersteller alle seine Datenblaetter
auf Japanisch oder sie verkaufen da nichts.
> Trotzdem ist die Lage heute auch nicht gerade schlecht, eher im> Gegenteil.
Stimmt. Heute kann ich alles an Datenblaettern sofort bekommen.
Allerdings habe ich den Eindruck das sie keiner mehr liesst. Jedenfalls
nicht der Nachwuchs. Vermutlich muss man erst etwas bezahlen und einen
20kg Rucksack vom Amateurfunkflohmarkt nach Hause tragen damit man das
Wissen darin zu schaetzen weiss.
Andererseits hat das Erratasheet zum STM32F103 genauso viele Seiten wie
frueher das Datenblatt des gesamten Controllers. Es ist also nicht alles
besser geworden. :-)
> Heute gibt's bessere Technik aber keine gute Programierer mehr, oder> wenig davon.
Also das halte ich mal fuer Bullshit. Es gab frueher genauso viel
schlechte Programmierer wie heute. Nur sind die nicht so aufgefallen
weil auch ein bloedes Hirn einen Controller mit 2k Eprom und 64Byte Ram
spaetestens nach dem dritten Versuch ans laufen gebracht hat. Ausserdem
wurde man durch den Eprom/brennen/loeschen Zyklus gleich mal ordentlich
erzogen.
Aber ich kann mich ja wohl kaum beschweren das mein Controller heute
100x mehr Resourcen und Leistung hat als mein Entwicklungsrechner von
1985.
> Deswegen sollte die Industrie leichter zu programierende> Mikrocontroller entwickeln.
Keine Sorge. Die Applesierung der Welt schreitet voran. Ich bin mir
sicher das bald die Doedel einen Pythoninterpreter auf ihre Controller
installieren und dann uns erzaehlen wie toll das doch sei.
Olaf
Olaf schrieb:> Ich halte die Englischfixierung fuer einen grossen Fehler> der uns viel Geld kostet. Da sind uns die Franzosen oder Japaner> vorraus. Fuer Japan uebersetzt jeder Hersteller alle seine Datenblaetter> auf Japanisch oder sie verkaufen da nichts.
Das sehe ich auch so. Zumal es sich ja um technisches Englisch handelt.
Hatte mich mit dem Sohn einer Freundin über Englisch unterhalten, er war
ein halbes Jahr in Amerika. Klar, er kannte einige Begriffe oder
Redewendungen die ich nicht kannte, aber washer oder screwdriver, um mal
zwei einfache Wörter zu nennen, die kannte er nicht.
Dennoch haben sie es heute leichter diese Wörter nach zu schlagen. Zu
meiner Zeit, als ich die brauchte, kostete ein richtig gutes Lexikon für
technisches Englisch um die 1000 DM.
Olaf schrieb:> Keine Sorge. Die Applesierung der Welt schreitet voran. Ich bin mir> sicher das bald die Doedel einen Pythoninterpreter auf ihre Controller> installieren und dann uns erzaehlen wie toll das doch sei.
Aber wenn es einfacher wird, was würde dagegen sprechen? sollen nur
"Eingeweihte" so was machen dürfen?
Bin mir sicher die meisten Autofahrer können keinen Zahnriemen wechseln
oder die Kopfdichtung ersetzen, aber das müssen sie auch nicht, denn sie
wollen nur fahren.
Übertragen heißt das doch, ich will dass der Mikrocontroller das oder
dies macht, wie er das anstellt ist seine Sache.
Es wäre doch schön wenn mann ihm 'sagen' könnte, "Hey ATtiny, ich
brauche für 10ms einen Ausgang auf PB4, aber nur, wenn du ein Signal an
PB1 für länger als 3ms bekommst!"q
Was ist so schlimm daran, wenn es alle können?
Nur weil dann einige nicht mehr was besonderes können?
> Bin mir sicher die meisten Autofahrer können keinen Zahnriemen wechseln> oder die Kopfdichtung ersetzen, aber das müssen sie auch nicht, denn sie> wollen nur fahren.
Das ist der falsche Vergleich. Du muesstest eher sagen wieso sollen
Autowerkstaetten noch einen Zahnriemen wechseln koennen, es reicht doch
wenn sie einfach den ganzen Motor auswechseln. Das macht dann vielleicht
deutlich wo ich die Probleme sehe. Ein Recht auf Dummheit mag ja gut und
schoen sein, aber es macht eine Gesellschaft halt ineffizient.
Natuerlich wuerde umgekehrt keiner erwarten das der Endkunde eines
Elektronikprodukts eine neue Firmware flashen kann! Vollkommen absurd.
Noch nie dagewesen. :-)
Olaf
Olaf schrieb:> Das ist der falsche Vergleich.
So falsch finde ich den gar nicht. Noch besser aber wäre wohl gewesen:
Wohl nur die wenigsten Autofahrer wissen wie ihr Motor funktioniert, zur
Arbeit kommen sie mit ihrem Auto aber trotzdem. ;)
Doch, er ist falsch. Autofahrer sind Endkunden. Programmierer eines
Microcontrollers sind aber Entwickler. So wie der Entwickler des Motors
in einem Auto. Die sollten schon noch wissen was da abgeht.
Olaf
F. F. schrieb:> Was ist so schlimm daran, wenn es alle können?> Nur weil dann einige nicht mehr was besonderes können?
Die Frage würde ich mir momentan gar nicht stellen.
Denn zum einen interessiert es den Großteil der Leute gar nicht (welchen
User eines Smartphones interessiert der Mikrocontroller darin, wenn er
seine Whatsapp-Nachrichten tippt?) und zum anderen wird es so schnell
keine universelle Computersprache geben.
Es wurde schon immer versucht, einfache Programmiermöglichkeiten zu
schaffen und die Mikrocontroller für "jedermann" zugänglich zu machen.
Sei es BASIC damals für 8051 oder PASCAL, Fuzzylogik oder irgendwelche
interaktive Oberflächen, mit denen man sich Peripheriefunktionen
zusammenklicken kann.
Die Ernüchterung folgte auf dem Fuße.
Mit dem darauf folgenden katastrophalen Rückschritt müssen wir heute
noch leben. Das ist ca. 40 Jahre alt und nennt sich C.
C war die Antwort auf die Programmiersprache "B" und danach waren die
Programmierer so gefrustet, dass es bis heute dabei geblieben ist und es
kein "D" mehr gab :-))
Der bis heute andauernde Ruf nach einer einfachen Programmiermöglichkeit
zeigt, dass dies wohl doch nicht so einfach ist, wie in den Anfängen der
Computergeschichte vermutet.
Die einzige Hardware, die leicht verständlichen Befehlen folgt (wenn
auch nicht immer und oft nur mit einem Tritt in den Hintern), nennt sich
Mensch.
Olaf schrieb:> Sei dankbar! Der Grund warum so mancher alter Knacker immer noch an den> MCS51 haengt ist die Erinnerung an das Gluecksgefuehl das man beim> Umstieg von MCS48 auf MCS51 empfunden hat. :-)
Das Glücksgefühl hatte ich bereits mehrfach:
- beim Umstieg von 8048 auf 8051
- beim Umstieg von 8051 auf M16C (Whow! 16Bit!)
- beim Umstieg von M16C auf ARM (Whow! 32Bit!)
wenn nur dieses sch**** C nicht wäre :-)
Gruß
Joachim
> wenn nur dieses sch**** C nicht wäre :-)
Ich hatte zeitweise meine Hoffnung auf Go gesetzt, aber dann kam ich zu
der Zeile mit dem Garbage Collector....
Olaf
C ist an sich nicht schlecht, aber es wurde ursprünglich für für das
Programieren von PC's entwickelt und hier funkzioniert es sehr gut, erst
danach wurde es für andere Systeme angepasst. Und das ist nicht so gut
gelungen weil jeder Chip seine eigene Programier-Sprache braucht.
Der Grund dafür ist ein ganz anderer interner Aufbau und andere
Assembler Befehle. Wenn alle Prozessoren intern gleich wären und gleiche
Befehle hätten, dann wäre das natürlich leichter.
C ist doch mit Abstand noch die Beste Wahl auch für MCs. Mein Einstieg
war in den 80ern ebenfalls auf dem 8051. 15 Jahre Assembler waren dann
irgendwann genug und der Umstieg auf C stand an, ich habe es nie bereut.
Nach diversen ASM Erfahrungen war ein Umsatteln auf C einfach nur
konsequent und von AVR über MSP430, ARM etc. macht C dann die
Erarbeitung in neue Typen einfach nur Spass :-) und lässt einem Zeit für
andere Dinge.
> Wenn ich mir die Antworten dazu so anschaue würde mich der> Alterdurchschnitt der Forumsmitglieder interessieren, ich tippe auf über 50.
Stimmt :-)
Naja, die MCS52 Serie kann je bekanntlich testen, ob ein Bit gesetzt
ist. In Pseudocode etwa so:
1
if(issetPB.1){
2
tuwas();
3
}
In C muss man das jedoch deutlich umständlicher schreiben. Genau
genommen kann C nur ganze Bytes lesen und mit der UND Funktion
verknüpfen.
1
if(PINB&2){
2
tuwas();
3
}
Ich finde, dass die Sprache C hier weit von dem entfernt ist, was
tatsächlich passiert. Der Compiler optimiert das gut, aber trotzdem
wirkt der Ausdruck für mich wie von hinten durch die Brust.
Nur gut, dass es Makros gibt.
Mit dem "." geht es nicht, weil "2" eine Zahl und kein Identifier ist.
Es muß ja nicht agiles rumzappelt sein, aber etwas flexibel darf man
schon sein ;-)
Kenner ;-) schrieb:> C ist an sich nicht schlecht, aber es wurde ursprünglich für für das> Programieren von PC's entwickelt
Eigentlich als Sprache von Unix und damit Minicomputern. PC gab es
überhaupt noch nicht.
Kenner schrieb:> Wie gesagt es gibt Von-Neumann-Architektur und Harvard-Architektur.> Der PC hat Von-Neumann-Architektur und die meisten Mikrocontroller> Harvard-Architektur.>> https://de.wikipedia.org/wiki/Von-Neumann-Architektur
Welche Architektur der Prozessor hat ist der Programmiersprache C sowas
von egal denn C ist eine Hochsprache, hat also ein entsprechend hohes
Abstraktionslevel. Ihr vergleicht hier Birnen mit Kartoffeln.
Stefan U. schrieb:> In C muss man das jedoch deutlich umständlicher schreiben. Genau> genommen kann C nur ganze Bytes lesen und mit der UND Funktion> verknüpfen.
Wieso ist das Umständlicher? In C heißt das
1
if(PIND&(1<<PD2)){
2
doSomething();
3
}
Das finde ich ist genauso gut wie
1
sbic PIND, 2
2
rjmp doSomething
und nix anderes macht ja auch C aus der If-Anweisung.
Michael K. schrieb:> Welche Architektur der Prozessor hat ist der Programmiersprache C sowas> von egal
In der Programmiersprache C mag das noch stimmen, in diesem Thread aber
nicht.
Hier gehts um (den ersten) Mikrocontroller, bitte dabei bleiben, noch
ein Programmiersprachen Thread braucht niemand...
Hallo,
Fundstück aus meiner "Sammlung":
µPD75CG08 Entwicklerversion, laut Internet wohl von 1987.
Wo wurde der wohl eingesetzt?
Gruß aus Berlin
Michael
Der kann überall eingesetzt worden sein.
4 Bit Controller fanden sich in nahezu jedem Gerät, von der
Waschmaschine bis zum Kassettenrekorder.
Diese Piggyback ICs waren sehr teuer. Die Serie ging dann aber
ausschließlich über Masken-ROM, weshalb ich mich niemals für 4Bit
interessiert habe.
Ende der 80er hatte schon jeder Hersteller 16Bit im Angebot, aber die
4Bit uC machten sehr lange Zeit den Großteil des Marktes aus.
Gruß
Joachim
Joachim schrieb:> wenn nur dieses sch**** C nicht wäre :-)
Ich postuliere Mal folgenden Satz:
Die Wahrscheinlichkeit, dass in einem Thread, egal mit welcher
Ursprungsfrage, ein C-Bashing erfolgt, geht mit steigender Antwortzahl
gegen 1
Und das, obwohl niemand gezwungen wird C zu verwenden.
> Welche Architektur der Prozessor hat ist der Programmiersprache C sowas> von egal denn C ist eine Hochsprache, hat also ein entsprechend hohes> Abstraktionslevel.
Das ist schon richtig, aber diese C compiler werden von verschiedenen
Leuten geschrieben und deswegen wird es manchmal gut umgesetzt und
manchmal nicht so gut.Für PC gib's gute C-Compiler aber für
Microcontroller nicht.
> Und das, obwohl niemand gezwungen wird C zu verwenden.
Das stimmt nicht. Wenn du Microcontroller programmieren willst dann
programmierst du entweder in C oder du bist arbeitslos.
Bei aller Kritik an C ist es ja ein grosser Vorteil das wirklich jeder
Controller ausschliesslich in C programmiert wird. (kommerziell, nicht
privat!)
Olaf
Kenner schrieb:> Für PC gib's gute C-Compiler aber für> Microcontroller nicht.
Was für ein Blödsinn diese Verallgemeinerung! Offenbar hast du sehr
beschränkte Programmierkenntnisse sowohl am PC als auch für µCs.
Vielleicht mal andere µCs ansehen?
> Wenn du Microcontroller programmieren willst dann programmierst du> entweder in C oder du bist arbeitslos.
Liegt wohl daran, dass sich C bei der überwiegenden Anzahl der Profis
als der beste Kompromiss durchgesetzt hat. Wenn PL/M oder Assembler so
toll wären, dann hätte wohl nicht schon in Urzeiten selbst am 51er C
(Keil, der IAR war damals Schrott) die beiden großteils abgelöst.
Natürlich greift man für manche Sachen noch immer besser auf Assembler
zurück. Aber meist ist C einfach besser.
Michael U. schrieb:> µPD75CG08 Entwicklerversion, laut Internet wohl von 1987.> Wo wurde der wohl eingesetzt?
Z.B. in den Jalousieantrieben meiner Eltern. Das ist aber im Vergleich
zu TMS1000 und z.B. den alten COP Prozessoren, die wir nicht vergessen
sollten, schon Jahrzehnte neuer.
Die NEC Dingse begegnen einem bis heute, wobei ich manche Entwickler in
Verdacht habe, das sie die extra deswegen nehmen, weil sie immer ein
wenig exotisch bleiben. Allerdings haben sie aber z.B. auch LCD Treiber
onchip und auch AD Wandler.
Es wird überwiegend in C programiert weil die meisten "profis" diese
Sprache kennen und nich auf eine andere umschulen wollen, aber das
bedeutet nicht, dass es keine bessere gibt, besonders für
Microcontroller gibt's bessere Sprachen.
> bedeutet nicht, dass es keine bessere gibt, besonders für> Microcontroller gibt's bessere Sprachen.
Na dann erzaehl doch mal. Ich programmiere gerade ARM, M16C und SH2.
Welche bessere Sprachen (mehrzahl?) gibt es da?
Auch ich habe durchaus das ein oder andere an C auszusetzen, aber ist
einfach die einzige Sprache die es fuer wirklich jeden Controller gibt.
Ich wuerde es wirklich begruessen wenn sich da mal was anderes
entwickeln und durchsetzen wuerde, aber das ist nicht abzusehen.
Olaf
Kenner schrieb:> Für PC gib's gute C-Compiler aber für> Microcontroller nicht.
Schmarrn, vielleicht verwechselst Du hir IDE oder Bibliotheken mit
Compiler aber wahrscheinlich hast Du nicht die geringste Ahnung.
der gcc bspw ist für PC oder uC der gleiche.
Olaf schrieb:> Ich wuerde es wirklich begruessen wenn sich da mal was anderes> entwickeln und durchsetzen wuerde, aber das ist nicht abzusehen.
Mir fällt da FORTH ein.
Zugegeben, sehr speziell aber für spezielle Anwendungen besser als
Compilersprache geeignet. Gibst wohl für alle Controller und
Prozessorarchitekturen sogar spezielle FORTH-Prozessoren.
http://www.mpeforth.com/press/MPE_PR_From_Telescope_to_Comet_2014_11_13.pdf
Kenner schrieb:> Für PC gib's gute C-Compiler aber für> Microcontroller nicht.
Nö, viele MC-Compiler sind äußerst gut.
Um beim 8051 in Assembler etwa 10% Code zu sparen gegenüber dem C51,
bräuchte ich die 100-fache Entwicklungszeit.
Was ist effektiver, 10% mehr Flashbelegung oder 10000% mehr Zeitaufwand?
Olaf schrieb:> Na dann erzaehl doch mal. Ich programmiere gerade ARM, M16C und SH2.> Welche bessere Sprachen (mehrzahl?) gibt es da?
C++. C kann nichts, was C++ nicht mindestens ebensogut koennte.
Kenner schrieb:> Das ist schon richtig, aber diese C compiler werden von verschiedenen> Leuten geschrieben und deswegen wird es manchmal gut umgesetzt und> manchmal nicht so gut.Für PC gib's gute C-Compiler aber für> Microcontroller nicht.
Endlich mal einer, der sich auskennt und mit hohem Sachverstand
vorurteilsfrei und ohne Pauschalierung die Lage messerscharf analysiert
und die Tatsachen auf den Punkt bringt.
mfg.
> Mir fällt da FORTH ein.
Oh Gott! So ein Quatsch. Ich hab ja selber mal vor vielen Jahren einen
kleinen Forthcompiler fuer ST6 programmiert und auch zwischendurch immer
mal wieder eine kleine Forth-Sache in der Sprache des HP48 geschrieben.
Ich vermag also an der Sprache durchaus eine gewisse Eleganz zu
entdecken.
Aber hast du eigentlich schonmal jemals an einem grossem Projekt
gearbeitet? Wo 10-20Leute dran arbeiten? SIL-Zertifziert, Misra, Lint?
Wo man Source aus den vergangenen 10Jahren weiterverwendet? Wo selbst in
C ein grosser Aufwand und Disziplin notwendig ist? Forth ist doch ein
grosser Schmerz im Arsch wenn du etwas programmierst was laenger ist wie
10 Seiten.
> C++. C kann nichts, was C++ nicht mindestens ebensogut koennte.
Hihi. Ja ich wusste das das kommt. Das Problem ist, du musst dann Leuten
erstmal SEHR viel beibringen damit sie wissen warum sie was alles besser
nicht verwenden. Und die Probleme die du mit normalem C hast, wofuer man
ja gerade Misra und aehnliches verwendet hast du immer noch.
Wuenschenswert waere IMHO eher soetwas wie Oberon/Modula. Wo also der
Compiler den Leuten schon mehr auf die Finger schaut. Wobei die Sprache
aber unbedingt Nebenlaeufigkeit/Multicores (vgl: Go) unterstuetzen
sollte.
Olaf
Einen Thread "welches ist die beschissendste Programmiersprache" könnt
ihr eigentlich separat aufmachen...
Um mal wieder ein wenig in Richtung Ursprungsfrage zu lenken:
Frank E. schrieb:> Laut Definition ist ein Mikrocontroller ein Mikroprozessor, vereint mit> Programm- und Daten-Speicher und IO-Baugruppen in einem Chip...> Logischerweise wird es kaum Mikrocontroller VOR Mikroprozessoren gegeben> haben.
Wenn diese Definition stimmt:
Der Hitachi HD32127 (und seine unzähligen Kollegen...) besitzt Programm-
und Datenspeicher sowie Ein- Ausgabebaugruppen. Und er kann eigenständig
Anwendungen ausführen. Sehr spezielle, freilich.
Entstanden ist er etwa zeitgleich mit mit dem Intel4004. Kann man da
schon von einem Mikrocontroller sprechen???
http://www.alciom.com/perso/calc/casio/mini/descrcalc.htm
kuehler rechner schrieb:> Entstanden ist er etwa zeitgleich mit mit dem Intel4004. Kann man da> schon von einem Mikrocontroller sprechen???
IMO ja. Ich sehe das ähnlich wie der ein und andere: Ein Mikrocontroller
ist ein Mikroprozessor mit Peripherie (kann, muss aber nicht, auch
Arbeits- und Programmspeicher sein). Also im Prinzip ist ein
Mikrocontroller ein Chip der neben dem Mikroprozessor noch einen
weiteren Funktionsbaustein trägt, und wenns ein läppischer AD-Wandler
ist.
kuehler rechner schrieb:>> Logischerweise wird es kaum Mikrocontroller VOR Mikroprozessoren gegeben>> haben.>> Wenn diese Definition stimmt:
Eher nicht. Liegt auch nicht unbedingt nahe.
Der ursprüngliche Einsatzzweck von Mikroprozessoren waren Controller.
TIs TMS1000 war kurz nach Intels 4004 fertig. Und gilt als erster
Mikrocontroller. Damit stimmt zwar die Reihenfolge, aber nicht die
Kausalität.
Ich verstehe nicht was das für eine Relevanz hat, welcher
Mikrocontroller der erste war? Viel interessanter, für mich jedenfals
ist, wie er aufgebaut war und welche Architektur er hatte.
Kenner schrieb:> wie er aufgebaut war und welche Architektur er hatte.
Das Grundprinzip hat sich heute bis heute nicht geändert. Aber auch für
deine Frage musst du ja erst mal wissen wer der erste war bevor du
fragen kannst welche Architektur er hatte und wie er aufgebaut war.
Zusamengafasst kann man also sagen das die ersten Mikrocontroller
4-biter waren und hatten sehr wenig resourcen, und waren schwer zu
programieren.
Also fast für nichts zu gebrauchen.
Kenner schrieb:> Also fast für nichts zu gebrauchen.
Das würde ich so nicht sagen. Für die damalige Zeit waren sie für
relativ viele Aufgaben zu gebrauchen. Man darf diese Technik nicht blind
mit der heutigen Technik vergleichen sondern muss schaun: Was gabs zu
dieser Zeit als Alternativen.
Kenner ;-) schrieb:> Also fast für nichts zu gebrauchen.
Für Tisch- und Taschenrechner beispielsweise. Dafür hatte TI die TMS1000
nämlich entwickelt. Es hatte freilich etwas gedauert, bis TI das
Potential erkannte und die Mikros davon loslöste und auf den Markt
brachte.
Michael K. schrieb:> und wenns ein läppischer AD-Wandler ist.
Ein Microcontroller mit A/D-Wandler ist die ganz hohe Schule der
Halbleitertechnik, weil es sich um einen Mixed-Mode-Baustein handelt. So
etwas konnte man lange Zeit auch nur in Hybrid-Technik realisieren.
Als läppisch würde ich eher einen digitalen I/O-Port in Datenbusbreite
bezeichnen, d.h. bei frühen Controllern in 4 Bit oder 8 Bit. Etwas
komplexer wäre schon ein UART oder Timer, insbesondere wenn diese extern
taktbar sind.
Olaf schrieb:> Ja ich wusste das das kommt. Das Problem ist, du musst dann Leuten> erstmal SEHR viel beibringen damit sie wissen warum sie was alles besser> nicht verwenden.
nein, man muss ihnen gar nichts beibringen. Denn wenn man die Sprache
verstanden hat (was zum programmieren gehört), dann weiß man auch das
z.B. Exceptions für den Compiler aufwändig zu implementieren sind. Man
muss einfach sein Werkzeug kennen. Witzigerweise ist Unkenntnis oftmals
der Grund der Ablehnung von C++. Genauso könnte ich argumentieren warum
wir nicht in Assembler programmieren. Ist doch viel einfacher als C.
Die Zeitersparnis möchte ich bei komplexen Projekten nicht gegen C
tauschen. Der einzige Vorteil sehe ich in der geringfügig besseren
Portabilität. Aber dafür verzichtet man auf ein mächtiges Werkzeug.
Allein die OOP ist für mich Grund genug C++ zu nutzen. OOP in C wird
spätestens bei der Vererbung ein Krampf. Unübersichtlich sowieso.
Zusätzlich bekommt man in C++ eine effiziente Bibliothek (Standardlib +
Boost) geschenkt, die auf größeren Controllern ohne Probleme einsetzbar
ist.
> Ein Microcontroller mit A/D-Wandler ist die ganz hohe Schule der> Halbleitertechnik, weil es sich um einen Mixed-Mode-Baustein handelt.
Richtig, ist so schwierig das es heute noch Firmen (nennen wir sie z.B
mal ST ) gibt die damit ihre Probleme haben. :-)
Olaf
Olaf schrieb:> Hihi. Ja ich wusste das das kommt. Das Problem ist, du musst dann Leuten> erstmal SEHR viel beibringen damit sie wissen warum sie was alles besser> nicht verwenden.
Also, "Oh je, ich muss was lernen!" gilt in meiner Branche nicht als
Ausrede. Und "Also, das hat man mir an der Schule nicht beigebracht."
auch nicht. :-)
> Und die Probleme die du mit normalem C hast, wofuer man> ja gerade Misra und aehnliches verwendet hast du immer noch.
Solange Menschen programmieren, werden Menschen das Hauptproblem sein,
richtig. :-)
> Wuenschenswert waere IMHO eher soetwas wie Oberon/Modula. Wo also der> Compiler den Leuten schon mehr auf die Finger schaut. Wobei die Sprache> aber unbedingt Nebenlaeufigkeit/Multicores (vgl: Go) unterstuetzen> sollte.
Das ist wohl wirklich dir traurige Wahrheit: Gibst du Entwicklern
Freiheiten, bauen sie Mist. Also musst du ihre Freiheiten immer mehr
einschraenken. Womit du sprachlich immer mehr von Implementierungen zu
Beschreibungen uebergehen musst.
Olaf schrieb:> Wuenschenswert waere IMHO eher soetwas wie Oberon/Modula. Wo also der> Compiler den Leuten schon mehr auf die Finger schaut. Wobei die Sprache> aber unbedingt Nebenlaeufigkeit/Multicores (vgl: Go) unterstuetzen> sollte.
Wobei Ada ursprünglich exakt diesen Anwendungsbereich adressierte, also
embedded Systems einer Komplexitätsklasse, die heutigen 32-Bit
Mikrocontrollern entspricht. Mit präzise definierter typsicherer Sprache
und der Möglichkeit, die Implementierungseigenschaften zu kontrollieren.
Auch Nebenläufigkeit war darin bereits vorgesehen.
Andreas S. schrieb:> Als läppisch würde ich eher einen digitalen I/O-Port in Datenbusbreite> bezeichnen, d.h. bei frühen Controllern in 4 Bit oder 8 Bit.
Um den 8048 noch mal aufzugreifen:
Der "erste 8 bit Single Chip Mikrocontroller der Welt" hatte einen guten
Kumpanen, beide wurden wohl auch gezielt füreinander entwickelt: Den
I/O-Expander 8243. Über einen 4-bit-Bus konnten sie angebunden werden,
womit man den 8048 um 16 I/O je Baustein - sie waren über Chip Select
kaskadierbar - erweitern konnte. Ein Schreib- oder Lesezugriff auf den
externen Port brauchte nur einen einzigen Befehlszyklus, so, als sei der
Port bereits im µC integriert. Das machte die Hardwarelogik.
Für diese Sache hatte der 8048 spezielle Befehle im Befehlssatz, die auf
den Portexpander zugreifen. Die Portbezeichnungen deuten ebenfalls auf
die gegenseitige Abstimmung der beiden hin: Hatte der 8048 die Ports P0,
P1, P2 und P3, so lauteten sie beim 8243 P4, P5, P6 und P7. Ein
Transportbefehl lautete z.B. MOVD A,P7 und ein Verknüpfungsbefehl ORLD
P6,A.
Wenn man die beiden jetzt miteinander vergießen würde, hätte man ja auch
einen einzigen Chip. So war es teilweise bei µC aber auch realisiert:
Der Chip hatte unter dem Kunststoff in Wahrheit mehr als einen Die, die
untereinander mit Bonddrähten verbunden waren.
Der Nachfolger 8051 hatte so ein Feature nicht mehr. Er hatte nur wenige
I/O mehr als der 8048, also auch noch nichts berühmtes. Wenn man mehr
I/O brauchte, sagte man: Nimm den neuen 8255 von der Produktlinie
Erweiterungsbausteine für das System 8085 aus gleichem Hause, die passen
auch auf 8051. Der 8255 wurde erst in der Zeit zwischen 8048 und 8051
entwickelt.
Der älteste 8255 aus meiner Sammlung ist aus dem Jahr 1979. Aber von
AMD. Das wundert mich etwas, die Geschwindigkeit mit der das Second
Source Teil am Markt war, denn er war ja gerade erst kurz von Intel
entwickelt.
Michael U. schrieb:> Fundstück aus meiner "Sammlung":> µPD75CG08 Entwicklerversion, laut Internet wohl von 1987.> Wo wurde der wohl eingesetzt?
In meiner Soehnle Küchenwaage aus den 1980-ern befindet sich ein
µPD7520, das könnte sowas ähnliches sein. Kenne mich aber mit deren
Produktlinien nicht aus. Auf jeden Fall älter, vielleicht sogar noch aus
den 1970-ern, denn es ist ein PMOS. Betriebsspannung unstabilisierte
-8V. Ja, Minus, negativ gegen Masse. Im Gerät befinden sich 6
Mignonzellen in Reihe. Ich zog mir mal das Datenblatt des µC, weil ich
neugierig war. Eigentlich so ein typisches Teil für die Zeit, wie die
i8048 oder MC68705P3.
Es gab noch einen weiteren interessanten Peripheriebaustein, den 8155.
Dieser hatte neben den I/O auch noch 256 Byte RAM und einen extra Timer.
Der ist auch auf meinem weiter oben abgebildeten Lichtkontroller zur
Steuerung der Tastatur und Anzeige eingesetzt.
Den 8243 hatte ich auch oft eingesetzt. Wenn man z.B. 7segment Displays
anschließen wollte, dann konnte man relativ einfach 4 Stellen über einen
8243 und 4 7447 Bausteine anschließen, ohne die Anzeige zu multiplexen.
Gruß
Joachim
Nonsens schrieb:> Wenn man mehr> I/O brauchte, sagte man: Nimm den neuen 8255
Die riesigen 8255 mußte ich mir zum Glück nicht mehr antun.
Ich hab beim 8051 schon die 74LS574 bzw. 74LS541 zur Erweiterung
verwendet.
Mit einem 74LS139 als Adreßdekoder hatte man dann je 32 Ein- und
Ausgänge memory mapped.
Und falls man schon den schnellen DS80C320 nahm, waren die 8255 eh zu
langsam.
Die ersten DS80C320 hatten noch einen Bug: im T0 Mode 3 ging T1 nicht
mehr als Baudratengenerator. Nachdem ich den Bug gemeldet hatte, haben
die das aber sehr schnell gefixt.
Nonsens schrieb:> Der älteste 8255 aus meiner Sammlung ist aus dem Jahr 1979. Aber von> AMD. Das wundert mich etwas, die Geschwindigkeit mit der das Second> Source Teil am Markt war, denn er war ja gerade erst kurz von Intel> entwickelt.
Damals legten einige strategisch wichtige Anwender wie Staat/Rüstung
grossen Wert darauf, nicht von einem einzigen Anbieter abhängig zu sein.
Es musste einen zweiten Anbieter für die einzusetzenden Produkte geben.
Intel musste also mit einem Partner kooperieren. Entsprechende
Verträge mit AMD führten zu ganz offiziell vom Die weg abgekupferten x86
Prozessoren und zu grossen Rechtsstreitigkeiten.
Das ging allerdings auch in die andere Richtung. Intel hatte bei der
Peripherie nicht immer ein gutes Händchen (*). AMD übernahm deshalb
manche Bausteine in erheblich verbesserter Form, die dann teilweise
wiederum bei Intel im Programm waren. IIRC ist der im PC eingesetzte DMA
Controller aus der 8080 Serie so ein Teil.
*: Unken rufen, dass dies auch auf die Prozessoren selbst zutrifft. ;-)