Forum: Mikrocontroller und Digitale Elektronik Z180-Stamp Modul


von Marcel A. (dl1ekm)


Angehängte Dateien:

Lesenswert?

Hier mal ein paar Bilder meines Aufbaus mit meinen beschränkten 
mechanischen Möglichkeiten.
Es fehlen noch ein paar Verdrahtungen, die Backplane ist auch noch nicht 
drin. Links kommt dann demnächst noch die VGA-Platine rein.

Etwas Sorgen bereitet mir der USB-Abschluss auf der AVR-Platine. Ich 
suche immer noch ein passendes Kabel mit Winkel-Stecker (oder einen 
Winkel-Adapter), da man das Board mit Stecker dran nicht in den Rahmen 
schieben kann.

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Das sieht ja schon richtig erwachsen aus :-)

von Leo C. (rapid)


Lesenswert?

> Etwas Sorgen bereitet mir der USB-Abschluss auf der AVR-Platine. Ich
> suche immer noch ein passendes Kabel mit Winkel-Stecker (oder einen
> Winkel-Adapter), da man das Board mit Stecker dran nicht in den Rahmen
> schieben kann.

Die Winkeladapter, die ich bisher gefunden habe, waren alle zu groß und 
in eine falsche Richtung abgewinkelt. Jetzt habe ich diese [1] Adapter 
gekauft und will einen davon hinter die Frontplatte montieren. Auf der 
AVR-Stamp wird dann ein Kabel direkt angelötet.


[1] http://www.ebay.de/itm/201414916073

von Dirk (Gast)


Lesenswert?

Marcel A. schrieb:
> Etwas Sorgen bereitet mir der USB-Abschluss auf der AVR-Platine. Ich
> suche immer noch ein passendes Kabel mit Winkel-Stecker (oder einen
> Winkel-Adapter), da man das Board mit Stecker dran nicht in den Rahmen
> schieben kann.
Das Teil von Delock/Reichelt ist wahrscheinlich zu dick, oder?!:
http://www.reichelt.de/USB-Adapter/DELOCK-65096/3/index.html?ARTICLE=100945

von Marcel A. (dl1ekm)


Lesenswert?

Dirk schrieb:

> Das Teil von Delock/Reichelt ist wahrscheinlich zu dick, oder?!:
> http://www.reichelt.de/USB-Adapter/DELOCK-65096/3/index.html?ARTICLE=100945

Da habe ich inzwischen auch Kabel mit Winkelstecker gesehen. Aber 
wahrscheinlich bleibt nur Leos Weg mit direkt drauf löten...

von Marcel A. (dl1ekm)


Angehängte Dateien:

Lesenswert?

Läuft soweit alles prima, auch die seriellen Schnittstellen, die externe 
SD usw.

Jetzt kämpfe ich "nur" noch mit meinem alten Problem. Ich habe ja auch 
ein "echtes" VT100 an CON angeschlossen - das super geht, aber sowohl im 
AVR-Modus als auch unter CP/M reproduzierbar "Müllphasen" hat, die den 
Bildschirmaufbau durcheinander bringen.
Interessanterweise geht an der AVR Console der USB- und 
Seriell-Anschluss gleichzeitig, senden wie empfangen. So ist das Bild im 
Anhang entstanden. Auf dem FTDI kommt alles sauber an, am VT100 (MAXxxx) 
tritt der Fehler auf. Den Max-Baustein hatte ich schon mal geprüft, der 
schein ansonsten ok zu sein. Die Fehler tauchen auch auf, wenn ich den 
USB-Anschluss still lege (JP auf AVR Stamp) und nur zur Stromversorgung 
nehme.
Das einzige, was ich noch nicht probiert hatte, ist reine 5V Versorgung 
von extern (also nix mehr im USB-Port).
Hat noch jemand eine Idee?

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Marcel A. schrieb:
> Hat noch jemand eine Idee?

Lasse doch mal parallel zum VT100 einen "Serial Port Analyser" [1] 
mitlaufen. Dann siehst du ja was gesendet wird und was das Terminal 
damit macht.

[1] http://www.serial-port-monitor.com/

von Marcel A. (dl1ekm)


Lesenswert?

Habe mal eine "echte" serielle Schnittstelle des PCs angeschlossen - 
damit ist das Problem auch nicht vorhanden.
Muss wohl dann ein Problem des HP VT100-Terminals sein - auch eine 
Verringerung der Geschwindigkeit bringt keine Abhilfe. Immer an der 
gleichen Stelle (bzw. bei bestimmten Codes) kommt es zu "Müll".
Als wenn da ein Puffer nicht richtig arbeitet...

EDIT: Ich glaube, ich habe in den 1Mio Einstellungen gerade eine Kombi 
gefunden, die geht :-)

: Bearbeitet durch User
von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Marcel A. schrieb:
> Immer an der
> gleichen Stelle (bzw. bei bestimmten Codes) kommt es zu "Müll".

Das sieht doch nach Handshake aus. Was macht die CTS-Leitung vom 
Terminal? Möglicherweise signalisiert sie Puffer voll, warten. Wenn dann 
der Sender munter weiter Zeichen sendet kommt es natürlich zu Fehlern.

von Marcel A. (dl1ekm)


Lesenswert?

Das wird es gewesen sein. Terminal stand auf xon/xoff...

von Marcel A. (dl1ekm)


Lesenswert?

So, habe mein erstes richtiges Z80 HelloWorld sowohl auf der Stamp als 
auch in der ZXCC-Umgebung ans Laufen gebracht :-)

Dann habe ich mal mein altes Pollin AVR NetIO Board ausgekramt und eine 
Firmware von Ulrich Radig drauf gebracht. Nachdem ich die Original-CPU 
(Mega32) durch eine 644er getauscht hatte und damit den USART-Buffer 
hochschrauben konnte, dient dieser als Seriell zu Telnet Konverter an 
der AVR CON.
Somit könnte ich den Rechner von meinem Arbeits-PC aus bedienen.

Leider ist die Firmware noch etwas eigenwillig hinsichtlich der 
Übertragung von CTRL-Codes und ESC-Sequenzen. Auch ist es gar nicht so 
einfach, nur auf 1 Taste zu reagieren (Menüs...) anstatt alles mit CR zu 
bestätigen.
Das wird sicher wieder eine weitere Baustelle - irgendwann.

von Marcel A. (dl1ekm)


Angehängte Dateien:

Lesenswert?

So, hier mal der aktuelle HW-Stand meiner "Grafikkarte".

Die "Firmware 1.7.3 test serial 3" macht aber noch Probleme (CRTL wie 
SHIFT, Absturz beim Start von TP).

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Die RTC schein noch einen Bug zu haben, könnt ihr den Fehler auch 
nachstellen?

im AVR-Monitor
=> date
Sat Jan 23 14:39:38 2015

im CP/M
A>date
Fri 01/23/2015 14:38:53

Den Jahreswechsel von 2015 auf 2016 scheint die RTC vergessen zu haben.

Nachtrag:
Nach dem Stellen der RTC ist wieder alles korrekt...

A>date
Sat 01/23/2016 14:53:29

=> date
Sat Jan 23 14:53:32 2016

: Bearbeitet durch User
von Marcel A. (dl1ekm)


Lesenswert?

Gibt's eigentlich was neues vom Vinculum?

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Marcel A. schrieb:
> Gibt's eigentlich was neues vom Vinculum?

Nein, noch nicht. Ich habe gerade die reine 5V Version auf dem Tisch.

von Leo C. (rapid)


Lesenswert?

Joe G. schrieb:
> Die RTC schein noch einen Bug zu haben, könnt ihr den Fehler auch
> nachstellen?

Ja, leider.
Ich habe es nicht bemerkt, weil mein Stamp dieses Jahr noch garnicht in 
Betrieb war.

Die RTC hat nur einen 2-Bit Jahreszähler. Deshalb wird das aktuelle Jahr 
im RTC-RAM gespeichert, aber beim Jahreswechsel (noch) nicht 
aktualisiert. Außerdem wird wg. eines dämlichen Fehlers das Jahr auch im 
AVR-RAM nicht aktualisiert, wenn der 2-Bit Zähler von 3 nach 0 
überläuft, was dieses mal der Fall war.

> Nach dem Stellen der RTC ist wieder alles korrekt...
Aber nur für die nächsten 3 Jahre, wenn der Strom nicht abgeschaltet 
wird.

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Merkwürdiges RAM Fehlerbild auf dem Z180-Stamp

Leitungen (Adressen, Daten, Steuerleitungen )scheinen alle korrekt, kein 
Schluss, keine offene Leitung ...
Z180 ist im RESET, alle sind Leitungen hochohmig.
Wird nun der RAM nur auf EINER Zelle beschrieben (egal welcher), so ist 
beim Auslesen dieser Inhalt auf ALLEN Zellen. Das ist unabhängig davon 
auf welcher Adresse geschrieben oder gelesen wird. Die Adressen beim 
Lesen und Schreiben liegen korrekt an, auch CE, OE und WE.

Ich bin etwas ratlos und tippe auf RAM defekt. Hatte schon mal jemand so 
ein Verhalten? Ach ja, das ist ein zweiter Neuaufbau, der RAM ist also 
frisch aus der Verpackung.

Nachtrag:
Ich kann mir eigentlich nur vorstellen, dass der interne Adressdecoder 
des IC nicht korrekt arbeitet.

: Bearbeitet durch User
von Marcel A. (dl1ekm)


Lesenswert?

Hallo,

ich wollte mich mal wieder melden. Ich war etwas abgetaucht in den 
Tiefen des NDR Klein Computers...
Habe dort das BIOS umgeschrieben für ein drittes "GOTEK USB 
Floppy-Laufwerk" und dabei glatt nach 30 Jahren einen Fehler im FLOMON 
(den Basisroutinen des NKC) gefunden :-)
Dann habe ich es noch geschafft, auch dort ein Terminal an die serielle 
Schnittstelle zu bekommen - gar nicht so leicht, denn das IOBYTE ist 
nicht implementiert.

Nun wollte ich mir als nächstes die AVR STAMP in der Version 1.1 
aufbauen, damit ich alles mit 5V betreiben kann. Da waren doch keine 
"Bugs" mehr drin, oder? Habe auf die Schnelle keine Hinweise gefunden.

Bin auch mal gespannt, wie es mit dem USB Stick weitergeht. Die KC-Leute 
und die NDRler haben das ja auch umgesetzt mit den "U-Tools", also 
Programmen im TPA aus. NeuLinux: "user space" :-)

Und ja, das Frontpanel reift noch in meinem Kopf.

Habe inzwischen auch einen MFA/BZA-Rechner im Keller mit einer ganzen 
Kiste voll Karten und dann noch von einem anderen ehemaligen 
Z80-Entwickler (der es im Gegensatz zu Leo leider aufgegeben hat) einen 
TRS-80 Nachbau im 19" Rahmen mit einem Wäschekorb voll Literatur. Das 
wird für ein paar Jahre reichen. Joe - ich muss gerade an deinen Hinweis 
" nicht zu viele Baustellen..." denken.

Gruß in die Runde
Marcel

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Marcel A. schrieb:
> Nun wollte ich mir als nächstes die AVR STAMP in der Version 1.1
> aufbauen, damit ich alles mit 5V betreiben kann. Da waren doch keine
> "Bugs" mehr drin, oder? Habe auf die Schnelle keine Hinweise gefunden.

Der AVR-Stamp ist ohne Hardwarefehler. Die LP kann so bestückt werden 
und funktioniert mit 3.3V und 5V.
Beim Z180 Stamp (V1.1) habe ich diesen merkwürdigen RAM-Fehler. Nachdem 
RAM Wechsel ist der Fehler immer noch da, es scheint also nicht der RAM 
zu sein. Bisher bin ich jedoch mangels Zeit noch nicht fündig geworden. 
Bis nächste Woche Mittwoch läuft nach das Ballonprojekt [1] mit 
Hochdruck.

[1] Beitrag "Stratosphärenballon"

von Marcel A. (dl1ekm)


Lesenswert?

Joe G. schrieb:

> [1] Beitrag "Stratosphärenballon"

Hallo Joe - tolle Sache.

Ich hatte in unserem OV auch mal eine Technik-Gruppe als 
Kontrastprogramm zum sonstigen Gelaber gegründet - aber es kamen immer 
nur dir gleichen 2-3 Leute und für Jugendarbeit konnte ich keinen 
begeistern - maximal "müsste man mal machen" - meistens aber "oh Gott, 
stell dir mal vor, da kommen tatsächlich junge Leute". Es war 
frustrierend.
So, das war etwas OT, zurück zum Z180 :-)

von Marcel A. (dl1ekm)


Lesenswert?

Ich baue gerade die AVR Stamp 1.1 zusammen. Dabei sind mir bisher 
folgende Unterschiede zwischen Schaltplan und BOM, beides V1.1.
Z.b. Sind R6-8 anders und IC2 und IC5 sind vertauscht....?
Oder habe ich mir vor einigen Wochen eine falsche Version ausgedruckt?

von Joe G. (feinmechaniker) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hier die aktuelle Liste.

von Marcel A. (dl1ekm)


Lesenswert?

Die habe ich auch - im Schaltplan ist aber z.B. IC5 der 125er 
Levelshifter und nicht der PCF...

von Joe G. (feinmechaniker) Benutzerseite


Angehängte Dateien:

Lesenswert?

Nimm man diese Schaltung.

von Marcel A. (dl1ekm)


Lesenswert?

Danke - das sieht gut aus :-)

von Marcel A. (dl1ekm)


Lesenswert?

Ich habe da noch 2 Fragen. Aufgrund der besseren Verfügbarkeit habe ich 
wie empfohlen den ATMEGA2561V eingebaut. Wenn ich die Datenblätter so 
vergleiche, müssten eigentlich die gleichen FUSE-Bits gelten, oder?

Dabei ist mir aber in der Dokumentation aufgefallen, dass dort steht, 
dass BOOTSZ1, BOOTSZ2 und BOOTRST auf 1 stehen sollen, in der Tabelle 
der Doku stehen aber "Defaults", die nicht diese Werte haben - das 
könnte verwirrend sein.

Und noch ein Tipp, da ich dafür genau in den Layout-Plan schauen musste: 
Für JP4 (ISP) bitte im Bestückungsplan einen richtigen Wannenstecker 
nehmen, damit man den auch anstelle der Stiftleiste nimmt und dann auch 
gleich "richtig herum" einbauen kann - das kann sonst böse Folgen haben, 
wenn man das ISP-Kabel falsch herum ansteckt :-)

Gruß
Marcel

von Leo C. (rapid)


Lesenswert?

Marcel A. schrieb:
> vergleiche, müssten eigentlich die gleichen FUSE-Bits gelten, oder?

Sieht so aus.

> in der Tabelle
> der Doku stehen aber "Defaults", die nicht diese Werte haben - das
> könnte verwirrend sein.

Ja, in der Tabelle stehen nur die Defaults. Darunter steht in Hex der 
"richtige" Wert (0xD6).

Den Bootloader wirst Du auf jeden Fall anpassen und neu übersetzen 
müssen. Der Monitor könnte vielleicht unverändert laufen.

von Marcel A. (dl1ekm)


Lesenswert?

Ja, da werde ich mich wohl noch mal reinfuchsen :-)

Wo finde ich denn den Source für den "STAMP Monitor V6.5 8 Drives"? Du 
hattest mir dazu mal eine HEX-Datei gegeben - die SEHR GUT läuft.
Die "normale" V6.5 habe ich gefunden.

: Bearbeitet durch User
von Leo C. (rapid)


Lesenswert?

> Wo finde ich denn den Source für den "STAMP Monitor V6.5 8 Drives"? Du

Nirgens.

> hattest mir dazu mal eine HEX-Datei gegeben - die SEHR GUT läuft.
> Die "normale" V6.5 habe ich gefunden.

Es sollte ausreichen, in der datei z180-serv.c das Makro MAX_DRIVE 
anzupassen.

von Marcel A. (dl1ekm)


Lesenswert?

Ich bin schon recht weit, aber es klemmt noch.

Ich habe den bootloader von hier
https://www.mikrocontroller.net/articles/AVR_Bootloader_FastBoot_von_Peter_Dannegger
Beitrag "Re: Peter Danneggers Bootloader (fastboot) für AVR-GCC-Toolchain"
genommen (für die AVR-GCC toolchain), die scripte wie dort beschrieben 
ausgetauscht und das makefile auf den 2561 angepasst.
Es entstand das HEX. Das habe ich geflashed (ACHTUNG: Beim 2561 meckert 
AVRDUDE über EFUSE=F5 - er setzt das auf FD - das bezieht sich aber nur 
auf die Brown-Out detection).

Danach minicom und fboot gestartet - das Stamp-Monitor-Hex wird 
geladen!!!

Nur startet er danach den Monitor nicht.

Obwohl der fastboot ja eigentlich nur 0,3 Sekunden auf mein fboot warten 
sollte kann ich zu jedem beliebigen Zeitpunkt fboot starten und eine 
hex-datei übertragen. Das ist doch nicht normal?
Oder muss ich den Stamp Monitor doch für den 2561 übersetzen? Aber 
irgendwie kommt mir der bootloader komisch vor.

Ein Flash-Dump zeigt mir aber, dass er etwas übertragen hat. Er scheint 
es nur nicht zu starten.
Leo, du hattest da doch auch "rumgefummelt" - hast du eine Idee?

Gruß
Marcel
1
>>> dump flash 0 2000 
2
0000  0c 94 81 30 0c 94 b3 30  0c 94 b3 30 0c 94 b3 30  | ..0 ..0 ..0 ..0|
3
0010  0c 94 b3 30 0c 94 b3 30  0c 94 d1 30 0c 94 dc 30  | ..0 ..0 ..0 ..0|
4
0020  0c 94 b3 30 0c 94 b3 30  0c 94 b3 30 0c 94 b3 30  | ..0 ..0 ..0 ..0|
5
0030  0c 94 b3 30 0c 94 b3 30  0c 94 b3 30 0c 94 b3 30  | ..0 ..0 ..0 ..0|
6
0040  0c 94 b3 30 0c 94 b3 30  0c 94 b3 30 0c 94 b3 30  | ..0 ..0 ..0 ..0|
7
0050  0c 94 b3 30 0c 94 b3 30  0c 94 b3 30 0c 94 b3 30  | ..0 ..0 ..0 ..0|
8
0060  0c 94 b3 30 0c 94 d4 63  0c 94 fe 63 0c 94 b3 30  | ..0 ..c ..c ..0|
9
0070  0c 94 b3 30 0c 94 b3 30  0c 94 b3 30 0c 94 b3 30  | ..0 ..0 ..0 ..0|
10
0080  0c 94 32 63 0c 94 b3 30  0c 94 b3 30 0c 94 b3 30  | .2c ..0 ..0 ..0|
11
0090  0c 94 b3 30 0c 94 b3 30  0c 94 b3 30 0c 94 c0 64  | ..0 ..0 ..0 ..d|
12
00a0  0c 94 b3 30 0c 94 b3 30  0c 94 ce 71 0c 94 b3 30  | ..0 ..0 ..q ..0|
13
00b0  0c 94 b3 30 0c 94 b3 30  0c 94 b3 30 0c 94 b3 30  | ..0 ..0 ..0 ..0|
14
00c0  0c 94 b3 30 0c 94 b3 30  0c 94 b3 30 31 46 43 46  | ..0 ..0 ..01FCF|
15
00d0  3b 46 91 46 99 46 99 46  ac 46 ac 46 08 08 08 25  |;F.F.F.F.F.F...%|
16
00e0  32 64 20 00 48 69 74 20  61 6e 79 20 6b 65 79 20  |2d .Hit any key |
17
00f0  74 6f 20 73 74 6f 70 20  61 75 74 6f 62 6f 6f 74  |to stop autoboot|
18
0100  3a 20 25 32 64 20 00 23  23 23 20 6d 61 69 6e 5f  |: %2d .### main_|
19
0110  6c 6f 6f 70 3a 20 62 6f  6f 74 63 6d 64 3d 22 25  |loop: bootcmd="%|
20
0120  73 22 0a 00 3c 55 4e 44  45 46 49 4e 45 44 3e 00  |s" .<UNDEFINED>.|
21
0130  62 6f 6f 74 63 6d 64 00  23 23 23 20 6d 61 69 6e  |bootcmd.### main|
22
0140  5f 6c 6f 6f 70 20 65 6e  74 65 72 65 64 3a 20 62  |_loop entered: b|
23
0150  6f 6f 74 64 65 6c 61 79  3d 25 64 0a 0a 00 62 6f  |ootdelay=%d  .bo|
24
0160  6f 74 64 65 6c 61 79 00  2e 0a 00 2c 20 00 23 23  |otdelay.. ., .##|
25
0170  23 20 52 65 73 65 74 20  72 65 61 73 6f 6e 28 73  |# Reset reason(s|

So sieht der Bootloader-Vorgang aus - aber die Applikatio wird eben 
nicht gestartet - er bleibt in der Suche nach dem Host-Programm stecken
1
=================================================
2
|           BOOTLOADER, Target: V2.1            |
3
|            (May 13 2015 20:15:36)             |
4
=================================================
5
Now program device.
6
Port          : /dev/ttyUSB0
7
Baudrate      : 115200
8
File          : stamp-monitor-6.5+8drives.hex
9
Reading       : stamp-monitor-6.5+8drives.hex... File read.
10
Size          : 81994 Bytes
11
-------------------------------------------------
12
Waiting for device... connected!
13
Bootloader    : V2.1
14
Target        : 1E9802 ATmega2561
15
Buffer        : 7680 Byte
16
Size available: 261120 Byte
17
CRC enabled and OK.
18
Programming   : 0x00000 - 0x14049
19
Writing [############################################################################################################################] 100%
20
Elapsed time  : 23.83 seconds, 3441 Bytes/sec.
21
22
 ++++++++++ Device successfully programmed! ++++++++++
23
24
...starting application

: Bearbeitet durch User
von Leo C. (rapid)


Lesenswert?

> (ACHTUNG: Beim 2561 meckert
> AVRDUDE über EFUSE=F5 - er setzt das auf FD - das bezieht sich aber nur
> auf die Brown-Out detection).

Macht nichts, bzw. FD ist eigentlich "richtiger".

> Obwohl der fastboot ja eigentlich nur 0,3 Sekunden auf mein fboot warten
> sollte kann ich zu jedem beliebigen Zeitpunkt fboot starten und eine
> hex-datei übertragen. Das ist doch nicht normal?

Das muß nicht am Bootloader liegen. Auch wenn der Hexdump nicht so 
aussieht, kann es sein daß das geladene Programm nicht richtig läuft, 
sondern immer in den Bootloader springt.

> Oder muss ich den Stamp Monitor doch für den 2561 übersetzen?
Vielleicht. Ich probier's mal aus.

Versuch doch mal, den Monitor direkt zu flashen, ohne Bootloader.

> Leo, du hattest da doch auch "rumgefummelt" - hast du eine Idee?

Wo habe ich rumrefummelt?

von Marcel A. (dl1ekm)


Lesenswert?

Zum 2561:
Ich habe mir tup manuell installiert - aber ich habe noch nicht raus, 
wie ich nur den avr-zweig übersetzen kann.

Zum "rumfummeln":
Es gab doch mal hier massive Probleme, dass der bootloader das fboot 
nicht zuverlässig erkannt hat. Da hast du damals glaube ich etwas 
angepasst. Ich meine auch etwas mit speziellem Bootloader-Support

Beitrag "Re: Z180-Stamp Modul"

Hab gerade mal das HEX direkt geflashed: Dann passiert nicht - also wird 
es wohl daran liegen, dass ich erst ein HEX für den 2561 erzeugen muss.

: Bearbeitet durch User
von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Marcel A. schrieb:
> Für JP4 (ISP) bitte im Bestückungsplan einen richtigen Wannenstecker
> nehmen, damit man den auch anstelle der Stiftleiste nimmt und dann auch
> gleich "richtig herum" einbauen kann

Passt der vom Layout? Ich hatte das nicht überprüft, weil im Normalfall 
der AVR ja nur einmal mit dem Bootloader geflasht wird. Ich dachte mir, 
dass der Nachnutzer in diesem Fall genau weiß, was er tut ;-)

von Marcel A. (dl1ekm)


Angehängte Dateien:

Lesenswert?

Ja, der passt :-). Und da weit vom SD-Card-Reader entfernt auch super.

Da ich mit Leo's Hilfe den ATmega2561 gerade zum Laufen gebracht habe, 
brauchte ich den mehr als gedacht.

Anbei ein Bild.

von Harald N. (haraldn)


Lesenswert?

Hallo!

Ich bin gerade wieder am Teile zusammensuchen und bin auf den Ferrit auf 
der ECB gestoßen.
Ich konnte den exakten Typ bei meinen üblichen Verdächtigen nicht 
finden. Sodann: kann ich diese Induktivität verwenden?
http://www.reichelt.at/L-1210F-22-/3/index.html?&ACTION=3&LA=446&ARTICLE=138576&artnr=L-1210F+22%C2%B5&SEARCH=22+ferrit+1210

: Bearbeitet durch User
von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Ja, kannst du verwenden. Sollte sogar vom Footprint fast passen.

von Leo C. (rapid)


Lesenswert?

Die 20µH Spule ist schon etwas breit für das 1206 Footprint. Aber da 
drumherum Platz ist wird es wohl gehen. Die 1206 Spulen vom Reichelt 
haben entweder zu wenig Induktivität oder zu viel Widerstand.
Ich habe noch einen Vorrat von [1]. Bei CSD gekauft, aber da gibts kein 
Datenblatt. Die 10µH reichen bei mir aus.

[1] http://www.tme.eu/de/details/nl322522t-100k/smd-drosseln/yageo/

von Harald N. (haraldn)


Lesenswert?

Ok... geteilte Meinungen. Muss aber sowieso was bei CSD bestellen. Du 
hast die gezeigte auf dem Board in Verwendung?
Dachte 1210 wegen der Teilebezeichnung in der BOM.

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Ich habe eine mit 18µH, 1.1 Ohm, Bauform 1210 in Verwendung [1]. Das 
Footprint ist für 1210 ausgelegt. Leo's Modell geht aber auch.

[1] Würth 744032180

von Leo C. (rapid)


Angehängte Dateien:

Lesenswert?

So geteilt finde ich die Meinungen garnicht. Keine Ahnung wie ich auf 
1206 gekommen bin. Meine Spule ist 2,5 mm breit, die vom Reichelt 3,0 mm 
(Dachte es wäre noch mehr). Die Reichelt-Spule hat auf jeden Fall die 
besseren Werte.

von Harald N. (haraldn)


Lesenswert?

Hallo nochmal!

Noch eine Frage habe ich. Ich kann die 74LV138D und 74LV10D nicht 
finden. Kann ich stattdessen die HC-Typen hernehmen?
Weiters finde ich den MAX3241 nicht. Hat vlt jemand 2 Stück über, die er 
mir verkaufen könnte?

Danke

von Marcel A. (dl1ekm)


Lesenswert?

den Max habe ich bei ebay gekauft.

von Leo C. (rapid)


Lesenswert?

> Noch eine Frage habe ich. Ich kann die 74LV138D und 74LV10D nicht
> finden. Kann ich stattdessen die HC-Typen hernehmen?

Prinzipiell ja. Aber LV, LVX, HVC, etc. sind wesentlich schneller als 
die alten HC. Das könnte beim '10 evtl. eine Rolle spielen, vor allem 
bei 3,3V und 18,432MHz Taktfrequenz. Sollte man mal durchrechnen.

von Harald N. (haraldn)


Lesenswert?

Also für den 138er hätte ich nun den 74LVC138AD gefunden. Für den 10er 
leider nur 74HC10D oder 74HCT10D.
Den Max gibts tatsächlich auf Ebay als MAX3241CAI.
Dann werd ich das mal so probieren und zur Not die ICs von den alten 
Stamps auslöten versuchen...

von Leo C. (rapid)


Lesenswert?

> Dann werd ich das mal so probieren und zur Not die ICs von den alten
> Stamps auslöten versuchen...

Bevor Du das machst, löte besser den 74HC10D ein. Wenn der für die 
höchste Taktfrequenz wirklich zu langsam sein sollte, kannst Du ihn 
immer noch auslöten. Der HCT geht auf keinen Fall.

von Harald N. (haraldn)


Lesenswert?

Ok... es gibt sie beim großen blauen C, megaüberteuert aber es gibt 
sie...

von Marcel A. (dl1ekm)


Lesenswert?

Jetzt habe ich gestern die Nachricht geschrieben und dann offenbar gar 
nicht abgeschickt... MIST.

Also, ich habe ein dickes Problem mit der AVR STAMP 1.1

Nur AVR-Betrieb (keine ECB):
Ich habe sie auf USB-Power und 5V eingestellt. Dann erscheint bei B1 
(sollte 3,3V sein) immer 4,3V (komischerweise genau 0,7V 
"Diodenspannung" weniger).
Ob das über den MISO-Ausgang und die LED am SD-Reader kommt?

Betreibe ich die AVR Stamp auf der ECB und stecke auch die Z180 (dort 
wird ja eigentlich die 3,3V produziert, ändert sich daran auch nichts - 
am Spannungsregler liegen dann auch 4,3V an!

Die Z180 CPU habe ich erst mal gar nicht mit Strom versorgt.

Der Zugriff auf SD (beide!) klappt aber - trotz der hohen Spannung. Aber 
das kann doch nicht gut sein?

Nur wenn ich die AVR (und die ECB) auf 3,3V jumpere ist alles ok von den 
Spannungspegeln her.

Irgendwie muss da der Wurm drin sein. Ich habe alles gefühlt 100x 
überprüft. Habt ihr eine Idee?

Gruß
Marcel

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Die 3.3V kommen doch vom Z180-Stamp. Der AVR-Stamp hat nichts mit den 
3.3V zu tun. Wenn du die +5V über USB beziehst, dann werden sie über JP1 
an B2 gelegt. Von B2 holt sich dann der Z180-Stamp die +5V, macht 3.3V 
daraus und legt sie wieder an B1 an. Ob der AVR-Stamp nun mit 5V oder 
3.3V versorgt werden soll, legt JP2 auf dem AVR-Stamp fest.
Wenn du also nur den AVR in Betrieb hast, dann sollte an B1 nichts 
anliegen.

Nachtrag:
Ich habe nochmal in die Schaltung geschaut. Wenn du keine 3.3V für die 
SD-Card bereit stellst, dann wird der 74HC125 nicht mit Spannung 
versorgt. Es wird also ein Strom über die Gattereingänge auf die 3.3V 
Leitung fließen. Das ist nicht gut :-(
Auch beim 5V Betrieb sollten also auf jeden Fall an B1 3.3V extern 
anliegen!

: Bearbeitet durch User
von Marcel A. (dl1ekm)


Lesenswert?

Genau so waren auch meine Überlegungen.
Der AVR-Stamp holt sich (solange die ECB nicht wieder im Rahmen steckt) 
die 5V vom USB. Diese 5V gehen auch auf B2 und versorgen auch den AVR 
mit Strom
Die 3,3V für die SD-Karte wird vom Z180-Stamp aus den 5V auf B2 geholt 
und in eben 3,3V umgewandelt und auf B1 gelegt. Der Z180 selber wird 
wieder mit 5V versorgt.

Mich wundert nur, dass der Z180-3,3V-Regler die Spannung auf B1 nicht 
"runterregelt".
Offenbar übersteuert da irgendwas die 3,3V - sehr komisch. Ich raff das 
nicht...

von Marcel A. (dl1ekm)


Angehängte Dateien:

Lesenswert?

Wie gesagt, mit 3,3V klappt alles wunderbar, soweit ich das bisher sehen 
kann. Ich habe den Jumper für die CPU Spannungsversorgung auf der Z180 
derzeit nicht gesetzt (nutze also nur die 3,3V Versorgung der Z180 
Stamp).
Als ob sich die 3,3V dann doch von "Vcc" geholt werden und nicht von B1?

In einer älteren Version des Schaltplans gab es da mal eine Änderung, 
siehe Anhang... In der "alten" Version waren auch die Widerstände anders 
nummeriert...

(Ein anderer Effekt: Früher konnte ich immer einen MAX... RS232-Wandler 
auf den RX/TX des AVR parallel zum FTDI mitlaufen lassen - jetzt geht 
das nur noch in Richtung Terminal, aber nicht mehr in Richtung AVR. Auch 
nicht MEHR mit dem alten AVR 1.0, wo es immer ging. Komisch. Na, hab das 
auf jeden Fall mal abgeklemmt.)

: Bearbeitet durch User
von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Marcel A. schrieb:
> In einer älteren Version des Schaltplans gab es da mal eine Änderung,
> siehe Anhang... In der "alten" Version waren auch die Widerstände anders
> nummeriert...

Die ältere Version wurde nur mit 3.3V betrieben. Dort lagen alle 
Pullup/down Widerstände natürlich auf Vcc. Data0/MISO ist ein Ausgang 
der SD-Card. Die Spezifikation der SD-Card [1] sagt dazu: „external 
pull-up resistor value to prevent bus floating“. Da die maximale 
Spannung einer SD-Card nur 3.6V betragen darf, liegt der Widerstand R5 
(100k) also auf 3.3V. Der AVR erkennt jedoch noch sicher den Pegel.

> Als ob sich die 3,3V dann doch von "Vcc" geholt werden und nicht von B1?

Wenn ein Fehler auf der AVR-Platine vorliegt und somit eine Spannung 
größer 3.3V an B1 anliegt, dann kann der Regler natürlich nicht regeln. 
Er hat ja dann am Ausgang schon eine höhere Spannung. Es muss also erst 
der Fehler auf dem AVR-Stamp beseitigt werden. Die einzige Verbindung 
die ich sehe, sind der 74HC125 und die SD-Card. Da DAT0 ein Ausgang ist, 
kann ich mir das nicht vorstellen. Das kannst du jedoch testen, indem du 
die SD-Card entfernst. Somit bleibt nur noch der Pegelwandler. Das 
kannst du testen indem du entweder die LED oder R2 entfernst. Wenn jetzt 
noch Spannung auf der 3.3V Leitung liegt, muss der Pegelwandler defekt 
sein.

[1] http://www.nxp.com/documents/application_note/AN10911.pdf

: Bearbeitet durch User
von Marcel A. (dl1ekm)


Lesenswert?

Ich habe beide Boards noch mal auf meiner Lochraster-Basisplatine 
getestet - gleicher Effekt - dann kann ich das ECB Board ausschließen.

SD-Karten sind (sicherheitshalber) im Moment eh nicht gesteckt - daher 
dürfte da auch nichts in Richtung MISO gehen.

Dann habe ich R2 und R5 auf dem AVR Board ausgelötet - dann ist "nur" 
noch der 125er mit B1 verbunden.
Kein Unterschied.

Dann habe ich noch mal den 3,3V Regler im Leerlauf arbeiten lassen - 
3.3V - passt.

Dann habe ich ihn wieder an B1 angeschlossen (auf der Z180 Stamp): 4,3V.

Dann habe ich ihn mal mit 220Ohm "belastet" -> B1=3,6V
Dann mit 100Ohm (immer zwischen B1 und GND)-> B1=3,1V

Hä??? :-)

Muss ich also wirklich den 125er auslöten...:-( Komisch.

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Marcel A. schrieb:
> Muss ich also wirklich den 125er auslöten...:-( Komisch.

Schau dir mal an welche Leitung den Strom liefert. Es kommen ja nur SS, 
SCK ode MOSI in Frage. An welcher Leituung geht der Pegel runter, wenn 
du die 3.3V belastest?

von Marcel A. (dl1ekm)


Angehängte Dateien:

Lesenswert?

SS geht auf 4,3/3,6/3,1V

SCK und MOSI haben immer 0V

Wie gesagt, R2 und R5 sind ausgelötet im Moment. Und die LED hatte 
geblinkt beim Zugriff auf die SD-Karte.

: Bearbeitet durch User
von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Dumme Sache :-(
Ich habe es gerade auf deinem Foto gesehen. Du hast einen 74Hc125 
eingelötet und ich habe auch die ganze Zeit davon geschrieben. Der 
74HC... ist nicht 5V tolerant! Bei diesem Type darf der Eingang nicht 
größer als Vcc+0.5V sein. Es muss ein 74LVC... oder 74AHC... sein. Das 
IC muss also tatsächlich runter. Ich ändere das auch gleich im 
Schaltplan, das steht auch der falsche Type drin.

Nachtrag: Kommando zurück - in der Schaltung ist ein 74AHC125

: Bearbeitet durch User
von Marcel A. (dl1ekm)


Lesenswert?

Danke - MIST!!! Hattest zu geschrieben...

Auf dem ECB Board habe ich auch einen 74LV125 - den muss ich dann wohl 
auch austauschen?

Damit nicht noch mehr Baustellen schlummern (Board soll 3,3 und V5 
können, der AVR 1.1 am besten auch), hier mal die Liste. Ich glaube 
aber, die sind alle für 3,3 und 5V geeignet, nur der 125er muss 3,3 V im 
Ausgang und 5V im Eingang unterstützen.

Auf dem ECB Board habe ich sonst so an ICs:

Element      SOLL     IST (Reichlt)    Reichelt neu
IC1         74AHC125D SMD HC 125       ?? 74LVX 125 D oder 74ABT 
125D-SMD?
IC3         74LV74D   SMD HC 74        --> sollte ok sein oder 74AC 
74D-SMD?
IC4         74LV00D   74VHC 00 D       --> sollte ok sein

Laut dem Datenblatt hätte ich jetzt gesagt, dass die SMD HC Serie 2-7V 
abkann... Das Thema Differenzspannung hatte ich da gar nicht gesehen.


Beim AVR ist noch relevant

IC 4        74LV138D  SMD HC 138      oK? oder besser  74AC 138D-SMD?


Mein Fazit: Der hier von Reichrlt sollte gehen, da seine Eingänge bis 7V 
können und explizit als Anwendung die Anbindung von 5V Systemen an 3V 
genannt wird?

http://www.reichelt.de/ICs-74LVX-74VHCT-/74LVX-125-D/3/index.html?ACTION=3&GROUPID=2936&ARTICLE=40619&SEARCH=74%20125&OFFSET=16&;

: Bearbeitet durch User
von Harald N. (haraldn)


Lesenswert?

Ich hoffe da ergibt sich jetzt keine böse Überraschung für mich. Hab 
letzte Woche bestellt und mich streng an den Schaltplan gehalten. Mit 
Mühe wie man oben sieht...

von Marcel A. (dl1ekm)


Lesenswert?

So, bis ich den richtigen 125er habe betreibe ich alles erst mal auf 
3,3V.

Nun habe ich noch einen komischen Effekt. Beim Start kommt folgende 
Ausgabe:
1
=========================<  (RE)START DEBUG  >=========================                                                                                            
2
### Reset reason(s): none.                                                                                                                                         
3
                                                                                                                                                                   
4
ATMEGA2561+Z8S180 Stamp Monitor V6.5 (8.3.2016)                                                                                                                    
5
6
### main_loop entered: bootdelay=5
7
8
### main_loop: bootcmd="reset; loadf; go ${startaddr}"
9
Hit any key to stop autoboot:  0 
10
CPU nnw in reset state.
11
z80_memfifo_init: $i, 0
12
z80_memfifo_init: $i, 1
13
z80_memfifo_init: $i, 2
14
z80_memfifo_init: $i, 3
15
Bus timeout
16
Command failed, result=1
17
Command failed, result=-1
18
go - start apphacation at address 'addr'
19
Usage:
20
go addr
21
    - start application at address 'addr'
22
=>

Stört euch nicht an den Fehlermeldungen, die Parameter sind noch nicht 
gesetzt, die SD nicht drin und die CPU nicht angeklemmt.

Immer an EXAKT der gleichen Stelle kommt es zu Rechtschreibfehlern:
"CPU nnw in reset state""
"start apphacation at"

Ich habe den Quelltext noch mal überprüft und noch mal neu geflashed 
(über den bootloader) - keine Änderung.

War mir erst gar nicht aufgefallen. Jemand eine Idee?

Die AVR Stamp 1.0 macht das nicht:
1
=========================<  (RE)START DEBUG  >=========================
2
### Reset reason(s): Power on.
3
4
ATMEGA1281+Z8S180 Stamp Monitor
5
6
### main_loop entered: bootdelay=3
7
8
### main_loop: bootcmd="reset; pin 8 low; loadcpm3; go ${startaddress}"
9
Hit any key to stop autoboot:  0 
10
CPU now in reset state.
11
z80_memfifo_init: 0, 0
12
z80_memfifo_init: 1, 0
13
z80_memfifo_init: 2, 0
14
z80_memfifo_init: 3, 0
15
Error: failed to open '0:/cpm3+8drives.sys'
16
Command failed, result=1
17
## Starting application at 0xc600 ...
18
=>

Habe mir den Flash angeschaut - da steht es auch richtig drin :-)

: Bearbeitet durch User
von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Marcel A. schrieb:
> Auf dem ECB Board habe ich sonst so an ICs:

Harald N. schrieb:
> Ich hoffe da ergibt sich jetzt keine böse Überraschung für mich.

Bei den anderen IC's gibt es keine Probleme. Die liegen ja komplett auf 
3.3V oder auf 5V. Nur der Pegelwandler muss mit beiden Spannungen klar 
kommen, deshalb auch 74AHC... oder 74LVC...

Marcel A. schrieb:
> War mir erst gar nicht aufgefallen. Jemand eine Idee?

Sieht mir nach einem Timing Problem aus. Bestücke doch erst mal komplett 
CPU und RAM damit die Busübernahme vom AVR korrekt durchgeführt werden 
kann.

von Marcel A. (dl1ekm)


Lesenswert?

Ich werde bekloppt...

Zunächst mal: mit dem AVR 1.0 auf dem ECB und der Z180-Stamp (alles 
3.3V) geht es prima - auch die beiden SD-Karten. Zugriff auf CPM ok.
1
=========================<  (RE)START DEBUG  >=========================                                                                                            
2
### Reset reason(s): External.                                                                                                                                     
3
4
ATMEGA1281+Z8S180 Stamp Monitor                                                                                                                                    
5
6
### main_loop entered: bootdelay=3                                                                                                                                 
7
8
### main_loop: bootcmd="reset; pin 8 low; loadcpm3; go ${startaddress}"
9
Hit any key to stop autoboot:  0 
10
CPU now in reset state.
11
z80_memfifo_init: 0, 0
12
z80_memfifo_init: 1, 0
13
z80_memfifo_init: 2, 0
14
z80_memfifo_init: 3, 0
15
Loading: '0:/cpm3+8drives.sys'...
16
17
 BNKBIOS3 SPR  F900  0500
18
 BNKBIOS3 SPR  C600  2A00
19
 RESBDOS3 SPR  F300  0600
20
 BNKBDOS3 SPR  9800  2E00
21
 
22
 60K TPA
23
Loaded: Resident: 0x1E300-0x1EDFF, Banked: 0x09800-0x0EFFF
24
## Starting application at 0xc600 ...
25
=> z80_memfifo_init: 0, ca7d
26
z80_memfifo_init: 1, cac1
27
z80_memfifo_init: 2, cc3d
28
z80_memfifo_init: 3, cc61
29
30
=> connect
31
Connecting to CPU. Escape character is '^\'.
32
33
Physical Devices: 
34
I=Input,O=Output,S=Serial,X=Xon-Xoff
35
USB0   NONE  IO     ASCI0  19200 IOS    ASCI1  19200 IOS    
36
37
38
Current Assignments: 
39
CONIN:  = USB0   
40
CONOUT: = USB0   
41
AUXIN:  = ASCI0  
42
AUXOUT: = ASCI0  
43
LST:    = Null Device
44
45
46
A>dir
47
A: BDOS3    SPR : BNKBDOS3 SPR : CCP      COM : COPYSYS  COM : CPMLDR   REL 
48
A: DATE     COM : DEVICE   COM : DIR      COM : DUMP     COM : ED       COM 
49
A: ERASE    COM : GENCOM   COM : GENCPM   COM : GET      COM : HELP     COM 
50
A: HELP     HLP : HEXCOM   COM : PATCH    COM : PIP      COM : PUT      COM 
51
A: README       : RENAME   COM : RESBDOS3 SPR : SAVE     COM : SET      COM 
52
A: SETDEF   COM : SHOW     COM : SID      COM : SUBMIT   COM : TYPE     COM 
53
A: FC       INI : FC80     COM : DISKCOPY COM : KERMIT   COM : PROFILE  BAK 
54
A: PROFILE  SUB 
55
A>


Nun die AVR 1.1 (gleiche Environment-Einstellungen und Karten) - und 
später auch im gleichen ECB.

Wenn ich die AVR Stamp mit der 2561er firmware flashe und "standalone" 
betreibe (3,3V oder 5V Einstellung), sieht die Startmeldung gut aus 
(keine "Rechtschreibfehler", mehr aber auch nicht, da keine SD-Karte 
verfügbar).
1
=========================<  (RE)START DEBUG  >=========================
2
### Reset reason(s): Power on, External, Brown out.
3
4
ATMEGA2561+Z8S180 Stamp Monitor V6.5 (8.3.2016)
5
6
### main_loop entered: bootdelay=5
7
8
### main_loop: bootcmd="reset; pin 8 low; loadcpm3; go ${startaddress}"
9
Hit any key to stop autoboot:  0 
10
CPU now in reset state.
11
z80_memfifo_init: 0, 0
12
z80_memfifo_init: 1, 0
13
z80_memfifo_init: 2, 0
14
z80_memfifo_init: 3, 0
15
Error: failed to open '1:/cpm3+8drives.sys'
16
Command failed, result=1
17
## Starting application at 0xc600 ...
18
=>

Wenn ich die AVR Stamp dann auf 3,3V jumpere und in das Basisboard 
einsetze, erscheinen wieder die "Rechtschreibfehler" (siehe nnw statt 
now) an immer genau der gleiche Stelle.
Auch meldet er BUS TIMEOUT und kann angeblich das CPM.SYS nicht laden. 
Ebenfalls sehen die z80 memfifo-Zeilen ganz anders aus...
1
=========================<  (RE)START DEBUG  >=========================
2
### Reset reason(s): External.
3
4
ATMEGA2561+Z8S180 Stamp Monitor V6.5 (8.3.2016)
5
6
### main_loop entered: bootdelay=5
7
8
### main_loop: bootcmd="reset; pin 8 low; loadcpm3; go ${startaddress}"
9
Hit any key to stop autoboot:  0 
10
CPU nnw in reset state.
11
z80_memfifo_init: $i, 0
12
z80_memfifo_init: $i, 1
13
z80_memfifo_init: $i, 2
14
z80_memfifo_init: $i, 3
15
Loading: '0:/cpm3+8drives.sys'...
16
17
 BNKBIOS3 SPR  F900  0500
18
 BNKBIOS3 SPR  C600  2A00
19
 RESBDOS3 SPR  F300  0600
20
 BNKBDOS3 SPR  9800  2E00
21
 
22
 60K TPA
23
Bus timeout
24
Error: failed to read '0:/cpm3+8drives.sys'
25
Command failed, result=1
26
## Starting application at 0xc600 ...
27
=>

Zugriff auf die SD geht aber soweit ich das testen kann:
1
=> sd init 0
2
rc=00
3
=> fatls 0:
4
----A 2015/09/23 20:51   8388608  ws33.dsk
5
----A 2015/09/24 19:46   8388608  basic.dsk
6
----A 2015/09/23 21:05   8388608  bdsc.dsk
7
----A 2015/06/12 09:14     22784  cpm3_4d.sys
8
----A 2015/09/24 10:57     25600  cpm3_8d.sys
9
----A 2015/09/23 22:00     25600  cpm3+8drives.sys
10
----A 2015/03/13 18:35   8388608  CPM3SY~1.DSK
11
----A 2015/05/21 08:16  14548992  cpm3test.dsk
12
----A 2015/09/23 20:54   8388608  dbaseii.dsk
13
----A 2015/09/20 17:57   8388608  development.dsk
14
----A 2015/08/27 15:49   8388608  editor.dsk
15
----A 2015/06/01 16:41   8388608  kermit.dsk
16
----A 2015/09/23 20:57   8388608  multiplan.dsk
17
----A 2014/12/12 19:54   8388608  neu.dsk
18
----A 2015/12/20 21:54   8388608  turbo3.dsk
19
----A 2008/04/12 19:19   1113536  vedit.dsk
20
----A 2015/09/24 14:33   8388608  mp.dsk
21
----A 2015/09/24 13:58   8388608  ws.dsk
22
----A 2015/12/18 18:40   8388608  ws4.dsk
23
  19 File(s), 133177024 bytes total
24
   0 Dir(s),    3720128K bytes free
25
=> fatstat 0:
26
FAT type:                3
27
Bytes/Cluster:           32768
28
Number of FATs:          2
29
Root DIR entries:        0
30
Sectors/FAT:             941
31
Number of clusters:      120320
32
FAT start (lba):         14502
33
DIR start (lba,cluster): 2
34
Data start (lba):        16384
35
Volume name:             CPM
36
Volume S/N:              3A09-FE1C
37
38
19 files, 133177024 bytes.
39
0 folders.
40
3850240 KB total disk space.
41
3720128 KB available.
42
=>

Nehme ich an dieser Stelle die cpm3_4d.sys (von früher) lande ich einer 
Bootschleife.

Es macht auch keinen Unterschied, ob ich die Datei von 0: oder 1: lese.

: Bearbeitet durch User
von Marcel A. (dl1ekm)


Lesenswert?

Noch eine Info wg. Bus Timeout. Die Duo-Led geht nach kurzer Zeit von 
Orange auf grün und die WAIT Led geht dann aus - so wie es sein soll.

Auf zum Z180 Board ist allerdings noch ein Quarz drauf. Der Jumper steht 
aber auf "Taktversorgung von Extern" und auf dem ECB steht der Jumper 
auf ACLK0. Ich messe an dem Jumper (Mitte) auch genau den Takt.
Umjumpern auf intern Quarz macht aber auch keinen Unterschied.

Mit der AVR 1.0 macht der Quarz hier keine Zicken. Oder muss der raus 
(Thema hatten wir oben schon mal...)

: Bearbeitet durch User
von Leo C. (rapid)


Lesenswert?

Bei "Rechtschreibfehlern" in der Ausgabe würde ich auf grenzwertiges 
Taktsignal tippen, obwohl dafür wieder sehr wenige Fehler drin sind.

Die Bus Timeouts könnten auch von einem unzuverlässigen Clock verursacht 
sein. Würde dem Z180 der Takt ganz fehlen, müßte der Fehler schon viel 
früher kommen.

Die AVRs werden bei 3,3V ja deutlich übertaktet.
Hast Du einen ATmega2561 (Ausgabe von avrdude weiter oben) oder doch 
einen ATmega2561V (Hast Du oben mal geschrieben)? Letzterer ist nur bis 
8MHz spezifiziert.

Jedenfalls:
- Welcher Taktoszillator wird verwendet? (fuses)
- Oszillator und CLKO pin mit Oszi anschauen.
- Taktfrequenz runtersetzen. Wenn kein passender Quarz vorhanden,
  den Prescaler umprogrammieren: In main.c, Funktion setup_avr() :
      CLKPR = _BV(CLKPCE);
      CLKPR = 0;  // -->  CLKPR = 1;

von Harald N. (haraldn)


Lesenswert?

Ups. Also hätte ich mich doch nicht streng nach Schaltplan halten 
dürfen...

von Marcel A. (dl1ekm)


Lesenswert?

Leo C. schrieb:
> Bei "Rechtschreibfehlern" in der Ausgabe würde ich auf grenzwertiges
> Taktsignal tippen, obwohl dafür wieder sehr wenige Fehler drin sind.
>
> Die Bus Timeouts könnten auch von einem unzuverlässigen Clock verursacht
> sein. Würde dem Z180 der Takt ganz fehlen, müßte der Fehler schon viel
> früher kommen.

Ich habe mal den Quarz auf dem Z180 ausgelötet - keine Änderung.
>
> Die AVRs werden bei 3,3V ja deutlich übertaktet.
> Hast Du einen ATmega2561 (Ausgabe von avrdude weiter oben) oder doch
> einen ATmega2561V (Hast Du oben mal geschrieben)? Letzterer ist nur bis
> 8MHz spezifiziert.
Den "ohne" V - aber laut Datenblatt sieht es so aus, dass der bei 16MHz 
eh nur einen "Safe"-Bereich von 4,5 - 5,5V hat. (Wieso ich oben 
geschrieben habe, dass das Board auch bei 3,3V standalone läuft, kann 
ich nicht sagen, denn dafür ist ja gar keine Spannung auf dem Board :-))
Hätte ich doch mal den 1281er genommen, aber den gibts bei Reichelt 
nicht (mehr). Aber eigentlich will ich ja eh bei 5V betreiben - da muss 
ich nur noch die 125er austauschen...

>
> Jedenfalls:
> - Welcher Taktoszillator wird verwendet? (fuses)
Exakt wie bei 1281 bzw. in der Doku. AF D6 FD
> - Oszillator und CLKO pin mit Oszi anschauen.
Kann ich nicht - das schafft wohl mein altes Teil nicht mehr...

> - Taktfrequenz runtersetzen. Wenn kein passender Quarz vorhanden,
Das muss ich dann wohl mal testen. Wäre ja übel.

>   den Prescaler umprogrammieren: In main.c, Funktion setup_avr() :
>       CLKPR = _BV(CLKPCE);
>       CLKPR = 0;  // -->  CLKPR = 1;

: Bearbeitet durch User
von Marcel A. (dl1ekm)


Lesenswert?

>   den Prescaler umprogrammieren: In main.c, Funktion setup_avr() :
>       CLKPR = _BV(CLKPCE);
>       CLKPR = 0;  // -->  CLKPR = 1;

Das hat aber zur Folge, dass die serielle Ausgabe Müll macht - offenbar 
wird dann eine andere Übertragungsrate eingestellt? (115200/8) = 14.400?

von Leo C. (rapid)


Lesenswert?

CLKPR = 1 teilt durch 2.
D.h. 115200 --> 57600, wenn F_CPU nicht angepasst wurde. Letzteres ist 
aber empfehlenswert, wg. Systemzeit, Timeouts, ...

von Marcel A. (dl1ekm)


Lesenswert?

Mein Held :-)

CLKPR und F_CPU haben es gebracht - alles ok bei 3,3V.

Gut dass du mir gezeigt hast, wie ich die Buildumgebung einrichten 
musste!

Jetzt hoffe ich mal, dass ich bei 5V dann auch wieder den Takt 
verdoppeln kann.
1
=========================<  (RE)START DEBUG  >=========================                                                                                            
2
### Reset reason(s): External.                                                                                                                                     
3
4
ATMEGA2561+Z8S180 Stamp Monitor V6.5 geringer Takt (14.3.2016)                                                                                                     
5
6
### main_loop entered: bootdelay=5                                                                                                                                 
7
8
### main_loop: bootcmd="reset; pin 8 low; loadcpm3; go ${startaddress}"
9
Hit any key to stop autoboot:  0 
10
CPU now in reset state.
11
z80_memfifo_init: 0, 0
12
z80_memfifo_init: 1, 0
13
z80_memfifo_init: 2, 0
14
z80_memfifo_init: 3, 0
15
Loading: '1:/cpm3+8drives.sys'...
16
17
 BNKBIOS3 SPR  F900  0500
18
 BNKBIOS3 SPR  C600  2A00
19
 RESBDOS3 SPR  F300  0600
20
 BNKBDOS3 SPR  9800  2E00
21
 
22
 60K TPA
23
Loaded: Resident: 0x1E300-0x1EDFF, Banked: 0x09800-0x0EFFF
24
## Starting application at 0xc600 ...
25
=> z80_memfifo_init: 0, ca7d
26
z80_memfifo_init: 1, cac1
27
z80_memfifo_init: 2, cc3d
28
z80_memfifo_init: 3, cc61
29
30
=> con 
31
Connecting to CPU. Escape character is '^\'.
32
33
Physical Devices: 
34
I=Input,O=Output,S=Serial,X=Xon-Xoff
35
USB0   NONE  IO     ASCI0  19200 IOS    ASCI1  19200 IOS    
36
37
38
Current Assignments: 
39
CONIN:  = USB0   
40
CONOUT: = USB0   
41
AUXIN:  = ASCI0  
42
AUXOUT: = ASCI0  
43
LST:    = Null Device
44
45
46
A>dir
47
A: BDOS3    SPR : BNKBDOS3 SPR : CCP      COM : COPYSYS  COM : CPMLDR   REL 
48
A: DATE     COM : DEVICE   COM : DIR      COM : DUMP     COM : ED       COM 
49
A: ERASE    COM : GENCOM   COM : GENCPM   COM : GET      COM : HELP     COM 
50
A: HELP     HLP : HEXCOM   COM : PATCH    COM : PIP      COM : PUT      COM 
51
A: README       : RENAME   COM : RESBDOS3 SPR : SAVE     COM : SET      COM 
52
A: SETDEF   COM : SHOW     COM : SID      COM : SUBMIT   COM : TYPE     COM 
53
A: FC       INI : FC80     COM : DISKCOPY COM : KERMIT   COM : PROFILE  BAK 
54
A: PROFILE  SUB 
55
A>

von Leo C. (rapid)


Angehängte Dateien:

Lesenswert?

Jetzt ist die Frage, ob Du einen Ausreißer hast, oder ob sich der 2561 
grundsätzlich schlechter übertakten läßt, als der 1281. Das die neue 
Layoutversion (1.1) mehr Probleme macht als die alte, schließe ich mal 
aus, das sie bei Joe mit ATmega1281 ja einwandfrei zu laufen scheint.

> Jetzt hoffe ich mal, dass ich bei 5V dann auch wieder den Takt
> verdoppeln kann.

Gerade beim ATmega2561 sollte die maximale Taktfrequenz unabhängig von 
der Betriebsspannung sein, siehe Anhang. Auf jeden Fall gibt es aber 
einen Unterschied zwischen ATmega2561 und dem Rest der Familie.

: Bearbeitet durch User
von Marcel A. (dl1ekm)


Lesenswert?

Das Bild hatte ich auch gesehen, da hatte mich gewundert, dass die 
X-Achse erst bei 4,5 V anfängt.
Wie du schon sagtest, auf jeden Fall etwas anders. Wir werden sehen.

von Leo C. (rapid)


Lesenswert?

> dass die X-Achse erst bei 4,5 V anfängt.

Oh, das habe ich ja total übersehen. :-(

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Leo C. schrieb:
> Das die neue
> Layoutversion (1.1) mehr Probleme macht als die alte, schließe ich mal
> aus, das sie bei Joe mit ATmega1281 ja einwandfrei zu laufen scheint.

Ist nicht repräsentativ, aber die zwei Versionen(1.1) die ich aufgebaut 
habe laufen mit dem ATmega1281 und 3.3V stabil. Bei der Version 1.0 gab 
es hin und wieder Probleme beim Einlesen des BIOS von der SD-Card. Das 
Taktsignal jitterte sehr. Erst mit "Full-Swing-Crystal" war Ruhe.

von Marcel A. (dl1ekm)


Lesenswert?

Während ich noch auf die 125er warte... habe ich noch zwei weitere 
Z80-Systeme in Betrieb genommen:
Den "Microprofessor": http://retro-compi.de/index.php/mpf1
Und den Z80 mini EMUF: http://retro-compi.de/index.php/z80-mini-emuf

Bei letzterem war auch ein sehr schönes MSR-Basic dabei - echtzeitfähig, 
guter IO-Zugriff usw.
Ich habe fast keine Informationen darüber gefunden (soll von der Uni 
München sein, speziell für den EMUF angepasst, aber auch für DOS und 
CP/M verfügbar gewesen sein).
Im Handbuch zum EMUF steht, dass man darauf (ist ja fast wie die Z180 
Stamp) ein CP/M realisieren "könnte" :-)

von Marcel A. (dl1ekm)


Lesenswert?

So die 74LVX125 von Reichelt sind angekommmen und nun geht es problemlos 
mit 3,3V und 5V. Danke für eure Hilfe!
Bitte diesen Hinweis für die oben mal von mir veröffentlichte BOM 
(Reichelt) beachten!

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Marcel A. schrieb:
> Und den Z80 mini EMUF: http://retro-compi.de/index.php/z80-mini-emuf

Das sieht mir fast aus wie der Z80mini3 [1,2]. Der Entwickler scheint 
sogar mal hier im Forum unterwegs gewesen zu sein [3].

[1] http://elmicro.com/de/z80mini3.html
[2] http://mct.de/product/z80mini3.html
[3] Beitrag "Re: alternative zu z80"

von Marcel A. (dl1ekm)


Lesenswert?

So, nun komme ich endlich zu meinem Frontpanel-Projekt.

Zuvor wollte ich aber dann noch die Funktionweise der 
LED/Einzelschrittsteuerung auf der ECB verstehen - das wurde zwar glaube 
ich oben schon mal diskutiert, aber ich habs noch nicht...

Zunächst WAIT:
ich gehe davon aus, PG2/WAIT auf dem AVR ist ein Ausgang - der direkt 
mit WAIT auf dem Z180 verbunden ist. Wann setzt der AVR das Signal auf 
Low? Es ist ja ein Befehl im BootCmd - ist das egal oder erst wenn die 
Speicheroperationen fertig sind?
Das Wait-Signal wird ja auch von der Steuerlogik auf der ECB bestimmt. 
Wobei die LED ja an der Basis des Transistors hängt und daher nicht 
direkt den Zustand von Wait anzeigt sondern nur den über die ECB 
gesteuerten Zustand?
Dass der Transistor dann ggf. ein High-Ausgang des AVRs auf LOW zieht 
ist egal?
Nun auch die Frage, wie das ECB Wait entsteht. Wenn ich die Logikstufen 
richtig verstanden habe: Die CPU "läuft", wenn entweder RUN Lowactiv 
gesetzt wird (aktiv vom AVR, wann genau?) oder der Rest der Schaltung 
"0" ausgibt. Das passiert glaube ich nur dann, wenn das D-FlipFlip (Takt 
aus MREQ/IORQ) mit der STEP-Leitung vom AVR auf 0 gesetzt wird (Reset). 
D.h. ein "Schritt" ist immer der Abstand zwischen zwei 
Speicher-Aktionen?
Wozu ist der Kondensator C8 vor CLR?

DuoLed HALT/RUN:
Bisher sehe ich in der Praxis nur den Zustand Grün oder Orange. Rot 
würde sie ja nur werden, denn HALT auf activelow wäre (und ZRESET high 
ist). Für "RUN" ergibt sich der Status ebenfalls aus den Gattern.
Auch hier zeigt "RUN" ja nicht den echten Status des RUN-Signals des 
AVRs...? Wird also RUN/STEP nur für die Einzelschrittsteuerung genutzt?
Gehe ich recht in der Annahme, dass ZRESET auch vom AVR gesteuert wird 
in der Startphase, um erst den Speicher zu füllen?

von Leo C. (rapid)


Lesenswert?

> ich gehe davon aus, PG2/WAIT auf dem AVR ist ein Ausgang - der direkt
> mit WAIT auf dem Z180 verbunden ist.

Nein, /WAIT ist am AVR nur als Eingang gedacht, um den Zustand abfragen 
zu können.

> Wobei die LED ja an der Basis des Transistors hängt und daher nicht
> direkt den Zustand von Wait anzeigt sondern nur den über die ECB
> gesteuerten Zustand?

Ja. Wäre die Led auf der anderen Seite des Transistors, könnte man 
sehen, wenn andere Busteilnehmer die CPU ausbremsen. Diese gibt es aber 
bisher nicht, und die Led hätte noch einen Treiber gebraucht.

> Dass der Transistor dann ggf. ein High-Ausgang des AVRs auf LOW zieht
> ist egal?

Das ist nicht vorgesehen, da der AVR-Port ja nicht mit der Z180-CPU 
synchronisiert ist. Genau dafür gibt es ja die Single-Step Logik auf der 
ECB-Karte.

Das ganze funktioniert so:
/RUN = 0 :
    Single Step ist abgeschaltet, CPU läuft

/RUN = 1 :
    Durch /MREQ=0 oder /IOREQ=0 wird das D-FF gesetzt
    --> /WAIT wird 0, CPU wird angehalten.

    Durch einen Low-Impuls an /STEP wird das FF zurückgesetzt
    --> /WAIT wird wieder 1, CPU läuft bis zum nächsten
        Memory- oder I/O-Zugriff.

Der Kondensator sorgt (zusammen mit dem Widerstand) dafür, das an /CLR 
des FF nur ein kurzer Impuls erzeugt wird. Sonst könnte es passieren, 
dass /CLR beim nächsten MEM- oder I/O-Zugriff noch aktiv ist, und das FF 
nicht gesetzt werden kann.


> DuoLed HALT/RUN:

Die Duoled ist unabhängig von der Single-Step-Logik.
Orange: CPU außer Betrieb, AVR-Monitor hat Kontrolle über das System.
Grün: CPU läuft.
Rot: CPU steht auf HALT-Befehl. Das kommt in die Interupt-gesteuerten 
I/O-Treiber rein. Dann sieht man an der Led, ob die CPU auf Eingaben 
wartet, oder beschäftigt ist. Oder ob das Programm abgestürzt ist, und 
in einer Endlosschleife hängt...

> Gehe ich recht in der Annahme, dass ZRESET auch vom AVR gesteuert wird
> in der Startphase, um erst den Speicher zu füllen?

Ja. Und es gibt Monitor-Befehle um einen Reset-Impuls auszulösen, oder 
den Reset dauerhaft zu aktivieren.

von Marcel A. (dl1ekm)


Lesenswert?

Danke - soweit jetzt weitgehend klar.

Bis zu meinem ersten Entwurf eigentlich nur noch eine Frage: Bei dem 
S100 Panel hat er bei einige LEDs (die mit "Impulsen") durch ein 
MonoFlop (74LS123) die Anzeige verlängert - macht das Sinn?

http://www.s100computers.com/My%20System%20Pages/SMB%20Board/S100%20Bus%20SMB.htm

von Leo C. (rapid)


Lesenswert?

> macht das Sinn?

Kommt drauf an. ;-)

Die c't hatte auch mal einen interessanten Bus-Monitor, der auch im 
N8VEM-Projekt gelandet ist:

http://www.retrobrewcomputers.org/doku.php?id=boards:ecb:bus-monitor:start
http://www.retrobrewcomputers.org/lib/exe/fetch.php?media=boards:ecb:bus-monitor:ecb_ct_bus_monitor.pdf

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Das c't Projekt ist ja richtig gut :-) Minimaler Hardwareaufwand bei 
maximaler Funktionanlität.

von Marcel A. (dl1ekm)


Lesenswert?

Ich muss mich auch noch mal mehr mit der Speicheraufteilung 
beschäftigen. Die Darstellung ganz weit oben weicht ja schon vom 
"Standard CPM 3" ab. Im Moment bin ich froh, dass die Aufteilung bei 
einem normalen Z80 (hier NDR NKC) verstanden habe :-)

Falls ich mal eine "echte" IO-Baugruppe einbauen möchte ("so wie 
früher"), würde ich dieser doch eine Adresse in der Page-0 geben (mit 
nem einfachen Addessdekoder?
Ich bin mal ein paar Dateien durchgegangen - aber ich finde keine 
Übersicht der belegten Adressen?

Hier hier sind ja die I2C-Routinen auch drin - die Uhr ist daran ja 
angebunden - ich glaube Adresse 50?.
Kann man den Bus auch "generisch" vom Z180 aus zugreifbar machen?

Ach ja - wie stehts eigentlich um das Vinculum?

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Marcel A. schrieb:
> Ach ja - wie stehts eigentlich um das Vinculum?

Der läuft gerade auf Sparflamme. Mein Verlag erwartet von mir noch in 
diesem Jahr ein 350seitiges Manuskript. Der nächste Schritt beim 
Vinculum ist erst mal eine kleine Zusatzplatine, damit jeder Interessent 
sich diese Hardware anstecken kann.

von Leo C. (rapid)


Lesenswert?

Marcel A. schrieb:
> Ich muss mich auch noch mal mehr mit der Speicheraufteilung
> beschäftigen. Die Darstellung ganz weit oben weicht ja schon vom
> "Standard CPM 3" ab.

Wo gibt es denn ein "Standard CP/M 3" mit einem 512 KByte RAM-Chip?

> Falls ich mal eine "echte" IO-Baugruppe einbauen möchte ("so wie
> früher"), würde ich dieser doch eine Adresse in der Page-0 geben (mit
> nem einfachen Addessdekoder?

I/O wird in Z80-Systemen üblicherweise über I/O-Adressen angesprochen, 
hat also mit der Speicher-Adressierung nichts zu tun.

> Ich bin mal ein paar Dateien durchgegangen - aber ich finde keine
> Übersicht der belegten Adressen?

Bisher haben wir ja nur die Peripherie, die bereits im Z180 eingebaut 
ist. Die Belegung findest Du also in den Z180 Handbüchern. (Und in der 
Datei z180reg.inc) Die Z180-Peripherie belegt die ersten 64 Byte des 
I/O-Adressraums.

> Hier hier sind ja die I2C-Routinen auch drin - die Uhr ist daran ja
> angebunden - ich glaube Adresse 50?.
> Kann man den Bus auch "generisch" vom Z180 aus zugreifbar machen?

Das ist angedacht.

von Marcel A. (dl1ekm)


Lesenswert?

Leo C. schrieb:
> I/O wird in Z80-Systemen üblicherweise über I/O-Adressen angesprochen,
> hat also mit der Speicher-Adressierung nichts zu tun.
Schon klar, so war das auch gemeint.

> Bisher haben wir ja nur die Peripherie, die bereits im Z180 eingebaut
> ist. Die Belegung findest Du also in den Z180 Handbüchern. (Und in der
> Datei z180reg.inc) Die Z180-Peripherie belegt die ersten 64 Byte des
> I/O-Adressraums.
Das hatte ich gesucht. Aber warum nur 64 bytes? Das sind doch "sonst" 
256 Bytes? Bis 3F ist ja schon alles voll :-)

von Leo C. (rapid)


Lesenswert?

Marcel A. schrieb:
> Das hatte ich gesucht. Aber warum nur 64 bytes?

Warum denn nicht? Was fehlt Dir denn?

> Das sind doch "sonst"
> 256 Bytes?

Wo denn?

>Bis 3F ist ja schon alles voll :-)

2 Adressen, bzw. Adressbereiche hatte ich noch vergessen. 40-5F werden 
auf der AVR-Stamp ausdekodiert, um dem AVR 2 Interrupt-Signale senden zu 
können.

von Marcel A. (dl1ekm)


Lesenswert?

Mit dem IORQ werden doch A0 - A7 adressiert. Das sind 256 IO Asressen.
Du nutzt doch selbst mit 5F Adressen jenseits 64, vermutlich haben wir 
aneinander vorbei gesprochen.
Ich würde meiner IO Karte dann z.B. Die IO Adresse 70h geben... Und 
müsste die dan mit den in und out Befehlen ansprechen können?

http://home.mit.bme.hu/~benes/oktatas/dig-jegyz_052/Z80-kivonat.pdf
Letzte Seite.

von Leo C. (rapid)


Lesenswert?

> Ich würde meiner IO Karte dann z.B. Die IO Adresse 70h geben... Und
> müsste die dan mit den in und out Befehlen ansprechen können?

Ja.

von Marcel A. (dl1ekm)


Angehängte Dateien:

Lesenswert?

So, ich habe hier einmal meine Idee einer Bussignal-Anzeige skizziert 
mit der Bitte um Feedback.

Falls man davon wirklich eine Platine machen sollte, muss ich mir noch 
etwas für die Verbindungen der Basis- und Anzeigeeinheit überlegen.

Für die Anzeige verwende ich derzeit TIL311 - diese haben die 
Treiber/Dekoderlogik schon eingebunden - ich hatte einige günstig 
erstanden.

Eine Alternative wären vielleicht später noch "normale" 
7-Segment-Anzeigen mit eine D345D (ex DDR) Dekoder (habe ich auch welche 
hier) - oder eben mit einem AVR als Dekoder-IC.

Im Moment sind alle Signale gepuffert.
Die Status-LEDs sind 1:1 verdrahtet - ohne Monoflop.
Für die Adress-Anzeige habe ich einen Latch aus MREQ und IORQ gebildet.
Wahrscheinlich kann man den auch für die Datenanzeige verwenden, 
ansonsten ist ein Latch aus RD/WR vorhanden.

Dann habe ich noch einmal die SingleStep-Logik des ECB Basisboards 
übernommen und an "richtige" Schalter für einen manuellen Betrieb 
angeschlossen.

Ich habe mich mal gezwungen, KiCad zu nehmen, da Eagle in der 
Free-Version ja auch halbe Euro-Platinengröße begrenzt.

von Leo (Gast)


Lesenswert?

Marcel A. schrieb:
> So, ich habe hier einmal meine Idee einer Bussignal-Anzeige skizziert
> mit der Bitte um Feedback.

Bin unterwegs, deshalb kann ich die Pläne nicht richtig anschauen. 
Adressen und Daten sollten imho gleichzeitig gelached werden. Da unser 
Adressbus 20 Leitungen hat, würde ich für die Anzeige 5 Stellen 
vorschlagen.
Der Step-Taster muß entprellt werden.

Wenn man Displays mit Hexdecoder selber bauen  will, wären die 8x8 
Matrix-Displays, die man bei den Chinesen in vielen Varianten mit und 
ohne Treiber findet vielleicht einen Blick wert.

Gleich kommt Karlsruhe, da könnte ich den Text ja beinahe persönlich 
abgeben. :-)

Frohe Ostern

von Marcel A. (dl1ekm)


Lesenswert?

Karlsruhe? - Das ist nicht meine Ecke :-)

5-stelliger Adressbus - ok. Wahrscheinlich wären dann auch noch die 
anderen Signale des Z180 wie INT1 und INT2 und ... sinnvoll? Ich habe 
mich halt derzeit auf den "Standard"-Z80 beschränkt - das ist mir schon 
komplex genug.

Entprellen - reicht das C da nicht? Sonst habe ich noch Schaltungen mit 
Doppel-NAND (oder so) zur Entprellung gesehen - meinst du so was?

Und ich habe noch etwas Stress mit dem FTDI (wobei ich immer wieder 
schwören könnte, dass ich das vorher nicht hatte).
Solange ich die ECB über USB Power versorge, klappt es wunderbar. Auch 
die Umschaltung auf RX/TX-MAX232 auf "echte" serielle (Reset des FTDI) 
klappt gut mit einem kleinen Schalter auf der Frontplatte.
Es geht auch weiterhin gut, wenn ich die ECB in den Rahmen stecke, 
natürlich den Jumper für BUS Power ziehe aber weiterhin ein USB-Kabel am 
FTDI lasse.
Nur wenn ich das USB Kabel nun abziehe (und RESET gegen GND schalte) und 
Spannung einschalte, gegen bei beiden LEDs am FTDI auf Dauerlicht. Am 
RX/TX kommt zuerst etwas Müll, aber dann kommt die Anzeige. Eingaben 
gehen dann aber nicht mehr.
Stecke ich kurz das USB-Kabel in die Buchse, "berappelt" sich der FTDI 
(Lampen gehen aus) und ich kann wunderbar über RX/TX und COM1 arbeiten.
Als wenn der FTDI ohne USB-Verbindung in einen undefinierten Zustand 
gehen würde beim Power-on. Ich habe aber mit FT-Prog keine mir sinnvolle 
erscheinende Einstellung gefunden, das zu ändern.

von Marcel A. (dl1ekm)


Lesenswert?

Vergesst das FT232-Problem. Ich hatte mal (weil es damit besser ging) 
einen Widerstand in die TX-Leitung des Moduls eingebaut - ohne geht es 
(jetzt) super :-)

Zum Entprellen habe ich (wie auch an vielen anderen Stellen) das hier 
gefunden:
http://www.loetstelle.net/praxis/entprellen/entprellen.php
https://www.mikrocontroller.net/articles/Entprellung#Einfacher_Taster

Im S100 Frontpanel wird der Wechselschalter verwendet - ich würde hier 
aber die Integrations-Methode (RC + Inverter) nehmen - reicht die 
einfache Variante mit R=33k und C=100n?

: Bearbeitet durch User
von Marcel A. (dl1ekm)


Lesenswert?

Beim Testen/Aufräumen meiner "Disk-Images" ist mir aufgefallen, dass man 
im AVR Monitor zwar zur Laufzeit neue Images auf Drives legen kann, wenn 
man die austauscht, hat das aber zur Laufzeit im CPM keine Auswirkungen.

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Marcel A. schrieb:
> reicht die einfache Variante mit R=33k und C=100n?
Das kann so pauschal nicht beantwortet werden. Es hängt stark von der 
qualität der Schalter (Taster) ab. ich würde es mal mit den vorhandenen 
Tastern auf einem Steckbrett erproben.

von Leo C. (rapid)


Lesenswert?

Marcel A. schrieb:
> Entprellen - reicht das C da nicht? Sonst habe ich noch Schaltungen mit

Das C (mit dem R) ist ein Hochpass und macht damit gerade das Gegenteil.

> Doppel-NAND (oder so) zur Entprellung gesehen - meinst du so was?

Ja, wobei man hier auch das 2. FF im 7474 nehmen könnte (Set- und 
Reset-Eingang).

Marcel A. schrieb:
> Im S100 Frontpanel wird der Wechselschalter verwendet - ich würde hier
> aber die Integrations-Methode (RC + Inverter) nehmen

Das geht notfalls auch, aber der Inverter muß ein Schmitt-Trigger sein. 
Und wie Joe geschrieben hat, hängt das RC-Glied vom verwendeten Taster 
ab.

Für den RUN/STOP-Schalter reicht übrigens ein einfacher Schließer plus 
Pullup.

Marcel A. schrieb:
> Beim Testen/Aufräumen meiner "Disk-Images" ist mir aufgefallen, dass man
> im AVR Monitor zwar zur Laufzeit neue Images auf Drives legen kann, wenn
> man die austauscht, hat das aber zur Laufzeit im CPM keine Auswirkungen.

Hast Du nach dem "Disk-Wechsel" auch Ctrl-C gedrückt?

von Marcel A. (dl1ekm)


Lesenswert?

>
> Hast Du nach dem "Disk-Wechsel" auch Ctrl-C gedrückt?

Ähm, nein... Wo denn, im CCP?

von Leo C. (rapid)


Lesenswert?

Ja.

CP/M kann ab Version 3 stattdessen auch ein Disk-Change-Signal 
auswerten. Dieses Signal müßte vom AVR-Monitor beim Ändern der 
Environment-Variable an den Z180 übermittelt werden. Das ist bisher noch 
nicht implementiert.

von Leo C. (rapid)


Angehängte Dateien:

Lesenswert?

CompactFlash Interface ganz einfach.

Vor kurzem bin ich zufällig darüber gestolpert, daß alle CF-Karten im 
'True IDE Mode' 8 Bit Datenübertragung unterstützen. Bei IDE Festplatten 
ist das wohl nur bei den allerersten der Fall, aus der Zeit, als noch 
PC-XTs verkauft wurden. Eine CF-Karte und einige 'DiskOnModule'[1], die 
auch nur einen CF-Controller enhalten, liegen hier schon seit Jahren 
rum. Aber ein performantes 16-Bit Interface war mir immer zu 
aufwendig[0].

Leider hatte ich keine Decoder (74HC138 oder '139) vorrätig. Damit 
könnte man das Gattergrab deutlich reduzieren. Die Buffer in den 
Adressleitungen A0-A2 sind leider notwendig. Grundsätzlich funktioniert 
das Interface bei 3.3V. Allerdings habe ich bisher nur mit 9,2MHz 
getestet. Ob die HC-Gatter bei 18,432MHz (oder mehr) und 3.3V noch 
schnell genug sind, habe ich noch nicht getestet.

Der CP/M 3 Treiber funktioniert grundsätzlich. Für den Datentransfer 
kann ein DMA-Kanal verwendet werden. Dadurch wird das IF sauschnell. 
Allerdings habe ich einen dicken Fehler noch nicht gefunden. Deshalb 
gibts dieses Wochenende noch keine Software.

[0] Z.B hier http://www.gaby.de/gide/index.htm
und hier: Beitrag "Spikes, Designproblem ?"
Etwas einfacher, aber nicht mehr performant, ist das hier:
http://www.retroleum.co.uk/electronics-articles/an-8-bit-ide-interface/

[1] Die Teile gibts spottbillig bei Pollin, billiger als die günstigsten 
CF-to-IDE Adapter: 
http://www.pollin.de/shop/dt/OTAyODkyOTk-/Computer_und_Zubehoer/Hardware/Festplatten_intern/DiskOnModule_PQI_IDE_128_MB.html
Das Kabel, das man optional mitbestellen kann, braucht man nicht, da das 
Modul auch über Pin 20 versorgt werden kann. Scheint auch mit 3.3V zu 
laufen, aber gründliche Tests stehen noch aus.

von Marcel A. (dl1ekm)


Lesenswert?

Prima Sache!

Die CF wird dann unter CP/M (wie genau?) angesprochen? Was ist denn da 
für ein Filesystem drauf?

Leider gibts ja kaum noch CF-Karten (in meiner uralten Kamera steckt 
glaube ich noch eine :-)) Von daher bin ich auch sehr auf das USB 
Vinculum Projekt gespannt.

von Leo C. (rapid)


Lesenswert?

Marcel A. schrieb:
> Die CF wird dann unter CP/M (wie genau?) angesprochen?

Wie eine IDE-Festplatte. Unter den o.g Links (GIDE und Retroleum) ist 
das ausführlich erklärt.
Der Datentransfer erfolg mit voller CPU-Busgeschwindigkeit. Das dürfte 
(zumindest beim Lesen) kaum langsamer als eine RAM-Disk sein.

> Was ist denn da für ein Filesystem drauf?

Das halt, das man drauf macht.
Das ist ebenfalls genauso wie auf Festplatten oder SD-Karten. CF-Karten 
können nicht im laufenden System gesteckt oder gezogen werden, wenn sie 
im Tue-IDE-Mode betrieben werden. Deshalb kann man sie wirklich wie eine 
Festplatte behandeln und das Dateisystem kann auch irgendwas spezielles 
für diesen einen Computer sein.

Ich habe vor, die Karte genauso zu partitionieren, wie auf dem 
AVR-CP/M-System, also MBR mit Partitionstabelle und 1 bis 4 
CP/M-Partitionen. Der Rest der Karte kann dann für andere Dateisysteme 
genutzt werden (FAT). Nicht geplant ist, CP/M-Dateisystem-Images auf 
einer FAT-Partition zu unterstützen. Dafür haben wir ja noch die 
SD-Karten.

> Leider gibts ja kaum noch CF-Karten

Da wäre ja vielleicht das Pollin DiskOnModule Teil eine Möglichkeit.

von Joe G. (feinmechaniker) Benutzerseite


Angehängte Dateien:

Lesenswert?

Leo C. schrieb:
> Da wäre ja vielleicht das Pollin DiskOnModule Teil eine Möglichkeit.

Sehr schöne Arbeit Leo!
Über Reroleum bin ich vor einiger Zeit auch schon mal gestolpert und 
habe in einem Anflug von "Hamstern" bei Max Pollin zugelangt :-)
Wenn also jemand die Versandkosten sparen möchte... für einige (viele) 
CP/M Systeme reicht mein Vorrat. Vielleicht gleich mit einer kleinen 
Platine, dann lohnt sich der Aufwand auch bei Elecrow die USB-Platine zu 
bestellen.

von Leo C. (rapid)


Lesenswert?

Aber Hallo! ;-)

Ich hatte mich mit 3 Stück begnügt. Damals hatten sie aber noch 1,50 
€/Stck gekostet.

> Vielleicht gleich mit einer kleinen Platine

Eine kleine Platine, auf die nur so ein DoM passt, könnte man als 
Huckepack-Platine für das Stamp-Modul machen. Für einen 
CF-to-IDE-Adapter reicht der Platz nicht. Die Adapter bestehen 
eigentlich auch nur aus der Verbindung zweier Stecker. Könnte man auch 
weglassen. Aber die 50 poligen CF-Sockel sind einzeln wahrscheinlich 
teurer, und vor allem schwer zu löten.

Europakarte (ECB) ist eigentlich überdimensioniert. Es sei denn, wir 
finden noch was anderes, was mit drauf passen könnte. Andererseits 
könnte man eine ECB-Karte auch für andere Systeme verwenden.

von Marcel A. (dl1ekm)


Lesenswert?

Vielleicht noch einen Parallelport zum Steuern und Regeln, 8255. Dann 
lohnt der Adressdecoder :-)

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Leo C. schrieb:
> Eine kleine Platine, auf die nur so ein DoM passt, könnte man als
> Huckepack-Platine für das Stamp-Modul machen.

So war damals schon mein Plan, einfach Huckepack auf den Stamp als 
Festplatte.

von Marcel A. (dl1ekm)


Lesenswert?

Leo C. schrieb:
> Die Buffer in den
> Adressleitungen A0-A2 sind leider notwendig.

Was ist denn U5 für ein Baustein? 245/541?

von Leo C. (rapid)


Lesenswert?

> Vielleicht noch einen Parallelport zum Steuern und Regeln, 8255.

Z80 PIO?

Allerdings geht damit kein 3.3V Betrieb. Ein paar Latches und Buffer?

> Was ist denn U5 für ein Baustein? 245/541?

HC126. War in der Bastelkiste. Jeder andere Buffer geht aber auch. Man 
hätte auch die 3 freien Gatter nehmen können, aber da 2 davon 
invertieren, wäre die Reihenfolge der IDE-Register nicht mehr Standard. 
Außerdem gings mit dem Extra-Baustein schneller.

von Marcel A. (dl1ekm)


Lesenswert?

Leo C. schrieb:
> Bank 0: 00000 - 0EFFF
> Bank 1: F0000 - 1DFFF  (+ F000)
> common: 1E000 - 1EFFF  (+ F000)
> Bank 2: 1F000 - 2DFFF  (+ F000 + 1000)
> usw.                   (+ F000)

ich kämpfe mich gerade durch die Speicherarchitektur.
Muss es bei Bank 1 nicht heißen:
Bank 1: 0F000 - 1DFFF  (+ F000) ?

von Leo C. (rapid)


Lesenswert?

Ja.

von Marcel A. (dl1ekm)


Lesenswert?

Joe, ich glaube in deinem Anhang A sind ein paar Fehler in der 
PIN-Beschreibung:
- A12/A13 ist laut AVR Schaltplan PG5/PG4 (nicht PG4/PG5)
- B26 ist ja beim AVR RXD0
- B27 ist ja beim AVR RXD1
- Müssten B3-B5 nicht bei Z180 und AVR A16-A18 sein (statt PE2-PE4)?

von Joe G. (feinmechaniker) Benutzerseite


Angehängte Dateien:

Lesenswert?

Marcel A. schrieb:
> - A12/A13 ist laut AVR Schaltplan PG5/PG4 (nicht PG4/PG5)
Das verstehe ich nicht. Im AVR-Schaltplan steht:
B8 - A13 - PC5
B9 - A12 - PC4
ist doch korrekt so.

> - B26 ist ja beim AVR RXD0
> - B27 ist ja beim AVR RXD1
B26 /WAIT - RXD0
B27 /PHI - TXD0

> - Müssten B3-B5 nicht bei Z180 und AVR A16-A18 sein (statt PE2-PE4)?
B3 - A18 - PE4
B4 - A17 - PE3
B5 - A16 - PE2
ist doch auch korrekt, oder?

von Marcel A. (dl1ekm)


Angehängte Dateien:

Lesenswert?

Joe G. schrieb:
> Marcel A. schrieb:
>> - A12/A13 ist laut AVR Schaltplan PG5/PG4 (nicht PG4/PG5)
> Das verstehe ich nicht. Im AVR-Schaltplan steht:
> B8 - A13 - PC5
> B9 - A12 - PC4
> ist doch korrekt so.

Sorry, ich meinte A12/A13 auf der PIN-Leiste der AVR-Stamp. Das ist im 
obigen Übersichtsbild anders als im AVR Schaltplan. Da ist PG4/PG5 
anderes herum.

>
>> - B26 ist ja beim AVR RXD0
>> - B27 ist ja beim AVR RXD1
> B26 /WAIT - RXD0
> B27 /PHI - TXD0

Genau - da hatte ich wohl das SVN nicht aktualisiert.

>
>> - Müssten B3-B5 nicht bei Z180 und AVR A16-A18 sein (statt PE2-PE4)?
> B3 - A18 - PE4
> B4 - A17 - PE3
> B5 - A16 - PE2
> ist doch auch korrekt, oder?

In deinem Bild schon. Ich bezog mich aber auf dieses hier (da wo die 
gemeinsamen Anschlüsse grün sind). Da müsste B3-B5 doch auch grün sein?

: Bearbeitet durch User
von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Marcel A. schrieb:
> Sorry, ich meinte A12/A13 auf der PIN-Leiste der AVR-Stamp. Das ist im
> obigen Übersichtsbild anders als im AVR Schaltplan. Da ist PG4/PG5
> anderes herum.

Bin immer noch verwirrt. Im AVR Schaltplan liegen
B8 - A13 - PC5
B9 - A12 - PC4
und am Z180 Schaltplan liegen
B8 - A13
B9 - A12
alles so wie in der Beschreibung.

> Da müsste B3-B5 doch auch grün sein?
ja, dürfen grün sein.

von Marcel A. (dl1ekm)


Lesenswert?

Joe,

in der Pin-Leiste ist PIN (Stiftleiste)
A12 = PG4 / RTS0
A13 = PG5 / CTS0

Im AVR Schaltplan 1.1 ist aber PIN (Stiftleiste)
A12 = PG5
A13 = PG4

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Ok, begriffen ich hatte immer nach den Adressen geschaut und nicht nach 
den Pins der Steckverbinder. A12 und A13 sind nun in der Doku getauscht.

von Holm T. (Gast)


Lesenswert?

Ich habe mal eine Frage zur Inbetriebnahme..es ist ziemlich schwierig 
sich durch den ellenlangen Thread zu fräsen..

Ich habe die Version 1.1 von den Platinen, noch keine SD Karte dran, 
weil mir der Slot auf der AVR-Stamp noch fehlt.
Auf der Z180-Stamp befindet sich ein Z8S18020VSG, der war bei mir noch 
in der Ramschkiste und den gibts wohl auch noch bei Darisus...
Die ECB Platine ist mir Einzelschrittmimik bestückt, deshalb habe ich 
ins bootcmd pin 8 low aufgenommen.
Auf dem AVR 1281 befindet sich hexrel6.5, mir ist es aber noch nicht 
gelungen einen "Piep" vom Z180 zu sehen, werde als nächstes mal testen 
ob der ein Halt ausführt. Die Versorgung steht jetzt komplett auf 3,3V 
von der Z180 Stamp, ich hoffe der Z180 läuft da mit 18Mhz und 3,3V 
noch..?

Wie ist das bei hexrel-6.5, ich nehme an der DDTZ ist da noch drin, ist 
der auf Startadresse 0 so dass ich nach connect mal einen Prompt sehen 
müßte?
1
=========================<  (RE)START DEBUG  >=========================
2
### Reset reason(s): External.
3
4
ATMEGA1281+Z8S180 Stamp Monitor
5
6
### main_loop entered: bootdelay=3
7
8
### main_loop: bootcmd="reset; pin 8 low; loadf; go ${startaddr}"
9
Hit any key to stop autoboot:  0 
10
=>  printenv
11
baudrate=115200
12
bootcmd=reset; pin 8 low; loadf; go ${startaddr}
13
bootdelay=3
14
cpm3_file=1:/cpm3.sys
15
pin_alias=0:PG5,1:PG4,2:PB4,3:PB5,4:PB6,5:PB7,6:PG3,7:PG2,8:PG1,9:PG0,10:PE7
16
startaddr=0
17
18
Environment size: 188/1597 bytes

Die seriellen Schlipse sind auch noch nicht dran, bestellt ist das Zeug, 
hoffe das kommt noch vor dem WE..

edit:
mtest und Z180 auf Halt schicken scheint zu funktionieren, warum bekomme 
ich auf der USB Strippe keine Verbindung?

BTW: connect sagt escape char währe ^^ ist aber bei mir ^X ??

Gruß,

Holm

von Leo C. (rapid)


Lesenswert?

> ob der ein Halt ausführt. Die Versorgung steht jetzt komplett auf 3,3V
> von der Z180 Stamp, ich hoffe der Z180 läuft da mit 18Mhz und 3,3V
> noch..?

Laut Datenblatt sollte er.

> Wie ist das bei hexrel-6.5, ich nehme an der DDTZ ist da noch drin, ist
> der auf Startadresse 0 so dass ich nach connect mal einen Prompt sehen
> müßte?

Der Prompt kommt defaultmäßig an ASCI1. 115200 Baud bei 18,432MHz.
Um die Verbindung zu der AVR-Console zu leiten, mußt Du nach dem loadf 
das IOBYTE auf RAM-Adresse 3 auf 0 setzen (mm- oder mw.Befehl).


> ### main_loop: bootcmd="reset; pin 8 low; loadf; go ${startaddr}"

"go ${startaddr}"
Die Variable heißt eigentlich "startaddress" und das funktioniert nur 
mit dem loadcpm3-Befehl (Könnte man auch mal ändern). Also "go 0" 
stattdessen (in "bootcmd" oder manuell).

> startaddr=0

Na gut, wenn in startaddr zufällig 0 steht, gehts auch.

von Holm T. (Gast)


Lesenswert?

Hmm...
1
=========================<  (RE)START DEBUG  >=========================
2
### Reset reason(s): External.
3
4
ATMEGA1281+Z8S180 Stamp Monitor
5
6
### main_loop entered: bootdelay=3
7
8
### main_loop: bootcmd="reset; pin 2 low 8 low 3 9MHz; loadf; go ${startaddr}"
9
Hit any key to stop autoboot:  0 
10
=>  pin 2 low 8 low 3 9MHz
11
=> loadf
12
Loading Z180 memory... 
13
   From: 0x00000 to: 0x00003    (    4 bytes)
14
   From: 0x00008 to: 0x0000A    (    3 bytes)
15
   From: 0x00010 to: 0x00012    (    3 bytes)
16
   From: 0x00018 to: 0x0001A    (    3 bytes)
17
   From: 0x00020 to: 0x00022    (    3 bytes)
18
   From: 0x00028 to: 0x0002A    (    3 bytes)
19
   From: 0x00030 to: 0x00032    (    3 bytes)
20
   From: 0x00038 to: 0x0003A    (    3 bytes)
21
   From: 0x00040 to: 0x00043    (    4 bytes)
22
   From: 0x00050 to: 0x02BE4    (11157 bytes)
23
   From: 0x02BF4 to: 0x02E64    (  625 bytes)
24
   From: 0x02EA7 to: 0x02EA8    (    2 bytes)
25
   From: 0x02EEB to: 0x02EEC    (    2 bytes)
26
   From: 0x02F0F to: 0x02F10    (    2 bytes)
27
=> mw 3 0
28
=> go 0
29
## Starting application at 0x0000 ...
30
=> connect
31
Connecting to CPU. Escape character is '^^'.

...da passiert dann nix mehr. Die DuoLED grinst grün...

Das mit dem A17 Pulldown an der Z180 Stamp hatte sich indessen erledigt?

Gruß,

Holm

von Leo C. (rapid)


Lesenswert?

> => go 0
> ## Starting application at 0x0000 ...
> => connect
> Connecting to CPU. Escape character is '^^'.
>
> ...da passiert dann nix mehr. Die DuoLED grinst grün...

Hm, sollte eigentlich so aussehen:
1
=> g 0
2
## Starting application at 0x0000 ...
3
=> z80_memfifo_init: 0, 2e67
4
z80_memfifo_init: 1, 2eab
5
z80_memfifo_init: 2, 2eef
6
z80_memfifo_init: 3, 2f13
7
con
8
Connecting to CPU. Escape character is '^^'.
9
DDT/Z - HD64180  (ROM)
10
>

> Das mit dem A17 Pulldown an der Z180 Stamp hatte sich indessen erledigt?

Ja.

Nachtrag:
Du könntest versuchsweise auf der ECB-Karte den Jumper JP3 auf 2/3 
stecken und über PIN3 einen langsameren Takt einstellen.

: Bearbeitet durch User
von Holm T. (Gast)


Lesenswert?

...ich kriege die Männeln...

Leo mir ist der Zusammenhang mit den Clocks nicht klar und 
offensichtlich liegt hier das Problem.
Ich habe sowohl ein 18,432Mhz Quarz da liegen als auch mit den Jumpern
(JP3 auf ECB und  JP1 auf Z180 Stamp) experimentiert. (Joe, 
bitte...bitte! kennzeichne das nächste Mal jeweils die Position 1 an 
Steckverbindern und Jumpern, Du kriegst vom Platinenhersteller kein Geld 
zurück wenn Du das weg läßt!) und habe jetzt irgendwie da durcheinander.

Ich habe in dessen irgend ein China PL2303 Viech an Con 3 angeprömpelt 
und JP5 auf der ECB Platine gesetzt, damit dürfte der MAX abgeschaltet 
sein.

Ich habe nun gemerkt das die Schnittstelle mit 115200 sendet und nicht 
mit 57600 wie ich erwartet hatte. Mir sind ja etliche Details noch nicht 
klar und ich dachte die Z180 wird immer mit 18,432 betrieben, CLK0 tut 
das aber natürlich mit 9,2Mhz...

Ich habe jetzt also endlich ein Farbbild:
1
=> conn
2
Connecting to CPU. Escape character is '^^'.
3
4
> 
5
> ?
6
DDT/Z180 (ROM) Commands:
7
> @                             examine/substitute the displacement register @
8
> A [address]                   Assemble
9
> B[X]                          display [or clear] all Breakpoints
10
  B breakp [:count] [breakp..]  set Breakpoints
11
  BX address [address..]        clear Breakpoints
12
>>C[N][J] [count]               trace over Calls [No lit] [Jumps only]
13
  C[N][J] W|U expression        trace over Calls While|Until ...
14
>>D [startadr] [ndadr]         Display memory in hex and ascii
15
> G [startadr] [;breakp..]      Go [to start] [temprary breakpoints]
16
> H [expression [expression]]   compute expressions / show High/max load adr.
17
>I [port]                      Input a byte from port
18
>>L [startadr] [endadr]         List disassemled code
19
> M[V] startadr endadr destadr  Move memory [and verify]
20
>>O [byte] [port]              Output a byte to port
21
> Q[J] startadr endadr bytes    Qery memory for byte string [Justified]
22
> R[displacement]              Read intel hex from console [add displacemt]
23
> S address                    Substitute memory
24
>>T[N][J] [count]               Trace [No list] [Jumps only] [count steps]
25
  T[N][J] W|U expression        Trace While|Until expression
26
> V startadr endadr destadr     Veriy (compare) two memory areas
27
> X[register]                   eXamine [and substitute] registers
28
>Y[0..9]                       eXamine [and substitute] Y variables
29
> Z startadr endadr bytes      Zap (fill) memory with a byte string
30
>

Gruß,

Holm

von Holm T. (Gast)


Lesenswert?

Ich habe noch seltsame Effekte..
Da ich noch einige Z8018010VSC habe, habe ich mal einen von denen in die 
Fassung gesteckt (und weil der PLCC Zieher in der anderen Werkstatt 
liegt, darf ich nun die Fassung wechseln :-|).
Offensichtlich arbeitet der bei 9Mhz Takt nur mit 4,5Mhz und erzeugt 
eine Baudrate von 14400 die ich mir nicht angucken kann.
Mit 18,4 Mhz vom AVR scheint der aber mit 9,2Mhz zu laufen und 57600 
Baud zu erzeugen, während der Z8S18020VSC da 115200 Baud erzeugt, also 
sehr wahrscheinlich mit 18,4Mhz Takt tackert..

Ist das in Ordnung so?

Leo wenn ich die Schnittstelle durch beschreiben des IO Bytes von ASCI1 
auf AVR USB umstelle, bekomme ich so lange keine Ausgabe am AVR bis ich 
auf der ASCI1 nicht wenigstens noch mal Enter gedrückt habe..??? Wo 
klemmt das denn?

Gruß,

Holm

von Leo C. (rapid)


Lesenswert?

Erst mal herzlichen Glückwunsch zu Deinem nun laufenden System. Bei 
Deinem vorherigen Artikel ist mir nicht ganz klar geworden, ob Du zum 
Z180-Clock noch konkrete Fragen hast. Die verschiedenen Varianten sind 
zugegebenermaßen etwas verwirrend.

> Z8018010VSC

Dem fehlt das S im Typnamen und damit offensichtlich auch das "Clock 
Multiplier Register", CMR. Also ist der Systemtakt PHI immer (nur) die 
Hälfte des Input-Clocks EXTAL.

> Ist das in Ordnung so?

Scheint so.

> Leo wenn ich die Schnittstelle durch beschreiben des IO Bytes von ASCI1
> auf AVR USB umstelle, bekomme ich so lange keine Ausgabe am AVR bis ich
> auf der ASCI1 nicht wenigstens noch mal Enter gedrückt habe..??? Wo
> klemmt das denn?

Von welcher Schnittstelle das nächste Zeichen zu lesen ist, wird halt 
nur beim Eintritt in die Consoleneingaberoutine abgefragt, nicht in der 
Schleife, die dann den entsprechenden Port pollt.
1
?conin:
2
  ld  a,(iobyte)
3
  and  03h
4
  jp  z,ff.in
5
  dec  a
6
  jp  z,as0inp
7
  dec  a
8
  jp  z,as1inp
9
  jr  nullinput
10
11
...
12
13
as1inp:
14
  in0  a,(stat1)
15
  rlca
16
  jr  nc,as1inp
17
  in0  a,rdr1
18
  ret

von Holm T. (Gast)


Lesenswert?

Naja, die Fragen mit dem Clock sind weitestgehend geklärt, zumindest 
wurde mir das klar als ich mit dem Oszi geguckt habe was los ist.
Problematisch ist halt bei der Erstinbetriebnahme das man nicht weiß wo 
bei Jumpern oder Steckern gerade die 1 ist, auch ein Blick in die Doku 
hilft da nicht wirklich. Ich habe mir weiter oben im Thread schon die 
Augen gebrochen um auf den Bildern raus zu finden wo die Jumper stecken.

Den Unterschied Z180 und ZS180 hatte ich vermutet, kirre machen kann 
eines das aber schon, wenn man im Terminalprogramm nur Sauerkraut 
angezeigt bekommt weil die Baudrate 28800 oder 14400 als Teil von 57600 
einfach mal nicht einstellbar ist, oder wie ich das ich mit 57600 eben 
keine Daten bekomme weil ich ein Quarz mit 18Mhz gesteckt hatte...
Eine Kurz-BDA wäre deshalb wirklich nicht schlecht.

Diese Art IO-Byte Auswertung habe ich schon mal wo gesehen (Zapple 
Monitor?), aber so optimal ist das wohl nicht wenn das Ding auf einer 
toten Schnittstelle im Kreis herum tritt, ich weiß, man kann sich da 
ganz leicht zum Ei machen wenn man alle Eventualitäten berücksichtigen 
will.

Danke einstweilen, ich warte jetzt ob die Post die SD Fassungen 
bringt..oder ich hänge ne Andere mit Drähten freitragend an.. :-)

Gruß,

Holm

von Marcel A. (dl1ekm)


Lesenswert?

An dem Thema mit den Jumpern bin ich auch schon verzweifelt. Ich baue 
gerade eine Doku dazu auf (www.retro-compi.de), bin aber noch nicht bei 
der ECB angekommen (intern schon vorbereitet) mit der Doku.

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Marcel A. schrieb:
> An dem Thema mit den Jumpern bin ich auch schon verzweifelt.

Da muss ich wohl nochmals ran... Aber ihr habt natürlich Recht, für mich 
ist die Funktion der Jumper ja klar, weil ich sie genau so eingebaut 
habe.

von Holm T. (Gast)


Lesenswert?

Ja Joe, ich will keinesfalls nörgeln..aber der Bestückungsdruck 
ermöglicht doch problemlos z.B. Pin 1 zu kennzeichnen. Das nützt nun 
zwar rückwirkend nix mehr aber den Nächsten :-)

Pollin Paket ist gekommen und der SD Adapter aufgelötet, Karte scheint 
zu funzen nun muß CP/M drauf.

Kann ich irgendwo "disks" mit Programmen schnorren, abgesehen von 
Turbopascal und Turbo Modula?
(BTW: ich bin mir recht sicher früher mit TP 3.02A gearbeitet zu haben, 
ich finde das sich auch noch, der nächste CP/M Rechner steht rechts 
neben mir, links liegen die Stamps und viele Disketten habe ich auch 
noch) der übernächste im Nebenzimmer und der A7150 noch 2 weiter kann 
auch SCP86(CP/M86)..achso, unterm Tisch steht noch eine P8000...

Man bräuchte halt so Power 3.07, M80/L80/Linkmt/Tubo,WS,Irgendwas-C, 
(BDS gefällt mir wegen den Sourcen..) ggf. ein Basic, einen Reassembler 
wie Rezilog etc..pp..

Ich habe das Alles da, die cpmutils sind auch installiert, auch simh 
samt altair... aber Jeder macht die Arbeit immer wieder?

Mit CP/M 3.0 habe ich allerdings das erste Mal zu tun.

Gruß,

Holm

von Marcel A. (dl1ekm)


Lesenswert?

Ich kenne nur TP 3.01a - damit bin ich auf dem PC groß geworden.

Und den Rest findet Google, da gibt es tolle Seiten mit endlos Software. 
Habe bei mir inzwischen vieles zusammengestellt. Nimm dir einfach ein 
8mb leeres Images und packe das mit den cpmtools drauf. Ist hier im 
Thread oder auf meiner HP erklärt.

von Holm T. (Gast)


Lesenswert?

Ja, 3.01A auf DOS ist mir auch bekannt, ich habe aber die Kiste rechts 
mal angeworfen:

TURBO Pascal system         Version 3.02A

..ok, ich mache meinen eigenen Stiefel..

Gruß,

Holm

von Holm T. (Gast)


Lesenswert?

Leo gibts statt z180-stamp-cpm3-0.0.zip ein aktuelles Binary?

Ich habs versucht selber zu bauen aber dazu muß ich erst mal den zxcc 
auf FreeBSD portieren, der erzeugt Müll:
1
$ zxcc /usr/local/lib/cpm/bin80/slr180.com -boot/M
2
3
SLR180 Copyright (C) 1985-86 by SLR Systems Rel. 1.31 #SB3028
4
5
 boot/M
6
VERSION.INC - Bad Dummy Param Line 00001
7
defvers macro\r\n       db      '0.6.4.4-dirty'\r\n     endm\r
8
                                                              DEFVERS - Line Too
9
jjxqfkjjzwyjlzgjijijpsfgj\d]zuhj\dzuhjx~xrtwjpqhw{fHjjwuywujjnxstrrthjjnxsrh
10
DEFVERS - Line Too Long Line 00002
11
jjxqfkjjzwyjlzgjijijpsfgj\d]zuhj\dzuhjx~xrtwjpqhw{fHjjwuywujjnxstrrthjjnxsrh
12
DEFVERS - Line Too Long Line 00003
13
jjxqfkjjzwyjlzgjijijpsfgj\d]zuhj\dzuhjx~xrtwjpqhw{fHjjwuywujjnxstrrthjjnxsrh
14
DEFVERS - Line Too Long Line 00004
15
..
da gibts irgendwelchen Kuddelmuddel in den vfs/statfs Vereinbarungen..
oder aber der slr180 von 
http://www.classiccmp.org/cpmarchives/cpm/Software/rlee/S/SLR%20SYSTEMS/SLR180/ 
ist kaputt.

..oder ich muß das unter cpmsim machen..

Gruß,

Holm

von Leo C. (rapid)


Angehängte Dateien:

Lesenswert?

Ich hoffe, das hier geht.


> oder aber der slr180 von
> http://www.classiccmp.org/cpmarchives/cpm/Software/rlee/S/SLR%20SYSTEMS/SLR180/
> ist kaputt.

Eher nicht. Ich glaube, ich habe den gleichen.

von Marcel A. (dl1ekm)


Angehängte Dateien:

Lesenswert?

Hier mal der aktuelle Stand meines "Speicherbildes", welches ich im 
Rahmen meines "CP/M Selbststudiums" unter Leo's Anleitung erstellt habe.

Es passt zu folgender Einstellung hinsichtlich BDOS:
 BNKBIOS3 SPR  F900  0500
 BNKBIOS3 SPR  C600  2A00
 RESBDOS3 SPR  F300  0600
 BNKBDOS3 SPR  9800  2E00

(Leo's aktuelles CPM hat das BDOS erst bei F400, so dass sich ein paar 
100 Bytes mehr ergeben für den TPA).

Jetzt muss ich noch meine "Hausaufgabe" lösen, warum die top page FE ist 
statt FF und was in den obersten 256 Bytes steckt. Fudel-Tipps 
willkommen :-)

: Bearbeitet durch User
von Holm T. (Gast)


Lesenswert?

Jungs bitte nochmal zum mitmeisseln:

ich habe jetzt im Atmel die 6.5 vdie hier oben verlinkt war.
Auf der SD Karte habe ich folgende Files:
1
Environment size: 275/1597 bytes
2
=> fatls 1:
3
----A 2016/05/14 12:41     22784  cpm364d.sys
4
----A 2016/05/14 12:50     22016  cpm3.sys
5
----A 2016/05/14 12:50   8388608  cpm3test.dsk
6
   3 File(s),   8433408 bytes total
7
   0 Dir(s),     489440K bytes free


das Environment sieht so aus:
1
=> printenv
2
baudrate=115200
3
bootcmd=pin 2 low 8 low 3 9MHz; loadcpm 1:/cpm364d.sys; go ${startaddress}
4
bootdelay=3
5
cpm3_file=1:/cpm364d.sys
6
dsk0=1:/cpm3test.dsk
7
pin_alias=0:PG5,1:PG4,2:PB4,3:PB5,4:PB6,5:PB7,6:PG3,7:PG2,8:PG1,9:PG0,10:PE7
8
setenv=cpm3_file 1:cpm364d.sys
9
startaddress=d100
10
11
Environment size: 275/1597 bytes
12
=>


Der DDTZ wird auf ASCI1 sauber mit 115200 Baud angezeigt wenn geladen,
memtest is ok aber weder das cpm3.sys noch das cpm364d.sys (aus dem Zip 
oben) spucken auf der ASCI0 irgend etwas aus. Wenn ich das richtig 
verstanden habe muß die Schnittstelle auf 19200 Baud stehen (18Mhz 
Takt).
Ist das richtig?
1
=========================<  (RE)START DEBUG  >=========================
2
### Reset reason(s): External.
3
4
ATMEGA1281+Z8S180 Stamp Monitor
5
6
### main_loop entered: bootdelay=3
7
8
### main_loop: bootcmd="pin 2 low 8 low 3 9MHz; loadcpm 1:/cpm364d.sys; go ${startaddress}"
9
Hit any key to stop autoboot:  0 
10
Loading: '1:/cpm364d.sys'...
11
12
 BNKBIOS3 SPR  FA00  0500
13
 BNKBIOS3 SPR  D100  1F00
14
 RESBDOS3 SPR  F400  0600
15
 BNKBDOS3 SPR  A300  2E00
16
 
17
 61K TPA
18
Loaded: Resident: 0x1B400-0x1BEFF, Banked: 0x0A300-0x0EFFF
19
## Starting application at 0xd100 ...
20
=> printenv
21
baudrate=115200
22
bootcmd=pin 2 low 8 low 3 9MHz; loadcpm 1:/cpm364d.sys; go ${startaddress}
23
bootdelay=3
24
cpm3_file=1:/cpm3.sys
25
dsk0=1:/cpm3test.dsk
26
pin_alias=0:PG5,1:PG4,2:PB4,3:PB5,4:PB6,5:PB7,6:PG3,7:PG2,8:PG1,9:PG0,10:PE7
27
startaddress=d100
28
29
Environment size: 241/1597 bytes
30
=>

Ich habe eine Weile gekämpft weil ich erstens gedacht hatte das Joe den 
Fehler mit der "männlichen Belegung" der RS232 Pfostenstecker in der 
Version 1.1 schon korrigiert hatte..dem war nicht so, dann hatte ich den 
MAX freundlicherweise verkehrt herum aufgelötet weil das weder aus dem 
Bestückungsdruck noch aus der PDF zu erkennen war und mir falsch herum 
halt wahrscheinlicher erschien :-|

Der MAX scheint es aber überlebt zu haben weil die ASCI1 nun 
funktioniert und auf der ASCI0 auch mit dem OSZI an A15/A16 der Z180 
Stamp beim besten Willen nichts zu erkennen ist.

Funktionieren die beiden cpm.sys Files überhaupt mit der hexrel 6.5 auf 
dem AVR?

Mit dem zxcc bin ich noch nicht viel weiter, ich habe ein olles Debian 
Wheezy  in einer VM ...da ist aber git zu alt und es geht auch nicht 
weiter. Ich habe noch ein FreeBSD 10.1 32 Bit System und will das dort 
auch noch mal checken (das läuft noch mit UFS, ich schiebe zxccs 
Probleme darauf das das ZFS auf meiner Kiste einfach ein Bisschen zu 
modern für diese Linuxsoftware ist, daher die vfs/statfs 
Probleme..dürfte zu beheben sein ..aber doch nicht alles auf allen 
Fronten auf einmal bitte..)

..ich hätte nur gerne mal ein CP/M auf den Stamps booten gesehen damit 
ich eine Referenz habe auf die ich mich beziehen kann, warum macht Ihr 
das so kompliziert und warum sind modernere Binaries nicht verfügbar? 
Ich verstehe es einfach nicht warum ihr nicht ein komplettes 
"Starterkit" mal irgendwo abwerft.

Gruß,

Holm

von Marcel A. (dl1ekm)


Lesenswert?

Nimm doch mal die Files von meiner HP, die funktionieren (bei mir).

Startadresse D100? Das ist bei mir C600....

von Holm T. (Gast)


Lesenswert?

Marcel A. schrieb:
> Nimm doch mal die Files von meiner HP, die funktionieren (bei mir).


...nicht wirklich, oder?
"Not Found

The requested URL 
/mages/retrocompi/z180/avr/stamp-monitor-6.5+8drives-1281.hex was not 
found on this server.
Apache/2.2.22 (Debian) Server at www.retro-compi.de Port 80"

Wo finde ich die genau?

...ahh..ok, mit einem "i" mehr siehts besser aus, mal gucken.
>
> Startadresse D100? Das ist bei mir C600....

Die setzt das cpm354d.sys doch selbst beim Laden ins Environment, daran 
habe ich doch gar nix geändert.


Gruß,

Holm

von Marcel A. (dl1ekm)


Lesenswert?

Danke für den Bug Hinweis :-)
Und stimmt, in Leos neuer Firmware holt er sich das aus dem sys, die 
Version nutze ich aber noch nicht.

von Holm T. (Gast)


Lesenswert?

Ok, ich habs mit Deinen Files
cpm3+8drives.sys
stamp-monitor-6.5+8drives-1281.hex

probiert, geht immernoch nicht.
(kein bootlader im AVR, programmiert mit ISP/avrdude)
1
=========================<  (RE)START DEBUG  >=========================
2
### Reset reason(s): External.
3
4
ATMEGA1281+Z8S180 Stamp Monitor
5
6
### main_loop entered: bootdelay=3
7
8
### main_loop: bootcmd="pin 2 low 8 low 3 9MHz; loadcpm ${cpm3_file}; go ${startaddress}"
9
Hit any key to stop autoboot:  0 
10
Loading: '1:cpm3+8drives.sys'...
11
12
 BNKBIOS3 SPR  F900  0500
13
 BNKBIOS3 SPR  C600  2A00
14
 RESBDOS3 SPR  F300  0600
15
 BNKBDOS3 SPR  9800  2E00
16
 
17
 60K TPA
18
Loaded: Resident: 0x1B300-0x1BDFF, Banked: 0x09800-0x0EFFF
19
## Starting application at 0xc600 ...
20
=> fatls 1:
21
----A 2016/05/14 12:41     22784  cpm364d.sys
22
----A 2016/05/14 12:50     22016  cpm3.sys
23
----A 2016/05/14 12:50   8388608  cpm3test.dsk
24
----A 2016/05/14 20:32     25600  cpm3+8drives.sys
25
   4 File(s),   8459008 bytes total# SIMH AltairZ80 Harddisk
26
diskdef simhd
27
  seclen 128
28
  tracks 2048
29
  sectrk 32
30
  blocksize 4096
31
  maxdir 1024
32
  skew 0
33
  boottrk 6
34
  os p2dos
35
end
36
   0 Dir(s),     489408K bytes free
37
=> printenv
38
baudrate=115200
39
bootcmd=pin 2 low 8 low 3 9MHz; loadcpm ${cpm3_file}; go ${startaddress}
40
bootdelay=3
41
cpm3_file=1:cpm3+8drives.sys
42
dsk0=1:/cpm3test.dsk
43
pin_alias=0:PG5,1:PG4,2:PB4,3:PB5,4:PB6,5:PB7,6:PG3,7:PG2,8:PG1,9:PG0,10:PE7
44
startaddress=c600
45
46
Environment size: 246/1597 bytes
47
=>

Muß ich mehrere (8) Disks definieren damit das läuft?

Ich habe A15 und A16 an der Z180 Stamp mal mit dem Schraubenzieher 
gebrückt, dann werden die Zeichen aus meinem Terminalprogramm auch 
geechoet, der Kanal 0 vom Max ist also sowohl Sender als auch 
Empfängerseitig in Ordnung.

jetzt fällt mir langsam nix mehr ein, was könnte ich noch probieren?

>Und stimmt, in Leos neuer Firmware holt er sich das aus dem sys, die
>Version nutze ich aber noch nicht.

..könntest aber wie es aussieht, denn die c600 hat er auch selber 
rausgekriegt, das ist also im Lader schon drin.


Gruß,

Holm

von Marcel A. (dl1ekm)


Lesenswert?

Hm, eigentlich kann man nichts falsch machen...

Hast du die Environment Variablen mal so belegt wie bei mir?

Und bei mir geht alles mit 18Mhz.

Und du lädst ja auch nicht das cpm 8 Drives sondern ein Test.sys?

von Holm T. (Gast)


Lesenswert?

Uff... es fehlte lediglich dieser Eintrag im Environment:

cpm3_commonbase=F000.
1
CP/M Version 3.0, Z180-Stamp BIOS
2
Estimated CPU clock [Hz]: 18432000
3
A>dir
4
A: BDOS3    SPR : BNKBDOS3 SPR : CCP      COM : COPYSYS  COM : CPMLDR   REL 
5
A: DATE     COM : DEVICE   COM : DIR      COM : DUMP     COM : ED       COM 
6
A: ERASE    COM : GENCOM   COM : GENCPM   COM : GET      COM : HELP     COM 
7
A: HELP     HLP : HEXCOM   COM : PATCH    COM : PIP      COM : PUT      COM 
8
A: README       : RENAME   COM : RESBDOS3 SPR : SAVE     COM : SET      COM 
9
A: SETDEF   COM : SHOW     COM : SID      COM : SUBMIT   COM : TYPE     COM 
10
A>type readme
11
CP/M 3
12
======
13
14
  This archive contains an almost complete build of CP/M 3.
15
16
  If you have the source distribution, the file making.txt explains how to
17
set up the build environment on your computer.
18
19
Differences from Digital Research CP/M 3
20
========================================
21
22
  All the CP/M 3 patches described in the document CPM3FIX.PAT have been
23
applied to the source code, except those to INITDIR. Patches 1-18 (except
24
nos. 5 and 9) were applied.
25
26
  CP/M 3 is now fully Year 2000 compliant. This affects the programs 
27
DATE.COM, DIR.COM and SHOW.COM.
28
29
  Dates can be displayed in US, UK or Year-Month-Day format. This is set by 
30
SETDEF:
31
32
33
Press RETURN to Continue

..schwere Geburt..

>Und du lädst ja auch nicht das cpm 8 Drives sondern ein Test.sys?

Da haste Dich verguckt.




Gruß,

Holm

von Marcel A. (dl1ekm)


Lesenswert?

Stimmt, na dann, viel Spaß. Sehe gerade, die 9 MHz liegt an deiner CPU 
ohne Verdoppler?

von Holm T. (Gast)


Lesenswert?

Marcel A. schrieb:
> Stimmt, na dann, viel Spaß. Sehe gerade, die 9 MHz liegt an deiner CPU
> ohne Verdoppler?

Ich habe JP9 rechts stecken, da kommt wohl 18Mhz vom AVR (ACLK0).

Das CP/M behauptet ja auch "Estimated CPU clock [Hz]: 18432000".

BTW: Ich habe tinst von Turbopascal angeworfen, VT100 existiert ja als 
Auswahl da nicht, habe Ansi ausgewählt, scheint erst mal zu 
funktionieren.
Gibts eine bessere Auswahl für ein XTerm?
1
---------------------------------------
2
TURBO Pascal system       Version 3.02A
3
                           CP/M-80, Z80
4
5
Copyright (C) 1983,84,85   BORLAND Inc.
6
---------------------------------------
7
8
Terminal: ANSI
9
10
11
12
Include error messages (Y/N)?
Sogar das Highlighting der Menüauswahl klappt ( Dir Quit compiler 
Options etc).
WS3.3 läuft auch, da gibts ja auch vt100 in der Auswahl, werde aber den 
DDR (Robotron) Clone TP auch mal testen, da sind Druckerdefinitionen für
Typenraddrucker drin und ich habe Sowas  :-)


Nochwas: Ich habe 3 4Gig SD Karten, eine davon MicroSD mit Adapter die
problemlos mit den Stamps zu funktionieren scheinen, allerdings weder 
mit WinXP noch mit meinem FreeBSD über einen Hama Card Reader.
Ich bekomme da im Prinzip Device Timeouts. Hat Jemand ne Idee wie ich 
die zum wirtschaften bekomme? Fehler bekomme ich mit dem fat und sd* 
Zeug nicht.. kann auch Daten dumpen etc...
Ich kann aber z.B. mit dd nix davon lesen oder hinschaffen..

Noch ein Problem:

das mkfs.cpm legt ja "sparse" Disks an wie Leo oben schon mal erklärt 
hat,
d.h. wenn die disk nicht voll ist, dann ist die Filesize kleiner als die 
Diskkapazität. Das führt aber unter CP/M zu Fehlern, mit Power und dem 
Kommando test kann man eine ganze Disk probelesen und eine Checksumme 
generieren, promt hagelt das Fehler. dieses mkfs.cpm ist wohl daher eher 
mit vorsicht zu genießen, bei mir ist das z.B. auch nicht in der Lage 
auf einer Floppy ordentlich zu arbeiten, wahrscheinlich kommt das genau 
von diesem "Feature".

Kopiert lieber die cpm3 Testdisk und macht die unter CP/M dann mit Erase 
leer..
1
   00030: 84 a5 9e 2e 33 f5 76 5d  7a c8 68 78 e6 cf 3c 03  ....3.v]z.hx..<.
2
Read Data
3
    00000: 9a 75 d8 8c ab c4 56 70  cb 85 b4 5a 0d 7f 61 33  .u....Vp...Z..a3
4
    00010: bc 98 c0 51 45 e2 f7 43  34 2d 1a 8b 62 a8 fc 76  ...QE..C4-..b..v
5
    00020: 00 25 bc ac 38 e3 6e 2f  9b d5 a7 22 bd c8 4d db  .%..8.n/..."..M.
6
    00030: 84 a5 9e 2e 33 f5 76 5d  7a c8 68 78 e6 cf 3c 03  ....3.v]z.hx..<.
7
Read Data
8
    00000: 9a 75 d8 8c ab c4 56 70  cb 85 b4 5a 0d 7f 61 33  .u....Vp...Z..a3
9
    00010: bc 98 c0 51 45 e2 f7 43  34 2d 1a 8b 62 a8 fc 76  ...QE..C4-..b..v
10
    00020: 00 25 bc ac 38 e3 6e 2f  9b d5 a7 22 bd c8 4d db  .%..8.n/..."..M.
11
    00030: 84 a5 9e 2e 33 f5 76 5d  7a c8 68 78 e6 cf 3c 03  ....3.v]z.hx..<.
12
Read Data
13
    00000: 9a 75 d8 8c ab c4 56 70  cb 85 b4 5a 0d 7f 61 33  .u....Vp...Z..a3
14
    00010: bc 98 c0 51 45 e2 f7 43  34 2d 1a 8b 62 a8 fc 76  ...QE..C4-..b..v
15
    00020: 00 25 bc ac 38 e3 6e 2f  9b d5 a7 22 bd c8 4d db  .%..8.n/..."..M.
16
    00030: 84 a5 9e 2e 33 f5 76 5d  7a c8 68 78 e6 cf 3c 03  ....3.v]z.hx..<.
17
Read Data
18
    00000: 9a 75 d8 8c ab c4 56 70  cb 85 b4 5a 0d 7f 61 33  .u....Vp...Z..a3
19
    00010: bc 98 c0 51 45 e2 f7 43  34 2d 1a 8b 62 a8 fc 76  ...QE..C4-..b..v
20
    00020: 00 25 bc ac 38 e3 6e 2f  9b d5 a7 22 bd c8 4d db  .%..8.n/..."..M.
21
    00030: 84 a5 9e 2e 33 f5 76 5d  7a c8 68 78 e6 cf 3c 03  ....3.v]z.hx..<.
22
-------------------------------------------
23
G=0097:0C T=0157 S=013 PS=012 Rec#  493
24
* - bad sector on 
25
G=0097:0D T=0157 S=014 PS=013 Rec#  494
26
* - bad sector on 
27
G=0097:0E T=0157 S=015 PS=014 Rec#  495
28
* - bad sector on 
29
G=0097:0F T=0157 S=016 PS=015 Rec#  496
30
* - bad sector on 
31
G=0097:10 T=0157 S=017 PS=016 Rec#  497
32
* - bad sector on 
33
G=0097:11 T=0157 S=018 PS=017 Rec#  498
34
* - bad sector on


Gruß,

Holm

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Holm T. schrieb:
> Ich habe eine Weile gekämpft weil ich erstens gedacht hatte das Joe den
> Fehler mit der "männlichen Belegung" der RS232 Pfostenstecker in der
> Version 1.1 schon korrigiert hatte..dem war nicht so

Wo ist das Problem? Die Belegung ist doch korrekt. Auf die Wannenstecker 
kommen Crimp-Buchsen mit Flachbandkabel welches wiederum genau an die 
9-poligen SUB-D (male) passen. CON0 und CON1 sind jeweils ein DTE.

von Holm T. (Gast)


Lesenswert?

Joe G. schrieb:
> Holm T. schrieb:
>> Ich habe eine Weile gekämpft weil ich erstens gedacht hatte das Joe den
>> Fehler mit der "männlichen Belegung" der RS232 Pfostenstecker in der
>> Version 1.1 schon korrigiert hatte..dem war nicht so
>
> Wo ist das Problem? Die Belegung ist doch korrekt. Auf die Wannenstecker
> kommen Crimp-Buchsen mit Flachbandkabel welches wiederum genau an die
> 9-poligen SUB-D (male) passen. CON0 und CON1 sind jeweils ein DTE.

Dann hatte ich Dich mißverstanden. Ist aber auch egal, ich habe jetzt 2x 
Male dran und Null-Modem Kabel.

Da ist aber gar kein Problem..
:-)

Gruß und vielen Dank für Deine Arbeit,

Holm

von Joe G. (feinmechaniker) Benutzerseite


Angehängte Dateien:

Lesenswert?

Holm T. schrieb:
> BTW: Ich habe tinst von Turbopascal angeworfen, VT100 existiert ja als
> Auswahl da nicht, habe Ansi ausgewählt, scheint erst mal zu
> funktionieren.

anbei ein TP3 für VT100 (dsk-File)

von Holm T. (Gast)


Lesenswert?

Joe G. schrieb:
> Holm T. schrieb:
>> BTW: Ich habe tinst von Turbopascal angeworfen, VT100 existiert ja als
>> Auswahl da nicht, habe Ansi ausgewählt, scheint erst mal zu
>> funktionieren.
>
> anbei ein TP3 für VT100 (dsk-File)

Danke, ich probiere es mal, kannst ja das hier mal checken:

http://www.tiffe.de/Robotron/Stamp/tp-3.02a.dsk.gz


...was mache ich denn hier schon wieder flashc?
1
A>c:
2
C>device conout:=ASCI0[38400]
3
4
�1!��!9�/��/0 1�#�=��
5
                    �B��B!��Rj� �B�!�"wc�
6
7
                                         �)k�)�k9��
8
9
                                                   @�"���Ox�J
10
11
                                                             @�"��Ox�B
12
13
                                                                     x����!
14
15
                                                                           ��
16
C>device conout:=ASCI0[57600]
17
18
 CONOUT:=ASCI0[57600]
19
               ^     
20
Error at the '^'; Invalid option
21
22
C>

..das ist das von Leo überarbeitete device.com, nach den 38400 habe ich 
den Terminalemulator umgestellt, das erste Mal funzt, 57600 aber 
nicht..?

Gruß,

Holm

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Holm T. schrieb:
> Danke, ich probiere es mal, kannst ja das hier mal checken:

Geht gerade nicht, kein CP/M dabei. Komme morgen erst wieder dazu.

von Marcel A. (dl1ekm)


Lesenswert?

Zu Device: schau mal ganz oben im Thread, leo hat das intern umbewertet. 
134 steht für 115200... Und als erstes kommt z.B. "Xon,134"

von Holm T. (Gast)


Lesenswert?

...am abgesehen vo nder Sache mit dem scb Program.. das sollte doch mit 
Device alleine gehen?
1
C>device
2
3
Physical Devices: 
4
I=Input,O=Output,S=Serial,X=Xon-Xoff
5
USB0   NONE   IO     ASCI0  38400  IOS    ASCI1  19200  IOS    
6
7
8
Current Assignments: 
9
CONIN:  = ASCI0  
10
CONOUT: = ASCI0  
11
AUXIN:  = ASCI0  
12
AUXOUT: = ASCI0  
13
LST:    = Null Device
14
15
Enter new assignment or hit RETURN 
16
17
18
C>device conout:=asci0[134]
19
20
 CONOUT:=ASCI0[134]
21
               ^   
22
Error at the '^'; Invalid option
23
24
C>device conout:=asci0[xon,134]
25
26
 CONOUT:=ASCI0[XON,134]
27
                   ^   
28
Error at the '^'; Invalid option
29
30
C>

Verstehschni.


Edit:

Alles Blödsinn, geht doch
1
A>device conout:=asci0[115200]
2
3
Physical Devices: 
4
I=Input,O=Output,S=Serial,X=Xon-Xoff
5
USB0   NONE   IO     ASCI0  115200 IOS    ASCI1  19200  IOS    
6
7
8
Current Assignments: 
9
CONIN:  = ASCI0  
10
CONOUT: = ASCI0  
11
AUXIN:  = ASCI0  
12
AUXOUT: = ASCI0  
13
LST:    = Null Device
14
15
16
A>

Gruß,

Holm

von Holm T. (Gast)


Lesenswert?

...aber 57600 geht halt nicht.

Gruß,

Holm

von Leo C. (rapid)


Angehängte Dateien:

Lesenswert?

> ...aber 57600 geht halt nicht.

Sorry, da war ein Zahlendreher drin. Mit 56700 (oder 5 oder 56 ...) 
könntest Du die 57600 einstellen. Oder das Update aus dem Anhang hier 
nehmen.

von Leo C. (rapid)


Angehängte Dateien:

Lesenswert?

Kleines Update der Monitorsoftware.

Holm T. schrieb:
> Uff... es fehlte lediglich dieser Eintrag im Environment:
> cpm3_commonbase=F000.

Der Wert wird jetzt aus dem cpm3.sys Image ausgelesen und automatisch 
gesetzt. Das war ja schon lange versprochen 
(Beitrag "Re: Z180-Stamp Modul").

Wer die Singlestep-Logik auf der Basisplatine hat, kann eine 
Environment-Variable auf "True" setzten, damit die Pins für RUN und STEP 
automatisch initialisiert werden: "singlestep=1"
Eine automatische Erkennung der Schaltung ist leider zu aufwendig und 
hat möglicherweise unerwünschte Seiteneffekte. Unterstützung für die 
Singlestep-Logik gibts aber immer noch nicht.

Die RTC sollte jetzt auch den Jahreswechsel korrekt mitmachen. (Der 
nächste ist ja schon nicht mehr weit.)

1
leo@cb:~/Projekte/HD64180/z180-stamp$ git log --oneline hexrel-6.5..
2
b51d236 Get common_base from cpm3.sys file. Update default environment (BOOTCMD)
3
8ed6601 Store only command line input in history buffer, but not data (i.e mm command)
4
c647afc Enable commandline editing with history buffer parmanently, and remove macro CONFIG_CMDLINE_EDITING and the non-history-buffer code.
5
f32690e Remove redundant hist_init()
6
5730789 Use timer 4 instead of 3 for systick (1ms).
7
a1595a8 Init ports for single step logic on ECB adapter. Use timer 5 instead of timer 4 for timeouts.
8
be84a70 New function: getenv_yesno()
9
19a463f Bufix mstep command: take the right arg for parameter count.
10
d9d8de4 Handle bus errors in md command
11
6353e86 Bugfix z80_addrbus_set_tristate()
12
1b77fa4 Rename getenv() to getenv_char()
13
f3e47f6 Add build configuration for ATmega2561
14
85046f8 RTC: Handle turn of the year correctly, detect uninitialized RTC (loss of VBAT)
15
aca998c cli.c: bugfix in cli_parse_line(): correct nargs

von Holm T. (Gast)


Lesenswert?

Leo C. schrieb:
>> ...aber 57600 geht halt nicht.
>
> Sorry, da war ein Zahlendreher drin. Mit 56700 (oder 5 oder 56 ...)
> könntest Du die 57600 einstellen. Oder das Update aus dem Anhang hier
> nehmen.

Danke Leo, ich werds mal checken.

Gruß,

Holm

von Holm T. (Gast)


Lesenswert?

Holm T. schrieb:
> Leo C. schrieb:
>>> ...aber 57600 geht halt nicht.
>>
>> Sorry, da war ein Zahlendreher drin. Mit 56700 (oder 5 oder 56 ...)
>> könntest Du die 57600 einstellen. Oder das Update aus dem Anhang hier
>> nehmen.
>
> Danke Leo, ich werds mal checken.
>
> Gruß,
>
> Holm

Ok, Device funtkioniert und auch der stampmonitor ohne cpm3_commonbase.
Letzteren habe ich aber wieder zurück geflasht wegen der 8 Laufwerke, 
ich muß nun mal zusehen das ich die Buildumgebung zum Laufen bekomme.

Gruß,

Holm

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Leo C. schrieb:
> Kleines Update der Monitorsoftware.

Danke Leo, läuft bei mir.Nun auch ohne cpm3_commonbase=F000 und mit 
"singlestep=1". Auch "Device" macht was es soll. Den Zahlendreher hatte 
ich nicht bemerkt, da ich 57600 nie benutzt hatte.

Gibt es eine Auflistung der vordefinierten Environment-Variablen. Dann 
könnte ich sie in die Doku aufnehmen.

von Holm T. (Gast)


Lesenswert?

Wo bekommt man denn eigentlich diese Frontplatten für die ECB-Bus Karten 
inklusive Winkel? Ich habe noch ein kleines Gehäuse da von einem 
Hirschmann HUB.. (wie Ebay 371192627387)

@Marcel: machst Du von der 6.6er Version mal ein Binary mit 8 LW?

Gruß,

Holm

von Marcel A. (dl1ekm)


Lesenswert?

Holm T. schrieb:
> @Marcel: machst Du von der 6.6er Version mal ein Binary mit 8 LW?

Kann ich mal schauen. War aber glaube ich nicht schwer, da gibts einen 
Parameter (drive_max oder so im Monitor). Hatte mir Leo mal erklärt. 
Aber wie gesagt, das cpm.sys muss dazu passen, und das kann ich (noch) 
nicht übersetzen.

von Leo C. (rapid)


Lesenswert?

Holm T. schrieb:
> Letzteren habe ich aber wieder zurück geflasht wegen der 8 Laufwerke,

4 drives on sd cards ought to be enough for anybody. ;)

Die Zuweisung der Images über Environment-Variablen halte ich für ein 
Provisorium, daß längst durch etwas Besseres ersetzt hätte werden 
sollen. Deshalb wollte ich das nicht auf mehr Laufwerke ausbauen. Leider 
komme ich aber nicht dazu, das Provisorium zu ersetzen. Wenn jetzt immer 
mehr Leute nach 8 Laufwerken "schreien", muß das vielleicht doch mal zum 
"Standard" machen.

Aber ehrlich, was will will man eigentlich mit 8 mal 8 MByte unter CP/M? 
In CP/M 3 werden die Userbereiche ganz gut unterstützt. Man kann die 
Dateien auf einer Disk also auf 16 User verteilen.

von Holm T. (Gast)


Lesenswert?

Leo C. schrieb:
> Holm T. schrieb:
>> Letzteren habe ich aber wieder zurück geflasht wegen der 8 Laufwerke,
>
> 4 drives on sd cards ought to be enough for anybody. ;)

You are failing badly :-)

>
> Die Zuweisung der Images über Environment-Variablen halte ich für ein
> Provisorium, daß längst durch etwas Besseres ersetzt hätte werden
> sollen. Deshalb wollte ich das nicht auf mehr Laufwerke ausbauen. Leider
> komme ich aber nicht dazu, das Provisorium zu ersetzen. Wenn jetzt immer
> mehr Leute nach 8 Laufwerken "schreien", muß das vielleicht doch mal zum
> "Standard" machen.
>
> Aber ehrlich, was will will man eigentlich mit 8 mal 8 MByte unter CP/M?
> In CP/M 3 werden die Userbereiche ganz gut unterstützt. Man kann die
> Dateien auf einer Disk also auf 16 User verteilen.

Dir kann bei Deinen Fragen geholfen werden:

Die Userbereiche unter CP/M sind etwas sperrig zum arbeiten, die meisten 
Programme unterstützen zwar eine Laufwerksangabe, aber keine User Nummer
als "Pfad", leider gab es noch keine Directories wie unter Unixoiden, 
Billyboy (der alte Pariser) hat die ja auch nur da abgeguckt.

Es gibt keine austauschbaren Datenträger aus CP/M Sicht, deshalb ist es 
sinnvoll eine Auswahl von Programmen gleichzeitig auf den Disketten zu 
haben.

Der Fakt, das ein Drive 8Mbyte groß ist ist dabei eher sekundär, die 
Drives sind nicht voll und die SD Karten noch lange nicht.

Ich habe jetzt auf 0: 6 Laufwerke und auf 1: nur 2, 0 steckt ja später 
mal im Gerät und ist eher schlecht austauschbar, 1: halt an der Front 
als Wechseldatenträger zum Datentransfer.

Ich vermisse jetzt schon meine K1520Net Netzwerkkarte... hast Du evtl. 
noch Ambitionen Joe? Das interessiert mich deutlich mehr als eine VGA 
und ein Tastaturanschluß, Letzteres wird nicht kleiner/besser als ein 
oller Schleptopp der das mit putty o.ä. ganz hervorragend und auch i.A. 
billiger macht.

Bitte ersetze nicht die Laufwerkszuordnung im Environment durch was 
Besseres, das ist nämlich schon das Beste.

Gruß,

Holm

von Holm T. (Gast)


Lesenswert?

Marcel A. schrieb:
> Holm T. schrieb:
>> @Marcel: machst Du von der 6.6er Version mal ein Binary mit 8 LW?
>
> Kann ich mal schauen. War aber glaube ich nicht schwer, da gibts einen
> Parameter (drive_max oder so im Monitor). Hatte mir Leo mal erklärt.
> Aber wie gesagt, das cpm.sys muss dazu passen, und das kann ich (noch)
> nicht übersetzen.

Ich würde das gerne selber machen wollen, aber gegenwärtig läuft auf 
meinem präferierten Host-OS der Assembler mit dem zxcc noch nicht.
Das wird noch seine Zeit dauern da ich erst mal wieder 
Programmierarbeiten erledigen muß um Brötchen zu verdienen...

Gruß,

Holm

von Leo C. (rapid)


Lesenswert?

Joe G. schrieb:
> Gibt es eine Auflistung der vordefinierten Environment-Variablen. Dann
> könnte ich sie in die Doku aufnehmen.

So siehts bei 6.6 gerade aus:
1
Name                Typ         Default         "defaultenv"
2
---------------------------------------------------------------------------------------------------------------------
3
baudrate            Dezimal     "115200"        "115200"
4
bootcmd             String      -               "pin ${pins}; loadcpm3; go ${startaddress}"
5
bootdelay           Dezimal     "4"             "3"
6
cpm3_bankedbase     Hex         "0"
7
cpm3_commonbase     Hex         -
8
cpm3_file           String      "0:/cpm3.sys"   "0:/cpm3.sys"
9
dsk0 ... dsk4       String      -
10
esc_char            Hex         "1E"
11
pin_alias           String      -               "0:PG5,1:PG4,2:PB4,3:PB5,4:PB6,5:PB7,6:PG3,7:PG2,8:PG1,9:PG0,10:PE7"
12
pins                String      -               "2,8 low 9 high 3 2"
13
singlestep          Bool        -
14
startaddress        Hex         -               "0"

Die Spalte Default wird genommen, wenn die entsprechende Variable nicht 
existiert.

Die Variablen werden mit der Spalte defaultenv vorbelegt, wenn beim 
Start das EEPROM leer oder korrumpiert ist (der Inhalt ist mit einer 
CRC16 abgesichert), oder der Befehl "defaultenv" ausgeführt wird.

Bool-Variablen (singlestep) sind "wahr", wenn sie existieren und das 
erste Zeichen "1" oder "y" oder "Y" oder "t" oder "T" ist, sonst 
"unwahr".

cpm3_commonbase und startadress werden durch loadcpm3 gesetzt bzw. 
überschrieben.

von Leo C. (rapid)


Lesenswert?

Holm T. schrieb:
> Die Userbereiche unter CP/M sind etwas sperrig zum arbeiten,

Bis CP/M 2.2 war das "Feature" unbrauchbar, aber in 3 ist es deutlich 
besser geworden.

> Es gibt keine austauschbaren Datenträger aus CP/M Sicht, deshalb ist es
> sinnvoll eine Auswahl von Programmen gleichzeitig auf den Disketten zu
> haben.

Die 4 (oder 8 oder 16) ist ja auch nicht die maximale Anzahl an Images 
auf der SD-Karte, sondern die maximale Anzahl "Disketten", die 
gleichzeitig im Zugriff sein können. "Herkömmliche" CP/M-Systeme 
hatten da meistens nur 2.
Man kann ja beliebig viele Images auf einer Karte haben, und durch 
ändern einer Environment-Variablen eine Disk wechseln (Danach Control-C 
nicht vergessen, wie bei CP/M < 3).

> Bitte ersetze nicht die Laufwerkszuordnung im Environment durch was
> Besseres, das ist nämlich schon das Beste.

Es wäre gut genug, wenn man beim Ändern einer Variablen eine Aktion 
auslösen könnte. Dann könnte man dem CP/M 3 nämlich Bescheid stoßen, 
damit es die "gewechselte" Disk ohne Control-C einloggen könnte.

Aber wie oben angedeutet, werde ich die 8 wohl in den master-branch 
übernehmen...

von Holm T. (Gast)


Lesenswert?

Leo C. schrieb:
> Holm T. schrieb:
>> Die Userbereiche unter CP/M sind etwas sperrig zum arbeiten,
>
> Bis CP/M 2.2 war das "Feature" unbrauchbar, aber in 3 ist es deutlich
> besser geworden.

Mir geht es nicht so sehr um das CP/M, sondern um die Programme die ich 
da laufen lasse. Bisher habe ich oft den M80 benutzt und da wirds wohl 
Brühe wenn der auf User 0 sitzt und die zu assemblierenden Dateien auf 
User 14..

>
>> Es gibt keine austauschbaren Datenträger aus CP/M Sicht, deshalb ist es
>> sinnvoll eine Auswahl von Programmen gleichzeitig auf den Disketten zu
>> haben.
>
> Die 4 (oder 8 oder 16) ist ja auch nicht die maximale Anzahl an Images
> auf der SD-Karte,

Ich weiß.

> sondern die maximale Anzahl "Disketten", die
> gleichzeitig im Zugriff sein können. "Herkömmliche" CP/M-Systeme
> hatten da meistens nur 2.

..aber eben recht einfach auszutauschen.
Ich brauche nicht Assembler, Tubopascal, BDS und Hitech-C gleichzeitig 
im Eingriff..aber doch dann und wann.
Die Kiste rechts neben mir hat 2 Floppies, eine Ramdisk die A nach M 
verdrängt und dann selbst A ist und 3 Festplattenpartitionen a 8 MB auf 
einer 20MB MFM Pladde..

> Man kann ja beliebig viele Images auf einer Karte haben, und durch
> ändern einer Environment-Variablen eine Disk wechseln (Danach Control-C
> nicht vergessen, wie bei CP/M < 3).
>
>> Bitte ersetze nicht die Laufwerkszuordnung im Environment durch was
>> Besseres, das ist nämlich schon das Beste.
>
> Es wäre gut genug, wenn man beim Ändern einer Variablen eine Aktion
> auslösen könnte. Dann könnte man dem CP/M 3 nämlich Bescheid stoßen,
> damit es die "gewechselte" Disk ohne Control-C einloggen könnte.

Das würde eine Sonderbehandlung der Environmentvariablen für dsk? 
erfordern, aber unmöglich ist es nicht.
Es erspart im Endeffekt wirklich nur das ^c, weiß nicht ob das lohnt..
>
> Aber wie oben angedeutet, werde ich die 8 wohl in den master-branch
> übernehmen...

:-)

Gerne.

Es hat kaum Nachteile, nur das BIOS wird größer und da wir hier CP/M 3.0 
haben gibts da Reserven.

Gruß,

Holm

von Holm T. (Gast)


Lesenswert?

..irgendwie habe ich beim Bearbeiten nun 3 Mal das Selbe geschrieben das 
aber nicht im Text auftaucht, also hier nochmal einzeln.

Ich würde es für besser halten ein CP/M Programm zu haben das die 
Zuordnung der Images zu den Drives bewerkstelligt (assign "BDS-C1.dsk" 
"C") und evtl.
ein Programm das das Inhaltsverzeichnis und das aktuelle Assignment 
ausgibt, oder Beides in einem.

Die AVR-Console ist eigentlich nur die Firmware des 
"Festplattencontrollers", mit dem Ding würde ich gerne nur reden wollen 
wenn ich was grundsätzlich zu ändern habe, zu Wartungszwecken halt.

Gruß,

Holm

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Leo C. schrieb:
> So siehts bei 6.6 gerade aus:

Danke! Ist in die Doku aufgenommen.

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Holm T. schrieb:
> Ich vermisse jetzt schon meine K1520Net Netzwerkkarte... hast Du evtl.
> noch Ambitionen Joe?

An Ambitionen mangelt es nicht, mehr an der Zeit. Zunächst ist ja noch 
die USB-Schnittstelle in der Pipeline.

von Holm T. (Gast)


Lesenswert?

Hmm, ich weiß schon, Useless Serial Bus finden die Leute fetzig, ich 
eher nicht oder nur schaumgebremst, aber das ist eine persönliche Macke 
von mir.

Ich finde es halt Klasse wenn ich ohne irgendwelchem Kram an- oder 
abzuprömpeln Dateien vom Host holen oder Daten da hin schicken kann :-)


USB Sticks findet meine Frau immer total vergammelt unter der 
Wäschespinne, die letzten Beiden gehen trotz deutlicher Korrosion und 
Verformungen aber immer noch.. :-|

Das ist mir mit Netzwerkkabeln noch nie passiert.

:-)

Zur Netzwerkkarte:

 Die Hardwareunterlagen sind ja öffentlich, im Endeffekt sitzt da auch 
ein AVR und ein Wiznet Modul drauf, nur das Bussystem ist halt derzeit 
nicht ECB mit DIN Steckern sondern DDR K1520 Bus ..was aber nur ein 
mechanischer Unterschied ist. Das Ganze ist über eine PIO am System 
angebunden (weiß nicht wie die Lage mit 18 Mhz-fähigen PIOs in PLCC so 
aussieht) und die Firmware für den AVR gibts momentan nach Zusendung 
einer Ethernetadresse (z.B. von einer ollen PC Netzwerkkarte) von susowa 
(dem Autor) per Mail.

Susowa wird sich sicherlich nicht gegen eine Anpassung sperren.

http://susowa.homeftp.net/index.php/projekte-mainmenu/kcnet-mainmenu-130/87-nachnutzung.html

Wobei K1520Net die Variante für das DDR K1520 OEM Sysstem und KCNet die 
Varaiante für den KC85 ist.

Nur als Info gedacht..

Gruß,

Holm

von Leo C. (rapid)


Lesenswert?

> Bisher habe ich oft den M80 benutzt und da wirds wohl
> Brühe wenn der auf User 0 sitzt und die zu assemblierenden Dateien auf
> User 14..

Eben nicht.

CP/M 3 User’s Manual, 2.7.1 File Attributes:
1
A file with the SYS attribute has a special advantage when it is created under user 0. When you give a file with
2
user number 0 the SYS attribute, you can read and execute that file from any user number. This feature gives
3
you a convenient way to make your commonly used programs available under any user number.

und
4.4.2 Finding Program Files:
1
The search procedure for a program file can be very different from a data file search. This is because you can
2
use the SETDEF command described in Section 5 to define the search procedure you want CP/M 3 to follow
3
when it is looking for a program file. With SETDEF you can ask CP/M 3 to make as many as sixteen searches
4
when you do not include a drive specifier before the command keyword, but that is a rare case!
5
6
...
7
8
When you use a SETDEF command to define your own drive chain, include the default drive, and the drive that
9
contains your most frequently used utilities. For an example, assume you defined your drive chain as * (the
10
default drive) and drive A.
11
12
When you enter the following command:
13
14
    2D>SHOW [SPACE]
15
16
CP/M 3 looks for SHOW.COM in the following sequence:
17
18
    1.     drive D, user 2
19
    2.     drive D, user 0
20
    3.     drive A, user 2
21
    4.     drive A, user 0

> Das würde eine Sonderbehandlung der Environmentvariablen für dsk?
> erfordern,

Oder eine allgemeine Erweiterung, daß man an Variablen 
"Callback-Funtionen" anhängen kann. Dann könnte man z.B. auch die 
Baudrate ändern, wenn die entsprechende Variable gesetzt wird. Weitere 
Anwendungen fallen mir aber nicht ein, und deshalb habe ich es auch 
nicht eingebaut.

Holm T. schrieb:
> Ich würde es für besser halten ein CP/M Programm zu haben das die
> Zuordnung der Images zu den Drives bewerkstelligt (assign "BDS-C1.dsk"
> "C") und evtl.
> ein Programm das das Inhaltsverzeichnis und das aktuelle Assignment
> ausgibt, oder Beides in einem.

In die Richtung assign- oder mount-Funktion sollte es gehen. Wenn die 
Funktion im AVR-Monitor vorhanden ist, kann sie auch von CP/M über das 
vorhandene (bzw. dann zu erweiternde) Protokoll aufgerufen werden.

von Holm T. (Gast)


Lesenswert?

Ich werde mich mal damit beschäftigen Leo, wie schon mal erwähnt, mit 
CP/M3 habe ich das erste Mal zu tun.

Nochmal zur Hardware..etwas Bauchschmerzen macht mir der nicht 
getriebene, doch relativ schnelle Bus.
Ich habe gerade mal ein Bisschen herumgegoogelt, schnellere PIOs als 
10Mhz habe ich auch nicht gefunden, hat Jemand da schon mal welche auf 
freier Wildbahn gesehen?

Man müßte dann den PIO mit halber Taktfrequenz betreiben, müßte 
eigentlich funktionieren, hat das schon mal Jemand gemacht?

Gruß,

Holm

von Marcel A. (dl1ekm)


Lesenswert?

Hallo holm,

für die Dateiübertragung vom PC direkt in das CPM nutze ich Kermit. Habe 
ich hier gerade mal beschrieben:
http://retro-compi.de/index.php/z180-stamp/z180-anwendungen/z180-anwendungen-kermit

Ansonsten setze ich große Hoffnungen auf Joes Vinculum.

Eine Netzanbindung hatte ich auch schon einmal testweise. Dazu kann man 
ja einen wenige Euro günstigen Seriell-(W)LAN-Wandler nehmen, der die 
serielle Schnittstelle in Telnet umsetzt. Zum Spaß hatte ich das mal mit 
dem AVR Net-IO und angepasster Firmware gemacht (Pollin) - hat aber nur 
"prinzipiell" funktioniert und ich habe das (noch) nicht weiterverfolgt. 
Denn auch mein Problem ist, dass ich im echten Leben Brötchen verdienen 
muss :-)

Gruß
Marcel

von Holm T. (Gast)


Lesenswert?

Ja klar, Hobby und Spielzeug bleibt das allemal, in so fern haben sich 
die Prioritäten zu sortieren...

Kermit etc. ist mir bekannt, Sowas benutze ich auch teilweise, aber ich 
finde halt die Möglichkeit ftp/tftp und telnet vom CP/M Rechner aus 
benutzen zu können interessant, das ist doch deutlich flexibler als 
Kermit oder die Stöpselei von USB Sticks.
IMHO hatten die Jungs auch die DDR Bürocomputer PC1715 oder A5120 
diskless mit der Karte gebootet.

Ich Freund von mit hat sich gemeldet, er hat wohl noch 100 Stück 16Mhz 
PLCC PIOs die er mal für ein mittlerweile verstorbenes Forenprojekt von 
Robotrontechnik.de in Singapur (er ist Seemann) gekauft hatte, da liegen 
und steckt mir 2 in einen Brief.
Ich kann damit mal probieren ob ich die K1520Net Karte ohne Änderungen
mit 18,432Mhz zum Laufen bekomme, muß da nochmal mit den Machern der 
Karte konferieren.

Der K1520 Bus ist im wesentlichen das Selbe wie der ECB Bus, nur halt 
mit anderem Layout.

Es gibt auch andere ähnliche Projekte für DDR Computer, z.B: die 
sogenannte GUN Platine für den PC1715..(Gide, USB, Netzwerk), das ist 
nur alles nicht für so irre Taktfrequenzen ausgelegt. Auch da werkelt 
ein Vinculum bzw. der VNC2-32.

Freilich hat das Alles Zeit.

Gruß,

Holm

von Leo C. (rapid)


Angehängte Dateien:

Lesenswert?

Auf vielfachen Wunsch hier die 8-drive Version von Monitor und Bios. 
Genaugenommen ist es sogar eine 12-drive Version, wenn man ein IDE-Gerät 
dran hat.

Holm T. schrieb:
> Es hat kaum Nachteile, nur das BIOS wird größer und da wir hier CP/M 3.0
> haben gibts da Reserven.

Der Platz, der für alloc und checksum vector drauf geht, ist schon 
beachtlich. Die Anzahl freier Pages in Bank 0 ging von 75 auf 63, also 
um 3 KB runter. Also bis zu 6 Directory-Buffer weniger. Schön wärs, wenn 
man den Platz dynamisch zuordnen könnte, vor allem wenn man noch größere 
Laufwerke zulassen möchte. CP/M 3 unterstützt ja bis zu 512 MByte. Aber 
das ist wohl ein Job für jemanden, der sonst nichts zu tun hat.



Falls jemand das CF-Interface von oben 
(Beitrag "Re: Z180-Stamp Modul") 
nachbauen will: im Schaltplan fehlt noch eine Verbindung von /DREQ1 (15a 
am ECB) nach GND, da der DMA1 für den Datentransfer verwendet wird. 
Besser wäre natürlich, wenn man die Verbindung über einen Port ein- und 
ausschalten könnte, damit der DMA-Kanal auch noch für andere Geräte 
genutzt werden kann. Möglicherweise reicht aber auch eine Verknüpfung 
mit DASP.

von Marcel A. (dl1ekm)


Lesenswert?

Fein, probier ich am WE aus.
Das hex ist vermutlich für den 1281? D.h. für den 2561 erstelle ich mir 
das mit der richtigen tup-variante aus dem aktuelle GIT Repository am 
besten selber?

Das CPM.SYS ist davon ja unabhängig.

Danke!

von Leo C. (rapid)


Lesenswert?

Ja. Ja. Ja.

von Peter Z. (flexopete)


Lesenswert?

@all
Wo bekomme ich denn aktuell noch eine
ECB-Bus Backplane gekauft? Google war nicht
sehr gesprächig.
Gruss
Peter

von Marcel A. (dl1ekm)


Lesenswert?

Reichelt - knapp 20€

von Peter Z. (flexopete)


Lesenswert?

@Marcel
Danke für die Antwort. Bei den Messer-, Federl. DIN 41612 bin
ich gewesen, auf Laborkarte wäre ich nun nicht gekommen.
Gruss
Peter

von Leo C. (rapid)


Lesenswert?


von Leo C. (rapid)


Lesenswert?

Holm T. schrieb:
> Zur Netzwerkkarte:
>
>  Die Hardwareunterlagen sind ja öffentlich, im Endeffekt sitzt da auch
> ein AVR und ein Wiznet Modul drauf, nur das Bussystem ist halt derzeit
> nicht ECB mit DIN Steckern sondern DDR K1520 Bus ..was aber nur ein
...
> 
http://susowa.homeftp.net/index.php/projekte-mainmenu/kcnet-mainmenu-130/87-nachnutzung.html

Die Netzwerkkarte sieht im wesentlichen so aus:
1
(ECB)
2
 Bus 
3
  |
4
  |<===> PIO <===> ATmega162 <===> WIZnet <---> RJ45          (1)
5
  |
6
  |<===> Z(1)80
7
  |
Nur die obere Zeile, die untere soll das Rest-System darstellen.
Der ATmega reicht die Daten 1:1 durch. Er dient nur dazu, die 
Schnittstelle des WIZnet-Chips an die PIO anzupassen und die MAC-Adresse 
der Karte zu speichern.

PIO und ATmega kann man imho getrost weglassen, und den WIZnet direkt an 
den Bus anschließen. Der benötigte Adressdecoder ist in etwa der 
gleiche. Das sähe dann so aus:
1
 ECB
2
 Bus 
3
  |<===> WIZnet <---> RJ45                                    (2)
4
  |
5
  |<===> Z(1)80

Der Chip könnte auch über seine SPI-Schnittstelle an CSI/O der Z180 
angeschlossen werden. Nachteil: Da die CSI/O-Schnittstelle kein 
richtiges SPI kann, könnte es evtl. Probleme geben. Man müßte 
irgendwoher ein CS-Signal zaubern. Relativ lansam, max CPU-Takt/20.
1
 ECB
2
  |<===> Z180-CSI/O <--SPI--> WIZnet <---> RJ45               (3)

Falls ein Atmega dem Z180 doch noch Arbeit abnehmen könnte, sollte man 
das WIZnet-Modul an die SPI-Schnittstelle der AVR-Stamp anschließen. Bei 
dieser Lösung wäre der Hardware-Aufwand am geringsten:
1
 ECB 
2
  |     |<=> AVR-Stamp <--SPI--> WIZnet <---> RJ45            (4)
3
  |<===>| 
4
  |     |<=> Z180-Stamp

: Bearbeitet durch User
von Holm T. (Gast)


Lesenswert?

Ich hatte mir noch keinerlei Gedanken um die innere Struktur der Karte 
gemacht (einfach nur benutzt), wollte das aber nun tun.. Danke Leo.

Die hier aufpoppende Frage hat sich mir schon mal in anderem 
Zusammenhang gestellt, gibts eine SPI Schnittstelle mit BUS-Anschluß? 
Also Parallel zu SPI? UARTs und DACs gibts ja Haufenweise.

Gruß,

Holm

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Holm T. schrieb:
> GUN Platine für den PC1715

Leo C. schrieb:
> Falls ein Atmega dem Z180 doch noch Arbeit abnehmen könnte, sollte man
> das WIZnet-Modul an die SPI-Schnittstelle der AVR-Stamp anschließen.

Ich hatte mir in der Vergangenheit schon mehrfach Gedanken über 
unterschiedliche Varianten gemacht. Eine PIO-Variante hatte ich wegen 
der Verfügbarkeit und Geschwindigkeit ausgeschlossen. Das jetzige 
AVR/Z180-Stamp-System ist ja tatsächlich mit derzeit verfügbaren 
Bauelementen zu realisieren. Diese Philosophie wollte ich bei 
Erweiterungen eigentlich beibehalten, unabhängig ob noch jemand eine 
„schnelle“ PIO in der Kiste hat.

Da WIZnet und andere Module über SPI kommunizieren und auch der VNC-II 
eine SPI-Schnittstelle hat, sehe ich eine Lösung in einer ECB-SPI 
Umsetzer (egal wie realisiert). Diese Aufgabe könnte z.B. ein AVR 
übernehmen. Eleganter ist jedoch eine SPI-UART-Bridge wie der SC16IS741A 
[1]. Er unterstützt flow control über RTS /CTS und könnte am ECB-Board, 
Console 0 angeschlossen werden. Eine ähnliche Variante ist durch Leo.C. 
ja schon als I2C-UART-Bridge [2] beim AVR CP/M realisiert.

[1] http://cache.nxp.com/documents/data_sheet/SC16IS741A.pdf?pspll=1
[2] Beitrag "Re: CP/M auf ATmega88"

von Marcel A. (dl1ekm)


Lesenswert?

Joe G. schrieb:
> Eine PIO-Variante hatte ich wegen
> der Verfügbarkeit und Geschwindigkeit ausgeschlossen.Das jetzige
> AVR/Z180-Stamp-System ist ja tatsächlich mit derzeit verfügbaren
> Bauelementen zu realisieren. Diese Philosophie wollte ich bei
> Erweiterungen eigentlich beibehalten, unabhängig ob noch jemand eine
> „schnelle“ PIO in der Kiste hat.

Verstehe ich. Dennoch juckt es mich, die inzwischen angesammelten 
Bausteine einmal in der Praxis auszuprobieren (PIO oder 8255, der 
angeblich weniger zickig ist).
Nun kommen mir aufgrund der obigen Diskussion Zweifel auf ob der 
Geschwindigkeit. Hatte darüber noch gar nicht nachgedacht - aber 
bedeutet das, für diese Experimente müsste ich deutlich von den 18MHz 
runter?

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Marcel A. schrieb:
> aber
> bedeutet das, für diese Experimente müsste ich deutlich von den 18MHz
> runter?

Laut Zilog und auch den Distributoren (z.B. Mouser) gibt es die PIO 
Z84C20 noch als 10 MHz Version (Z84C2010). Mit einem Bustakt von 10 MHz 
sollte sie also korrekt laufen.

von Leo C. (rapid)


Lesenswert?

Joe G. schrieb:>
Da WIZnet und andere Module über SPI kommunizieren und auch der VNC-II
> eine SPI-Schnittstelle hat, sehe ich eine Lösung in einer ECB-SPI
> Umsetzer (egal wie realisiert).

Also speziell für den WIZnet-Chip ist das nicht nötig, da er ein 
wirklich einfach anzusteuerndes und schnelles Bus-Interface hat. Das 
belegt im "Indirect Bus Interface Mode" 4 I/O Adressen. Datenblöcke 
können mit INIR/OTIR-Befehlen oder mit einem DMA-Kanal übertragen 
werden. Dürfte bis 33 MHz CPU-Takt ohne Waitstates funktionieren.

> Diese Aufgabe könnte z.B. ein AVR übernehmen.

Mit einem AVR wird das wahrscheinlich nicht leistungsfähig, bzw. 
aufwändig, da man für In und Out je ein Latch mit Handshake bräuchte. 
Oder eine Z80-PIO. ;) Es soll PICs geben, die so was eingebaut haben. 
Mit STM32F1 hatte ich das mal für eine Richtung (Z180 out) realisiert. 
Der war mit 24MHz einen Tick zu langsam für einen Z180 mit 9,2MHz.

> Eleganter ist jedoch eine SPI-UART-Bridge wie der SC16IS741A

Der ist aber für die falsche Richtung.

Noch eleganter ist wohl ein FPGA:
https://www.altera.com/content/dam/altera-www/global/en_US/pdfs/literature/an/an485.pdf

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Leo C. schrieb:
> Noch eleganter ist wohl ein FPGA:

Ein MAXII EPM240 CPLD ist ja bei verschiedenen Anbietern als kleines 
Board verfügbar. Nur wer kann so gut Verilog um es auch umzusetzen?

von Leo C. (rapid)


Lesenswert?

Marcel A. schrieb:
> bedeutet das, für diese Experimente müsste ich deutlich von den 18MHz
> runter?

Ja, oder Takt auf dem ECB-BUS halbieren (oder vierteln, wenn Deine PIOs 
nur 5 MHz können) wie es Holm weiter oben schon mal angedacht hat.

@Joe,
mit Verilog allein ist es ja nicht getan. Eigentlich wollte ich mit 
meinem Beitrag andeuten, daß ich den Aufwand für zu hoch halte (Gilt 
auch für die Takt-Halbierung). Für WIZnet und VNC2 gibts ja auch andere 
Lösungen. VNC2 kann außer über UART auch direkt parallel an ECB 
gekoppelt werden, wie ich gerade im Datenblatt gesehen habe. Wenns gar 
nicht ohne SPI geht, gibt es immer noch die Möglichkeit, den Chip an die 
AVR-Stamp anzuschließen. Ein paar Pins für Slave-Select sind ja noch 
frei. Und die Daten können sehr schnell ins Z180-RAM geschrieben, bzw. 
gelesen werden. Aber ich will natürlich niemand davon abhalten, ein 
ECB-SPI-Interface zu bauen.

BTW: Mein CF-Interface läuft auch nicht zuverlässig mit 18 MHz, bzw. 
kommt das System erst gar nicht hoch wenn das IF angesteckt ist. Egal, 
ob ein CF-Modul drauf ist, oder nicht. Das kann auch an der gammeligen 
"Backplane" liegen. Auf dem Bild oben 
(Beitrag "Re: Z180-Stamp Modul") ist es schlecht 
zu sehen, aber das ist nur ein Stück Flachbandkabel, mit 6 
aufgequetschten Buchsen.

von Jens (Gast)


Lesenswert?

Joe G. schrieb:
> Ein MAXII EPM240 CPLD ist ja bei verschiedenen Anbietern als kleines
> Board verfügbar. Nur wer kann so gut Verilog um es auch umzusetzen?
Ich bevorzuge VHDL. Aber wenn Du einmal einen FPGA in der Schaltung 
hast, willst Du irgendwann alles damit machen...

Leo C. schrieb:
> Aber ich will natürlich niemand davon abhalten, ein
> ECB-SPI-Interface zu bauen.
Daran hätte ich auch Interesse.
Prinzipiell müßten doch zwei Latches, ein kleiner Zähler, ein Takt und 
eine Adressmimik ausreichen.
Mit der steigenden Flanke von /WR wird der Zähler gestartet und schiebt 
die Bits raus (und auf dem zweiten Latch rein).
Das kann dann gelesen werden.
Wäre natürlich schön, das in einem Chip zu haben...

Geht sowas mit einem GAL?

Viele Grüße,
Jens

von Holm T. (Gast)


Lesenswert?

Joe G. schrieb:
> Marcel A. schrieb:
>> aber
>> bedeutet das, für diese Experimente müsste ich deutlich von den 18MHz
>> runter?
>
> Laut Zilog und auch den Distributoren (z.B. Mouser) gibt es die PIO
> Z84C20 noch als 10 MHz Version (Z84C2010). Mit einem Bustakt von 10 MHz
> sollte sie also korrekt laufen.

Ich habe heute vier Stück Z84C2016VEC, DC 0925 aus der Post genommen 
(von meinem Freund)
..und er schreibt das er sich dafür interessiert ob die Dinger 
funktionieren oder ob es China-Fakes sind.

Wenn die Dinger funktionieren währen sicherlich genug für Alle hier da, 
weil das ursprüngliche Projekt halt im Sande verlaufen ist...

Ich werde es also mal testen müssen.

Gruß,

Holm

von Holm T. (Gast)


Lesenswert?

Marcel A. schrieb:

> Verstehe ich. Dennoch juckt es mich, die inzwischen angesammelten
> Bausteine einmal in der Praxis auszuprobieren (PIO oder 8255, der
> angeblich weniger zickig ist).

Da haste was verwechselt. Der 8255 ist ein haarsträubendes Teil 
..typisch Intel.

Gruß,

Holm

von Marcel A. (dl1ekm)


Lesenswert?

Echt? Das stand so in einem MC Artikel. Muss noch mal nachsehen, war 
irgendwas mit Status oder Timings.

von Holm T. (Gast)


Lesenswert?

Leo C. schrieb:
> Marcel A. schrieb:
>> bedeutet das, für diese Experimente müsste ich deutlich von den 18MHz
>> runter?
>
> Ja, oder Takt auf dem ECB-BUS halbieren (oder vierteln, wenn Deine PIOs
> nur 5 MHz können) wie es Holm weiter oben schon mal angedacht hat.
>
> @Joe,
> mit Verilog allein ist es ja nicht getan. Eigentlich wollte ich mit
> meinem Beitrag andeuten, daß ich den Aufwand für zu hoch halte (Gilt
> auch für die Takt-Halbierung).

Mal abgesehen von CPLD/FPGA und Verilog...wir haben hier ein ECB Bus 
Interface..das wurde dazu gemacht erweiterbar zu sein...

> Für WIZnet und VNC2 gibts ja auch andere
> Lösungen.

Welche fallen Dir ein?

[..]
>
> BTW: Mein CF-Interface läuft auch nicht zuverlässig mit 18 MHz, bzw.
> kommt das System erst gar nicht hoch wenn das IF angesteckt ist. Egal,
> ob ein CF-Modul drauf ist, oder nicht. Das kann auch an der gammeligen
> "Backplane" liegen. Auf dem Bild oben
> (Beitrag "Re: Z180-Stamp Modul") ist es schlecht
> zu sehen, aber das ist nur ein Stück Flachbandkabel, mit 6
> aufgequetschten Buchsen.

Es gibt noch ECB Backplanes zu kaufen, ich habe auch irgendwie noch 2 
unbestückte da. Ich denke nur nicht das bei 18Mhz irgend Etwas 
zuverlässig
damit laufen wird, schon gar nicht mit dem ungetriebenen Bus.
Das Ganze ist eine Fehlkonstruktion, aber das war mir von vornherein 
bewußt und ich habe die Platinen trotzdem gekauft, also um Gottes Willen 
Nichts gegen die Konstrukteure...

Wenn man wirklich ein kleines ausbaubares System haben möchte muß man 
sich zwangsläufig Gedanken um das Bussystem machen. Alles oberhalb 5Mhz 
wird kritisch wenn es nicht terminiert ist, bis 8Mhz wird das noch zu 
machen sein aber es wird wohl nicht beim 1. Versuch funktionieren.

Mir fallen 2 Varianten ein:

1. Redesign der Basisplatine und da die weitestgehend leer ist, lassen 
sich evtl. noch Bustreiber integrieren.

2. Verlegen der Bustreiber für einen Slot auf eine noch zu 
konstruierende Backplane wo sie dann als Puffer zwischen der 
existierenden Basisplatine und dem restlichen System arbeiten.

Ich halte die Sache nach wie vor noch für ziemlich heiß und es würde 
mich interessieren wie Z80 Bausteine sich im IM2 mit halbem oder viertel 
Systemtakt verhalten. Ich habe ein PDF von Zilog gefunden:

(http://www.zilog.com/appnotes_download.php?FromPage=DirectLink&dn=AN0063ft=Application%20Notef=YUhSMGNEb3ZMM2QzZHk1NmFXeHZaeTVqYjIwdlpHOWpjeTk2TVRnd0wyRndjRzV2ZEdWekwybHVkR1Z5YldWdExuQmtaZz09)

das die Anbindung an  den schnellen Z8S180 mit 20Mhz erläutert, von 
halbem Systemtakt redet da aber Keiner. Ich selbst stand noch nie vor 
dem Problem für einen Z80 nicht gleich schnelle Peripherie auftreiben zu 
können und weiß nicht ob und wie das tut und wo Probleme entstehen.

Wir haben jetzt einen recht schnellen CPU Kern mit Hauptspeicher und 
auch die Massenspeicher-Anbindung über den schnellen Bus. Es wäre aber 
hybsch irgendwas wie D/A Wandler oder Netzwerk anbinden zu können, ok 
mit dem Witznet W5100/W5300 geht das sicher auch noch schnell und 
direkt, bei dem Rest von Peripherie ist das evtl. nicht unbedingt 
notwendig..ok, den USB Stick hätte man auch gerne schnell und wer ne VGA 
Grafik haben will..

Wenn ich nach der PIO Bezeichnung der 16Mhz Dinger die ich hier habe 
google (Z84C2016VEC) geben mir alleine die gefundenen Links nicht all zu 
viel Hoffnung das es sich um ein reelles Produkt handelt. Im günstigsten 
Fall sind das ausgemessene 10Mhz Versionen ...und ich habe derzeit noch 
keine Ahnung wie viel Luft da nach oben noch ist, vom ungünstigsten Fall 
reden wir mal nicht. Allerdings sehen die Dinger nicht offensichtlich 
nach einer Fälschung aus bzw. diese ist dann gut gemacht. Ich werde 
Zilog mal eine Anfrage schicken..

Was also können/wollen wir machen?

Gruß,

Holm

von Holm T. (Gast)


Lesenswert?

Marcel A. schrieb:
> Echt? Das stand so in einem MC Artikel. Muss noch mal nachsehen, war
> irgendwas mit Status oder Timings.

Die PIO funktioniert wie sie soll und ist eigentlich auch nicht 
timing-kritisch. Der 8255 wartet mit allerhand Nettigkeiten auf wie zum 
Beispiel die Tatsache das Du keine Portleitungen von Ein- auf Ausgabe 
und umgekehrt umprogrammieren kannst ohne das das Ding Dir die ganze 
restliche Programmiererei durcheinander haut (Reset). Das Teil ist 
wirklich giftig.

Um eine LED Anzeige oder ne Tastatur anzubinden tuts freilich.

Gruß,

Holm

von Leo C. (rapid)


Lesenswert?

Holm T. schrieb:
>> Für WIZnet und VNC2 gibts ja auch andere
>> Lösungen.
>
> Welche fallen Dir ein?

Wurde oben ja schon genannt: Beide können direkt an den Prozessor-Bus 
gekoppelt werden.

>> BTW: Mein CF-Interface läuft auch nicht zuverlässig mit 18 MHz, bzw.

Läuft inzwischen. Gestern Abend habe ich gemerkt, daß es eigentlich nur 
beim Start Schwierigkeiten gibt. Heute Morgen war der Grund dann schnell 
gefunden: Die CF-Karte hat an /RESET eine "größere" Kapazität hängen. 
Das war auch die einzige Leitung, die ungepuffert vom Bus an den 
IDE-Stecker ging. Jetzt habe ich den noch freien Buffer in die 
Reset-Leitung gelötet, und es geht. Trotzdem sollte ich aber auch die 
Software an der Stelle etwas entschärfen.

Damit will ich nicht sagen, daß es über den vollen Temeraturbereich 
stabil läuft, robust gegen Störungen ist, und auch noch läuft, wenn man 
noch mehr Karten dazu steckt, usw. Aber auf meinem Schreibtisch ist es 
jetzt definitiv stabil bei 18,432 MHz. Wundert mich selber.
Vorhin habe ich die I/O-Waitstates auch noch auf 0 gesetzt. Läuft immer 
noch. :)
Ein Sektor von oder zur CF-Karte wird jetzt mit 7 Takte/Byte übertragen. 
Und dank Multi-Sektor-I/O ist zwischen Sektoren oft nur sehr wenig 
Overhead. Eine RAM-Disk wäre höchstens einen Takt/Byte schneller. Aber 
auch nur, wenn sie komplett Memory-mapped angebunden ist, und nicht über 
I/O-Ports.

> Es gibt noch ECB Backplanes zu kaufen, ich habe auch irgendwie noch 2
> unbestückte da.

Es ist ja nicht so, daß ich nichts anderes hätte. Ich wollte es einfach 
mal damit ausprobieren. Außerdem ist das Teil so schön flexibel, daß man 
die Karte hin und her klappen, und so von allen Seiten messen kann.

> Ich denke nur nicht das bei 18Mhz irgend Etwas
> zuverlässig
> damit laufen wird, schon gar nicht mit dem ungetriebenen Bus.

Solange alle Busteilnehmer CMOS sind (so wie jetzt) sehe ich darin kein 
so großes Problem. Buslänge, (fehlende) Terminierung, Kartenanzahl schon 
eher.

> Das Ganze ist eine Fehlkonstruktion, aber das war mir von vornherein
> bewußt und ich habe die Platinen trotzdem gekauft, also um Gottes Willen
> Nichts gegen die Konstrukteure...

Es war eine bewußte Designentscheidung. Zu dem Zeitpunkt waren die 
Stampkarten noch für reinen 3.3V-Betrieb ausgelegt. Die Bustreiber 
hätten dann auch noch Levelshifter-Funktion übenehmen müssen. Das alles 
für den Fall, daß jemand eine ECB-Karte hat, die schnell genug ist, und 
an dem System noch Sinn macht. Die alten Floppy-Controller, EPROM-,RAM- 
und RAM-Disk-Karten gehören eher nicht dazu.
Auf keinen Fall war und ist das System dazu gedacht, in einem 
ausgebauten ECB-System die CPU-Karte zu ersetzen. IMHO.

> Systemtakt verhalten. Ich habe ein PDF von Zilog gefunden:
>(http://www.zilog.com/appnotes_download.php?FromPage=DirectLink&dn=AN0063ft=Application%20Notef=YUhSMGNEb3ZMM2QzZHk1NmFXeHZaeTVqYjIwdlpHOWpjeTk2TVRnd0wyRndjRzV2ZEdWekwybHVkR1Z5YldWdExuQmtaZz09)
> das die Anbindung an  den schnellen Z8S180 mit 20Mhz erläutert, von
> halbem Systemtakt redet da aber Keiner.

Der Link geht bei mir nicht. Falls es diese AN ist:
     INTERFACING MEMORY AND I/O TO
     THE 20 MHZ Z8S180 SYSTEM
dann ist darin von den alten Z80-Peripheriebausteinen nicht die Rede 
sondern von:
     2) 20 MHz ESCC TM timing is based on the
        Z85230 Product Specification.
Und diesen ESCC wird es wohl für 20 MHz geben.

> Wir haben jetzt einen recht schnellen CPU Kern mit Hauptspeicher und
> auch die Massenspeicher-Anbindung über den schnellen Bus.

Den Speicher kann man übrigens (über den Bus) noch auf 1 Mbyte 
erweitern.

> Es wäre aber hybsch irgendwas wie D/A Wandler

Wenn man auf Vektor-Ints verzichten kann, wäre der Anschluß eher 
langsamerer Peripherie kein großes Problem. Man müßte halt genug 
Wait-States reinknallen.
2 Interrupt-Leitungen haben wir noch frei. Die liegen auch auf dem 
ECB-Anschluß.

> und wer ne VGA Grafik haben will..

... Nimmt ein Terminal mit Tektronix 4014 Mode. ;-)

von Marcel A. (dl1ekm)


Lesenswert?

Holm T. schrieb:
> Was also können/wollen wir machen?

Gute Frage.

Ich hätte kein Problem, für gewisse Anwendungen den Takt zu vierteln 
(4,x MHz) - da diese aber im Quellcode steht, wäre das jedes Mal ein 
umflashen, oder?
Hat das nicht auch Auswirkungen auf die SIO? Ich denke, dann wäre nur 
noch 38,4kB drin - das ist dann schon spürbar im Terminal :-)

Zum 8255: Stimmt, der war recht merkwürdig, aber an sich auch etwas 
leistungsfähiger. Er wurde ja auch viel eingesetzt - so ganz schlecht 
kann er ja nicht sein. Ich meine gelesen zu haben, dass sich der 8255 
einfacher ansprechen lässt.

von Marcel A. (dl1ekm)


Lesenswert?

Habe die aktuelle SW drin - geht soweit.

Habe zwar die CF-Karte noch nicht gebaut - frage ich aber, wie die 
angesprochen wird?
- Sind die Laufwerke schon "fest verdrahtet" auf I - L?
- vermutlich muss man das Modul / die Karte erst mal am PC formatieren?
- wie sehen denn die Daten für CFDISK aus? Ich erinnere mich nur an die 
8MB Partitionen...

von holm (Gast)


Lesenswert?

@leo: Wie schon geschrieben, mir war von vornherein klar das das ein 
Spielzeug ist und ich will ja spielen. Ich hatte das ja gegenüber Joe 
auch shcon mal angesprochen (Mail?) normalerweise kräuseln sich mir die 
Fußnägel wenn ich diese ateml bootloaded Konstruktionen sehe weil kein 
Promer für Eproms da ist, ansonsten könnte der Z180 das ja gewissermaßen 
alleine..
Mir wäre also eine ECB Bus Karte (wegen der möglichen vielen Speilereien 
am Bus) mit Puffer eigentlich lieber gewesen, aber darüber will ich 
nicht nörgeln, ich bin erwachsen und wußte was ich mir an den Hals hänge 
:-)

Ich bin aber auch alt genug das mit Bremsen am Mopped mindestens genau 
so wichtig sind wie der Motor..war früher bestimmt mal anders. Liegt 
evtl. daran das einem mit den Jahren klar wird das das Leben endlich 
ist.
Ich muß also nicht das letzte Quäntchen Performance haben, 
Praktikabilität ist auch keine schlechte Sache.

..und ja, das PDF ist das von Dir genannte, mir gibts da nicht um die 
PIO, die haben nur halt kein Wort über den Anschluß langsamerer 
Peripherie verloren sondern sogar eine Statemachine in einem EP610 
vorgeführt um dem Bus selbst für den recht schnellen ESCC zu bremsen.

Auf IM2 können wir sicherlich verzichten, SIOs haben wir IMHO 
ausreichend
bleibt Netzwerk USB und evtl. Spielereien dann doch am Bus, man kann 
Ints aber auch konzentrieren in dem man das z.B. einen Zähler machen 
läßt.
Der 8255 ist nicht leistungsfähiger als eine PIO, das ist eher 
umgekehrt. Einfacher zu handhaben isser vielleicht, das liegt aber wohl 
daran das er älter und primitiver ist.

@Marcel:

Ich weiß nicht wqas die ASCIs in der Z180 machen, die Baudrate ist vom 
Takt abhängig, deswegen haben wir auch einen Baudratenquarz. Ich denke 
aber
das Du nicht viel Unterschied zwischen 115200 und 57600 an einem ASCII 
Terminal merken wirst. Das was Du da siehst ist IMHO nicht mehr die 
Schnittstellengeschwindigkeit sondern das was die CPU senden und das 
Terminal empfangen und verarbeiten kann ohne sich zu verschlucken.
Ich denke auch nicht das man "jedesmal umflashen" muß, Leo hat den 
programmäßig den Hut auf (gut so) und das unterbringen von 
Environmentvariablen für die Baudraten dürfte nicht das Problem sein, 
der Z180 kann auch ausrechnen welche Vorteiler etc. er für welche 
Baudrate bei welchem Takt braucht. Es sollte auch mit 9Mhz möglich sein 
115200 zu fahren, das konnten schon langsamere Rechner, allerdings wird 
dann Flußkontrolle wichtig.

Zur PIO: Mir sind bei der Z80 PIO keine Bugs bekannt, die macht recht 
gut und zuverlässig das was sie soll und ist hinsichtlich Bitweiser 
Programmierung auch flexibler als ein 8255. Ein 8255 dagegen hat mehr 
pure IO Leitungen nd auch ne rudimentäre Unterstützung für Handshake, 
aber das ist bei der PIO weiter ausgebaut. Der 8255 war eher da und 
stammt noch aus dem 8080 System, genauso wie der 8253 und beide haben 
dann bei 8085 und 8088/8086 eine weitere Blütezeit gehabt. Das 
Vorhandensein verwendbarer Peripherie-ICs für den 8088 war wohl auch der 
Grund warum IBM mit den 8088 Krücken den XT zusammengefrickelt hat (ja 
ich meine das exakt so wie ich das schreibe). 68000 und Z8000 waren 
weitaus bessere Systeme, es setzt sich am Markt aber wohl prinzipiell 
exakt das Beschissenste durch.

Also merke Dir für die Zukunft: 8255 mehr Portpins aber primitiver und 
Glitches. Der 82C55A ist etwas besser als der 8255 aber eine PIO ist 
viel besser und flexibler. Die beim 8255 "zusätzlich" vorhandenen 
Singale sind bei der PIO auch vorhanden aber teilweise dediziert belegt.

Evtl. wird die PIO auch für Manche übersichtlicher wenn sie eine 
deutsche Doku lesen, ich habe da unter www.tiffe.de/Robotron in dem 
Directory Bausteinubersicht unter Anderem PDFs zur U855, der Z80-PIO vom 
MME Erfurt, DDR.

Ich habe noch ca. 30-40 Stück russische 8255 da, brauchst Du welche? :-)
Sing glaube ich A Typen, sollten also 5Mhz mit machen.

Nochmal: Ob das mit der Taktteilerei überhaupt praktikabel funktioniert 
weiß ich nicht wirklich. Müßte man mal testen. Den Z180 muß man dann 
wohl trotzdem mit Waitstates ziemlich einbremsen. IMHO hat der Register 
in denen man das global festlegen kann, aber hier wäre wohl dann eine 
Mimik analog der aus dem oben angegebenen Datenblatt nötig die die CPU 
bei Zugriff auf einen bestimmen IO Bereich bremst. 
Interruptprioritätskette kann man wohl bei 18Mhz weitestgehend 
vergessen.
Natürlich kann man aber auch 74HCT374 oder Sowas als Latch zur 
Ein-Ausgabe benutzen oder solche S-TTL Oldtimer wie 8212 mit 
Interruptlogik :-)

Gruß,

Holm

von holm (Gast)


Lesenswert?

..Sorry für das Kauderwelsch/Durcheinander.. sitze im Garten am Notebook 
und hab nicht mal mein Login hier drauf..

Gruß,
Holm

von Leo C. (rapid)


Lesenswert?

Marcel A. schrieb:
> Ich hätte kein Problem, für gewisse Anwendungen den Takt zu vierteln
> (4,x MHz) - da diese aber im Quellcode steht, wäre das jedes Mal ein
> umflashen, oder?

Nein, das mit dem vierteln war anders gemeint. Du willst offensichtlich 
den CPU-Takt komplett niedriger einstellen. Da Du die ECB-Basiskarte 
hast, kannst Du dafür ganz einfach den Jumper JP3 auf 2-3 stellen und 
dann über den pin-Befehl an Pin 3 den gewünschten Takt einstellen. 
18,432 MHz geteilt durch 2 oder 3 oder 4 oder ... oder 524288.

> Hat das nicht auch Auswirkungen auf die SIO? Ich denke, dann wäre nur
> noch 38,4kB drin - das ist dann schon spürbar im Terminal :-)

Dafür ist ja die Takterkennung im BIOS, die aber leider nicht gut 
funktioniert. Inzwischen habe ich eine andere (ich lasse den AVR den 
Takt auf ca. 5 Stellen genau messen), die ist aber noch nicht eingebaut. 
Aber wenn, dann kann man auch auf der Z180-Stamp (nahezu) beliebige 
Quarze einstecken. Bis 33,868 MHz getestet.

Aus dem User Manual:
baud rate = f PHI /(2*(TC+2)*16)

Oder anders rum :
TC = (f PHI /*2*baud rate*16)) -2

Minimale Taktrate für 115200 baud:
2*2*115200*16/2  = 7,3728 MHz

Aber die Baudrate wird ja allgemein überbewertet. Das hatten wir schon 
weiter oben.

> Habe zwar die CF-Karte noch nicht gebaut - frage ich aber, wie die
> angesprochen wird?
> - Sind die Laufwerke schon "fest verdrahtet" auf I - L?

Ja

> - vermutlich muss man das Modul / die Karte erst mal am PC formatieren?

Partitionieren reicht. Bin dabei, ein fdisk für CP/M mit TP zu 
schreiben.

> - wie sehen denn die Daten für CFDISK aus? Ich erinnere mich nur an die
> 8MB Partitionen...

Genuau so, wie beim AVR-CP/M-System. Nur primäre Partitionen und 
Partitionstyp 52. Bisher wird auch nur das simhd-Format unterstützt, 
also die bekannten 8 MB.

1
CP/M Version 3.0, Z180-Stamp BIOS v0.6.4.12-cf-card-dirty
2
Estimated CPU clock [Hz]: 18432000
3
cfio: CompactFlash Memory Card driver
4
    Model: CF Card, S/N: B00D07230E0700221719, Rev: Ver2.35
5
    Size: 7880544 Sectors (3940272 KiB)
6
    I: CP/M partition at: 2048, size: 8192KiB
7
    J: CP/M partition at: 18432, size: 8192KiB
8
    K: CP/M partition at: 34816, size: 524288KiB
9
10
A>

von Leo C. (rapid)


Lesenswert?

holm schrieb:
> Fußnägel wenn ich diese ateml bootloaded Konstruktionen sehe weil kein
> Promer für Eproms da ist, ansonsten könnte der Z180 das ja gewissermaßen
> alleine..

E(E)PROMS sind tot! Und das ist gut so.

von Marcel A. (dl1ekm)


Lesenswert?

Leo C. schrieb:
> E(E)PROMS sind tot! Und das ist gut so.

Das ist jetzt aber ein hartes Urteil :-) Ich bin froh, einen Brenner zu 
haben, damit kann ich die firmware für den NDR Computer und diverse 
Dinge für meinen C128 brutzeln :-)

von holm (Gast)


Lesenswert?

> E(E)PROMS sind tot! Und das ist gut so.

Ich glaube Dir kein Wort. Auch eine SD Karte ist nix weiter als ein 
Flash ROM, es ist aber nicht allzu proaktikabel wenn man damit einen 
Z180 anwerfen will.

Beruhige Dich mal mit edem Fdis in Pascal, ich glaube so was habe ich, 
zumindest hat es mal eine MFM Festplatte partitioniert und u.A. auch 
eine DOS Partition angelegt.

Ich suche das raus.

Gruß,

Holm

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

holm schrieb:
> Wie schon geschrieben, mir war von vornherein klar das das ein
> Spielzeug ist und ich will ja spielen. Ich hatte das ja gegenüber Joe
> auch schon mal angesprochen

Hier nochmals ganz deutlich die Beweggründe für das derzeitige System.

Der Z180-Stamp ist eine CPU mit Z80-Bus und Speicher – mehr nicht.
Der AVR-Stamp ist ein Speicher der den Bootvorgang übernimmt – mehr 
nicht.

Um den Bootvorgang und die Inbetriebnahme zu erleichtern,  übernimmt der 
AVR noch einige Zusatzfunktionen (Monitor, CD-Card mit FAT, V24, RTC, 
USB, usw.). Wer das nicht mag, wer klassisch arbeiten möchte, steckt 
einfach auf den Z180-Stamp seinen EPROM und steckt den Z180-Stamp auf 
sein eigenes, wie auch immer aufgebautes Board.

CP/M – Minimalvariante
Z180-Stamp und AVR-Stamp im Huckepackbauweise ergeben ein lauffähiges 
CP/M Minimalsystem. Es ist dazu keine weitere Hardware notwendig.  Die 
Terminalausgabe für den Monitor und das CP/M erfolgt über die 
USB-Schnittstelle des AVR-Stamp.

CP/M – Grundvariante
Z180-Stamp und AVR-Stamp werden auf das Basisboard gesteckt. Auf diesem 
sind die V24 Schnittstellen der SIO rausgeführt, eine zweite SD-Card 
untergebracht, Jumper für die Taktumschaltung vorgesehen und der Z80-Bus 
auf einen Steckverbinder rausgeführt. Bustreiber sind aus schon 
ausgeführten Gründen nicht vorgesehen.

Mehr sollte und darf nicht in dieses System reininterpretiert werden. Es 
ist und bleibt ein einfaches Experimentalsystem für Z80. Was letztlich 
jeder damit machen möchte, bleibt den Nachnutzer überlassen.

von Leo C. (rapid)


Lesenswert?

> Experimentalsystem

Genau.

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Holm T. schrieb:
>> Für WIZnet und VNC2 gibts ja auch andere Lösungen.
>
> Welche fallen Dir ein?

Hier [1] eine Variante wie der VNC an einen JU+TE TINY über FIFO 
angeschlossen wird.

[1] http://hc-ddr.hucki.net/wiki/doku.php/tiny:erweiterungen:vdip

von Holm T. (Gast)


Lesenswert?

Joe G. schrieb:
> Holm T. schrieb:
>>> Für WIZnet und VNC2 gibts ja auch andere Lösungen.
>>
>> Welche fallen Dir ein?
>
> Hier [1] eine Variante wie der VNC an einen JU+TE TINY über FIFO
> angeschlossen wird.
>
> [1] http://hc-ddr.hucki.net/wiki/doku.php/tiny:erweiterungen:vdip

...hab das überflogen...wo siehst Du da einen Fifo?

Gruß,

Holm

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.