Forum: Projekte & Code Kosmos CP1 Emulator mit ATmega


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Ralph S. (jjflash)


Angehängte Dateien:

Bewertung
2 lesenswert
nicht lesenswert
So als reines Spaßprojekt (beim warten aufs Christkind ;-) ) habe ich 
einen (noch nicht ganz fertigen) Kosmos CP1 Emulator geschrieben.

Ohne Sinn und Verstand !

Da der Kosmos CP1 30 Tasten hat (von denen die Tasten für die 
Zifferneingabe parallel geschaltet sind), habe ich ein China I/O Board 
aus der Schublade geholt und dieses verwendet.

Das I/O Board hat 16 Tasten, von denen der Emulator jedoch nur 11 
Verwendet.

Mittels einer "Shift-Taste" wird gewählt zwischen Zifferneingabe (ohne 
gedrückte Shift-Taste) und den sogenannten Funktionstasten (dann mit 
gedrückte Shift-Taste).

Die Tastenbelegung ist folgende:
1
     Tastenbelegung:
2
3
             run  stp  step
4
      -x-     1    2     3
5
6
             acc  clr   pc
7
      -x-     4    5     6
8
9
             out  inp   cas
10
      -x-     7    8     9
11
12
             cal
13
      SHIFT   0   -x-   -x-

Bis auf die Port-Befehle und das Speichern und Laden auf Kassette (was 
dann das interne EEProm des ATmega übernehmen wird) sind alle Funktionen 
bereits implementiert.

Wenn jemand also das Board zu Hause hat, es ihm langweilig ist, kann man 
damit gut "herumspielen" (eben bis das Christkind kommt).

Eine Manual zum originale CP1 (nach dem ich die Emulation programmiert 
habe) findet sich hier:

https://www.retrozone.ch/cp1/

Wie das I/O Board anzuschließen ist kann dem Header tm1638_kosmos_cp1.h 
entnommen werden.

Sollte ich noch verrückter sein, und davon eine Platine entwickeln, wäre 
ein TM1637 auch angebracht, weil dieser genau max. 6 Digit 
7-Segmentanzeige und 16 Tasten kontrollieren kann (für einen Preis von 
ca. 20 ct).

Viel Spaß damit und schöne Weihnachten,

JJ / Ralph

von Der müde Joe (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Tolle Sache!
Was braucht man noch neben dem von dir erwähnten sog. China I/O Board?

von Ralph S. (jjflash)


Bewertung
0 lesenswert
nicht lesenswert
Der müde Joe schrieb:
> Tolle Sache!
> Was braucht man noch neben dem von dir erwähnten sog. China I/O Board?

einen ATmega? Theoretisch (und praktisch wohl auch) 5V, einen 
Kondensator und ein SPI Flasher, oder einen Arduino Nano / Uno.

von Michael W. (michael_w738)


Bewertung
-1 lesenswert
nicht lesenswert
Super Sache!
Ja das TM1638 ist ideal dafür. Soetwas ähnliches habe ich damals für die 
erste Version des Microtronic Emulators auch verwendet.

https://youtu.be/HHfHw3GVIuI

von Ralph S. (jjflash)


Angehängte Dateien:

Bewertung
-1 lesenswert
nicht lesenswert
So, jetzt habe ich es "ausprogrammiert" und den Emulator fertig gemacht. 
Mit dem "fertigmachen" stellen sich dann so manche Fragen darüber, 
damit, dafür.

Zum einen wie gehabt: Emulator funktioniert in Verbindung mit einem 
TM1638 Chip, an den 7-Segment und Tasten angeschlossen sind. Ein 
fertiges Board (aus China) hat Tasten derer 16 und somit sind 5 Tasten 
hiervon ungenutzt.

Der TM1638 benötigt zur Kommunikation mit einem µC 3 I/O Anschlüsse.

Vom Mikrocontroller bleiben dann gerade so genügend I/O Anschlüsse 
übrig, um die beiden 8-Bit Ports P1 und P2 noch zu emulieren.

Für den Emulator habe ich jetzt einen Arduino Nano verwendet (aber nicht 
die Arduino IDE) und diesen "normal" als Makefile-Projekt programmiert.

Für den Emulator habe ich ein bestehendes .c / .h Softwaremodul 
umgeschrieben, damit es für den Emulator passt und ein neues 
Softwaremodul namens "vports". Dieses "vports" ermöglicht es (wenn auch 
langsam), bunt über alle Anschlüsse des AVR gemischt, 8 Bits zu einem 
Port zusammen zu fassen. Hier kann einem Port entweder mittels einer 
Zuweisung eines uint8_t Wertes der ganze "Port" auf einmal gelesen 
geschrieben werden, oder einzelne Bits können gesetzt, gelöscht, gelesen 
werden.

Der Emulator wurde mit den Controllern ATmega8, 88, 168 und 328 
getestet. Wer dieses Projekt umsetzen möchte, muß im Makefile lediglich 
den Controllertyp und die Uploadmethode auswählen.

Die Funktionen des Emulators CAS und CAL wurden (als einzige) vom 
Original abgeändert. Normalerweise sind diese beiden Funktionen 
"Cassette store" und "Cassette load" und natürlich speichert dieses Teil 
nicht auf einen Kassettenrekorder. Weil selbst ein ATmega8 insgesamt 512 
Bytes EEProm besitzt und ich den "maximalen Speicherausbau" des Kosmmos 
CP1 auf 256 Byte Ram gesetzt habe, können im EEProm somit 2 Programme 
gespeichert werden. Hierfür wird für CAS und CAL dieselbe Methode 
verwendet wie bspw. das Anwählen von Speicherzellen oder das Setzen des 
Programmcounters:

Tastenkombination "001 + CAS" speichert den aktuellen Speicherinhalt auf 
Speicherplatz 1, "000 + CAS" speichert den aktuellen Speicherinhalt auf 
Speicherplatz 0.

Gleiches gilt für das Laden aus dem EEProm: "000 + CAL" und "001 + CAL".

-----------------------

Irgendwie hat das Spaß gemacht, einen "virtuellen" extrem 
minimalistischen "Computer" nachzubauen (man beachte die 
Anführungszeichen) und es stellt sich die Frage, warum bspw. invertieren 
nur für ein einzelnes Bit vorgenommen wurde, kein CALL und RET und noch 
"schlimmer" kein MUL und kein DIV. Die Antwort dürfte einfach sein: der 
originale Controller im Kosmos CP1 ist ein 8049 und hierfür dürfte wohl 
einfach kein Platz mehr im Controller gewesen sein.

Wer sich die Firmware des Emulators genauer anschaut, wird feststellen, 
dass der Maschineninterpreter an sich der einfachste Part des Programmes 
ist. Hier den Befehlssatz "auszubauen" dürfte ein extrem leichtes sein, 
bspw. MUL, DIV, NOT (kompletter Akku), SHEX (für ShowHex wenn die 
Anzeige hexadezimal sein soll).

Ich habe eine Befehlssatzänderung deshalb nicht vorgenommen, damit zum 
einen das Ding eben wirklich retro ist und zum anderen darf daran jeder 
so spielen wie er mag.

Der Quellcode dürfte hierfür genügend dokumentiert sein.

--------------------------------------------------------

Ich überlege mir wirklich, ob ich hierfür eine Platine routen soll (die 
extrem minimalistisch bleiben soll): keine USB2UART Bridge, aber RxD und 
TxD und DTR auf Stiftleisten herausgeführt um für Weiterentwicklung die 
serielle Schnittstelle zur Verfügung zu haben (vllt. macht man ein 
Programm-Upload von der seriellen Schnittstelle). SPI-Stiftleiste um den 
ATmega zu flashen (vllt. auch nur einen Bootloader um die eigentliche 
Firmware dann über die serielle Schnittstelle zu übertragen). Die beiden 
Ports P1 und P2 auf Buchsenleiste nach aussen geführt.

So, und dann gleich das I/O geändert: Anstelle von TM1638 einen TM1637 
verwenden, der genau die richtige "Größe" hat: 6 Digit 7-Segementanzeige 
mit max. 16 Tasten ==> passt. Hierfür brauchts dann auch nur noch 2 I/O 
Pins.

Bauteilemäßig wäre das (vor allem unter Verwendung eines ATmega8 oder 
ATmega88) ultra preiswert.

Mir stellt sich dann allerdings nur die Frage: Was mache ich dann damit, 
wenn ich eine solche Hardware aufgebaut habe?

Schöne Tage noch,

JJ

von Michael W. (michael_w738)


Bewertung
0 lesenswert
nicht lesenswert
Wie gesagt,  ich denke nicht dass Du viel über die Sinnfrage grübeln 
musst. Ich empfehle den Atmega 2560 der kostet 5 Euro und benötigt keine 
Hacks für vports o.ä. Eine Platine ist in jedem Fall zu empfehlen.  Das 
macht auch Spaß!

Schön dass es nun auch einen CP1 in dieser Form gibt; sicherlich wird 
den auch der ein oder andere nachbauen.  So geschehen mit meinem 
Microtronic Emulator über die Jahre.

Schöne Tage noch Michael

: Bearbeitet durch User
von Andreas B. (bitverdreher)


Bewertung
-2 lesenswert
nicht lesenswert
Ralph S. schrieb:
> Was mache ich dann damit,
> wenn ich eine solche Hardware aufgebaut habe?
Programmieren lernen. ;-)

von Michael W. (michael_w738)


Bewertung
0 lesenswert
nicht lesenswert
Ralph S. schrieb:
> Mir stellt sich dann allerdings nur die Frage: Was mache ich dann damit,
> wenn ich eine solche Hardware aufgebaut habe?

Evtl. mal beim Franzis-Verlang nachfragen, ob die an einem Vertrieb / 
einer Neuauflage interessiert sind?

Man darf nicht vergessen, dass diese Lerncomputer (CP1, Microtronic) den 
Lerncomputern die heute auf den Markt geworfen werden (Kakken GMC-4 
o.ä.) weit überlegen sind. Das Zauberwort heißt existierende Software, 
Anleitungsbücher & Elektronik-Experimente! Diese sind durchaus auch 
heute noch didaktisch empfehlenswert, für Einsteiger.

Dieser hier z.B.

https://www.tindie.com/products/subsystems/4-bit-microprocessor-trainer/

wird "erfolgreich" komerziell vertrieben. Ist zudem das gleiche wie der 
GMC-4 und the Science Fair Microcomputer Trainer

https://www.old-computers.com/museum/computer.asp?st=1&c=1053

bzgl. Instruction Set.

Sowohl der CP1 als auch der Microtronic sind sowas von besser... der 
Microtronic ist natürlich der beste ;-)

: Bearbeitet durch User
von chris_ (Gast)


Bewertung
0 lesenswert
nicht lesenswert
von Michael W. (michael_w738)
>Kakken GMC-4

Das war wohl ein Freud'scher-Versprecher .. das Ding heißt Gakken GMC-4
https://en.wikipedia.org/wiki/GMC-4

von Der müde Joe (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ist doch klar, du bewunderst sie und freust dich, das du sie hast! :-)

Ich konstruiere derzeit eine solche Minimalversion eines CP1, aber 
ausschließlich mit THT-Bauteilen.

von Michael W. (michael_w738)


Bewertung
0 lesenswert
nicht lesenswert
chris_ schrieb:
> von Michael W. (michael_w738)
>>Kakken GMC-4
>
> Das war wohl ein Freud'scher-Versprecher .. das Ding heißt Gakken GMC-4
> https://en.wikipedia.org/wiki/GMC-4

Oh ja hmm war wohl irgendwie eine Superposition in meinem Hirn zwischen 
Gakken und Kaggen und da kam dann irgendwie Kakken bei raus. Hätte 
natürlich auch Gaggen werden können :-)

von Ralph S. (jjflash)


Bewertung
-1 lesenswert
nicht lesenswert
Michael W. schrieb:
> Wie gesagt,  ich denke nicht dass Du viel über die Sinnfrage grübeln
> musst. Ich empfehle den Atmega 2560 der kostet 5 Euro und benötigt keine
> Hacks für vports o.ä. Eine Platine ist in jedem Fall zu empfehlen.  Das
> macht auch Spaß!

Das finde ich für einen CP1 Emulator satt zu arg und absolute 
Verschwendung. Nur damit die Ports vorhanden sind (das sind sie bei 
einem 28 pol. Gehäuse ebenfalls). Ansonsten reicht ein Controller mit 8 
kB Flash und 512 Byte Ram (wenn man sich anstrengen würde - was ich 
nicht getan habe - würde höchstwahrscheinlich auch ein 4 kB Flash 
reichen).

Michael W. schrieb:
> Evtl. mal beim Franzis-Verlang nachfragen, ob die an einem Vertrieb /
> einer Neuauflage interessiert sind?

Das glaube ich wohl eher absolut nicht: Das Manual zu schreiben (das 
Originale) ist mit Sicherheit deutlich aufwändiger gewesen, als die 
Firmware des Controllers. Heute gilt das noch mehr als damals. Ich habe 
so geschätzt insgesamt 6 bis 8 Stunden zum Programmieren gebraucht (und 
es wäre schneller gewesen, ich hätte nicht ums verr*** die TM1638 
Software angepasst sondern gleich neu geschrieben).

Vom Ansatz her war ich sehr überrascht, wie Kosmos damals heran gegangen 
ist, jemanden einen Computer zu erklären. Es wurde wirklich gelernt wie 
ein Computer funktioniert. Allerdings haben sie dann elementare Dinge 
dann wirklich weg gelassen (was wohl dem extrem geringen Arbeitsspeicher 
des 8049 geschuldet ist):

- Ich habe beim Testen des Emulators wirklich ab und innerlich den Kopf 
geschüttelt, weil die Ein- und Ausgabe im Dezimalsystem vorgenommen 
wird. Wahrscheinlich wollte man didaktisch den "lernenden" nicht noch 
mit einem "fremden" Zahlensystem überlasten.

- kein Stacksystem und dadurch

- keine CALL und RET

Wobei man den letzten Punkt dann sogar per Software realisieren kann. 
Bevor man ein Unterprogramm anspringt, legt man an einem Speicherplatz 
die Rücksprungadresse ab und anstelle eines RET wird an diese im 
Speicher abgelegte Adresse gesprungen.

Natürlich kann man das alles um den CP1 erweitern, nur dann ist es kein 
CP1 mehr.

Schlimm beim CP1 ist, dass man bei der Eingabe die Adresse nicht sieht, 
an der man etwas eingibt, bsp.:
1
  100 - out    // wählt Adresse 100 an (wohlbemerkt alles dezimal)
2
04010 - inp    // Eingabe von Opcode (04) und Operand (010)
3
               // nach "inp" wird automatisch nächste Stelle angewählt
4
02000 - inp    //
5
.
6
---->          // nach einigen Eingaben: an welcher Adresse befinde ich mich?
7
.
8
09101 - inp    // letzter Befehl eines Programmes

Grundsätzlich wäre für diese Art von "Lerncomputer" es wohl besser 
gewesen (wie ich das in Lehre an einem i8080 gehabt hatte) mit extra 
Anzeige für Adresse und Eingabe. Dieses hatte auch nur 6 
7-Segmentanzeigen (aber einige Tasten mehr) und es wurde nativ auf dem 
8080 programmiert (was natürlich auf einem 8049 nicht geht, auf einem 
MCS-51 wäre das gegangen).

All das ist wohl schon 1983 dem Kostendruckt unterworfen gewesen, damit 
das Teil auch ja "billig" genug bleibt (wobei ich einen Preis von 218.- 
DM bei Einführung schon als "stolzen Preis" bezeichnen würde).

Michael W. schrieb:
> Man darf nicht vergessen, dass diese Lerncomputer (CP1, Microtronic) den
> Lerncomputern die heute auf den Markt geworfen werden (Kakken GMC-4
> o.ä.) weit überlegen sind.

"Heute" auf den Markt geworfen: Der Gakken GMC-4 wurde 2009 als Beilage 
zu einem Elektronikmagazin mit vertrieben. Hier finde ich das 
"Selbstbasteln" der Folientastatur am interessantesten und mich würds 
interessieren, wo die ähnlich billig wie PCB's fertigen lassen kann 
(wenn es so etwas gibt).

Vom Ansatz her sind CP1 und Microtronic tatsächlich überlegen.

--------------------------------------

Der müde Joe schrieb:
> Ich konstruiere derzeit eine solche Minimalversion eines CP1, aber
> ausschließlich mit THT-Bauteilen.

Öha ... ausschließlich mit THT wird.. sagen wir es so: etwas 
"umständlich": Der Mikrocontroller ist da kein Problem, den gibts THT. 
Mit dem I/O System wirds "doof". Mir ist hier kein einziger THT Baustein 
bekannt.

Hier kannst du bspw. mit PCF8574 I/O Expander hantieren, allerdings: ob 
das Sinnvoll ist? Du kannst hier einen Expander nehmen und mit diesem 16 
Tasten abfragen, wenn du den Expander seinerseits selbst multiplext. 
Oder du nimmst derer gleich 2 Expander und multiplext diese nicht, weil:
Du willst die Anzeige multiplexen, hier brauchst du dann garantiert 2 
Expander, einen für die 8-Bit Informationen der 7-Segmentanzeige (7 
Segmente plus Dezimalpunkt), 6-Bit Information für die MPX-Leitungen.

Hmm, insgesamt dann 4 Bausteine I/O Expander plus µC ? (nur damit es THT 
bleibt) ?

Ich werde die Tage das ganze mit einem TM1637 versuchen (der halt aber 
eben nicht THT ist), der einfach wie gemacht hierfür ist. Vllt. solltest 
du überlegen, einen TM1637 auf einen TSOP-Adapter zu löten und das dann 
als THT-Baustein ansehen ? ;-)

Habe ich vor einiger Zeit für einen ATtiny so realisiert gehabt.

Beitrag "Siebensegment und Tasten ansteuern mit TM1651 \ TM1637"

Eine solche "Konstruktion" würde sich dann auf "ATmega", TM1637, 2 x 3 
Digit 7-Segmentanzeige, 16 Tasten beschränken. Ende !

------------------------------------

Werde ich die Tage mal ausprobieren, größte "Herausforderung" hier ist 
es dann, 16 Tasten auf ein Steckbrett zu bringen. :-) ;-) vllt. sollte 
ich mal ein ähnliches I/O Board wie das von mir verwendete routen, nur 
mit TM1637 Baustein (wobei sich hier dann wieder die Frage stellt: 
wofür):

von chris_ (Gast)


Bewertung
0 lesenswert
nicht lesenswert
>Vom Ansatz her war ich sehr überrascht, wie Kosmos damals heran gegangen
>ist, jemanden einen Computer zu erklären.

Weil's so schön zum Thema passt. Vor einiger Zeit gab's im 
Deutschlandfunk eine 3 stündige Hörcolage zum Thema Computer und 
Programmiersprachen.

https://www.deutschlandfunkkultur.de/geschichte-n-der-programmiersprachen-in-einer-langen-nacht.1024.de.html?dram:article_id=458026

Leider ist die Audiodatei dort nicht mehr verfügbar. Der Beitrag ist 
aber wirklich empfehlenswert.

von Planloser (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ralph S. schrieb:
> Hmm, insgesamt dann 4 Bausteine I/O Expander plus µC ? (nur damit es THT
> bleibt) ?
>
> Ich werde die Tage das ganze mit einem TM1637 versuchen (der halt aber
> eben nicht THT ist), der einfach wie gemacht hierfür ist. Vllt. solltest
> du überlegen, einen TM1637 auf einen TSOP-Adapter zu löten und das dann
> als THT-Baustein ansehen ? ;-)

Den TM1637 gibt es als DIP20. Siehe Datenblatt.

Z.B.:
https://de.aliexpress.com/item/1005001721593177.html

von Ralph S. (jjflash)


Bewertung
0 lesenswert
nicht lesenswert
Planloser schrieb:
> Den TM1637 gibt es als DIP20. Siehe Datenblatt.
>
> Z.B.:
> https://de.aliexpress.com/item/1005001721593177.html

na dann steht doch einem kompletten THT Projekt nix mehr im Wege !

von Ralph S. (jjflash)


Bewertung
0 lesenswert
nicht lesenswert
Andreas B. schrieb:
> Ralph S. schrieb:
>> Was mache ich dann damit,
>> wenn ich eine solche Hardware aufgebaut habe?
> Programmieren lernen. ;-)

cooool, dann kann ich das jetzt endlich (in meinem fortgeschrittenen 
Alter) doch noch lernen ! ;-)

von Michael W. (michael_w738)


Bewertung
0 lesenswert
nicht lesenswert
Ralph S. schrieb:
> Das glaube ich wohl eher absolut nicht: Das Manual zu schreiben (das
> Originale) ist mit Sicherheit deutlich aufwändiger gewesen, als die
> Firmware des Controllers. Heute gilt das noch mehr als damals. Ich habe
> so geschätzt insgesamt 6 bis 8 Stunden zum Programmieren gebraucht (und
> es wäre schneller gewesen, ich hätte nicht ums verr*** die TM1638
> Software angepasst sondern gleich neu geschrieben).

Das meine ich doch genau. Der eigentliche Wert dieser historischen 
Lerncomputer liegt in den existierenden Anleitungsbüchern. Wenn Dein CP1 
kompatibel genug ist von der Benutzerführung und vom Handling, dass man 
die originalen Handbücher verwenden kann, ist das von großem Wert und 
macht eine Neuauflage sehr einfach. Die originalen Handbücher und 
Experimente und Software können direkt wieder- und weiterverwendet 
werden. Null Kosten.

von Michael W. (michael_w738)


Bewertung
0 lesenswert
nicht lesenswert
Ralph S. schrieb:
> Das finde ich für einen CP1 Emulator satt zu arg und absolute
> Verschwendung. Nur damit die Ports vorhanden sind (das sind sie bei
> einem 28 pol. Gehäuse ebenfalls). Ansonsten reicht ein Controller mit 8
> kB Flash und 512 Byte Ram (wenn man sich anstrengen würde - was ich
> nicht getan habe - würde höchstwahrscheinlich auch ein 4 kB Flash
> reichen).

Na wie gesagt, ich war vor 4 Jahren mit einem 328p angefangen und mir 
wurde es dort "zu eng". Einige Funktionen die ich hinzufügen wollte 
benötigten halt mehr Platz. Z.B. mehr Platz für EEPROM oder "Fest-ROM" 
Programme. In deinem Fall ist EEPROM ja auch schon eine Beschränkungen 
(nur 2 Programme). Ich wollte halt SDCard, LCD und andere Sachen 
hinzufügen. Alles in Allem denke ich, dass das auch mit diesen kleinen 
Erweiterungen noch ein CP1 wäre bzw. eine Microtronic in meinem Falle 
;-) Es ist schon nett, wenn man Platz für duzende "Fest-Programme" hat 
z.B. Und bei 5 USD pro ATMega 2560 Pro Mini Board mache ich mir darüber 
nicht so viele Gedanken... ESP32 oder STM32 or RISC-V wäre da schon eher 
Verschwendung ;-)

: Bearbeitet durch User
von Michael W. (michael_w738)


Bewertung
0 lesenswert
nicht lesenswert
Ralph S. schrieb:
> Andreas B. schrieb:
>> Ralph S. schrieb:
>>> Was mache ich dann damit,
>>> wenn ich eine solche Hardware aufgebaut habe?
>> Programmieren lernen. ;-)
>
> cooool, dann kann ich das jetzt endlich (in meinem fortgeschrittenen
> Alter) doch noch lernen ! ;-)

Du und was lernen? Du weißt und kannst doch schon alles!

von Schlaumaier (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Ralph S. schrieb:
> Da der Kosmos CP1 30 Tasten hat (von denen die Tasten für die
> Zifferneingabe parallel geschaltet sind), habe ich ein China I/O Board
> aus der Schublade geholt und dieses verwendet.

Weißt du noch welches Board/Modul da genommen hast und ob die Chinesen 
das noch liefern. ??

von Michael W. (michael_w738)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ralph S. schrieb:
> Werde ich die Tage mal ausprobieren, größte "Herausforderung" hier ist
> es dann, 16 Tasten auf ein Steckbrett zu bringen. :-) ;-) vllt. sollte
> ich mal ein ähnliches I/O Board wie das von mir verwendete routen, nur
> mit TM1637 Baustein (wobei sich hier dann wieder die Frage stellt:
> wofür):

Ach das kriegst Du schon hin, das haben andere auch schon geschafft 
(sogar mit 32 Tasten ;-)

von Michael W. (michael_w738)


Bewertung
0 lesenswert
nicht lesenswert
Schlaumaier schrieb:
> Ralph S. schrieb:
>> Da der Kosmos CP1 30 Tasten hat (von denen die Tasten für die
>> Zifferneingabe parallel geschaltet sind), habe ich ein China I/O Board
>> aus der Schublade geholt und dieses verwendet.
>
> Weißt du noch welches Board/Modul da genommen hast und ob die Chinesen
> das noch liefern. ??

Guckst Du Ebay

Ebay-Artikel Nr. 262986437133

von Schlaumaier (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Michael W. schrieb:
> Guckst Du Ebay
>
> Ebay-Artikel Nr. 262986437133

Vielen Dank werde ich gleich mal bestellen. ;) Kann ich nämlich gut für 
ein anderes Projekt gebrauchen.

von Michael W. (michael_w738)


Bewertung
0 lesenswert
nicht lesenswert
Ralph S. schrieb:

> Vom Ansatz her war ich sehr überrascht, wie Kosmos damals heran gegangen
> ist, jemanden einen Computer zu erklären. Es wurde wirklich gelernt wie
> ein Computer funktioniert. Allerdings haben sie dann elementare Dinge
> dann wirklich weg gelassen (was wohl dem extrem geringen Arbeitsspeicher
> des 8049 geschuldet ist):
>
> - Ich habe beim Testen des Emulators wirklich ab und innerlich den Kopf
> geschüttelt, weil die Ein- und Ausgabe im Dezimalsystem vorgenommen
> wird. Wahrscheinlich wollte man didaktisch den "lernenden" nicht noch
> mit einem "fremden" Zahlensystem überlasten.
>
> - kein Stacksystem und dadurch
>
> - keine CALL und RET
>
> Wobei man den letzten Punkt dann sogar per Software realisieren kann.
> Bevor man ein Unterprogramm anspringt, legt man an einem Speicherplatz
> die Rücksprungadresse ab und anstelle eines RET wird an diese im
> Speicher abgelegte Adresse gesprungen.

Die Zeiten haben sich halt geändert. Das Microtronic hat eine ähnliche 
Beschränkung - kein Stack, sondern nur ein Rücksprungregister. Daher 
kann man zwar CALL/ RET machen, aber nur 1 Level (Subroutinen können 
nicht aus einer Subroutine angesprungen werden). Diese Beschränkung habe 
ich z.B. aufgehoben in meinem Microtronic-Emulator und ihm einen echten 
Stack spendiert. Interessant - sogar der TMS 1600, die CPU im 
Microtronic, hat keinen Stack!! Und da gab es noch andere...

Was HEX angeht - hmm, ja das ist in der Tat eigenartig beim CP1. Zumal 
ja das Binärsystem ausführlich erklärt wird.

ABER - der CP1 hatte damals sogar ein Vorwort und EMPFEHLUNG von Prof. 
Karl Steinbruch, der kein Unbekannter ist in der deutschen Informatik...

Der CP1 kam 3 Jahre zu spät. Wäre er wie der Microtronic 1981 
rausgekommen, hätte er historisch eine größere Relevanz gehabt. Die 
echten Heimcomputer waren 1983 schon zu sehr auf dem Vormarsch.

: Bearbeitet durch User
von Michael W. (michael_w738)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Schlaumaier schrieb:
> Michael W. schrieb:
>> Guckst Du Ebay
>>
>> Ebay-Artikel Nr. 262986437133
>
> Vielen Dank werde ich gleich mal bestellen. ;) Kann ich nämlich gut für
> ein anderes Projekt gebrauchen.

Ebay-Artikel Nr. 112164228572

Falls Du auch mit weniger Tasten auskommst.

von Michael W. (michael_w738)


Bewertung
0 lesenswert
nicht lesenswert
Also, @jjflash - bitte alles auf eine Platine bringen, sodass man es 
schön kompakt nachbauen kann! Ich habe zwar ein CP1 (und alle 
CP1-Erweiterungen... wie wäre es denn damit eigentlich? 
Speichererweiterung, Kassetteninterface & IO-Erweiterung nachbauen!), 
hätte aber sehr gerne Deinen Emulator in "all in one" Form vorliegen!

CP1-Erweiterungen:

http://www.8bit-homecomputermuseum.at/computer/kosmos_computer_praxis_cp1.html

: Bearbeitet durch User
von Ralph S. (jjflash)


Angehängte Dateien:

Bewertung
-1 lesenswert
nicht lesenswert
Michael W. schrieb:
>> cooool, dann kann ich das jetzt endlich (in meinem fortgeschrittenen
>> Alter) doch noch lernen ! ;-)
>
> Du und was lernen? Du weißt und kannst doch schon alles!

Ach herjeh, bin ich dir irgendwann auf die Füße getreten? Wenn dem so 
ist, war das sicherlich nicht meine Absicht. Sollte ich so "rüberkommen" 
alles besser zu wissen, muß ich meine Art zu schreiben ändern, denn

Michael W. schrieb:
> Du und was lernen? Du weißt und kannst doch schon alles!

dem ist ganz ganz sicher nicht so (auch wenn ich schon 40 Jahre lang mit 
Elektronik im besonderen mit Prozessoren und Controllern zu tun habe). 
Wenn ich hier manche lese (das meine ich nicht ironisch, sondern eher in 
Richtung "ehrfurchtsvoll") was die alles so getrieben habe, dann weiß 
ich, dass immer welche gibt, die da deutlich über mein "Können" eins 
drauflegen. Ich spiele im allerbesten Falle obere zweite Bundesliga, 
untere erste Bundesliga. Andere (eben hier vertretene Mitglieder des 
Forums) spielen da wirklich Champions- und Euroleague.

Schau dir mal an (wenn du so querliest), was ein Jörg W. ein Yalu oder 
ein Frank M. drauf hat. Oder auch insbesondere ein Philip Klaus Krause. 
Das sind die wirklich richtig guten! (Auch wenn das manche vllt. anders 
sehen, von solchen Leuten lerne ich auch nach 40 Jahren noch).

Schlaumaier schrieb:
> Michael W. schrieb:
>> Guckst Du Ebay
>>
>> Ebay-Artikel Nr. 262986437133
>
> Vielen Dank werde ich gleich mal bestellen. ;) Kann ich nämlich gut für
> ein anderes Projekt gebrauchen.

Das kann man für einige Sachen gebrauchen ...

Michael W. schrieb:
> z.B. Und bei 5 USD pro ATMega 2560 Pro Mini Board mache ich mir darüber
> nicht so viele Gedanken... ESP32 oder STM32 or RISC-V wäre da schon eher
> Verschwendung ;-)

Schmunzeln muß, man könnte das auch als Nucleo-Shield machen, 
Möglichkeiten gäbe es viele. Befehlssatz aufbohren auch. Eingabeparser 
hinzufügen geht auch, steuerbar über RS232 oder wenn man das mit einem 
ES32 realisieren würde, sogar über WLAN.

Allerdings wäre es dann kein CP1 mehr.

Für mich ist das im Moment spielerei und ein Kasetteninterface werde ich 
sicherlich nicht hinzufügen.

Im Moment bin ich absolut am "abspecken" der Hardware und versuche das 
eben wie oben beschrieben zu realisieren. Im Moment mit einem ATmega8, 
dem ich sogar den Quarz geklaut habe und zum ersten mal einen Optiboot 
Bootloader OHNE Quarz dafür neu übersetzt habe und mit 38400 Baud 
betreibe (das ist aus meiner Erfahrung die höchste Baudrate, die ohne 
Quarz noch gut funktioniert).

Also, derzeit noch "Steckbrettarbeiten" um die Hardware aufzubauen, 
danach die ganze Geschichte mit 7-Segmentanzeigen und Tastern noch 
einmal. Weil ich derzeit 3 Pin's eingespart habe kann man sich 
überlegen, ob man hier noch ein rudimentäres Terminalprogramm mit 
integriert um die Eingabe zu erleichtern und vllt. (aber nur vllt.) ein 
externes I2C EEProm damit mehr als nur 2 Programme gespeichert werden 
können.

Bei dieser Steckbrettarbeit bin ich gerade mal so weit, dass ich die 
7-Segmentanzeigen ansprechen kann ==> der Aufbau geht weiter (außerdem 
habe ich immer öfters jetzt auch mein aktuelles Projekt im Kopf - Padauk 
PFS Programmer, an den ich mich bald wieder machen werde).

;-) im Übrigen kann dann ja jeder damit spielen wie er will.

Für mich ist es jetzt ein Freizeitvertreib wie Fahrradfahren. Wenn 
Corona nicht wäre, fährst du irgendwohin in einen Biergarten oder 
Imbiss, ißt was, trinkst was und fährst wieder nach Hause. Zu Hause 
hätte man auch essen und trinken können und sich das Fahren sparen 
können.

Genausoviel Sinn macht ein CP1 Emulator. Macht Spaß das zu machen, aber 
wirklich etwas damit anfangen kann man nicht.

Michael W. schrieb:
> Also, @jjflash - bitte alles auf eine Platine bringen, sodass man es
> schön kompakt nachbauen kann! Ich habe zwar ein CP1 (und alle
> CP1-Erweiterungen... wie wäre es denn damit eigentlich?
> Speichererweiterung, Kassetteninterface & IO-Erweiterung nachbauen!),
> hätte aber sehr gerne Deinen Emulator in "all in one" Form vorliegen!

Speichererweiterung wäre schon eine sehr starke Veränderung des 
Maschineninterpreters: Der Adressbereich beträgt 8-Bit, d.h. mehr als 
256 Speicherplätze sind nicht. Wenn nun den Interpreter dahin ändert, 
dass (weil wie bei einem RISC beinhaltet eine Speicherzelle OP-Code und 
Datum) der 16-Bit Wert bspw. 6-Bit für den Opcode hat (was dann für 64 
Opcodes reicht und für Speicheradresse somit 2^10 Adresse = 1kByte) hat, 
dann hast du das Problem, dass du dezimal den Speicher (weil 3-stellig 
dezimal) nur bis 999 Speicherstellen adressieren kannst).

Hierfür mußt du dann schier ein neues Buch der Anleitung schreiben und 
es steht immer noch die Frage im Raum: Wer arbeitet damit? (Antwort: 
Keiner natürlich). Im allerbesten Fall kann man damit tatsächlich noch 
sehr einfach zeigen, wie ein Computer funktioniert. Bspw. ein 
Demoprogramm, bei dem auf eine Speicherstelle, die für eine 
Rücksprungadresse reserviert wird, vor einem Sprung diese Speicherstelle 
beschrieben wird, in ein Unterprogramm gesprungen wird. Soll aus der 
Subroutine zurückgekehrt werden, wird der Rücksprung mittels SIU (was 
für eine Mnemonic) realisiert:
indirekt unbedingt springen (auf Adresse die unter xxx steht).

Nach dieser Methode könnte sogar ein Stack realisiert werden. Alles in 
allem wäre das ein neues "Spielzeug" ;-) und müßtest das eigentlich dann 
CP2 nennen.

von Michael W. (michael_w738)


Bewertung
0 lesenswert
nicht lesenswert
Ralph S. schrieb:
> Michael W. schrieb:
>>> cooool, dann kann ich das jetzt endlich (in meinem fortgeschrittenen
>>> Alter) doch noch lernen ! ;-)
>>
>> Du und was lernen? Du weißt und kannst doch schon alles!
>
> Ach herjeh, bin ich dir irgendwann auf die Füße getreten? Wenn dem so
> ist, war das sicherlich nicht meine Absicht. Sollte ich so "rüberkommen"
> alles besser zu wissen, muß ich meine Art zu schreiben ändern, denn

Sorry, haben den ;-) und :-) vergessen!

> drauflegen. Ich spiele im allerbesten Falle obere zweite Bundesliga,
> untere erste Bundesliga. Andere (eben hier vertretene Mitglieder des
> Forums) spielen da wirklich Champions- und Euroleague.
>
> Schau dir mal an (wenn du so querliest), was ein Jörg W. ein Yalu oder
> ein Frank M. drauf hat. Oder auch insbesondere ein Philip Klaus Krause.
> Das sind die wirklich richtig guten! (Auch wenn das manche vllt. anders
> sehen, von solchen Leuten lerne ich auch nach 40 Jahren noch).

Ach, die Kackordnung im Forum ist mir eigentlich ganz egal... mich 
interessieren nur Projekte, und dass man was lernen kann. Ich arbeite 
und lebe im Silicon Valley - da glaubt auch immer jeder er ist der 
Größte, und dann guckt man sich den Code an, und dann wird durch 0 
geteilt und was weiß ich nicht alles. Also, mit Wasser kochen doch alle. 
Ob hier nun einer erimittierter Elektrotechnik-Professor, 
Diesel-Motor-Steuerungs-"Optimierer" in der Aufomafia oder Hobby-Bastler 
ist - ist mir egal, solange das Projekt interessant ist, und gut 
durchgeführt ist. Das ist bei deinem Projekt sicherlich der Fall (für 
mich). Natürlich ist das hoch subjektiv. Andere Projekte hier sind mir 
komplett egal.

> hinzufügen geht auch, steuerbar über RS232 oder wenn man das mit einem
> ES32 realisieren würde, sogar über WLAN.

In der Tat habe ich daran auch gedacht.

> Allerdings wäre es dann kein CP1 mehr.

Eine gute Frage - ab wann ist es "nicht mehr das Original"? Für mich ist 
soetwas wie "The C64" z.B. komplett uninteressant, weil reine Software. 
Wo beim CP1 die Grenze ist, kann ich nicht sagen - müsste ich einmal 
direkt arbeiten mit Deinem CP1.

> Für mich ist das im Moment spielerei und ein Kasetteninterface werde ich
> sicherlich nicht hinzufügen.

Klar. Wie so vieles hier.

> externes I2C EEProm damit mehr als nur 2 Programme gespeichert werden
> können.

Da fände ich ein SDcard-Interface interessanter. Dann kann man Programme 
auch vom PC editieren / aufladen. Und würde dann lieber gleich einen 
ATmega mit mehr EEPROM Speicher nehmen, um Chipcount zu minimieren.

> Genausoviel Sinn macht ein CP1 Emulator. Macht Spaß das zu machen, aber
> wirklich etwas damit anfangen kann man nicht.

Wie mit 80% aller anderen Projekte hier.

> Speichererweiterung wäre schon eine sehr starke Veränderung des
> Maschineninterpreters: Der Adressbereich beträgt 8-Bit,

Das ist mir natürlich auch klar - der Original CP1 hat 128 Addressen. 
Mit Speichererweiterung waren es 256. Wie beim Microtronic. Meine Frage 
war - du hast also schon bis 0-999 Addressen implementiert? Die OpCodes 
für Addressen sind alle 3stellig, insofern wäre es einfach möglich. 
Falls Du natürlich intern nur ein Array mit 8Bit-Index für das RAM 
verwendest, geht's nicht. Ich vermute einmal, dass Deine ATmega da nicht 
genügend SRAM für hat. Denke, da wäre sonst ein größerer MCU 
empfehlenswert? Anderseits - wer braucht schon so viel Speicher für 
einen Lerncomputer...

> es steht immer noch die Frage im Raum: Wer arbeitet damit? (Antwort:
> Keiner natürlich).

Wer "arbeitet" mit den ganzen anderen Projekten hier? Auch keiner.

> Nach dieser Methode könnte sogar ein Stack realisiert werden. Alles in
> allem wäre das ein neues "Spielzeug" ;-) und müßtest das eigentlich dann
> CP2 nennen.

Nein, CP2 ist das Kassettenmodul, CP3 die Speicherweiterung, CP4 das 
Relaismodul, CP5 die IO-Erweiterung.

Vielleicht CP1+ ?  :-)

Gruß
Michael

: Bearbeitet durch User
von Andreas B. (bitverdreher)


Bewertung
-1 lesenswert
nicht lesenswert
Michael W. schrieb:
>> es steht immer noch die Frage im Raum: Wer arbeitet damit? (Antwort:
>> Keiner natürlich).
>
> Wer "arbeitet" mit den ganzen anderen Projekten hier? Auch keiner.
Das würde ich so nicht unbedingt sehen. In diesem Fall ist es halt ein 
Henne Ei Problem.
Aktuell bin ich auch auf der Suche nach Problemen (sinnvollen 
Projekten). Lösungen habe ich schon genug. ;-)

von Michael W. (michael_w738)


Bewertung
0 lesenswert
nicht lesenswert
Andreas B. schrieb:
> Michael W. schrieb:
>>> es steht immer noch die Frage im Raum: Wer arbeitet damit? (Antwort:
>>> Keiner natürlich).
>>
>> Wer "arbeitet" mit den ganzen anderen Projekten hier? Auch keiner.
> Das würde ich so nicht unbedingt sehen. In diesem Fall ist es halt ein
> Henne Ei Problem.
> Aktuell bin ich auch auf der Suche nach Problemen (sinnvollen
> Projekten). Lösungen habe ich schon genug. ;-)

OK. Was sind denn die Top 10 Projekte, die hier Probleme lösen, für die 
es keine besseren, günstigeren, oder relevanteren kommerziellen Lösungen 
gibt?
(Bitte jetzt nicht die Wordclock, den MP3-Player für Kinder, oder den 
Taschenrechner bringen... wohl gemerkt: ich sage ja nicht, dass das 
keine tollen Leistungen und Projekte sind, lediglich, dass sie komplett 
irrelevant sind und "keiner sie wirklich braucht" - ich habe größte 
Hochachtung vor all diesen Projekten, bitte nicht falsch verstehen!)

: Bearbeitet durch User
von Andreas B. (bitverdreher)


Bewertung
-1 lesenswert
nicht lesenswert
Michael W. schrieb:
> OK. Was sind denn die Top 10 Projekte, die hier Probleme lösen, für die
> es keine besseren, günstigeren, oder relevanteren kommerziellen Lösungen
> gibt?

Das ist mir im wesentlichen schon klar.
Obwohl es schon einige Sachen so nicht zu kaufen gibt.
GPS Logger (gibt es so nicht zu kaufen), Wetterstation (mit DB 
Anbindung, auch nicht zu kaufen), Bluetoothgerätchen, Internetradio 
(ohne nach Hause telefonieren, auch selten als Kaufgerät) habe ich schon 
durch.

Auch obiges Gerät des TO gibt es nicht für diesen Preis zu kaufen. Daß 
er damit jetzt nichts anfangen kann, ist halt das Henne-Ei Problem, das 
ich schon erwähnte.

Etwas was ich irgendwie gebrauchen könnte, würde mir schon reichen. ;-)
Man kann immer etwas besser machen (für einem selbst zumindest) als in 
kommerziellen Geräten.

von Michael W. (michael_w738)


Bewertung
0 lesenswert
nicht lesenswert
Andreas B. schrieb:
> Auch obiges Gerät des TO gibt es nicht für diesen Preis zu kaufen. Daß
> er damit jetzt nichts anfangen kann, ist halt das Henne-Ei Problem, das
> ich schon erwähnte.

Genau so ist es. Daher finde ich es interessanter und relevanter, als 
viele andere Projekte. Retro-Computing-Projekte halt. Der Wert eines 
solchen liegt ganz klar subjektiv im Auge des Betrachters. Aber selbst 
als Microtronic-Fan finde ich das CP1-Projekt interessant. Anderen wird 
es egal sein.

Und dass er damit nichts anfangen kann, glaube ich ja nicht. Sonst würde 
er seine Zeit wohl eher mit was anderem verbringen. Auch wenn der Weg 
das Ziel ist.

Ich würde mal vermuten, dass es dem TO eher um das Lostreten einer 
Diskussion geht... was hiermit gelungen ist.

: Bearbeitet durch User
von Michael W. (michael_w738)


Bewertung
0 lesenswert
nicht lesenswert
Andreas B. schrieb:
> Man kann immer etwas besser machen (für einem selbst zumindest) als in
> kommerziellen Geräten.

... das würde ich (in dieser Generalität der Aussage!) STARK 
bezweifeln... ich zumindest kann's nicht, sorry. Ärgere mich schon lange 
über den hohen Bezinverbrauch meines Autos.

von Andreas B. (bitverdreher)


Bewertung
0 lesenswert
nicht lesenswert
Michael W. schrieb:
> Ich würde mal vermuten, dass es dem TO eher um das Lostreten einer
> Dikussion geht...

Ich denke eher, es war der andere Thread, der vom müden Joe initiiert 
wurde.
Wenn man dann zufällig die Zutaten gerade in der Bastelkiste hat und es 
gerade weihnachtet, kann es ja schon losgehen. ;-)

von Michael W. (michael_w738)


Bewertung
0 lesenswert
nicht lesenswert
Andreas B. schrieb:
> Michael W. schrieb:
>> Ich würde mal vermuten, dass es dem TO eher um das Lostreten einer
>> Dikussion geht...
>
> Ich denke eher, es war der andere Thread, der vom müden Joe initiiert
> wurde.
> Wenn man dann zufällig die Zutaten gerade in der Bastelkiste hat und es
> gerade weihnachtet, kann es ja schon losgehen. ;-)

... klar, das Ding war ja auch in 5 bis 6 Stunden fertig programmiert 
(OT). Wer's glaubt :-)

von Andreas B. (bitverdreher)


Bewertung
0 lesenswert
nicht lesenswert
Michael W. schrieb:
> ... klar, das Ding war ja auch in 5 bis 6 Stunden fertig programmiert
> (OT). Wer's glaubt :-)
Oh, wenn einem der Ehrgeiz erst einmal gepackt hat.... Ich kann das 
nachvollziehen.

von Michael W. (michael_w738)


Bewertung
0 lesenswert
nicht lesenswert
Andreas B. schrieb:
> Michael W. schrieb:
>> ... klar, das Ding war ja auch in 5 bis 6 Stunden fertig programmiert
>> (OT). Wer's glaubt :-)
> Oh, wenn einem der Ehrgeiz erst einmal gepackt hat.... Ich kann das
> nachvollziehen.

Na ja, ich hatte damals ca. 40 Stunden gebraucht, bis ich den 
Microtronic-Interpreter fertig hatte. Allerdings hat der Microtronic 
auch wesentlich mehr (und komplexere) Instruktionen.

von Ralph S. (jjflash)


Bewertung
-1 lesenswert
nicht lesenswert
Michael W. schrieb:
> Das ist mir natürlich auch klar - der Original CP1 hat 128 Addressen.
> Mit Speichererweiterung waren es 256. Wie beim Microtronic. Meine Frage
> war - du hast also schon bis 0-999 Addressen implementiert? Die OpCodes
> für Addressen sind alle 3stellig, insofern wäre es einfach möglich.

Nein habe ich nicht gemacht, und ich glaube auch, dass ich das nicht 
machen werde, auch wenn es nicht der große Aufwand wäre. Es ist alles 
nicht so sehr der Aufwand (sieht man mal vom Steckbrett ab, da hat mich 
das schon etwas Zeit gekostet). 999 Adressen zu dekodieren wäre 
eigentlich überhaupt kein Problem. Alle uint8_t ändern in uint9_t. 
Abfrage nicht nach größer als 255 sondern größer als 999.

Anstelle ATmega8 einen ATmega328 (der hat 2 kByte Ram) nehmen. Hier 
wären dann auch 1 kByte EEProm verfügbar, was für 4 Programme zum 
Speichern reichen würde. Irgendwo in meinen Sourcequellen hatte ich auch 
mal eine dynamische Speicherverwaltung für EEProm geschrieben gehabt, 
mit Dateilänge und Platzbedarf im EEProm als verkettete Liste. Dann 
wären mehr Programme speicherbar, weil ja nicht jedes den vollen 
Speicher auschöpft.

Im Moment läuft mein Aufbau auf dem Steckbrett, nur stimmt mein Timing 
nicht mehr (die eine Millisekunde), weil der TM1637 ein anderes Timing 
hat. Ich denke ich werde das über einen Timerinterrupt machen, dann 
brauche ich nicht wirklich "fummeln" dass die eine Millisekunde in etwa 
stimmt.

Machen könnte man vieles. Wenn ich mir meinen Aufbau so ansehe, ist das 
an sich viel zu "schön" um das wieder abzureisen und ich bin noch n 
bissi hin- und hergerissen, ob ich für so etwas tatsächlich eine Platine 
routen und noch "schlimmer" herstellen lassen soll. Irgendwie wäre es 
witzig das in der Schublade liegen zu haben.

Mal sehen...

von Ralph S. (jjflash)


Bewertung
0 lesenswert
nicht lesenswert
Michael W. schrieb:
> ... klar, das Ding war ja auch in 5 bis 6 Stunden fertig programmiert
> (OT). Wer's glaubt :-)

Ich hatte 6 bis 8 Stunden geschrieben gehabt (in den Sourcen war ja 
schon das I/O Interface fertig, das mußte nur angepasst werden).

;-) jetzt sind es aber schon wieder ca. 6 Stunden für den Aufbau und das 
Ändern des I/O Interface auf TM1637, weil der, obwohl derselbe 
Hersteller wie TM1638, doch sehr anderst funktioniert.

von Andreas B. (bitverdreher)


Bewertung
0 lesenswert
nicht lesenswert
Geh mal davon aus, daß er einen Großteil der SW schon für andere 
Projekte entwickelt hatte.
Das Nachdenken davor und die Recherche dürften in diesen 5-6h auch nicht 
drin sein. Schönrechnen tu ich mir meine Arbeitszeit für solche Projekte 
übrigens auch. ;-)

Edit:
Ralph S. schrieb:
> jetzt sind es aber schon wieder ca. 6 Stunden für den Aufbau
Und Schwuppdiwupp sind es schon 16h. ;-)

: Bearbeitet durch User
von Michael W. (michael_w738)


Bewertung
1 lesenswert
nicht lesenswert
Ralph S. schrieb:
> tatsächlich eine Platine
> routen und noch "schlimmer" herstellen lassen soll. Irgendwie wäre es
> witzig das in der Schublade liegen zu haben.

Mach doch - ich würde in jedem Fall eine haben wollen von Dir. Aber 
bitte zusammengebaut; bin immer recht faul was das Zusammenbauen von 
Projekten anderer angeht. Meine Zeit benötigt ich für meine eigenen 
Projekte ;-)

: Bearbeitet durch User
von Andreas B. (bitverdreher)


Bewertung
-2 lesenswert
nicht lesenswert
Wenn Du es behalten willst hätte ich einen Vorschlag: Den Arduino mit 
Heißkleber hinten auf die Anzeigeplatine kleben und frei verdrahten. Das 
macht nicht viel Arbeit und bleibt so jahrzehntelang in der Schublade 
funktionsfähig.
Deine Nachkommen können dann raten was das mal für eine Bedeutung hatte.

von Schlaumaier (Gast)


Bewertung
-4 lesenswert
nicht lesenswert
Michael W. schrieb:
> Wer "arbeitet" mit den ganzen anderen Projekten hier? Auch keiner.

Da ich kein Geld verschwenden kann, habe ich noch nie ein Projekt 
gemacht das kein direkten Nutzen hat.  OK. Lebenswichtig ist keins. Aber 
alle Projekte haben einen Realen Nutzen.

Und ich denke das selbst meine Modellbauprojekte (mit Arduino für die 
Steuerungen und Beleuchtung) min. 10 Jahre in der Vitrine stehen dürfen.

Das aktuelle Projekt (weit Fortgeschrittene Planung) wird sogar direkt 
neben mein Bett liegen und im Schnitt 20 x am Tag benutzt werden.

von Michael W. (michael_w738)


Angehängte Dateien:

Bewertung
2 lesenswert
nicht lesenswert
Schlaumaier schrieb:
> Michael W. schrieb:
>> Wer "arbeitet" mit den ganzen anderen Projekten hier? Auch keiner.
>
> Da ich kein Geld verschwenden kann, habe ich noch nie ein Projekt
> gemacht das kein direkten Nutzen hat.  OK. Lebenswichtig ist keins. Aber
> alle Projekte haben einen Realen Nutzen.
>
> Und ich denke das selbst meine Modellbauprojekte (mit Arduino für die
> Steuerungen und Beleuchtung) min. 10 Jahre in der Vitrine stehen dürfen.
>
> Das aktuelle Projekt (weit Fortgeschrittene Planung) wird sogar direkt
> neben mein Bett liegen und im Schnitt 20 x am Tag benutzt werden.

Du hast mein Kriterium für "Relevant" falsch verstanden. Es geht nicht 
darum ob Du ein Projekt, dass DU für DICH SELBST aufbaust, benutzt. Das 
wäre ja das mindeste bzw. reichlich bescheuert, wenn man Resourcen in 
etwas steckt, dass man dann nie benutzt. ES SEI DENN man hat einfach 
Spaß an dem Prozess und insbesondere dem Lernprozess, der beim Aufbau 
eines Projektes als Seiteneffekt abfällt, und dessen Wert sich monitär 
schlecht beziffern lässt.

Es geht daraum, ob das Projekt dass Du Dir aufbaust, in dieser Form 
nicht komerziell "besser, relevanter oder kostengünstiger", sprich 
rationaler, verfügbar ist auf dem Markt. Für den CP1 ist das nicht der 
Fall, insofern ist es relevant. Man kann es nicht kaufen in dieser Form, 
noch nicht einmal etwas Ähnliches.

Ich habe mir auch eine Alarmuhr aufgebaut, die ich jeden Tag 100x 
benutze (gucke drauf). Ist das Ding nun relevant? Nein. Ist es nicht.

https://blog.arduino.cc/2019/06/19/intuitive-arduino-clock-has-seven-alarms-and-three-led-displays/

: Bearbeitet durch User
von Schlaumaier (Gast)


Bewertung
-3 lesenswert
nicht lesenswert
Michael W. schrieb:
> Es geht daraum, ob das Projekt dass Du Dir aufbaust, in dieser Form
> nicht komerziell "besser, relevanter oder kostengünstiger", sprich
> rationaler, verfügbar ist auf dem Markt.

Mein aktuelles Projekt wird NIEMALS in irgendeiner ähnlichen Form auf 
den Markt kommen.

Was deine Aussage angeht. Etwas weiter oben habe ich den TO gefragt wo 
er das "China-Modul" her hat. Ich bin locker in der Lage dieses Modul 
nachzubauen. Aber der Kosten-/Nutzenfaktor geht weit über das Ziel 
hinaus.

Weshalb ich mir auch das Modul + 3 Modul ohne LED-Anzeige gekauft habe. 
Nur ist wie beim TO das Modul nur ein kleiner Teil des ganzen Projekt.

Ich mache nur die Platinen selbst die mir entweder zu teuer sind (ich 
kann's Preiswerter = nur Material) oder zu schwer zu beschaffen sind. 
Und die Platinen die ich brauche um die Module und Co. zusammen 
zuhalten. Meine wichtigster Footprint ist dabei der des Arudino-Nano. 
Für eine fertige 2 Euro Platine löte ich kein Chip auf eine Platine. ;)

Wobei mir persönlich die ganze Elektronik nur 30 % Spass macht. Viel 
mehr Spaß macht es, via Software das ganze so zu steuern das es für MICH 
Perfekt ist.

Kommerziell würde ich allein schon wegen der ganzen Rechtlichen 
Vorschriften NIEMALS eins meiner Teile verkaufen.

von Michael W. (michael_w738)


Bewertung
1 lesenswert
nicht lesenswert
Schlaumaier schrieb:

> Ich mache nur die Platinen selbst die mir entweder zu teuer sind (ich
> kann's Preiswerter = nur Material) oder zu schwer zu beschaffen sind.
> Und die Platinen die ich brauche um die Module und Co. zusammen
> zuhalten. Meine wichtigster Footprint ist dabei der des Arudino-Nano.
> Für eine fertige 2 Euro Platine löte ich kein Chip auf eine Platine. ;)

Wage ich zu bezweifeln. Ich bekommen bei Seeed Studio 30 Platinen inkl. 
Shipping im 15x15cm Format, 2lagig, für 80 $... Das sind weniger als 2 $ 
per Platine wenn man Shipping abzieht.

> Kommerziell würde ich allein schon wegen der ganzen Rechtlichen
> Vorschriften NIEMALS eins meiner Teile verkaufen.

Sorry, Du hast es immer noch nicht verstanden. Um's Verkaufen gehts 
nicht. Sondern darum, ob Du etwas vergleichbares KAUFEN kannst.

von Schlaumaier (Gast)


Bewertung
-3 lesenswert
nicht lesenswert
Michael W. schrieb:
> Wage ich zu bezweifeln. Ich bekommen bei Seeed Studio 30 Platinen inkl.
> Shipping im 15x15cm Format, 2lagig, für 80 $... Das sind weniger als 2 $
> per Platine wenn man Shipping abzieht.

Das sind ja nach Kurs 160 Euro. Ich mache meine Platine !! für locker 
unter deine 2 Euro. Ich wage mal zu bezweifeln das dein SEEED dir 1 
einzelne kleine Platine macht. Und genau darum geht es. Um eine kleine 
Platine.

Das einzige mal wo ich 4 Platinen von gleichen Typ hergestellt habe, war 
die Platine 10 x 10 mm groß und eine Adapterplatine für ein 
Anschlusskabel eines Display. Die gab es mal fertig zu kaufen (Mouser 
hat sie sogar noch) aber da war der Aufwand etc. mir zu hoch.

Ich fertige die Platine erst wenn alles fertig ist. Dann mal eben 
beleuchten, 2 x baden und bohren. Das ganze dauert keine 1-2 Stunden je 
nachdem wie schnell ich arbeite. Dafür muss ich meine Platine nicht um 
den halben Planeten schicken  und 2 -4 Wochen drauf warten.

Aber das Thema habe ich schon in mehreren Threads hier diskutiert.  Und 
das ganze ich für mich eh nur ein Hobby wie Fotografieren. Ich mache es 
gern wenn ich Bock habe. Da kann es auch mal passieren das ich das ganze 
einige Jahre nicht anrühre.

von Michael W. (michael_w738)


Bewertung
1 lesenswert
nicht lesenswert
Schlaumaier schrieb:
> Das sind ja nach Kurs 160 Euro. Ich mache meine Platine !! für locker
> unter deine 2 Euro. Ich wage mal zu bezweifeln das dein SEEED dir 1
> einzelne kleine Platine macht. Und genau darum geht es. Um eine kleine
> Platine.

Hmm... jetzt wird's etwas irrational.

OK... habe ich schon verstanden. Und finde ich auch sehr eindrucksvoll 
und super, wenn man das selber kann. Sinnvoll ist das heutzutage 
allerdings nicht mehr. Kannst Du VIAs, doppelseitig, etc.? Und wenn Du 
mal die Zeit berechnest, die Du alleine zum Löcherbohren per Hand 
aufwendest, oder die Kosten fürs Equipment und Chemikalien einpreist, 
kommst Du bestimmt auf mehr als 2 EUR... von der geringeren Komplexität 
solcher (einlagigen?) Platinen einmal abgesehen.

EDIT: ja, für eine einzelne Platine geht's nicht. 10 mindestens. Und 
davon wandern dann 8 oder so in die Tonne - manchmal mache ich ein paar 
Versionen für Bekannte / Freunde. Es stimmt, das Services wie OshPark 
WESENTLICH teuerer sind. Da müssen es mindestens 3 Platinen sein. Zum 
Preis von 30 bei Seeed :-)

Mich würde ja interessieren, was die komplexeste selbstgemachte Platine 
bei Dir ist. Wieviele Vias, wieviele Bohrungen, Abmessungen, Anzahl 
Verbindungen? Doppelseitig?

: Bearbeitet durch User
von Schlaumaier (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Michael W. schrieb:
> Und wenn Du
> mal die Zeit berechnest, die Du alleine zum Löcherbohren per Hand
> aufwendest, oder die Kosten fürs Equipment und Chemikalien einpreist,
> kommst Du bestimmt auf mehr als 2 EUR

hm. Nö. Ich habe max. 100 Löcher in einer Platine bisher gehabt. Der 
Rest ist SMD. Die Chemikalien werden ja nicht schlecht wenn man mal eine 
Platine badet. Das Zeug wird zwar irgendwann gesättigt aber das sind 
viele Platinen. Ich bringe alle 2-3 Jahre 2 Literflaschen mit Zeug zum 
Sondermüllauto. Das ist alles. Und das sind dann schon einiges an 
Platinen.

Kosten fürs Equipment : OK. Die Anschaffung für mein 20 Jahre alten 
Dremel waren schon hoch. Aber was der alles leisten musste (nicht nur 
Elektonik) ist enorm.  Und wenn mir kein Bohrer abbricht sind die Kosten 
auch überschaubar (3 Stück = 5 Euro im Baumarkt).

Die Kosten für die Chemie. Alle paar Jahre mal ein Starterset von 
Reichelt für ca. 10-15 Euro.

Und ZEIT: *O.K.* bei den Faktor hast du völlig recht. Aber, das ist 
HOBBY und Hobby ist halt die schönste Art seine Zeit zu verschwenden. ;)

Ansonsten läge ich in der Zeit vermutlich vor den Fernseher und würde 
PAY-TV gucken. ;) oder mein Geld bei "Freizeitaktivitäten" verschwenden, 
die z.T. nicht gut für meine Gesundheit sind, lt. Aussage der Regierung 
;)

von Michael W. (michael_w738)


Angehängte Dateien:

Bewertung
-1 lesenswert
nicht lesenswert
Falls es Euch interessiert - hier ist Matze sein Ding.

https://www.rigert.com/ee-forum/viewtopic.php?f=35&p=16040#p16040

Er hat damals (vorletztes Jahr?) den ersten CP1-Atmega Emulator auf die 
Beine gestellt.

Könnte mir gut vorstellen, dass dieser Beitrag jetzt wieder ignoriert 
wird, aber so ist es hier nun einmal :D

von Michael W. (michael_w738)


Bewertung
-1 lesenswert
nicht lesenswert
PS Wer Matze aus dem Baukastenforum nicht kennt muss sich mal durch 
Querlesen schlau machen. Der spielt MINDESTENS alleroberste Erste 
Bundesliga.

: Bearbeitet durch User
von Ralph S. (jjflash)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
"... ich habe fertig, ist wie Flasche leer"

Immer dann wenn man es nicht gebrauchen kann, "spinnt" mein Hauptrechner 
so dass ich meinen Schaltplan jetzt zig mal gezeichnet habe. Aber: was 
lange währt und nervig ist wird endlich fertig.

Mein kleines Miniprojekt mit dem Kosmos CP1 (auf Steckbrett).

Als IC's (wie oben erwähnt) werden lediglich ein ATmega8  88  168 / 
328 und ein Anzeigen- und Tastentreiberbaustein TM1637 (gibts für 30 ct. 
beim Chinesen des Vertrauens).

Prinzipiell war es das schon (wie man auf dem Schaltplan sehen kann). 
Damit es wirklich minimalistisch ist, wurde dem ATmega sogar ein Quarz 
verweigert und er läuft mit 8 MHz internem Takt. Zum ersten mal habe ich 
einen OPTI-Bootloader ohne Quarz am laufen, AVRDUDE kommt jedoch sehr 
gut damit zurecht:
1
avrdude -c arduino -p atmega8 -P /dev/ttyUSB0 -b 38400 B3 -V -U flash:w:kosmos_cp1_v31.hex

Die 10 Zifferntasten sind doppelt belegt, d.h. zum Anwählen einer 
Funktionstaste muß die Shifttaste gedrückt werden.

Im Hauptprogramm kann die maximale Anzahl der Speicherplätze angegeben 
werden, derzeit sind 128 eingestellt. Das hat den Grund (mehr wäre 
möglich) damit im internen EEProm 2 Programme gespeichert werden können 
(zum Original abweichende Funktion, da keiner mehr mit Kasetten als 
Speichermedium mehr arbeitet).

Genau 2 Pins sind noch verfügbar, hier wäre denkbar, ein I2C EEProm 
anzuschließen, damit mehr Programme speicherbar sind.

Ein Video vom Ganzen gibt es auch (sorry der schlechten Qualität wegen):

https://www.youtube.com/watch?v=RQkwm0jpxF0

Was man damit anstellen kann: das darf jeder selbst herausfinden. Das 
originale Manual von Kosmos war - damals typisch - didaktisch gut 
verfasst und hat wirklich halbwegs erläutert, wie ein Computer 
funktioniert. Das hat erstaunlicherweise heute noch Gültigkeit.

Für Spielfreudige liefert dieses Miniprojekt eine gute Basis, die 
Mnemonic des CP1 nach Herzenslust zu erweitern oder zu verändern. Au0er 
einem rudimentären ADD und SUB und bedingte Sprungbefehle ist da nichts 
vorhanden. Hier kann jeder nach gutdünken bspw. inc, dec, mul, div oder 
ähnliches hinzufügen.

Einzig die Konstanten für die max. Anzahl Opcodes muß hier verändert 
werden und kann dann beim Maschineninterpreter in "cpu_run" verändert 
werden.

Ich habe jetzt ein Weile damit gespielt und war in Nostalgie verfallen 
und ich werde tatsächlich mich dran setzen und eine Platine routen.

Viel Spaß denjenigen, die das nachbauen möchten,

JJ

von O. R. (oscherischery)


Bewertung
-1 lesenswert
nicht lesenswert
Schlaumaier schrieb:

> Da ich kein Geld verschwenden kann, habe ich noch nie ein Projekt
> gemacht das kein direkten Nutzen hat.  OK. Lebenswichtig ist keins. Aber
> alle Projekte haben einen Realen Nutzen.

Nun, da wird es mit den meisten Hobbys eng. Wer den ganzen Vormittag auf 
dem Rasen steht und kleine Bälle durch die Gegend schlägt schafft nichts 
produktives, wer auf Berge klettert oder mit dem Fahrrad runterperzt 
auch nicht. Und den halben Tag eine Schnur ins Wasser hängen um einen 
Fisch rauszuholen? Bei meinem Stundenlohn kann ich besser die Metro 
leerkaufen. Aber irgendwie ist der Sinn eines Hobbys ein anderer, oder?

Deshalb ist dieser Kosmos auch langweilig sobald er läuft. Der Weg ist 
das Ziel, d.h. das Austüfteln und Aufbauen. Nicht das Haben.

von Andreas B. (bitverdreher)


Bewertung
1 lesenswert
nicht lesenswert
O. R. schrieb:
> Deshalb ist dieser Kosmos auch langweilig sobald er läuft. Der Weg ist
> das Ziel, d.h. das Austüfteln und Aufbauen. Nicht das Haben.
Für den, der es gemacht hat, ja.
Für den, der damit lernen will, fängt es damit erst an.

von Ralph S. (jjflash)


Bewertung
3 lesenswert
nicht lesenswert
ich hätte nicht gedacht, dass so ein kleines Spaßprojekt eine Diskussion 
eröffnet(irgendwo oben hat irgendjemand geschrieben, dass ich wohl eine 
Diskussion "lostreten" wollte, dem ist nicht so).

Über den Sinn  Unsinn oder Relevanz  Nichtrelevanz muß und sollte man 
sich hier nicht streiten. Natürlich ist der Weg das Ziel und das 
Schwelgen in Nostalgie mit den Gedanken, was man früher damit hätte 
machen können. Auch die Gedankengänge die man hat, wie man das vllt. 
umbauen könnte. Oder eben doch eine Schaltung mit 8-stelliger Anzeige, 
damit man sehen kann, auf welche Adresse man gerade schreibt. Terminal 
für verbesserte Eingabe. ;-) sogar an einen Minimalassembler (mit vllt. 
veränderter und gängigerer Mnemonic um das dann auf den CP1 Emulator zu 
schieben).

Viele viele Möglichkeiten, aber wie gesagt, darüber was 
besser/schlechter ist und Sinn und Unsinn zu debatieren bei einem 
Hobby...

Im Gegensatz zum Vorredner mache ich viele Projekte die keine Relevanz 
haben oder unnötig sind. Bsp.: Ich habe einen sehr guten PADAUK 
Programmer mit allem was man sich wünscht für einen Programmer. Dennoch 
hab ich es mir in den Kopf gesetzt mit einem anderen Controller einen 
weiteren Programmer zu erstellen. Warum nur, wenn man doch mit einem 
Programmer wunschlos glücklich ist? Vllt. nur deshalb, weil andere 
diesen "wunschlos glücklich" Programmer nicht aufbauen können oder 
keinen Weg finden an einen Programmer erschwinglich zu kommen. 
Nützlicher wäre es hier, weiter die Padauk Controller zu evaluieren und 
was man damit anstellen kann.

Jedes Projekt auf µC.net sollte die Leute auf Ideen bringen etwas zu 
bewerkstelligen, zu lernen .... oder auch nur mit offenem Mund zu 
staunen.

von Michael W. (michael_w738)


Bewertung
1 lesenswert
nicht lesenswert
Ralph S. schrieb:
> ich hätte nicht gedacht, dass so ein kleines Spaßprojekt eine Diskussion
> eröffnet(irgendwo oben hat irgendjemand geschrieben, dass ich wohl eine
> Diskussion "lostreten" wollte, dem ist nicht so).
>
> Über den Sinn  Unsinn oder Relevanz  Nichtrelevanz muß und sollte man
> sich hier nicht streiten. Natürlich ist der Weg das Ziel

Prima, dann sind wir uns ja einig :-) Schönes Projekt, habe ich von 
Anfang an gesagt.

Sehe ich anders, da DU doch derjenige warst, der immer gesagt hat - ach 
Mensch, was mach ich jetzt damit? Soll ich das wirklich machen? Soll ich 
jetzt ein PCB machen oder nicht? Und dann kamen andere die sagten wie 
viel Resourcenverschwendung soetwas ist und so weiter.

Das verstehe ich entweder als a) bitte um positives Reinforcement (bitte 
bitte, mache es doch! OK - hast Du von mir bekommen, und ich möchte 
immer noch eine PCB-Version bitte), oder als b) Aufforderung zur 
Diskussion.

NOCH VIEL SCHLIMMER wäre natürlich, wenn hier inzwischen einige 
Mitglieder im Forum der Meinung sind, sie müssten ihr Projekt vor den 
Allmächtigen Almighty Oberste Europa-Liga-Spielern proaktiv verteidigen, 
bevor sie verbale Prügel beziehen...

Sorry wenn ich das missverstanden habe.

Was mir an der "Diskussionskultur" hier überhaupt nicht gefällt, ist:
- Projekte die sowas ähnliches schon früher gemacht werden, werden 
einfach ignoriert und nicht mit einer Zeile kommentiert
- alle haben immer was rumzumeckern - macht doch selbst sowas Tolles wie 
der OT, anstatt immer Rumzumosern!
- Kackordnung - ist ja toll, wenn es hier so super Entwickler gibt - 
dann verwendet Euer Talent doch bitte darauf, andere (noch) nicht so 
tolle Entwickler konstruktiv und freundlich zu unterweisen!

> Jedes Projekt auf µC.net sollte die Leute auf Ideen bringen etwas zu
> bewerkstelligen, zu lernen .... oder auch nur mit offenem Mund zu
> staunen.

Ein schönes Schlusswort!

: Bearbeitet durch User
von Michael W. (michael_w738)


Bewertung
1 lesenswert
nicht lesenswert
Schlaumaier schrieb:
> Kommerziell würde ich allein schon wegen der ganzen Rechtlichen
> Vorschriften NIEMALS eins meiner Teile verkaufen.

Mein Gott... wenn Steve Jobs damals auf die Bänker und Paragraphenfurzer 
einen gelassen hätte, hätten wir jetzt wohl kein IPhone... bzw. Apple 
wäre niemals aus der Garage rausgekommen. (Falls sie denn überhaupt 
angefangen hätten in der Garage).

Das ist GENAU das Problem in Deutschland, und der Grund, warum 
Deutschland technologisch den Anschluss verloren hat.

: Bearbeitet durch User
von Michael W. (michael_w738)


Bewertung
-1 lesenswert
nicht lesenswert
O. R. schrieb:
> Bei meinem Stundenlohn kann ich besser die Metro
> leerkaufen.

Na, super - wieviel verdienst Du denn pro Stunde. Nur für den Fall dass 
Du noch mehr Diskussion und Bestätigung benötigst? Können wir gerne 
drüber reden.

: Bearbeitet durch User
von Schlaumaier (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Michael W. schrieb:
> Mein Gott... wenn Steve Jobs damals auf die Bänker und Paragraphenfurzer
> einen gelassen hätte, hätten wir jetzt wohl kein IPhone... bzw. Apple
> wäre niemals aus der Garage rausgekommen. (Falls sie denn überhaupt
> angefangen hätten in der Garage).
>
> Das ist GENAU das Problem in Deutschland, und der Grund, warum
> Deutschland technologisch den Anschluss verloren hat.

Was bei einen IPhone nicht schlecht gewesen wäre ;) Davon abgesehen, wer 
die Geschichte von Apple kennt weiß das auch Apple an "Bänker und 
Paragraphenfurzer" fast verreckt wäre.

Und diese "Bänker und Paragraphenfurzer" sind genau die Leute die nix 
auf die Reihe bekommen aber anderen Leuten sagen wollen, wie sie was 
machen müssen. Der Grund ist, die Neuheit verschwindet in den 
Schubladen.

Ich will nicht wirklich wissen wie viele Geniale Projekte Typen wie ich 
zu Hause nutzen, wie aber wegen den ganze Rechtlichen Mist niemals die 
Wohnung verlassen werden.

von Andreas B. (bitverdreher)


Bewertung
0 lesenswert
nicht lesenswert
Michael W. schrieb:
> Und dann kamen andere die sagten wie
> viel Resourcenverschwendung soetwas ist und so weiter.
Hmm, also ich sehe hier keinen einzigen Beitrag, der in diese Richtung 
zielt.

von Ralph S. (jjflash)


Angehängte Dateien:

Bewertung
2 lesenswert
nicht lesenswert
Jetzt habe ich doch eine Platine geroutet (und die sogar schon 
weggeschickt,bin ich mal gespannt, wie lange das dauert bist die da 
ist).

Damit auf der Hardware etwas Spielraum zum Spielen (Achtung Wortwitz ;-) 
habe ich die Schaltung etwas erweitert:

- Es kann ein CH340G als USB2UART Bridge bestückt werden und somit wird 
kein externer Adapter benötigt.

- USB-Buchse dient zur Stromversorgung auch dann, wenn kein CH340G 
bestückt ist.

- Ein Quarzsockel kann bestückt werden, wenn das gewollt ist. In diesem 
Falle verhält sich die Platine dann wie ein China-Arduino Clone (je nach 
bestücktem Controller)

- Auf Port 1 sind die ISP-Pins um den Controller das erste mal zu 
flashen

- Es kann ein I2C EEProm bestückt werden, hierzu müssen dann 2 
Lötbrücken gelötet werden. Bei Betrieb mit EEProm darf kein Quarz 
verwendet werden (das EEProm verwendet die Leitungen an denen auch der 
Quarz angeschlossen ist).

Somit kann die Hardware, wenn man des CP1 überdrüssig ist, als einfaches 
AVR-Experimentierboard mit 7-Segmentanzeige, Tasten und 
Leuchtdiodenreihe (oder auch als Arduino... was ich nicht machen werde) 
verwendet werden.

Im Kopf habe ich ein paar Dinge, den CP1-Clone nach eigenem Gusto zu 
erweitern, somit hab ich dann wenn Langeweile aufkommt, etwas zum 
Werkeln. Aus diesem Grunde wird das dann auch mit einem ATmega328 
bestückt werden.

von Michael W. (michael_w738)


Bewertung
0 lesenswert
nicht lesenswert
Ralph S. schrieb:
> Jetzt habe ich doch eine Platine geroutet (und die sogar schon
> weggeschickt,bin ich mal gespannt, wie lange das dauert bist die da
> ist).

Yippee!! Ich melde schon einmal Interesse an einem PCB an! Super Sache, 
vielen Dank für die Arbeit!

von Ralph S. (jjflash)


Angehängte Dateien:

Bewertung
2 lesenswert
nicht lesenswert
Ich habe ein bisschen an dem Emulator gespielt (nachdem ich beim 
Padauk-Programmer nur gaaaaanz langsam vorwärts komme). Der CP1-Clone 
hat ein Terminalprogramm bekommen und ich habe mir erlaubt, die 
originale Mnemonic zu ändern (die natürlich kompatibel zu originalen CP1 
ist).

Aus Copyrightgründen hat das Zilog ja auch mal mit ihrem Z80 so gemacht 
gehabt. Die waren Softwarekompatibel (die CPU nicht Pinkompatibel) mit 
auch veränderter Mnemonic. Lustigerweise (obwohl schon lange kein 
Intel-Fan mehr) bin ich von der Mnemonic Intel-Afine. Von 8086 bis 
80386. MCS-48 und MCS-51.

Hm, von daher... kann jeder die Mnemonic ändern wie er mag.

Der Nachteil des Terminal ist: Es passt nicht mehr in einen ATmega8 
hinein. Die Dateien sind etwas "aufgeräumt", in cp1_config.h kann 
eingestellt werden, ob es das Terminal geben soll oder nicht.

Was das Terminal kann?

Es kann einen Maschinenbefehl mit ihrer Mnemonic eingegeben werden, 
z.Bsp.:

mvi a,90

geht dann.

Es kann die aktuelle Speicheradresse gesetzt werden und es kann der 
Speicherinhalt disassembliert werden.

Meine Mnemonic lautet (vllt. hat da ja jemand andere Vorschläge) ist im 
Anhang zu sehen.

Mal sehen, wann ich auf den CP1 wieder Lust habe, ein paar Ideen habe 
ich noch, um daraus (vllt. auch für heute) etwas brauchbares zu machen.

Im Moment läuft es mit einem ATmega168, schlicht deshalb weil ich mir 
einen 328er verfused habe (nicht mal weiß warum) und ich im Moment keine 
Möglichkeit habe, den zurück zu setzen. Momentan benötigt das Programm 
10396 Bytes.

von Ralph S. (jjflash)


Bewertung
1 lesenswert
nicht lesenswert
Vergessen habe:

Das Terminal wird auf dem CP1 aktiviert mit:

7 - Run

(als drittes Festprogramm nach dem Selbsttest und dem Reaktionsspiel)

von O. R. (oscherischery)


Bewertung
0 lesenswert
nicht lesenswert
Michael W. schrieb:
> O. R. schrieb:
>> Bei meinem Stundenlohn kann ich besser die Metro
>> leerkaufen.
>
> Na, super - wieviel verdienst Du denn pro Stunde. Nur für den Fall dass
> Du noch mehr Diskussion und Bestätigung benötigst? Können wir gerne
> drüber reden.

Herrlich, was man mit einem aus dem Zusammenhang gerissenen Zitat doch 
für Verwirrung stiften kann! Der komplette Text, in dem es um die 
Befürwortung des Hobbys als Freizeitbeschäftigung ohne Fokus auf 
wirtschaftliche Optimierung ging, liest sich doch ganz anders:

"Und den halben Tag eine Schnur ins Wasser hängen um einen
Fisch rauszuholen? Bei meinem Stundenlohn kann ich besser die Metro
leerkaufen. Aber irgendwie ist der Sinn eines Hobbys ein anderer, oder?"

von Michael W. (michael_w738)


Bewertung
-2 lesenswert
nicht lesenswert
O. R. schrieb:
> "Und den halben Tag eine Schnur ins Wasser hängen um einen
> Fisch rauszuholen? Bei meinem Stundenlohn kann ich besser die Metro
> leerkaufen. Aber irgendwie ist der Sinn eines Hobbys ein anderer, oder?"

O. R. schrieb:
> wirtschaftliche Optimierung ging, liest sich doch ganz anders:

Und die Aussage kann man nur mit Referenz auf Deinen astronomisch hohen 
Stundenlohn machen? Klingt für mich nach Prozerei.

: Bearbeitet durch User
von Michael W. (michael_w738)


Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Ralph S. schrieb:
> Es kann einen Maschinenbefehl mit ihrer Mnemonic eingegeben werden,

Sehr schön. Obwohl die Eingabe von Opcodes bzw. direktes Arbeiten mit 
Maschinencode ja eigentlich auch Teil der Experience ist ;-) Aber sehr 
schön dass es die Möglichkeit gibt.

Mein Graymark 809 CPU Trainer (ein 8085) hat auch so eine 
Terminal-Schnittstelle.

: Bearbeitet durch User
von Soul E. (souleye) Benutzerseite


Bewertung
-1 lesenswert
nicht lesenswert
Michael W. schrieb:

> O. R. schrieb:
>> wirtschaftliche Optimierung ging, liest sich doch ganz anders:
>
> Und die Aussage kann man nur mit Referenz auf Deinen astronomisch hohen
> Stundenlohn machen? Klingt für mich nach Prozerei.

Naja, wieviele Stunden müsstest DU arbeiten gehen um Dir einen Fisch 
leisten zu können, für den Du sonst einen Nachmittag angeln gehen 
würdest? Ich glaube, so hoch braucht der Stundenlohn nicht zu sein um 
dieses Hobby aus rein ökonomischer Sicht unwirtschaftlich zu machen. Von 
dem, was so mancher dann noch in seine Ausrüstung investiert wollen wir 
gar nicht sprechen.

Und das gilt schon irgendwie für die meisten Hobbys. Man macht es aus 
Freude daran, nicht um Geld zu sparen.

: Bearbeitet durch User
von Ralph S. (jjflash)


Bewertung
0 lesenswert
nicht lesenswert
Was für eine Diskussion hier ! Ehrlich, ich schüttel den Kopf !

Im Moment bin ich an meinem PFS154 Programmer, auch wenn der CP1-Clone 
(heftig) gewachsen ist. Er hat jetzt 65 Opcodes und einen davon habe ich 
"int" genannt. Deshalb, damit ähnlich dem Vorgehen wie damals auf 
DOS-Maschinen, wo ein "int" auf Maschinenebene ein Bios-Call war (es 
wurde damals "Softwareinterrupt" genannt auf dem CP1-Clone Funktionen 
integriert sein können, die dann mittels diesem "int" aufrufbar sind.

Aber wie gesagt, im Moment bin ich an meinem PFS154 dran

von Michael W. (michael_w738)


Bewertung
1 lesenswert
nicht lesenswert
Ralph S. schrieb:
> Was für eine Diskussion hier ! Ehrlich, ich schüttel den Kopf !
>
> Im Moment bin ich an meinem PFS154 Programmer, auch wenn der CP1-Clone
> (heftig) gewachsen ist. Er hat jetzt 65 Opcodes und einen davon habe ich
> "int" genannt. Deshalb, damit ähnlich dem Vorgehen wie damals auf
> DOS-Maschinen, wo ein "int" auf Maschinenebene ein Bios-Call war (es
> wurde damals "Softwareinterrupt" genannt auf dem CP1-Clone Funktionen
> integriert sein können, die dann mittels diesem "int" aufrufbar sind.
>
> Aber wie gesagt, im Moment bin ich an meinem PFS154 dran

Gute Idee. Leider ist das im Microtronic nicht möglich, da alle 
möglichen Opcodes schon belegt sind.

von Ralph S. (jjflash)


Bewertung
0 lesenswert
nicht lesenswert
Für die nächsten Tage: Ciao

Irgendwann mach ich vllt. mal mit dem CP1-Clone weiter.

von reiche Eltern, Verwandte, Geheimdienst (Gast)


Bewertung
-2 lesenswert
nicht lesenswert
Michael W. schrieb:
> bzw. Apple
> wäre niemals aus der Garage rausgekommen.

waren sie auch nie drin. Das hat der andere Steve selbst erzählt. Das 
Zeug kam von HP und wurde da nur zwischengelagert.

Und die Entstehungsgeschichten von  google, facebook, microsoft, ... - 
sind genauso Blödsinn.

Beitrag #6540138 wurde vom Autor gelöscht.
von Michael W. (michael_w385)


Bewertung
1 lesenswert
nicht lesenswert
Soul E. schrieb:
> Naja, wieviele Stunden müsstest DU arbeiten gehen um Dir einen Fisch
> leisten zu können,

Ich ess' gar kein Fisch. Zu viel Quecksilber und Schwermetalle gehen ins 
Gehirn, da habe ich schon vom Löten genug intus.

von Der müde Joe (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Ralph schrieb:

"Natürlich kann man das alles um den CP1 erweitern, nur dann ist es kein 
CP1 mehr."

Hallo, Ralph.
Ich stimme dir zu. Aber ich denke auch, dass eine gewisse Evolution 
erlaubt ist. Schönes Beispiel: Die Anzeige der Adresse. Oder die 
Erweiterung um den OR-Befehl.

Darum denke ich, die Erweiterung sollte ein Superset des originären CP1 
sein. Das heißt, das neue Gerät funktioniert genauso wie der alte CP1, 
plus die Erweiterungen. So kann die alte Anleitung verwendet werden. Das 
macht Spaß! :-)

von Michael W. (michael_w738)


Bewertung
2 lesenswert
nicht lesenswert
Michael W. schrieb:
> Das Zauberwort heißt existierende Software,
> Anleitungsbücher & Elektronik-Experimente! Diese sind durchaus auch
> heute noch didaktisch empfehlenswert, für Einsteiger.

Ralph, hast Du schon einmal versucht, Experimente aus dem Anleitungsbuch 
anzuschließen? Ich hatte beim Microtronic-Emulator ein kleineres Problem 
mit zusätzlichen erforderlichen Pulldowns:

https://youtu.be/JfIkLdMjFq4

Zum Glück haben meine Projekt-Partner im "Microtronic 2nd Generation" 
Sister-Projekt (Frank und Manfred) das richtig gemacht, und die 
Eingangs/ Ausgangsstufen der GPIOs wie im Original nachgebaut, damit die 
Experimente maximal elektrisch kompatibel sind. Ich wollte mir 
allerdings die Transistoren sparen. Der CP1 hat sowas allerdings nicht. 
Da gehen die Ports direkt auf den Chip, richtig?

: Bearbeitet durch User
von dummer Unwissender (Gast)


Angehängte Dateien:

Bewertung
-2 lesenswert
nicht lesenswert
Wie man im Originalschaltplan sehen kann, geht CP1 - Port1 direkt zum 
8049 Controller, Port2 zum I/O Baustein 8155 (hier dann PortB).

Scheinbar wurde der verfügbarer Speicher im 8049 derart knapp, dass 
Port2 des CP1, jetzt nicht zu verwechseln mit Port2 / 8049, nur als 
Ausgang konfiguriert wurde und somit nur zwischen 1 und schaltet.

Port1 des 8049 ist ähnlich dem eines MCS-51 und kennt nicht wie heutige 
Controller so etwas wie ein "Datenrichtungsregister". Will man dort von 
einem Port lesen, ist zuvor der Ausgang auf 1 zu legen um dann den Pin 
abzufragen, ob dieser, obwohl man den zuvor auf 1 gesetzt hatte, nun 1 
oder 0 ist. Ein 3-state Modus gibt es auf Port1 und 2 des CP1 nicht.
Die am Port1 angeschlossene Elektronik muß die Leitung auf 0 ziehen.
Das erreicht man mit den eingebauten Pullup-Widerständen gut. Als 
Ausgang verschaltet müßte man jetzt einmal nachsehen, wieviel Strom bei 
jeweils 0/1 ein ATmega aufnehmen, bzw. liefern kann und wieviel Strom 
ein 8049 bzw. ein 8155 kann.

Allerdings glaube ich, dass ein AVR das alles so auch kann.

von Michael W. (michael_w738)


Bewertung
2 lesenswert
nicht lesenswert
dummer Unwissender schrieb:
> Ein 3-state Modus gibt es auf Port1 und 2 des CP1 nicht.
> Die am Port1 angeschlossene Elektronik muß die Leitung auf 0 ziehen.
> Das erreicht man mit den eingebauten Pullup-Widerständen gut. Als
> Ausgang verschaltet müßte man jetzt einmal nachsehen, wieviel Strom bei
> jeweils 0/1 ein ATmega aufnehmen, bzw. liefern kann und wieviel Strom
> ein 8049 bzw. ein 8155 kann.

Du meinst, diese Pullup-Widerstände sind im 8049 "intern"? In der 
CP1-Schaltung kann ich sie nicht entdecken. Dass scheint also genau wie 
der interne Pullup im ATMega / AVR zu sein.

Und in der Tat - wenn man sich die Schaltungen im CP1-Anleitungsbuch 
ansieht, z.B. S. 84, sieht man, dass ein Taster an Port1/1 einfach durch 
Verbinden auf GND (-) den Kontakt herstellt. Also sind die Eingänge 
elektrisch "low active". Das macht es natürlich einfach.

Beim Microtronic sind die Eingänge leider "high active", und daher sind 
die internen AVR-Pullups nutzlos, und man braucht den normalen 
"pinMode(INPUT)" statt "pinMode(INPUT_PULLUP)". Und das erfordert dann 
Extra-Pulldown-Widerstände. Andernfalls gibt es "stuck bits", wie in 
meinem Video gezeigt.

Gut, dass das Problem für einen CP1-ATmega / AVR-Emulator nicht 
auftritt, und dass man einfach die internen Pullups nehmen kann! Das 
macht es einfacher.

Ja, was Ausgangsleistung der Ports angeht - alle Schaltungen im 
CP1-Anleitungsbuch, die was treiben, haben einen Transistor in der 
Schaltung.

: Bearbeitet durch User
von Soul E. (souleye) Benutzerseite


Angehängte Dateien:
  • preview image for P1.PNG
    P1.PNG
    27,8 KB, 57 Downloads

Bewertung
-2 lesenswert
nicht lesenswert
Michael W. schrieb:

> Du meinst, diese Pullup-Widerstände sind im 8049 "intern"? In der
> CP1-Schaltung kann ich sie nicht entdecken. Dass scheint also genau wie
> der interne Pullup im ATMega / AVR zu sein.

Das ist wie beim 8051. Intern ein Pullup (Stromquelle) nach VDD, und ein 
MOSFET der nach Masse schaltet. Zurückgelesen wird direkt am Pin. Um den 
Pin als Eingang zu nutzen setzt man ihn auf Output High (MOSFET aus) und 
übersteuert den Pullup.


> Gut, dass das Problem für einen CP1-ATmega / AVR-Emulator nicht
> auftritt, und dass man einfach die internen Pullups nehmen kann! Das
> macht es einfacher.

Da erreichst Du das gleiche Verhalten, wenn Du den internen Pullup 
einschaltest und nur den Low-Pegel aktiv treibst. D.h. Pin auf Output 
Low für Low und auf Input (mit Pullup) für High.

: Bearbeitet durch User
von Michael W. (michael_w738)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Soul E. schrieb:
> Da erreichst Du das gleiche Verhalten, wenn Du den internen Pullup
> einschaltest und nur den Low-Pegel aktiv treibst. D.h. Pin auf Output
> Low für Low und auf Input (mit Pullup) für High.

Huch? Du sagst also, dass man einen positiven (high aktiven) Eingang am 
AVR emulieren kann, der sich wie folgende Schaltung verhält (Anhang)? 
Wie konfiguriere ich das?

Wohl gemerkt, nur mir Taster / Schalter und VCC-Verbindung dann. Der 
Schalter /Taster stellt also direkt eine Verbindung vom Pin zu VCC her.
Und das OHNE extra Pulldown?? Dabei ist natürlich wichtig dass, wenn ich 
den Taster loslasse, der Eingang sofort wieder auf 0  GND  Low geht 
(und nicht 5 Sekunden dafür braucht, und zwischen durch sogar 
"undefiniert" hin- und herschwingt, wie in meinem Video gezeigt).

Ich muss sagen, es würde mich SEHR überraschen, wenn man mit dem AVR 
einen internen Pulldown-Resistor konfigurieren könnte. Habe ich noch nie 
gehört. Pullup, ja. Pulldown ist immer extern. Oder spinne ich jetzt, 
oder habe was nicht richtig verstanden?

: Bearbeitet durch User
von Soul E. (souleye) Benutzerseite


Bewertung
-2 lesenswert
nicht lesenswert
Wieso high-aktiv? Der Eingang eines 8039 ist low-aktiv, siehe Anhang 
https://www.mikrocontroller.net/attachment/488147/P1.PNG . Widerstand 
nach Plus, Transistor nach Masse. Dies sollte mit einem AVR emuliert 
werden, was mit internem Pullup und simuliertem open-drain möglich wäre.

Ein high-aktiver Eingang bräuchte einen Pulldown, also einen Widerstand 
gegen Masse und Transistor nach VDD. Den High-Pegel könnte man durch 
Output High darstellen, der Lowpegel erfordert aber einen externen 
Widerstand (und Pin auf Eingang).

von Michael W. (michael_w738)


Bewertung
0 lesenswert
nicht lesenswert
Soul E. schrieb:
> Wieso high-aktiv? Der Eingang eines 8039 ist low-aktiv, siehe Anhang
> https://www.mikrocontroller.net/attachment/488147/P1.PNG . Widerstand
> nach Plus, Transistor nach Masse. Dies sollte mit einem AVR emuliert
> werden, was mit internem Pullup und simuliertem open-drain möglich wäre.
>
> Ein high-aktiver Eingang bräuchte einen Pulldown, also einen Widerstand
> gegen Masse und Transistor nach VDD. Den High-Pegel könnte man durch
> Output High darstellen, der Lowpegel erfordert aber einen externen
> Widerstand (und Pin auf Eingang).

Genau das habe ich doch oben geschrieben. Und sogar aufgemalt. Ich 
glaube, Du hast meine Beiträge nicht richtig gelesen... bzw. nich 
verstanden, was ich hier gefragt bzw. diskutieren wollte.

Oder ich habe Deinen Beitrag nicht verstande. ALSO - AVR kann nur 
Low-Aktiv mit internem Pullup. Dann sind die Logik-Level also 
invertiert. Beim Microtronic brauchte ich High-Aktiv - das geht nur mir 
externem Pulldown. Bis Du sagtest, dass kann man auch irgendwie mit 
internem AVR-Pullup / Down machen, was wohl nicht stimmt. DARUM ging es.

Ich sagte - SCHÖN, dass es beim CP1 Emulator low-aktiv ist. Daa ist 
EINFACHER in der Realisierung mit einem AVR dann als beim 
Microtronic-Emulator, weil man die internen AVR Pullups verwenden kann. 
Klar jetzt?

: Bearbeitet durch User
von Soul E. (souleye) Benutzerseite


Bewertung
-3 lesenswert
nicht lesenswert
Michael W. schrieb:

> (...) Bis Du sagtest, dass kann man auch irgendwie mit
> internem AVR-Pullup / Down machen, was wohl nicht stimmt. DARUM ging es.

Mit dem AVR und dessen internem Pullup kann man das Verhalten des Port 1 
eines i8039 emulieren. Darum ging es.

Mit dem AVR kann man ohne Zusatzbeschaltung keine Open Source / 
Pulldown-Konfiguration bauen. So etwas habe ich nie behauptet und es ist 
aus https://www.mikrocontroller.net/attachment/488147/P1.PNG auch nicht 
herauszulesen.

> Ich sagte - SCHÖN, dass es beim CP1 Emulator low-aktiv ist. Daa ist
> EINFACHER in der Realisierung mit einem AVR dann als beim
> Microtronic-Emulator, weil man die internen AVR Pullups verwenden kann.
> Klar jetzt?

Da sind wir uns einig.

: Bearbeitet durch User
von Michael W. (michael_w738)


Bewertung
-1 lesenswert
nicht lesenswert
Soul E. schrieb:
> Mit dem AVR kann man ohne Zusatzbeschaltung keine Open Source /
> Pulldown-Konfiguration bauen. So etwas habe ich nie behauptet und es ist
> aus https://www.mikrocontroller.net/attachment/488147/P1.PNG auch nicht
> herauszulesen.
>
>> Ich sagte - SCHÖN, dass es beim CP1 Emulator low-aktiv ist. Daa ist
>> EINFACHER in der Realisierung mit einem AVR dann als beim
>> Microtronic-Emulator, weil man die internen AVR Pullups verwenden kann.
>> Klar jetzt?
>
> Da sind wir uns einig.

Prima, dann ist es jetzt klar.

von Michael W. (michael_w738)


Bewertung
1 lesenswert
nicht lesenswert
Der müde Joe schrieb:

> Darum denke ich, die Erweiterung sollte ein Superset des originären CP1
> sein.

Na das eine Erweiterung keine Untermenge darstellt, ist irgendwie im 
Namen schon drin, oder? :D

von Michael W. (michael_w738)


Bewertung
0 lesenswert
nicht lesenswert
Soul E. schrieb:
> Michael W. schrieb:
>
>> (...) Bis Du sagtest, dass kann man auch irgendwie mit
>> internem AVR-Pullup / Down machen, was wohl nicht stimmt. DARUM ging es.
>
> Mit dem AVR und dessen internem Pullup kann man das Verhalten des Port 1
> eines i8039 emulieren. Darum ging es.

Versuch' doch bitte mal beim Thema zu bleiben, und nicht so off-topic zu 
gehen. 8039 interessiert in dieser Diskussion überhaupt nicht. Ist ja 
schön dass Du Dich so gut auskennst in der Intel-Mikrocontroller 
Historie, aber relevant ist das für diese Diskussion nicht. Bitte 
genauer lesen bevor Du "off topic" antwortest, das ist sehr verwirrend 
und hilft der Diskussion nicht.

Was Deine originale Antwort auf meine Frage:

>> Gut, dass das Problem für einen CP1-ATmega >/ AVR-Emulator nicht
>> auftritt, und dass man einfach die internen Pullups nehmen kann! Das
>> macht es einfacher.

angeht (Soul E.):

>Da erreichst Du das gleiche Verhalten, wenn Du den internen Pullup
>einschaltest und nur den Low-Pegel aktiv treibst. D.h. Pin auf Output
>Low für Low und auf Input (mit Pullup) für High.

mit meiner Frage / Bemerkung zu tun hast, ist mir immer noch nicht klar. 
Zumal da überhaupt keine Erwähnung vom 8039 statt findet (wenn überhaupt 
8049). (Bitte jetzt keine Belehrung über 8049-Genese, ich kann selbst im 
Wikipedia über Intel-Mikrocontroller-Historie nachlesen...)

: Bearbeitet durch User
von Soul E. (souleye) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Michael W. schrieb:

> Versuch' doch bitte mal beim Thema zu bleiben, (...)

Nun, hier 
https://www.mikrocontroller.net/attachment/488120/original_circuit.png 
hatte jemand den Schaltplan des originalen CP1 gepostet. Und was sehen 
wir da? Einen i8039 in der Version mit internem ROM, d.h. einen i8049. 
Und eben dieser sollte mit einem AVR emuliert werden. Also, so ganz am 
Thema vorbei war das nun wirklich nicht.

Aber mach mal was Du willst.

von O. R. (oscherischery)


Bewertung
0 lesenswert
nicht lesenswert
Michael W. schrieb:

> Was Deine originale Antwort auf meine Frage:
(...)
> mit meiner Frage / Bemerkung zu tun hast, ist mir immer noch nicht klar.

Was ist denn nun Dein Problem? Der CP1 basiert auf einem 8049, also 
einem 8039 mit internem Programmspeicher. Dieser hat einen Port mit open 
drain-Ausgängen. Es wurde gefragt ob man dessen Verhalten mit einem 
Atmel nachbilden kann. Die Antwort lautete "ja".

Dann hattet Du gefragt, ob auch ein umgekehrtes Verhalten (open source, 
high-aktiv) ebenfalls möglich wäre. Die Antwort darauf lautete "nein". 
Du hattest jemandem unterstellt das Gegenteil behauptet zu haben -- dies 
wurde richtiggestellt und stellte sich als Missverständnis heraus. Passt 
also soweit alles.


Wobei, wurde nicht dieses Projekt ohnehin als unsinnig tituliert, da man 
damit ja keinen Gewinn erzielen könne? Die Diskussion um den Sinn und 
Unsinn von Hobbys war sicherlich off-topic. Meinen Einwurf weiter oben 
konnte ich mir trotzdem nicht verkneifen -- meiner Ansicht nach sollen 
Hobbys primär Spaß machen und für Entspannung sorgen. Also, alle 
runterkommen und entspannen! Wir haben Wochenende ;-)

von Michael W. (michael_w385)


Bewertung
1 lesenswert
nicht lesenswert
O. R. schrieb:
> Michael W. schrieb:
>
>> Was Deine originale Antwort auf meine Frage:
> (...)
>> mit meiner Frage / Bemerkung zu tun hast, ist mir immer noch nicht klar.
>
> Was ist denn nun Dein Problem?

Überhaupt kein Problem. Danke für die Richtigstellung. SChönes 
Wochenende.

: Bearbeitet durch User
von sonofjj (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
und was hat das ganze noch mit dem dingens vom vadda zu tun?

von Ralph S. (jjflash)


Angehängte Dateien:

Bewertung
4 lesenswert
nicht lesenswert
... so, Platinen sind heute gekommen und natürlich hab ich gleiche eine 
bestückt und zu meiner Überraschung hat sogar alles gleich funktioniert, 
obwohl ein Kondensator noch gar nicht drin ist (weil die, die ich habe 
zu hoch sind).

Im Anhang kann man sehen, wie die Mnemonic erweitert wurde und eine mir 
besser geläufige Mnemonic ist als die Originale. Die ersten 22 Opcodes 
machen natürlich dasselbe damit auch alles vom originalen CP1 
übernehmbar ist. Auch die Tastensteuerung ist dieselbe, auch wenn ich 
die Platine über das Terminal bediene (weil ich dort einen Step besser 
verfolgen kann).

Die Funktionsmöglichkeiten können (fast) beliebig über den Befehl "INT" 
erweitert werden. Hier ist es möglich, Funktionalitäten des ATmegas in 
den CP1 einzublenden.

Der CP1 hat jetzt:

- grundsätzlich 256 Speicherplätze (WORD)
- zusätzliche interne Struktur:
-- Register B, C, D, E, Flagregister PSW
-- 8 Level-Stack
-- 24LC128 EEPROM (32 komplette Programme + 2 Programme im internen 
ATmega)

Terminalprogramm mit:
- Zeilenassembler und Disassembler
- Registerstatusanzeige beim Beenden des Programms sowie nach 
Single-Step
- Laden und Speichern vom / zum EEProm
- Memory Dump

Softwareinterrupts gibts zu den Themen:

INT 1
- erweiterte Möglichkeiten für Verzögerungsschleifen mit 4 einstellbaren 
Zeitbasen

INT 2 und INT 3
- PWM Frequenzgeneratoren

INT 4
- PWM Frequenzgenerator für Servomotor

INT 8
- ADC Nutzung auf 8-Bit reduziert, Ausgabe in Akku wahlweise in Digits 
(max. 255), in % (max. 99) oder in 50 * 100 Millivolt

INT 9
- Abfrage der Tastatur, Möglichkeit auf Taste zu warten, feststellen ob 
eine Taste gedrückt ist oder eine Dezimalzahl über die Tasten einlesen

INT 10
- Digitmaske zum Dunkelschalten einzelner Digits
- Displaysteuerung in 8 und 16 Bit Anzeige jeweils in dezimaler und in 
hexadezimaler Darstellung
- Dezimalpunktsteuerung

--------------------------------

NTC Widerstände und LDR möchte ich noch hinzufügen eventuell auch noch 
IR-Empfänger.

--------------------------------

Irgendwie mutet das ganze nach: "Es werden 'Systemfunktionen' über 
Maschinensprache gescriptet.

Aber irgendwie machts Spaß

von Ralph S. (jjflash)


Bewertung
1 lesenswert
nicht lesenswert
Beispielprogramm um mit einem Potentiometer / Trimmer die Stellung des 
Servomotors einzustellen:
1
000:   28.020   mvi b,020
2
001:   04.000   mvi a,000
3
002:   63.010   int 010       ; INT 10 Funktion 20: 
4
                              ; Dezimalpunktanzeige alle aus
5
003:   28.000   mvi b,000
6
004:   04.007   mvi a,007
7
005:   63.010   int 010       ; INT 10 Funktion 0: Displaymaske 7 
8
                              ; ==> nur die rechten 3 Digits anzeigen
9
006:   28.000   mvi b,000
10
007:   04.002   mvi a,002
11
008:   63.008   int 008       ; INT 8 Funktion 0: Init ADC fuer 
12
                              ; Input auf P2.2
13
; loop:                              
14
009:   28.001   mvi b,001
15
010:   63.008   int 008       ; INT 8 Funktion 1: Spannung auf P2.2
16
                              ; messen, 8-Bit Ausgabe auf Akku 
17
011:   28.001   mvi b,001
18
012:   63.010   int 010       ; INT 10 Funktion 1: Display, dezimale
19
                              ; Ausgabe Akku
20
013:   63.004   int 004       ; INT 4: Akku als Duty-Cycle Wert fuer
21
                              ; Servomotor
22
014:   03.100   cdel 100      ; Wartezeit
23
015:   09.010   jmp 009       ; das Ganze fuer immer wiederholen

von Andreas B. (bitverdreher)


Bewertung
0 lesenswert
nicht lesenswert
Ralph S. schrieb:
> ... so, Platinen sind heute gekommen und natürlich hab ich gleiche eine
> bestückt und zu meiner Überraschung hat sogar alles gleich funktioniert,
Nicht schlecht! Und wann kommt die 32-Bit ARM Version? Man will ja 
schließlich mal alle ähnlichen Computer da drin haben (KIM-1 u.ä.)  ;-)

von Ralph S. (jjflash)


Bewertung
0 lesenswert
nicht lesenswert
Andreas B. schrieb:
> Nicht schlecht! Und wann kommt die 32-Bit ARM Version? Man will ja
> schließlich mal alle ähnlichen Computer da drin haben (KIM-1 u.ä.)  ;-)

KIM-1 kenne ich natürlich auch nicht, aber ich habe mir das angesehen. 
Grundsätzlich sind solche Gerätchen / Platinen nicht so wirklich 
schwierig, im Falle von KIM-1 glaube ich wäre das auch nicht so 
besonders aufwändig, in vielen Dingen höchstwahrscheinlich besser als 
CP-1. Für 6502 gibts schon unzählige CPU-Emulatoren, die auch auf einem 
ATmega laufen.

Auf meiner Platine würde das allerdings nicht funktionieren (der KIM-1), 
weil der insgesamt 24 Tasten hat, ich aber auf der Platine mit der 
Lösung der Shift-Taste nur 20 Tasten erreiche.

Prinzipiell hatte ich schon vor Weihnachten darüber nachgedacht gehabt, 
ob ich mir mal eine universelle Platine mache mit Tastenfeld und 
7-Segmentanzeige, aber grundsätzlich habe ich das wieder verworfen 
gehabt, weil Elektronik heute eben doch eher ein TFT-Display hat, eine 
Platine mit STM32F303 (Cortex M4) mit 16-Tasten plus Shift-Taste habe 
ich für Experimente schon.

Diese Platine war allerdings, wie eingie andere auch ein Fehlentwurf und 
nur kurzfristig gedacht, weil der Controller ein STM32F303K8T6 ist in 
einem eher seltenen LQFP32 Gehäuse ist, der derzeit (vllt. auch wegen 
Corona) überall deutlich über 10 Euro kostet. Damals wollte ich noch 
nicht die 48 pol. IC's verlöten und dachte mir 32 reichen auch.

Hätte ich das anderst gemacht, könnte man deutlich mehr IC's darauf 
verlöten (u. a. den hochbilligen STM32F103):

Andreas B. schrieb:
> Und wann kommt die 32-Bit ARM Version?

Mit ein paar wenigen Änderungen, da ja bis auf PWM, 
Verzögerungsschleifen und UART alles Bitbanging ist, habe ich den CP-1 
auch schon auf einer Bluepill laufen lassen, einen Unterschied macht das 
aber zur ATmega Version keinen und wie gesagt: für einen 6502 wäre wohl 
auch der ATmega schnell genug.

Für den Moment "reicht" mir diese Version und wenn ich die Doku dazu 
geschrieben habe werde ich das wohl abschließen. Auch wenn es in dieser 
Entwicklungsstufe als reines Lernsystem heute wieder genutzt werden 
könnte habe ich für mich keinen Nutzen (wie oben schon gesagt: Der Spaß 
ist das Ding zu machen, nicht es zu gebrauchen):

Für ein heutiges Lernsystem müßte man als Hostprogramm eine GUI 
schreiben damit das angenommen werden würde, weil ich glaube, dass 
heutzutage kein junger Mensch mehr mit einem Terminal- / Monitorprogramm 
arbeiten möchte (auch wenn vieles damit schneller geht).

Außerdem stelle ich fest, dass dieses Teil in der Funktion sich auch 
irgendwie nach Arduino anmutet: Ich entwickle CP1 "Softwareinterrupts" 
und rufe die nur noch auf. Bei einem Arduino ist das ja ähnlich, nur 
deutlich hochflexibler. Installieren einer Library und verwenden, 
fertig. Bei dem CP1 kann halt nichts installiert werden, es muß immer in 
die Firmware in die Switch-Case Folge eingehängt werden.

Von daher - ich sage es nicht gerne - sollte man heute dann wirklich 
lieber  mit Arduino hantieren. Der Lerncomputer diente damals eher dazu, 
zu zeigen wie grundsätzlich Maschinensprache funktioniert (funktionieren 
kann). Macht man heute noch Maschinensprache (eher selten) macht, dann 
ist es sinnvoller, das auf einem realen System mit den entsprechenden 
Tools zu machen die um Lichtjahre besser sind als meine, um das auch 
wirklich einzusetzen.

von Michael W. (michael_w385)


Bewertung
0 lesenswert
nicht lesenswert
Ralph S. schrieb:
> Von daher - ich sage es nicht gerne - sollte man heute dann wirklich
> lieber  mit Arduino hantieren. Der Lerncomputer diente damals eher dazu,
> zu zeigen wie grundsätzlich Maschinensprache funktioniert (funktionieren
> kann). Macht man heute noch Maschinensprache (eher selten) macht, dann
> ist es sinnvoller, das auf einem realen System mit den entsprechenden
> Tools zu machen die um Lichtjahre besser sind als meine, um das auch
> wirklich einzusetzen.

Man fragt sich natürlich, wer soetwas heutzutage noch kauft, und warum. 
Ja, es wurde verkauft, bei Tindie... und sogar recht erfolgreich:

https://youtu.be/mo3y1B_zerA

Das Subsystem CPU-Modell / Instruktionsset ist der vom "Science Fair" 
Microprocessor Trainer aus den 70ern, der auch als Gakken GMC-4 verkauft 
wurde.

https://www.old-computers.com/museum/computer.asp?st=1&c=1053

M.E. ist die Einfachheit dieser Lerncomputer und die Verbindung mit 
Elektronik-Experimenten und didaktisch gut gemachten Anleitungsbüchern 
für Kinder / Jugendliche der eigentlich Reiz. Zumindest war er es 
damals. Maschinensprache hat man auch damals schon mit "richtigen CPU 
Trainern" mit "echten CPUs" und "echter Maschinensprache" besser 
gelernt. Allerdings nicht für Kinder und Jugendliche.

Manchmal erreicht man mehr damit, wenn Dinge etwas vereinfacht werden.

Ich denke, soetwas wie der BBC micro:bit ist für die heutige Generation 
ziemlich geeignet.

: Bearbeitet durch User
von Der müde Joe (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo, Ralph.
Zuerst mal, tolles Projekt! :-)

Du schriebst: "Damals wollte ich noch nicht die 48 pol. IC's verlöten"

Damit beziehst du dich auf die QFP-48-Gehäuse mit 0,5mm Pitch, gell? Ich 
denke auch, dass solche Pitches eher schwieriger zu verlöten sind. 
Zumindest von Hand. Ich wollte nur sagen, dass es auch noch die QFP-44 
und QFP-64 gibt, die haben 0,8mm Pitch. Die habe ich schon öfters von 
Hand verlötet, ohne Kurzschlüsse.

von Ralph S. (jjflash)


Bewertung
1 lesenswert
nicht lesenswert
Der müde Joe schrieb:
> Damit beziehst du dich auf die QFP-48-Gehäuse mit 0,5mm Pitch, gell?

Mittlerweile weiß ich, wie ich die QFP-48 Gehäuse mit 0,4mm Pitch 
verlöten muß und das klappt auch sehr gut. Lötsauglitze sei Dank.

von Michael W. (michael_w738)


Bewertung
0 lesenswert
nicht lesenswert
Ralph, kann ich einen zusammengebaut von Dir erwerben? Versand müsste in 
die USA... SMD kann ich nicht. Daher.

Wenn nicht - verstehe! Wollte trozdem gefragt haben, gefällt mir sehr 
gut!

von Ralph S. (jjflash)


Bewertung
0 lesenswert
nicht lesenswert
Ach herjeh, zusammengebaut eher nicht. Zum einen fehlen mir für eine 
dritte bestückte Platine noch ein paar Bauteile (die zweite hat mein 
Sohnemann), und zum Anderen habe ich mehr als 2 Stunden gebraucht, um 
das Ding zusammen zu löten ( ;-) Sohnemann durfte selbst löten und der 
kann das auch).

Vllt. solltest du SMD - Löten einmal lernen (denn das sieht schwieriger 
aus, als es ist). Widerstände und Kondensatoren sind in der Größe 0805 
und die bestückt man (nach gewisser Übung) sogar deutlich schneller als 
bedrahtete Bauteile. Die IC's könnten etwas kniffliger werden (hier ist 
es der ATmega), aber da sind Kurzschlüsse beim Löten nicht so ein großes 
Problem, weil die mit Lötsauglitze, eventuell auch mit Flux getränkt 
(flüssiges Flußmittel), sehr gut entfernbar ist.

Ich habe die Platine bspw. mit einer einfachen und uralten Weller 
Magnastat TCP Lötstation gelötet, die ich seit meiner Lehrzeit (vor 40 
Jahren) schon habe.

;-) also (nicht so ganz ernst nehmen und ist auch nicht so böse 
gemeint): nicht so viel Programme coden, sondern mal üben, die 
Bauteilegehäuse der heutigen Zeit zu verarbeiten.

Michael W. schrieb:
> Wenn nicht - verstehe! Wollte trozdem gefragt haben, gefällt mir sehr
> gut!

Deshalb: sorry, aber zusammenbauen werde ich das nicht !

von Michael W. (michael_w738)


Bewertung
0 lesenswert
nicht lesenswert
Ralph S. schrieb:
>
> ;-) also (nicht so ganz ernst nehmen und ist auch nicht so böse
> gemeint): nicht so viel Programme coden, sondern mal üben, die
> Bauteilegehäuse der heutigen Zeit zu verarbeiten.

Bin ich nicht. Ja, kommt auf die Liste der guten Vorsätze für 2021: 
SMD-Löten. Möglich sein sollte es schon irgendwie. Auch ohne Reflow 
Oven. Wir werden sehen. Ich bin halt Hobbyist / Maker und handwerklich 
nicht so fit wie Ihr Profis hier (ist jetzt ernst gemeint).

Gruß und bis demnächst mal wieder!

von Andreas B. (bitverdreher)


Bewertung
0 lesenswert
nicht lesenswert
Michael W. schrieb:
> Ja, kommt auf die Liste der guten Vorsätze für 2021:
> SMD-Löten.
Fang am besten hier mal an:
https://www.mikrocontroller.net/articles/SMD_L%C3%B6ten
Alles halb so wild. Du wirst da auch nicht länger dran vorbeikommen. Die 
interessanten Bauteile gibt es bald nur noch in SMD. Ich habe es vor 
einigen Jahren auch immer vermieden. Mittlerweile würde ich nichts mehr 
in THT machen, wenn es irgendwie möglich ist. (auch Hobbyist)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.