Ich bin da schon sehr lange raus was die Programmierung angeht. Mitlerweile bin ich wieder Schüler und ich wollte meine alten Kenntnisse wieder auffrischen. Vor Jahren hatte ich mal einen BCD Decoder mit einen EPROM realisiert. Damals hatte ich keine passenden IC,s gehabt und diesen von einer alten PC-Karte geschlachtet. Mitlerweile habe ich aber keine Ahnung mehr wie und wo mit ich das Programm geschrieben hatte. Ich weiß nur noch das einzellene Speicherzellen beschrieben werden müssen. Wie bringe ich das dem EPROM bei? Kann mir jemand auf die Sprünge helfen?
Die Antwort kam ja schnell... Das ich eine Programmiergerät brauche ist mir auch klahr ! Es ging mir um die Softwareentwicklung - fals man so etwas "einfaches" so nennen darf. Entwicklungsumgebung für ATMEL habe ich hier und auch schon einige kleinere Spielereien zum laufen gebracht. Mit der selben Software kann ich auch EPROM,s programmieren. Mir fehlt nur der Ansatz wie ich dafür das Programm schreibe !
Ganz einfach: Vergessen, daß das ein "Programm" ist. Was Du da machen willst ist einfach eine Wertetabelle: In Adresse 0 kommt das Bitmuster der Segmente, die bei einer 0 leuchten sollen, in Adresse 1... Das kannst Du mit einem Feld-Wals-Wiesen-Editor als HEX-Datei schreiben.
Wenn Du es mit nem AVR (oder ähnlich) machen willst, brauchts tatsächlich ein Programm drum rum... das das entsprechende Byte zum Eingabewert aus eben der Wertetabelle holt.
Ich möchte mich hiermit öffendlich für meine Frage entschuldigen ! Innerhalb von 10-15 Jahren kann man so manches vergessen. Oder bist Du ein Genie und weißt Du Heute noch was Du vor
10 - 15 Jahren zum letzten mal gemacht hast? Ich glaub da hast Du manchen Themen auch so Deine Probleme ...
ich hatte mir ein Datenblatt angesehen und mir dann mit einem Monoflop selbst ein Einfachprogrammiergerät für solche Einfachlogik gebaut, klassisch mit Lochraster und Fädeldraht. Aber solche Technik ist furchtbar Out. Wenn Du jetzt mit (digitaler) Elektronik ensteigen willst, dann such Dir eine Prozessorfamilie Deiner Wahl aus.
Macht viel Spaß. Ich habe mir mal ein derartiges Programmiergerät für
2708 gebaut, ja, die die noch drei Betriebsspannungen brauchten und bei denen man eigentlich alle Zellen reihum ,,brennen'' sollte, eben um sie nicht zu verbrennen. Da ein kompletter Umlauf mit derartigen Pausen zu endlos langen Zeiten für ein Byte geführt hätte, habe ich also die Pausen verkürzt. Danach weiter zur nächsten Adresse. Oh weh!, wenn man sich mal vertippt hatte, dann ging die Arbeit von vorn los.
Damit hat mein erster Computer dann ,,laufen gelernt'' (Zeichengenerator für die Bildschirmsteuerung und Monitorprogramm), später konnte der dann selbst EPROMs programmieren.
"Marte Schwarz" schrieb im Newsbeitrag news:4516a843$0$26959$ snipped-for-privacy@newsspool4.arcor-online.net...
Wobei Du sicher Microcontroller meintest. Da ist ein kleiner aber feiner Unterschied. Was ich allerdings nicht so recht nachvollziehen kann, was hat jetzt das Eine mit dem Anderen zu tun? Wären da nicht PLD und für den Anfang GAL's oder PALCE's angebrachter? Ich nutze die Dinger, wenn auch oftmals hier verrissen, recht gerne. Zumal man damit für eigene Controlleranwendungen recht schnell mal die entsprechende Dekodierlogik zusammengestrickt hat. Auch für relativ komplexe Decoder sind die Dinger einfach Klasse. Und der intensive Umgang damit schult selbst lange verschüttete Grundlagen. Boolesche Algebra und dgl. holt der µC nicht wirklich wieder zurück. Ist aber nur so'n Gedanke. Ich hatte sogar früher mal angedacht S-TTL Proms für derartige Aufgaben (Decoder) einzusetzen. Pollin hat die Dinger zu Hunderten rausgehauen. Allerdings mangelte es schon zu der Zeit an Programmiergeräten für die Teile, so daß der Gedanke verworfen wurde. Aber hey, was solls. Ich habe auch mal eine kleine Lichteffektgeschichte mit einem Taktgeber, Zähler und einem 2716 gebastelt. Liegt zwar schon Jahre zurück, aber lehrreich war's allemale.
Ich hab die Siemens S353 mit Kippschaltern und "burn-it"-Taste programmiert :) Diodenmatrix-PROM, braucht dreierlei Spannungen zum Programmieren, richtige Scheißdinger.
Du schreibst Dir die logische Verknüpfung der einzelnen Ausgänge als Funktion der Eingänge auf, z.B y1=x1 and x2 or x3 ... Dann schreibst Du ein kleines Basic- oder was-auch-immer-für-eine-Programmiersprache-Programm, dass alle Eingangskombinationen durchklappert und die 8 Ausgänge zu einem Byte verknüpft. Diese Bytes werden der Reihenfolge nach abgespeichert und ergeben das zu programmierende Binärfile. Hab' in meiner Pre-uC-Zeit einige nette Dinge mit ausgeschlachteten EPROMs so gebastelt.
[Damals...] Da bisher nur Tips a la "mit einem Programmiergerät" kamen, hier was zur Theorie...
Im EPROM wird einfach die Wertetabelle eingegeben. Beispiel: Eingang BCD[3..0] Ausgang: 7-Segment a-f
BCD -> 7-Seg
0 0 0 0 1 1 1 1 1 1 0 ; Ziffer 0
0 0 0 1 0 1 1 0 0 0 0 ; Ziffer 1
0 0 1 0 1 1 0 1 1 0 1 ; Ziffer 2
0 0 1 1 1 1 1 1 0 0 1 ; Ziffer 3 usw. Das ganze wird jetzt auf das EPROM abgebildet. Da ein EPROM viel mehr Adressen hat, wird eben der obere Teil auf '0' gelegt. Bei den Ausgängen D[0..7] bleibt einer frei, da wir nur 7 Segmente ansteuern.
Adresse -> Daten
0x0000 0x7E ; oberes Bit auf 0 gesetzt
0x0001 0x30
0x0002 0x6D
0x0003 0x79 usw. Damit dann in der Prommer-Software die Speicherzellen füllen und Brutzeln. Als Intel-Hex-Format müsste was in der Richtung rauskommen: :010000107E306D79.....
Stichwort "Mikroprogrammierte Steuerung" Man kann auf die Art auch ganze Automaten bauen. Ein Teil der Ausgänge (Datenleitungen) beschreibt den Folgezustand des Automaten. Diese Leitungen werden über ein Register auf die Eingänge zurückgeführt (aktueller Zustand). Am Register liegt am CLK-Eingang der Takt des Automaten an. Bei Interesse kann ich noch ein Beispiel schreiben (sonst spare ich mir die Tipperei).
B. Spitzer hat beim Tippe wieder was vergessen: Hallo Andreas,
das Tool Log/IC konnte nicht nur JEDEC-Dateien für GALs und CPLDs erstellen, sondern für genau dieses Problem gab es den Baustein "HyperROM". Hier hat Log/IC dann ein Hex-File ausgespuckt, mit dem das EPROM programmiert wurde. Log/IC gibt es nicht mehr am Markt, aber die letzte Version ist unter
formatting link
frei herunterladbar. Support gibt es natürlich keinen.
tschuessle Bernhard Spitzer
--
bash.org - Top 100...
hm. I've lost a machine.. literally _lost_. it responds to ping, it
Wieder mal einer der mich versteht und weiß was ich eigendlich will bzw. welche Hilfe ich suche! Ich will keine Programmiergeräte bauen - na endlich hat es einer verstanden! Ich habe jetzt Deine Zeilen gedanklich durchgespielt und langsam kommt wieder die Erinnerung zurück. Ich habe die restlichen Hex Daten raus:
4 - 33
5 - 5B
6 - 5F
7 - 70
8 - 7F
9 - 7B
Um nicht soviel zu tippen habe ich das etwas gekürzt aufgeschrieben. Kannst Du das mal kurz überprüfen - danke. Das Intel Hex File sieht so aus:
:100000007E306D79335B5F707F7B00000000000005
Die restlichen freien Zellen habe ich mit Nullen aufgefüllt. Der Rest des EPROM,s ist leer (FF). Wenn ich es schaffe werde ich am WE mal ein EPROM brutzeln und schauen ob das auch so richtig ist. Die Ideen mit einen ATMEL sind zwar auch gut,aber man braucht mehr "drumherum" (Quarz,usw.). Da habe ich es doch mit einen EPROM doch leichter und muß nicht so viel tippen :-) Danke nochmal für die Hilfe aller Beteiligten.
Hab' den Kram einige Jahre als Assi an der Uni betreut...
Die 6 könnte man auch 1F machen. Deine sieht so aus: _ |_ |_|
die 05 ist die Prüfsumme (Quersumme über alle Bytes = x00)
Bei Bedarf auch gleich mehrere Versionen ab Adresse 00010. Dann Kannst Du mit den übrigen Adressleitungen auf andere Codes umschalten.
Siehe noch den anderen Hinweis zu Log/IC. Damit kannst Du auch Gleichungen oder (mehrere unabhängige) Wertetabellen eingeben und die HEX-Datei wird automatisch generiert.
tschuessle Bernhard Spitzer
--
bash.org - Top 100...
hm. I've lost a machine.. literally _lost_. it responds to ping, it
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.