mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Z80 SBC Problem.


Autor: Harald N. (haraldn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich mir hier einen Z80 SBC auf dem Breadboard aufgebaut und teste gerade 
die Komponenten durch. Die PIO macht was sie soll. Bei der CTC hab ich 
einige Probleme. Entweder sehe ich den Wald vor lauter Bäumen nicht 
oder...
Bevor ich allerdings mit der SIO weitermache, würde ich gerne dieses 
Problem lösen.

Vielleicht hat einer der Z80 Spezialisten kurz Zeit über den Mini-Code 
(umso peinlicher) zu sehen. Vielleicht hab ich wirklich was übersehen.

Nur kurz zum Aufbau: Auswahl der IO-Bausteine erfolgt über zwei 
Adressleitungen und einen 74HC138 (belegt mit A2, A3 und GND). Für die 
CTC ergibt sich die Adresse 0Ch als Basis. Aber hardwareseitig wüsste 
ich nicht, wo der Fehler sein könnte zumal die PIO funktioniert und 
analog angeschlossen ist.

Hier der Code:
; =============================================================================
; KONSTANTEN
; =============================================================================
;  Speicher und IO-Ports
RAMSTA  EQU $8000          ; RAM Anfang
RAMTOP  EQU $FFFF          ; RAM Ende

CTCBAS  EQU $0C            ; CTC Basisadresse
CTC0  EQU CTCBAS + 0        ; CTC Kanal 0
CTC1  EQU CTCBAS + 1        ; CTC Kanal 1
CTC2  EQU CTCBAS + 2        ; CTC Kanal 2
CTC3  EQU CTCBAS + 3        ; CTC Kanal 3

PIOBAS  EQU $08            ; PIO Basisadresse
PIADAT  EQU PIOBAS + 0        ; Port A Daten
PIASTA  EQU PIOBAS + 1        ; Port A Status
PIBDAT  EQU PIOBAS + 2        ; Port B Daten
PIBSTA  EQU PIOBAS + 3        ; Port B Status

SIOBAS  EQU $04            ; SIO Basisadresse
SIADAT  EQU SIOBAS + 0        ; Kanal A Daten
SIASTA  EQU SIOBAS + 1        ; Kanal A Status
SIBDAT  EQU SIOBAS + 2        ; Kanal B Daten
SIBSTA  EQU SIOBAS + 3        ; Kanal B Status

; =============================================================================
; TESTPROGRAMM
; =============================================================================

    ORG $0
    
    DI          ; Interrupts aus
    
    ; PIO Test
    ; Port A: 0101 0011
    ; Port B: 0011 0101
    LD A, $0F      ; Steuerwort, nur Ausgabe
    OUT (PIASTA), A    ; Port A, Control
    
    LD A, $53      ; 0101 0011
    OUT (PIADAT), A    ; Port A, Daten
    
    LD A, $0F      ; Steuerwort, nur Ausgabe
    OUT (PIBSTA), A    ; Port B, Control
    
    LD A, $35      ; 0011 0101
    OUT (PIBDAT), A    ; Port B, Daten
    
    ; CTC Test
    ; Kanal 1: 5,9 kHz bei 2,4576 MHz Systemtakt
    LD A, $07      ; Steuerwort, Timer, Teiler 16
    OUT (CTC1), A    ; Channel 1
    
    LD A, $1A      ; Zeitkonstante (26d)
    OUT (CTC1), A    ; Channel 1    
    
    HLT          ; CPU stoppen

Autor: Rufus Τ. F. (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Harald N. schrieb:
> Vielleicht hab ich wirklich was übersehen.

Du hast nicht erwähnt, was passieren soll und was stattdessen 
passiert.


> Bei der CTC hab ich einige Probleme.

Welche ?

Autor: Harald N. (haraldn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rufus Τ. F. schrieb:
> Harald N. schrieb:
>> Vielleicht hab ich wirklich was übersehen.
>
> Du hast nicht erwähnt, was passieren soll und was stattdessen
> passiert.
>
>
>> Bei der CTC hab ich einige Probleme.
>
> Welche ?

Aja, stimmt. Naja es steht im Code.

Soll: Kanal 1 der CTC soll einen Takt von ca 5,9 kHz ausgeben.
Problem: Tatsächlich passiert an der CTC nichts...

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schon versucht, den Software Reset rauszunehmen, oder getrennt von der 
Channel-Control durchzuführen?

Autor: Harald N. (haraldn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
A. K. schrieb:
> Schon versucht, den Software Reset rauszunehmen, oder getrennt von der
> Channel-Control durchzuführen?

Jetzt gerade beides versucht. Hat leider nichts gebracht...

Autor: Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Chip-Select mal mit dem Oszi geprüft?

Autor: Harald N. (haraldn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, alle Signale habe ich bereits geprüft. Und sie sind alle da.

Beitrag #5511834 wurde vom Autor gelöscht.
Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zusammenfassung:
- Hardware ok,
- Software ok,
- funktioniert nicht.
Eines davon stimmt nicht. Welches?

Autor: Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich kenne die CTC Programmiersequenz nicht, aber du schreibst beide Male 
in CTC1... muss das so?

Autor: R. M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Soweit ich mich erinnern kann, kommen aus den CTC-Übertragsausgängen, 
nur relativ schmale Nadeln raus.
Nicht das vielleicht doch, alles ok ist...

Autor: Harald N. (haraldn)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ja. Zuerst das Steuerwort, danach die Zeitkonstante.
Ich hänge mal ein Foto der CTC Beschaltung an.

Autor: Harald N. (haraldn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
R. M. schrieb:
> Soweit ich mich erinnern kann, kommen aus den CTC-Übertragsausgängen,
> nur relativ schmale Nadeln raus.
> Nicht das vielleicht doch, alles ok ist...

Im Logik-Analyzer sollte ich den Takt doch sehen. Solange das System 
läuft sollten dort viele "Nadeln" mit 5,9kHz erscheinen.

Autor: Harald N. (haraldn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Harald N. schrieb:
> Ja. Zuerst das Steuerwort, danach die Zeitkonstante.
> Ich hänge mal ein Foto der CTC Beschaltung an.

EDIT: Die vier CLK/TRG-Eingänge und der CLK-Eingang sind alle verbunden 
und mit dem Systemtakt verbunden.


Eins noch. Ich hatte die Schaltung vorher mit NMOS-Bauteilen aufgebaut. 
Da hatte ich das gleiche Problem. Ich dachte der CTC sei kaputt. Deshalb 
verwende ich jetzt CMOS-ICs. Und es ist doch relativ unwahrscheinlich 
das beide CTCs kaputt sind!?

: Bearbeitet durch User
Beitrag #5511887 wurde vom Autor gelöscht.
Autor: karadur (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich denke dein Steuerwort sollte 0x03 sein. Continous operation

Autor: Harald N. (haraldn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
karadur schrieb:
> Ich denke dein Steuerwort sollte 0x03 sein. Continous operation

Das zusätzliche Bit Nummer 2 sagt ja nur, dass ich als nächstes die 
Zeitkonstante setzen will.

Autor: karadur (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vertippt: meinte 0x05

Autor: Harald N. (haraldn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK. Das habe ich schon probiert = ohne soft reset

Autor: karadur (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

mit dem Softreset wird die Timerfunktion laut Datenblatt gestoppt.

Kann ich aber leider nicht testen, mein Z80 ist schon 20 Jahre in Rente.

Autor: Harald N. (haraldn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie gesagt, ich hab es getestet. Funktioniert auch nicht. Bin ratlos...
Vlt versuche ich doch erstmal die sio...

Autor: Dieter W. (dds5)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Harald N. schrieb:
> Die vier CLK/TRG-Eingänge und der CLK-Eingang sind alle verbunden
> und mit dem Systemtakt verbunden.

Wenn ich das Mostek MK3882 Datenblatt richtig interpretiere darf der 
Takt an CLK/TRG maximal die halbe CLK Frequenz haben.

Keine Ahnung ob das Problem damit zusammenhängt.

Autor: karadur (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Harald N. (haraldn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dieter W. schrieb:
> Harald N. schrieb:
>> Die vier CLK/TRG-Eingänge und der CLK-Eingang sind alle verbunden
>> und mit dem Systemtakt verbunden.
>
> Wenn ich das Mostek MK3882 Datenblatt richtig interpretiere darf der
> Takt an CLK/TRG maximal die halbe CLK Frequenz haben.
>
> Keine Ahnung ob das Problem damit zusammenhängt.

Davon hab ich noch nichts gehört, werde ich aber versuchen.

Autor: A. K. (prx)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Dieter W. schrieb:
> Wenn ich das Mostek MK3882 Datenblatt richtig interpretiere darf der
> Takt an CLK/TRG maximal die halbe CLK Frequenz haben.

Als Timer programmiert wird der Systemtakt div 16 oder div 256 
verwendet, nicht der externe Eingang.

Autor: Harald N. (haraldn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
A. K. schrieb:
> Dieter W. schrieb:
>> Wenn ich das Mostek MK3882 Datenblatt richtig interpretiere darf der
>> Takt an CLK/TRG maximal die halbe CLK Frequenz haben.
>
> Als Timer programmiert wird der Systemtakt div 16 oder div 256
> verwendet, nicht der externe Eingang.

So hab ich das auch verstanden. Hab auch den systemtakt von den trigger 
Eingängen weggenommen. Geht trotzdem nicht. Ich hab keine Ahnung mehr, 
was ich noch probieren soll. Hab mir jetzt noch eine dritte ctc bestellt 
(z84c3006). Dann werd ich weitersehen. Da kann ich dann auch mit 6 MHz 
versuchen....

Autor: G. H. (schufti)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also lt. Zilog DB sollte
Steuerwort 0x07 passen und der timer mit Schreiben der Zeitkonstante 
starten
der Ausgangspuls an cz/to ~1.5 sysclk Zyklen sein
die Frequenz an clk/trg max sysclk/2 sein

möglicher Weise die CS vertauscht? Initialisiere mal alle 4 Kanäle ...

Edit: war vorher mit den Bits verrutscht.

: Bearbeitet durch User
Autor: Harald N. (haraldn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich bin mir ziemlich sicher, dass die Programmierung richtig 
ist....
Hab zwischenzeitlich auch versucht den ctc als counter zu programmieren. 
Zur Sicherheit mit dem kleinsten verfügbaren takt (143 Hz von 74hc4060). 
Geht auch nicht.....

Mit der buslast wird das doch noch nichts zu tun haben?

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Harald N. schrieb:
> Mit der buslast wird das doch noch nichts zu tun haben?

Statt andere mit Fragen zu plagen, die sie nicht beantworten können, 
wärs höchste Eisenbahn, mal den kompletten Schaltplan zu präsentieren.

Autor: Harald N. (haraldn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Den hab ich leider nur als Skizze auf Papier. Da werdet ihr mich sicher 
erwürgen wenn ich das präsentiere...

Autor: Teo D. (teoderix)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Harald N. schrieb:
> Hallo!
>
> Ich mir hier einen Z80 SBC auf dem Breadboard aufgebaut

Ich glaube, dazu müsste er seinen Schädel, auf einen Scanner legen. ;)

Autor: tommy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Versuche mal direkt nach ORG $0
eine richtig lange Verzögerung (100ms ?).

Wenn der Z80 aus dem Reset erwacht, dann heisst das
nicht, das auch die Peripherie schon wach ist ;-)
BTDT

Ausserdem solltest Du dem NMI eine Routine spendieren,
denn der lässt sich nicht abschalten.

Noch etwas zur Info:
Sorge für einen definierten Reset bei Unterspannung,
der Z80 bleibt sonst gnadenlos stehen.

Autor: A. K. (prx)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Harald N. schrieb:
> Den hab ich leider nur als Skizze auf Papier. Da werdet ihr mich sicher
> erwürgen wenn ich das präsentiere...

Aber sicher. Es besteht ein gewisses Risiko, dass du das nicht 
überlebst. Aber wenn du Antworten willst, wirst du das Risiko wohl 
eingehen müssen. Oder, noch besser, ein entsprechendes Programm nutzen, 
um ihn lesbar zu machen. Du hast die Wahl ;-)

Autor: Dieter W. (dds5)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab gerade mal einen alten Programmschnipsel ausgegraben bei dem der 
CTC als Taktgenerator für einen UART verwendet wird.
Da steht in der Init ein Steuerwort von 0x15 - keine Ahnung was das 
jetzt im Einzelnen bedeutet.

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, die wichtigste Frage wird wohl sein, ob du da Bustreiber für Daten 
oder Adressbus benutzt, die unzulässige Timings produzieren.
Wenn das ein SBC ist, wo der Z80 ohne Buffering alles selber antreibt, 
wird es wohl daran weniger liegen. Ich halte es aber auch für eine gute 
Idee, einfach mal alle Kanäle zu initialisieren und die Signale zwischen 
CTC, PIO und CPU durchzupiepsen.

Dieter W. schrieb:
> Da steht in der Init ein Steuerwort von 0x15 - keine Ahnung was das
> jetzt im Einzelnen bedeutet.

Das würde zumindest heissen, das die Jungs keinen Softreset setzen.

Der CEPAC-80 (TMPZ84C015) treibt die CLK Inputs über einen Teiler von 13 
aus 4 MHz an und die CTCs im TMPZ funktionieren zumindest.

: Bearbeitet durch User
Autor: Harald N. (haraldn)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Gut, köpft mich...

Die ganze Schaltung hab ich schon durchgemessen. Und auch schon alle 
Kanäle initialisiert.

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier noch ein Auszug aus dem CEPAC-80 Monitor. CTC3 wird hier zur 
Baudratenerzeugung benutzt. Hier der init aus dem alten Monitor der 
Kiste:
.equ    ctc3 , h'13
; a holds value between 1 and 6 for selecting the baudrate
initbd: ld   d,h'0
        ld   e,a
        ld   hl,baudtab
        add  hl,de
        ld   a,(hl) 
        ld   c,ctc3
        ld   b,b'01000101
        out  (c),b
        out  (c),a
        call inisio
        ret

baudtab: .db  h'0
          .db  d'175 
          .db  d'143
          .db  d'128
          .db  d'64
          .db  d'32
          .db  d'16

Mögl. ist es wichtig, das wirklich in zwei aufeinanderfolgenden Befehlen 
geschrieben wird. Schlagt mich nicht wg. der Syntax. Das ist ein uralter 
Assembler, dessen Name ich verdrängt habe.

: Bearbeitet durch User
Autor: georg (Gast)
Datum:

Bewertung
-6 lesenswert
nicht lesenswert
karadur schrieb:
> Kann ich aber leider nicht testen, mein Z80 ist schon 20 Jahre in Rente

Ich habe noch Platinen mit CTC, aber es wäre schade um die Arbeit den 
Code zu analysieren: gerade ist hier wieder ein Moderator unterwegs, 
meine Posts ohne jeden erkennbaren Grund zu löschen. Vielleicht habe ich 
einfach zu viele Antworten gepostet und soll in Zukunft die Schnauze 
halten, wer weiss das schon, Begründung wird ja nie gegeben. Jedensfalls 
hat es mit Netiquette nicht das geringste zu tun.

Tut mir leid und Tschüss.

Georg

Autor: Harald N. (haraldn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
georg schrieb:
> karadur schrieb:
>> Kann ich aber leider nicht testen, mein Z80 ist schon 20 Jahre in Rente
>
> Ich habe noch Platinen mit CTC, aber es wäre schade um die Arbeit den
> Code zu analysieren: gerade ist hier wieder ein Moderator unterwegs,
> meine Posts ohne jeden erkennbaren Grund zu löschen. Vielleicht habe ich
> einfach zu viele Antworten gepostet und soll in Zukunft die Schnauze
> halten, wer weiss das schon, Begründung wird ja nie gegeben. Jedensfalls
> hat es mit Netiquette nicht das geringste zu tun.
>
> Tut mir leid und Tschüss.
>
> Georg

Dabei bist gerade du der Profi schlechthin...

Hab doch noch eine ctc zum testen gefunden (die sicher OK ist). Läuft 
nicht. Irgendwas bei der Hardware muss ich übersehen haben...

: Bearbeitet durch User
Autor: Dieter W. (dds5)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
georg schrieb:
> gerade ist hier wieder ein Moderator unterwegs,
> meine Posts ohne jeden erkennbaren Grund zu löschen ...

In diesem Faden ist kein einziger von einem Mod gelöschter Beitrag.

Autor: tommy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Harald N.:

Hast Du meinen Post von 21:19 Uhr gelesen?

Autor: Harald N. (haraldn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
tommy schrieb:
> @ Harald N.:
>
> Hast Du meinen Post von 21:19 Uhr gelesen?

Hab ich.
NMI ist auf +5V und funkt somit nicht dazwischen.
Hab eine Reset Beschaltung eingebaut, die zu Beginn verzögert und auch 
bei brown-out reagiert.
Nachdem die PIO wach ist, denke ich, dass die CTC auch bereit ist. Die 
Verzögerung kann ich aber trotzdem noch versuchen.

Autor: Thomas W. (dbstw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin, -

hast Du vielleicht A0/A1 vertauscht? Gucke bitte mal,
ob Du ein Signal an pin 7 bis 9 (T0/ZC Kanal 0-2)
siehst.

Die Initialisierung

>    LD A, $07      ; Steuerwort, Timer, Teiler 16
>    OUT (CTC1), A    ; Channel 1

>    LD A, $1A      ; Zeitkonstante (26d)
>    OUT (CTC1), A    ; Channel 1

sieht OK aus.

Gruesse

Th.

Autor: Harald N. (haraldn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
A0/A1 passt
Es geht ja gerade darum, dass an den Ausgängen kein Signal rauskommt. 0V

Autor: Osca (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Ich habe gerade den Fehler gefunden!

Es liegt am Breadboard!!

Autor: Joerg F. (felge1966)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Harald N

Prinzipell würde ich erst mal die ganze Interrupt Geschichte (/INT und 
IEI/IEO) nicht für die ersten Tests verkabeln. Das verkompliziert die 
Schaltung auf jeden Fall. Mache ab besten den Aufbau schrittweise. 
Nicht, daß dir die SIO die CTC lahmlegt.

Gruß Jörg

Autor: Harald N. (haraldn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Joerg F. schrieb:
> @Harald N
>
> Prinzipell würde ich erst mal die ganze Interrupt Geschichte (/INT und
> IEI/IEO) nicht für die ersten Tests verkabeln. Das verkompliziert die
> Schaltung auf jeden Fall. Mache ab besten den Aufbau schrittweise.
> Nicht, daß dir die SIO die CTC lahmlegt.
>
> Gruß Jörg

Das wäre noch eine Möglichkeit. Obwohl die PIO hat die niedrigste 
Priorität und funktioniert...
Mal schauen ob ich heute noch zum basteln komme...

Autor: Joerg F. (felge1966)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Irgendwie sieht auch dein CTC-Steuerwort komisch aus.
Lies dir doch noch mal die Programmieranleitung des U857D durch:
http://datasheet.datasheetarchive.com/originals/di...

Gruß Jörg

Autor: Harald N. (haraldn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Joerg F. schrieb:
> Irgendwie sieht auch dein CTC-Steuerwort komisch aus.
> Lies dir doch noch mal die Programmieranleitung des U857D durch:
> 
http://datasheet.datasheetarchive.com/originals/di...
>
> Gruß Jörg

Passt doch?
Timer-Modus, es folgt eine Zeitkonstante, Timer soll reseten
Genau wie in der originalen Doku von Zilog.

Autor: Markus F. (mfro)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ist Osca nun Haraldn oder nicht?

Autor: Harald N. (haraldn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein ist er nicht. Bin kein troll...

Autor: Joe G. (feinmechaniker) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Harald N. schrieb:
> Nur kurz zum Aufbau: Auswahl der IO-Bausteine erfolgt über zwei
> Adressleitungen und einen 74HC138 (belegt mit A2, A3 und GND).

Hast du /CS des CTC mit IORQ verknüpft? Ich sehe keine Schaltung dazu 
hier im Beitrag.

Autor: Joe G. (feinmechaniker) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
In etwa so... nur mit deinen Adressen.

Autor: Thomas W. (dbstw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Harald N. schrieb:
> A0/A1 passt
> Es geht ja gerade darum, dass an den Ausgängen kein Signal rauskommt. 0V

Wie misst Du das Signal? Der TO/ZC bei der Z80-CTC ist ein Puls-Signal,
1.5 x Systemtakt (bei Dir ca. 0,5 mikrosekunden). Danach ist TO/ZC 
wieder
auf Null.

Mein Z80-System (4MHz) macht 0.375 Mikrosekunden Pulse, die Init-
Sequenz ist:

;; setup CTC
;;  int OFF, timer ON, prescaler = 16, don't care ext TRG edge,
;;  start timer on loading constant, time constant follows,
;;  sw-rst, this a ctrl-command

--> ld a, b00000111

Gruesse

Th.

Autor: Dieter W. (dds5)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Joe G. schrieb:
> Hast du /CS des CTC mit IORQ verknüpft? Ich sehe keine Schaltung dazu
> hier im Beitrag.

Doch, IORQ geht an den E1 des 138 Adressdecoders.

Autor: Joe G. (feinmechaniker) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dieter W. schrieb:
> Doch, IORQ geht an den E1 des 138 Adressdecoders.

Ja stimmt, übersehen :-(

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe eher den Eindruck, dass am Dekoder das /M1 Signal fehlt, um 
nicht auf IACK Zyklen zu reagieren.

Autor: Route 6. (route_66)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was wird denn angezeigt, wenn du die einzelnen Zählregister des CTC 
zurückliest?

Autor: Harald N. (haraldn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Me muss m1 nicht an den Decoder?! Warum?
Iorq am Decoder ist nicht vorhanden.
Am Ausgang soll bei der Programmierung nicht nur ein puls kommen sondern 
eine pulsfolge von 5,9 kHz. Das ist die Eigenschaft des timers bei der 
Programmierung.
Rücklesen müsste ich mal probieren. Hab allerdings noch keinen Monitor 
am System.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vergiss es. M1 hat der CTC ja selbst.

: Bearbeitet durch User
Autor: Route 6. (route_66)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Harald N. schrieb:
> Rücklesen müsste ich mal probieren. Hab allerdings noch keinen Monitor
> am System.

Du hast aber ein PIO; mach da einfach 8 LEDs ran.

Autor: ./. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Folgenden Schnipsel habe ich mal zum CTC-Testen benutzt:
  title "init Z80"
;  init both PIOs to bitmode out
;  init CTC0  
  nolist

romend  equ  $0ffd
ram  equ  $1000
ramend  equ  $17ff

ctc10  equ  0    ; ctc 1
ctc11  equ  1
ctc12  equ  2
ctc13  equ  3

pio1da  equ  4    ; pio 1
pio1db  equ  5
pio1ca  equ  6
pio1cb  equ  7
pio2da  equ  8    ; pio 2
pio2db  equ  9
pio2ca  equ  10
pio2cb  equ  11

ctint  equ  128    ; enable int
ctmod  equ  64    ; 1 counter/0 timer
ctpre  equ  32    ; 1 256/0 16 prescaler [timer mode only]
ctedg  equ  16    ; 1 rising/0 falling
cttrg  equ  8    ; 1 clk/trg start/0 auto after constant
ctcon  equ  4    ; constant follow
ctres  equ  2    ; 1 software reset
ctctr  equ  1    ; 1 control/0 vector
  list

  data

  bss
  org $1000
ms10  db 1
sec  db 1
  
  code

  org 0
start  jp $100

  org $38
ctint0  ds 2
ctint1  ds 2
ctint2  ds 2
ctint3  dw ct13isr

  org $80
ct13isr  ex af,af'
  in a,[pio2da]    ; servicetime toggle pio2da.7
  or $80
  out [pio2da],a
  ld a,[ms10]    ; 1/100 sec
  out [pio2da],a    ; an port 2a
  inc a
  cp a,100
  jr c,l1
  ld a,[sec]    ; sec
  out [pio2db],a    ; an port 2b
  inc a
  ld [sec],a
  ld a,0
l1  ld [ms10],a
  in a,[pio2da]    ; servicetime toggle pio2da.7
  and $7f
  out [pio2da],a
  ex af,af'
  ei
  reti

  org $100
  ld sp,ramend+1
  ld a,0
  ld i,a
  im 2
  ei
  ld a,0
  ld [ms10],a
  ld a,0
  ld [sec],a
  ld a,ctint0    ; vectortabelle ab ctint0
  out [ctc10],a

ctcini  
  ld a,ctpre+ctcon+ctctr  ; 2.4576 MHz/256, timer, const follow
  out [ctc10],a
  ld a,3*32    ; 96  256*96=24576 -> 100 Hz
  out [ctc10],a
  ld a,ctpre+ctcon+ctctr  ; 2.4576 MHz/256, timer, const follow
  out [ctc11],a
  ld a,6*32    ; 192  256*192=24576 -> 50 Hz
  out [ctc11],a
  ld a,ctcon+ctctr  ; 2.4576 MHz/16, timer, const follow
  out [ctc12],a
  ld a,16     ; 16  2.4576/(16*16)=9600 -> 9600 Hz
  out [ctc12],a
  ld a,ctint+ctpre+ctcon+ctctr ; int enable, 2.4576 MHz/256, timer, const follow
  out [ctc13],a
  ld a,3*32    ; 96  256*96=24576 -> 100 Hz
  out [ctc13],a

pio1ini  ld a,$ff
  out [pio1ca],a
  ld a,0
  out [pio1ca],a
  ld a,$ff
  out [pio1cb],a
  ld a,0
  out [pio1cb],a

pio2ini  ld a,$ff
  out [pio2ca],a    ; pio 2
  ld a,0
  out [pio2ca],a
  ld a,$ff
  out [pio2cb],a
  ld a,0
  out [pio2cb],a

  jp loop

  org $200
loop  inc bc
  ld a,c
  out [pio1da],a
  ld a,b
  out [pio1db],a
  jr loop      ; 48 cycles in loop
        ; 24576000/48=51200 Hz
        ; pio1da: 25600 12800 6400 3200  1600 800 400 200
        ; pio1db: 100 50 25 12.5  6.25 3.125 1.5625 0.78125

  org romend
  jp start


Damit tat die CTC anstandlos...

Autor: georg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht hilft das Folgende, Programmschnipsel aus den 80er Jahren für 
Z80 und CTC. Auf Hassposts wegen des Programmierstils gehe ich bestimmt 
nicht ein, aber die Software hat mehr als 20 Jahre lang funktioniert.

CTC Ports

  0040                          BAUD    EQU     40H     ;CTC TIMER
  0041                          TIMERA  EQU     BAUD+1
  0042                          TIMERB  EQU     BAUD+2
  0043                          TIMERC  EQU     BAUD+3

Tabelle zur Initialisierung

  019C    21 00                 INITAB: DEFB    MODC,0          ;SYNC
  .....
  01C8    40 08                         DEFB    BAUD,8          ;INT VECTOR
  01CA    40 07                         DEFB    BAUD,7          ;START
  01CC    40 0C                         DEFB    BAUD,B1200      ;1200 BAUD
  01CE    41 A7                         DEFB    TIMERA,0A7H     ;TIMER MODE
  01D0    41 17                         DEFB    TIMERA,23       ;TIME 1.6 MSEC
  01D2    42 A7                         DEFB    TIMERB,0A7H     ;/256, INT
  01D4    42 00                         DEFB    TIMERB,00       ;17.8 MSEC
  01D6    43 47                         DEFB    TIMERC,47H      ;COUNTER
  01D8    43 FF                         DEFB    TIMERC,0FFH     ;256
  01DA    FF                            DEFB    0FFH            ;TABLE END

Baudraten

                                ;       BAUD RATE CONSTANTS FOR 3.6 MHZ
                                ;
  0082                          B110    EQU     130     ;110
  0060                          B150    EQU     96      ;150
  0030                          B300    EQU     48      ;300
  0018                          B600    EQU     24      ;600
  000C                          B1200   EQU     12      ;1200
  0006                          B2400   EQU     6       ;2400
  0003                          B4800   EQU     3       ;4800

Hoffe das entgeht der Löschung,

Georg

Autor: Harald N. (haraldn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ich die Steuerworte sehe ist das eh das, was ich auch mache. Nur 
verwendest du prescaler 256 und schaltest interrupts ein...
Und 47h müsste der Zähler sein. Habe ich auch schon versucht.

: Bearbeitet durch User
Autor: Harald N. (haraldn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab jetzt die interrupt Beschaltung rausgenommen und CPU Int über 10k 
auf 5V gelegt.
Also das war es auch nicht...

Autor: Harald N. (haraldn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Würde mir jemand von euch einen Schaltplan mit CPU, ctc, pio, sio, Rom, 
RAM zur Verfügung stellen, den ihr selbst als funktionierende getestet 
habt. Idealerweise gleich mit Testprogramm...
Dann finde ich Vlt durch Vergleich den Fehler.

Autor: Osca (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das mit dem Breadbord ist ernst gemeint, wäre nicht das 1. Mal.
Die Dinger sind tückisch und das gesamte Fehlerbild ist abstrus genug!

Autor: Osca (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lochraster, Lötkolben und das läuft.

Und das Z80 Buch von Rodnay Zacks gibt es für ein paar € in der Bucht.

Autor: Osca (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://www.z80.info/zip/um0081.pdf
http://www.z80.info/z80core3.htm

Eingänge NIEMALS unbeschaltet lassen!
Direkt am PIN terminieren!

Dein Breadboard ist ne prima Antenne.

Autor: Harald N. (haraldn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Buch hab ich und da geht es um die Programmierung.
Ich vermesse immer von pin zu pin. Breadboard Fehler würde ich da 
bemerken

Autor: EinWort (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist der 1. IC in der Interruptkette der CTC? Liegt der IEI-Eingang des 
1. IC in der Interruptkette auf definieretm Pegel? Das könnte das 
Verhalten nämlich erklären.

Autor: Harald N. (haraldn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mittlerweile habe ich die gesamte Interrupt Beschaltung weggenommen. 
Problem bleibt

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Osca schrieb:
> http://www.z80.info/z80core3.htm

Ich verstehe ja, wieso man /RFSH im Speicherdekoder berücksichtigt. Aber 
weshalb im I/O-Dekoder? Copy-and-Paste?

: Bearbeitet durch User
Autor: EinWort (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
IEI muss bei allen Z80-ICs immer beschaltet werden, auch wenn man keine 
Interrupts nutzt

Autor: Teo D. (teoderix)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bevor alle Stricke reisen, mal ne ganz blöde Idee.
Breadboard neu?
Sicher das alle ICs auch wirklich richtig an der Stromversorgung hängen 
und nicht fremd gespeist werden?
Es gib einige Breadboard bei denen die Stromschienen NICHT durchgängig 
sind, sonder auch in größere Segmente geteilt sind. Erkennbar an einem 
etwas größerem Abstand, zwischen den einzelnen Blöcken.

Autor: Harald N. (haraldn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mann, dann würden die entsprechenden Signale von nicht dort ankommen. 
Ich kann richtig messen....

Autor: Harald N. (haraldn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
EinWort schrieb:
> IEI muss bei allen Z80-ICs immer beschaltet werden, auch wenn man keine
> Interrupts nutzt

Macht doch keinen Sinn? Wie wollen sich die ICs beeinflussen wenn sie 
nicht über die daisy chain verbunden sind. Ausserdem ist der CPU Int auf 
high gelegt

Autor: A. K. (prx)
Datum:

Bewertung
4 lesenswert
nicht lesenswert
Harald N. schrieb:
> Mann, dann würden die entsprechenden Signale von nicht dort ankommen.
> Ich kann richtig messen....

Wenn Hardware und Software korrekt sind, aber es trotzdem nicht 
funktioniert, dann sind Hardware oder Software nicht korrekt, oder es 
funktioniert. ;-)

Also nicht über blöde Fragen klagen.

: Bearbeitet durch User
Autor: Teo D. (teoderix)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Harald N. schrieb:
> Mann, dann würden die entsprechenden Signale von nicht dort ankommen.
> Ich kann richtig messen....

Ich wollte die wahrlich nicht zu nahe treten, nur bin ich nicht vor Ort 
und es ist mittlerweile ziemlich viel Prosa. Und wie geschrieben "Bevor 
alle Stricke reisen, mal ne ganz blöde Idee."
Bin doch nur ein gebranntes Kind. :)

Autor: Harald N. (haraldn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
A. K. schrieb:
> Harald N. schrieb:
>> Mann, dann würden die entsprechenden Signale von nicht dort ankommen.
>> Ich kann richtig messen....
>
> Wenn Hardware und Software korrekt sind, aber es trotzdem nicht
> funktioniert, dann sind Hardware oder Software nicht korrekt, oder es
> funktioniert. ;-)
>
> Also nicht über blöde Fragen klagen.

Aber am breadboard befindet sich genau die schaltung, die ich auf Papier 
habe. Und da sind anscheinend keine Fehler drinnen.
Eine selbstgetestete Schaltung von euch hab ich noch nicht.

Autor: Harald N. (haraldn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Harald N. schrieb:
> EinWort schrieb:
>> IEI muss bei allen Z80-ICs immer beschaltet werden, auch wenn man keine
>> Interrupts nutzt
>
> Macht doch keinen Sinn? Wie wollen sich die ICs beeinflussen wenn sie
> nicht über die daisy chain verbunden sind. Ausserdem ist der CPU Int auf
> high gelegt

Habs trotzdem versucht. Ohne Erfolg.

@all: ich will niemanden zu nahe treten

Autor: Teo D. (teoderix)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
Harald N. schrieb:
> Aber am breadboard befindet sich genau die schaltung, die ich auf Papier
> habe.

Dieser GLAUBE, ist wohl der häufigste Fehler in Bezug auf Breadboards!

Autor: Harald N. (haraldn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Teo D. schrieb:
> Harald N. schrieb:
>> Aber am breadboard befindet sich genau die schaltung, die ich auf Papier
>> habe.
>
> Dieser GLAUBE, ist wohl der häufigste Fehler in Bezug auf Breadboards!

Hab jede einzelne Verbindung gemessen. Mehrmals. Von ausgangspin zu 
endpin.

Autor: EinWort (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Harald N. schrieb:
> Harald N. schrieb:
>> EinWort schrieb:
>>> IEI muss bei allen Z80-ICs immer beschaltet werden, auch wenn man keine
>>> Interrupts nutzt
>>
>> Macht doch keinen Sinn? Wie wollen sich die ICs beeinflussen wenn sie
>> nicht über die daisy chain verbunden sind. Ausserdem ist der CPU Int auf
>> high gelegt
>
> Habs trotzdem versucht. Ohne Erfolg.
Die ICs beeinflussen sich selbst, wenn man Eingänge einfach offen lässt. 
Der erste IEI-Eingang in einer Interrupt-Kette muss auf HIGH liegen.

Autor: Teo D. (teoderix)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Harald N. schrieb:
> Hab jede einzelne Verbindung gemessen. Mehrmals. Von ausgangspin zu
> endpin.

Davon bin ich auch ausgegangen. Nur ich kanns halt nich lassen, biss ich 
obigen Satz zu lesen bekommen. :/
Also noch mal: Auch das Breadboard selbst mal prüfen, ob da auch alles 
wie gedacht verbunden ist.

Autor: Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht sind die CTCs doch defekt...

Autor: Harald N. (haraldn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alle drei?
Gibt es eine Möglichkeit die CTC allein auf Funktionalität zu testen?

Autor: EinWort (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
P.S. und den offenen TRGx-Eingängen auch mal einen Pull-Down nach GND 
spendieren. Ich verwende in meinem System den CTC als 
Interruptcontroller und habe das ganze vorher auch auf mehrere 
Breadboards verteilt aufgebaut bei 10MHz. Lief bis 18,432MHz stabil.

Autor: Jim Beam (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die beiden Z80-Bibeln waren/sind:

Rodney Zack, Progammierung des Z80
James W.Coffron, Z80 Applications

Habe ich beide im Regal und eben mal reingeschaut.
Die CTC-Kapitel sind leider viel zu lang zum scannen,
aber bei einer gezielten Frage schaue ich gerne mal rein.
Immerhin wird die CTC dort recht ausführlich besprochen.

https://www.booklooker.de/B%C3%BCcher/Angebote/aut...

Leider in Gold aufgewogen, vielleicht woanders günstiger...

Autor: Harald N. (haraldn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jim Beam schrieb:
> Die beiden Z80-Bibeln waren/sind:
>
> Rodney Zack, Progammierung des Z80
> James W.Coffron, Z80 Applications
>
> Habe ich beide im Regal und eben mal reingeschaut.
> Die CTC-Kapitel sind leider viel zu lang zum scannen,
> aber bei einer gezielten Frage schaue ich gerne mal rein.
> Immerhin wird die CTC dort recht ausführlich besprochen.
>
> 
https://www.booklooker.de/B%C3%BCcher/Angebote/aut...
>
> Leider in Gold aufgewogen, vielleicht woanders günstiger...

Hab ich beide. Und mein pio und ctc test code stammt genau aus coffrons 
Buch ;-)
Und im Grunde auch die schaltung...

: Bearbeitet durch User
Autor: Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://www.z80.info/zaks.html

Das Buch ist freigegeben...

Autor: Joe G. (feinmechaniker) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Harald N. schrieb:
> Würde mir jemand von euch einen Schaltplan mit CPU, ctc, pio, sio, Rom,
> RAM zur Verfügung stellen, den ihr selbst als funktionierende getestet
> habt. Idealerweise gleich mit Testprogramm...

Dieses System hatte ich Anfang der 80ziger aufgebaut. Habe ich es schon 
vor jahrzehnten verschrottet :-(

Autor: sumpfpenner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rodney Zack, Progammierung des Z80 gibts als pdf download

Autor: Harald N. (haraldn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Joe G. schrieb:
> Harald N. schrieb:
>> Würde mir jemand von euch einen Schaltplan mit CPU, ctc, pio, sio, Rom,
>> RAM zur Verfügung stellen, den ihr selbst als funktionierende getestet
>> habt. Idealerweise gleich mit Testprogramm...
>
> Dieses System hatte ich Anfang der 80ziger aufgebaut. Habe ich es schon
> vor jahrzehnten verschrottet :-(

Danke

Autor: Harald N. (haraldn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sumpfpenner schrieb:
> Rodney Zack, Progammierung des Z80 gibts als pdf download

Lest ihr eigentlich auch meine Antworten?

Autor: Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wolfgang R. schrieb:
> http://www.z80.info/zaks.html
>
> Das Buch ist freigegeben...

sumpfpenner schrieb:
> Rodney Zack, Progammierung des Z80 gibts als pdf download

Sagte ich bereits... ;-)

Autor: sumpfpenner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, warum auch.

Autor: Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
sumpfpenner schrieb:
> Nein, warum auch.

;-)

Harald N. schrieb:
> Lest ihr eigentlich auch meine Antworten?

Ich hab schon gelesen, dass Du das Buch hast, aber der Link ist 
vielleicht auch für andere interessant... Bist ja nicht nur Du hier 
unterwegs.

Autor: Martin H. (horo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wolfgang R. schrieb:
> http://www.z80.info/zaks.html
>
> Das Buch ist freigegeben...

Und wem das Cover zu schmuddelig ist:
http://www.z80.info/zip/programming_the_z80_3rd_edition.pdf
(Außerdem kann man darin suchen...)

Ciao, Martin

Autor: Thomas W. (dbstw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Hab jede einzelne Verbindung gemessen. Mehrmals. Von ausgangspin zu
> endpin.

Pruefe bitte noch mal, ob die D0-D7 richtig angeschlossen wurde
(direkt CPU <-> CTC). Ich gehe aber davon aus, dass Du mehr als
einmal geprueft hast. Hast Du mal Chip-Enable mit dem Scope
geprueft? Die Schaltung ist so einfach, da muss ein simpler
Fehler sein.

Andere Moeglichkeit: Lese den Counter aus und zeige den Inhalt auf
der PIO an.

http://www.z80.info/homebrew.htm ist Dir bekannt?

Gruesse

Th.

Autor: Route 6. (route_66)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jim Beam schrieb:
> Die beiden Z80-Bibeln waren/sind: ...

Mindestens den Kieser/Meder "Mikroprozessortechnik, Aufbau und Anwendung 
des Mikroprozessorsystems U880" würde ich mit dazu zählen.

Autor: Oscale (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Du hast nen Bock in Deiner Schaltung, beschwerst Dich das hier „immer 
noch niemand“ einen funktionierenden Schaltplan gepostiet hat ( Internet 
ist voll davon!) und von Dir gibt es noch immer keine vernünftigen 
Bilder vom Schaltungsaufbau.
Stell die endlich mal ein!

Autor: Oscale (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Reset war auch immer tückisch, der z 80 macht dann was er will.
Nimm nen reset Controller oder eine diskrete Beschaltung

Beitrag #5513825 wurde vom Autor gelöscht.
Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oscale schrieb:
> Nimm nen reset Controller

Hat er gemacht, im Plan steht dafür ein MAX690 drin.

: Bearbeitet durch User
Autor: georg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aus dem Gedächtnis, Unterlagen habe ich vor nicht allzu langer Zeit 
entsorgt:

Die CTCs sind wohl Sensibelchen, meine CPU-Karte hat nach Umstellung auf 
CMOS-Z80 nicht mehr funktioniert, nach Versuchen arbeitete die CMOS-CPU 
nur mit MOS-CTCs zusammen zuverlässig (das hing auch vom Hersteller der 
CPUs ab). Ich habe daher weitere Karten mit CMOS-Z80CPU, aber mit 
Z80BCTC ausgeliefert, das hat immer funktioniert. Den Grund konnte ich 
nie finden, aber was solls wenns tut.

Georg

Autor: Oscale (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: EinWort (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Harald: Eine Kleinigkeit bei Deiner Handzeichung 
IMG_20180806_212309.jpg. Am HC138 bei deiner IO-Logik sollte auf E3 noch 
#M1 von der Z80 CPU anliegen, weil bei einem #IORQ/#M1-cycle sollte kein 
CS aktiv sein.

Autor: Dieter W. (dds5)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
EinWort schrieb:
> ... weil bei einem #IORQ/#M1-cycle ...

Gibt's so was überhaupt?
M1 ist doch IMHO der instruction fetch, das sollte eigentlich immer ein 
Speicherzugriff sein.

Autor: A. K. (prx)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
EinWort schrieb:
> IMG_20180806_212309.jpg. Am HC138 bei deiner IO-Logik sollte auf E3 noch
> #M1 von der Z80 CPU anliegen, weil bei einem #IORQ/#M1-cycle sollte kein
> CS aktiv sein.

Dachte ich auch erst. Aber da der CTC selbst M1 anliegen hat, weil er 
das für den IACK Zyklus benötigt, sollte das nicht erforderlich sein.

Autor: A. K. (prx)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Dieter W. schrieb:
> M1 ist doch IMHO der instruction fetch, das sollte eigentlich immer ein
> Speicherzugriff sein.

IORQ+M1 = IACK. Im 8080-kompatiblen Interrupt-Modus ist das wirklich ein 
instruction fetch.

: Bearbeitet durch User
Autor: oszi40 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nebenbei:Für den Fall, dassss die SW ok sein sollTE, würde ich nochmals 
überlegen, ob ausreichend Abblock-Cs vorhanden sind und gründlich mit 
viel Licht nachsehen, dass keine mikroskopische Zinnbrücke irgendwo 
Ärger macht.

Autor: Teo D. (teoderix)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oszi40 schrieb:
> gründlich mit
> viel Licht nachsehen, dass keine mikroskopische Zinnbrücke irgendwo
> Ärger macht.

Jo, musste erst letztens, ein Stück Alufolie raus zubbel. :(

: Bearbeitet durch User
Autor: georg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dieter W. schrieb:
> Gibt's so was überhaupt?

Aber ja doch, wichtig für die Interruptverarbeitung (IRQ ACK Cycle).

Georg

Autor: Georg G. (df2au)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
georg schrieb:
> Die CTCs sind wohl Sensibelchen

Nicht nur die CTC. Die Spec für das Taktsignal wird gern überlesen. Da 
muss der High Pegel etwas höher als gewöhnlich sein, Pullup an einem 
normalen Ausgang.

Autor: Harald N. (haraldn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also takt und zähleingänge hochziehen?

Autor: Harald N. (haraldn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat auch nicht geholfen...

Autor: Jim Beam (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Mit Verlaub,

Wäre es nun nicht langsam an der Zeit einen Defekt an der CTC zu erwägen
und die mal auszuwechseln?

Ich pers. hätte das schon sehr viel früher probiert...

Autor: Harald N. (haraldn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jim Beam schrieb:
> Mit Verlaub,
>
> Wäre es nun nicht langsam an der Zeit einen Defekt an der CTC zu erwägen
> und die mal auszuwechseln?
>
> Ich pers. hätte das schon sehr viel früher probiert...

Das ist die dritte ctc...

Autor: Teo D. (teoderix)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Harald N. schrieb:
> Das ist die dritte ctc...

Und das dritte mal, das er das schreiben muss. :´(

Autor: Harald N. (haraldn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab jetzt den multiplexer wegrationalisiert. Pio geht, ctc nicht

Autor: oszi40 (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Harald N. schrieb:
> Mittlerweile habe ich die gesamte Interrupt Beschaltung weggenommen.
> Problem bleibt

Die Priorisierung der Interruptanforderungen erfolgt intern über eine 
Daisy-Chain. Ob diese Interupt-Kette die richtige Reihenfolge hat oder 
sich selbst den Ast absägt? 
http://www.vias.org/mikroelektronik/b2_03_z80-ctc_...

Autor: Joe G. (feinmechaniker) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich denke Harald hat es schon richtig beschaltet. Das Z80 System kann 
natürlich auch ohne Interrupt verwendet werden. dazu muss der CTC nur 
bei IEI auf High gesetzt werden. IED und /INT bleibt dann offen. Bei der 
CPU wird /INT auf High gelegt. Nun kann der CTC natürlich kein Interrupt 
mehr auslösen, als Timer muss er jedoch trotzdem arbeiten.

Autor: Harald N. (haraldn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Joe G. schrieb:
> Ich denke Harald hat es schon richtig beschaltet. Das Z80 System kann
> natürlich auch ohne Interrupt verwendet werden. dazu muss der CTC nur
> bei IEI auf High gesetzt werden. IED und /INT bleibt dann offen. Bei der
> CPU wird /INT auf High gelegt. Nun kann der CTC natürlich kein Interrupt
> mehr auslösen, als Timer muss er jedoch trotzdem arbeiten.

Danke für den Kommentar.
Hast du eine Idee was da los ist?

Autor: Constanze H. (warteschleife)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was sind denn die Signale CLKO und CLK am CTC?
Der CTC hängt als einziger Baustein mit seinem
Clock input nicht an CLKO, sondern an CLK.
Alle anderen hängen an CLKO.

-Connie

Autor: Harald N. (haraldn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Constanze H. schrieb:
> Was sind denn die Signale CLKO und CLK am CTC?
> Der CTC hängt als einziger Baustein mit seinem
> Clock input nicht an CLKO, sondern an CLK.
> Alle anderen hängen an CLKO.
>
> -Connie

Das ist nur schlampig beschriftet. Clk und clko sind beides der 
systemtakt.

Autor: Route 6. (route_66)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
georg schrieb:
> Die CTCs sind wohl Sensibelchen,

Kann ich nur bestätigen. Ich weiß aber auch den Grund nicht mehr.

Wenn ich die Initialisierungen in meinen vielen Quelltexten durchsehe, 
istz immer die Sequenz dabei:
Kanal 0 rückestzen mit 03H
InT-Vector laden (auch wenn kein INT benutzt wird)
Kanal 1 Betriebsart setzen mit Steuerbyte 05H für Zeitgeber
Zeitkonstante z.B. für Baudrate nachladen
;==========================================================================
;  Hardware initialization table
;  Byte1  Anzahl
;  Byte2  Portadresse
;  Byte3... Byte3+Byte1  Steuerbytes
;  Tabellenende mit Byte1=0

tab_i_po:
  .DB  1  ;Anzahl Steuerbytes
  .DB  wdtmr  ;Watchdog mode register
  .DB  7Bh  ;Watchdog anhalten

  .DB  1  ;Anzahl
  .DB  wdtcr  ;Watchdog control register
  .DB  0B1h

  .DB  1  ;Anzahl
  .DB  intpr  ;Interruptprioritaet
  .DB  0  ;CTC-SIO-PIO

;  .....................................  
  ;CTC
;  .....................................  
  .DB  2    ;Anzahl Steuerbytes
  .DB  ctc_0    ;an Kanal 0
  .DB  03h    ;Ruecksetzen
  .DB  (invet)%256  ;
  ;hier ist der L-Teil des Interruptvectors fuer Kanal 0
  ;einzutragen, die anderen Kanaele folgen unmittelbar


  .DB  2    ;Anzahl Steuerbytes 
  .DB  u_ctc    ;An Kanal 1
  .DB  00000101B  ;Betriebsart
  ;  +--------------- 0=no INT
  ;   +-------------- 1=counter 0=timer
  ;    +------------- prescale by 0=16 1=256
  ;     +------------ clock on rising edge (not used)
  ;      +----------- auto trigger
  ;       +---------- TC follows
  ;        +--------- Reset/Run
  ;         +-------- Kennzeichen fuer Steuerword
  .DB  tk3    ;TC fuer Baudrate

;  .....................................  
  ;SIO
;  .....................................  

(ich glaube, es ist vom CEPAC80)

: Bearbeitet durch User
Autor: Klaus R. (klara)
Datum:

Bewertung
-2 lesenswert
nicht lesenswert
Z80 Problem?

Hatte ich vor über 30 Jahren auch schon einmal.
mfg Klaus

Autor: Joerg F. (felge1966)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auch wenns nur ein Stochern im Nebel ist, so wäre doch noch die 
Möglichkeit, daß der CTC dein Takt nicht so gefällt. Da der Z80 
insgesamt auch mit niedriegeren Takte läuft, würde ich dir mal ein 
Absenken auf 1MHz oder weniger und einen Taktgenerator auf 74HCT oder 
74LS Basis empfehlen. Die 74HC Serie war auch schon bei aderen z80 
Projekten der Showstopper.

Gruß Jörg

: Bearbeitet durch User
Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Joerg F. schrieb:
> und einen Taktgenerator auf 74HCT oder 74LS Basis empfehlen.

Hmm. Die Definition des Takteingangs der Z80 Komponenten ist mit TTL und 
HCT nicht direkt verträglich, dafür aber mit HC.

Autor: Erich (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
HALLO,
was hast du denn für eigenartiges "/Reset" ?
Erst einen MAX690 spendieren, und dessen sauberes Ausgangssignal dann 
mit 100nF kaputtmachen??
Und gelegentlich noch kurzschliessen???
Da weiss man nicht, was einem mehr schmerzen soll: Der MAX690, der 
Kondensator oder der Taster. Oh' weh'

Dein Schaltbild hier
Beitrag "Re: Z80 SBC Problem."
https://www.mikrocontroller.net/attachment/372920/...

Gruss

Autor: Harald N. (haraldn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Erich schrieb:
> HALLO,
> was hast du denn für eigenartiges "/Reset" ?
> Erst einen MAX690 spendieren, und dessen sauberes Ausgangssignal dann
> mit 100nF kaputtmachen??
> Und gelegentlich noch kurzschliessen???
> Da weiss man nicht, was einem mehr schmerzen soll: Der MAX690, der
> Kondensator oder der Taster. Oh' weh'
>
> Dein Schaltbild hier
> Beitrag "Re: Z80 SBC Problem."
> https://www.mikrocontroller.net/attachment/372920/...
>
> Gruss

Siehe Datenblatt Seite 6
Für einen manuellen Reset gehört der Taster und der 100n genau dorthin.

: Bearbeitet durch User
Autor: Erich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Harald N. schrieb:
> Siehe Datenblatt Seite 6
> Für einen manuellen Reset gehört der Taster und der 100n genau dorthin.

Bild Seite 6 ist nicht für MAX690.
Und vermutlich sowieso falsch.
Ist ja kein "open drain" Ausgang.

Mach' den 100 nF einfach mal raus und probiere neu!

Gruss

Autor: Joe G. (feinmechaniker) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Harald N. schrieb:
> Hast du eine Idee was da los ist?

Ich würde zunächst untersuchen, ob die CTC überhaupt funktioniert.
Also testen ob Timer Mode und Counter Mode funktionieren. Da der Timer 
Mode bei dir nicht geht, untersuche mal ob wenigstes der Counter Mode 
geht. Im Timer Mode könntest du noch versuchen extern den Counter über 
den Trigger zu starten (Bit 3 auf high – Time Trigger). Wenn all das 
nicht fruchtet, dann ist etwas mit der Ansteuerung faul. Kannst du den 
Takt runtersetzen? Eine Möglichkeit ist noch eine kleine Single-Step 
Logik an den Z80 und dann tatsächlich Schritt für Schritt…

Im Anhang meine Schaltung für so eine Logik auf dem Z180.

: Bearbeitet durch User
Autor: Michael A. (micha54)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

die benutzte Schaltung des Reset mit Taster und C steht genau so auf 
Seite 6 des Datenblattes des Maxim690.

Was ist also daran falsch ?

Gruß,
Michael

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael A. schrieb:
> Was ist also daran falsch ?

Der Typ des ICs in diesem Bild: "MAX691/693/695 Typical Application"

: Bearbeitet durch User
Autor: A. H. (ah8)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
A. K. schrieb:
> Schon versucht, den Software Reset rauszunehmen, oder getrennt von der
> Channel-Control durchzuführen?

Würde ich auch so sehen:

Bit 1 = 1.
Counting and/or timing operation is terminated and the channel is reset. 
This is not a stored condition. *The bits in the Channel Control 
register are unchanged*. If bits 1 and 2 are set to 1, the channel 
resumes operation upon loading a time constant.

: Bearbeitet durch User
Autor: Harald N. (haraldn)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Erich schrieb:
> HALLO,
> was hast du denn für eigenartiges "/Reset" ?
> Erst einen MAX690 spendieren, und dessen sauberes Ausgangssignal dann
> mit 100nF kaputtmachen??
> Und gelegentlich noch kurzschliessen???
> Da weiss man nicht, was einem mehr schmerzen soll: Der MAX690, der
> Kondensator oder der Taster. Oh' weh'
>
> Dein Schaltbild hier
> Beitrag "Re: Z80 SBC Problem."
> https://www.mikrocontroller.net/attachment/372920/...
>
> Gruss

Es gibt keine Vorschuss Lorbeeren aber ich denke zu hattest recht. Ich 
habe zwar zur Zeit irgendein Monitor Programm drauf, und die schaltung 
ist schon längst nicht mehr die, welche ich skizziert habe.
ABER: 100nF raus, Strom an, multimeter frequenzmessung an den to pins 
UND da kommt was raus!!!!!
Ich werde am Nachmittag wieder auf meine schaltung umbauen und mein 
Testprogramm Rauf laden um das genauer untersuchen zu können.

Und kann mir das jetzt jemand auch erklären. Das reset Signal war 
nämlich immer schön auf high.

Und vielen Dank Erich!

Autor: G. O. (aminox86)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Harald N. schrieb:
> Idealerweise gleich mit Testprogramm...
> Dann finde ich Vlt durch Vergleich den Fehler.


Hier ist die Verdrahtung und Programmierung ua. der CTC genau erklärt:

http://www.train-z.de/train-z/pdf/howto_program_th...

Autor: Erich (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Michael A. schrieb:
> Hallo,
>
> die benutzte Schaltung des Reset mit Taster und C steht genau so auf
> Seite 6 des Datenblattes des Maxim690.
>
> Was ist also daran falsch ?
>
> Gruß,
> Michael

Daß das Teil nichts taugt, das ist falsch.

Schaust die hier im Nachbau von Linear Technology (jetzt schon lange zu 
Analog Devices gehörend)
http://www.analog.com/media/en/technical-documenta...
Seite 15,
da erklären sie warum mind. zusätzlich ein 100R rein muß,
und das das Ding sowieso besser durch einen LTC1235 ersetzt gehört.
WEIL der mechanische Reset durch den Taster sonst eben keinen richtigen 
Reset macht; da könnte man das Ding gleich weglassen und durch einen 
hochohmigen Pullup ersetzen.

MAX690, Seit 9, links unten:
" RESET has  an  internal  3μA  pullup"
Ich krieg' einen (Lach-) Anfall !!
Ein hochohmiger Ausgang, doch open drain.
Entspricht quasi einen > 100 kOhm Widerstand @5V.

MAX690 Seite 6 rechts oben:
"The  manual  reset  switch  and
the  0.1μF  capacitor  connected  to  the  reset  bus  can  be
omitted if manual reset is not needed. "

Das Ding hatte ich selbst nie verwendet, sondern nur immer LTC1232 (den 
dann wiederum Maxim als MAX1232 nachgebaut hat).

Wenn er jetzt doch drinbleiben soll, dann bitte das /RESET über 2 
hintereinandergeschaltete Cmos Inverter (74HC04) oder noch besser 
Schmitt-Trigger 74HC132 ergänzen.
Um dem armen Taster denn 100R spendieren. Seine Goldschicht haste aber 
inzwischen schon weggebrannt.

Gruss

Autor: Erich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Harald N. (haraldn)

Freut mich, daß es jetzt klappt.

Dein Versuch hat sich mit meinem Text von 13:46 überschnitten,
wo ich nochmals zu erklären versuchte, warum das mit dem 100 nF falsch, 
ja sogar kontroproduktiv ist.

Gruss

Autor: Dieter W. (dds5)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Harald N. schrieb:
> Und kann mir das jetzt jemand auch erklären. Das reset Signal war
> nämlich immer schön auf high.

Ich schätze mal, dass durch den 100n die ansteigende Flanke zu langsam 
für den CTC war. Vielleicht hat das DB eine Aussage dazu.

Autor: Harald N. (haraldn)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Erich schrieb:
> Michael A. schrieb:
> Wenn er jetzt doch drinbleiben soll, dann bitte das /RESET über 2
> hintereinandergeschaltete Cmos Inverter (74HC04) oder noch besser
> Schmitt-Trigger 74HC132 ergänzen.
> Um dem armen Taster denn 100R spendieren. Seine Goldschicht haste aber
> inzwischen schon weggebrannt.
>
> Gruss

Funktioniert! Danke nochmal!

Autor: Joe G. (feinmechaniker) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Harald N. schrieb:
> Funktioniert! Danke nochmal!

"Ich liebe es, wenn ein Plan funktioniert!" [1]

[1] John Hannibal Smith, A-Team

Autor: Oscale (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Toll das der Hinweis schon längst kam.
Du hast mit Deinem Oszi viel gemessen, aber nicht die grundlegenden 
Dinge geprüft.



Autor: Oscale (Gast)
Datum: 08.08.2018 12:31
Reset war auch immer tückisch, der z 80 macht dann was er will.
Nimm nen reset Controller oder eine diskrete Beschaltung..

Autor: Harald N. (haraldn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oscale schrieb:
> Toll das der Hinweis schon längst kam.
> Du hast mit Deinem Oszi viel gemessen, aber nicht die grundlegenden
> Dinge geprüft.
>
>
>
> Autor: Oscale (Gast)
> Datum: 08.08.2018 12:31
> Reset war auch immer tückisch, der z 80 macht dann was er will.
> Nimm nen reset Controller oder eine diskrete Beschaltung..

War ja auch ein ganz konkreter Hinweis....

Autor: Jörg W. (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Harald N. schrieb:

> War ja auch ein ganz konkreter Hinweis....

Zumal es ja gar nicht der Z80 selbst war, sondern wohl eher der CTC,
der mit dem Reset-Impuls nicht klar kam.

@Osca[le]: Verwarnung wegen Verstoßes gegen die Forenregeln.  Bitte
nur einen Namen pro Thread benutzen.

Autor: Georg G. (df2au)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
Jörg W. schrieb:
> Zumal es ja gar nicht der Z80 selbst war, sondern wohl eher der CTC,
> der mit dem Reset-Impuls nicht klar kam.

Das Problem ist eher, dass jeder Baustein seine individuelle Schwelle 
hat, an der er den Reset als erledigt ansieht. Die hochohmige Schaltung 
mit dem großen Kondensator und die daraus resultierende langsame Flanke 
führen dazu, dass der CTC noch im Reset ist, während der Z80 schon 
loslegt. Wenn dann der CTC auch aktiv wird, ist schon alles gelaufen.

Autor: Jörg W. (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Georg G. schrieb:
> Die hochohmige Schaltung mit dem großen Kondensator und die daraus
> resultierende langsame Flanke führen dazu, dass der CTC noch im Reset
> ist, während der Z80 schon loslegt.

Klar, logische Erklärung.

Reset-Controller hatte ich damals nicht, Pushbutton brauchte ohnehin
eine Entprellung (über Flipflop), im Zuge der entsprechenden Logik
hing dann auch gleich der Power-on-Reset mit dran.

Autor: tommy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
tommy schrieb:
> Versuche mal direkt nach ORG $0
> eine richtig lange Verzögerung (100ms ?).
>
> Wenn der Z80 aus dem Reset erwacht, dann heisst das
> nicht, das auch die Peripherie schon wach ist ;-)
> BTDT

Da lag ich also richtig, ohne zu dem Zeitpunkt die
Reset-Beschaltung zu kennen.

Autor: Hansjörg W. (Firma: --) (winielektronik)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen, habe soeben gelesen das hier sich einige mit dem Z80 und 
darum beschäftigen. Hatte auch einige anlauf probleme die ich noch selbt
mit Datenblätter in den Griff bekommen habe.
Um mir ein Bild zu mache war ich auch in Internet auf der suche und 
landete
hier. Würde gerne mehr mit meinem Z84c15 System machen und einige Ideen 
aufgreifen. Übrigens die CTC läuft jetzt bei mir Teiler auf 9600Baud.

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hansjörg W. schrieb:
> Würde gerne mehr mit meinem Z84c15 System machen und einige Ideen
> aufgreifen.

Meinst du den Toshiba TMPZ84C015? Da wirst du die Probleme des TE nicht 
haben, denn der Toshiba integriert ja so gut wie alle übliche Peripherie 
eines Z80 SBC auf einem Chip und damit sind solche Reset Probleme so gut 
wie ausgeschlossen.
Ich habe den damals auf dem CEPAC 80 Board der c't benutzt und habe 
damit z.B. die Steuerung eines Grundig SAT Receivers ersetzt mit 
zusätzlichen Spezialitäten.
Tatsächlich liegen hier noch ein oder zwei unverlötete Chips, die ich zu 
verwenden gedachte, bis ich zur MCS51 Fraktion übertrat.

: Bearbeitet durch User
Autor: Hansjörg W. (Firma: --) (winielektronik)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Matthias S.
Ja auf meinen 5 Bords sind 1Toshiba Z84c015-10 und 3 Zilog Z84c150-10
beide verhalten sich gleich. Und eins ist DIN A4 große und gehörte mal 
zu einem Auswerte Server da sind noch alle Zilog Bausteine einzelnd 
verbaut.
Um überhaupt damit arbeiten zu können, habe ich von meinem IT-Lehrer 
damals
CPM bekommen und mit einem MZ80 Sharp System angepasst.
Jetzt kann ich auch Programme selbst auf meinem System schreiben.
Kleiner Projekte habe ich schon gemacht. Würde aber mal ein größeres 
angehen.
Hardware wäre dafür genügend da für Änderungen/Erweiterungen.
Derzeit schreibe ich keine Tools um mein System zu optimieren.
Kleine Steuerungen im Haus und für Solar betrieb.

Autor: Hansjörg W. (Firma: --) (winielektronik)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Mathias S.
Habe gerade ein Interrupt-Timer mit CTC3 geschrieben.
Der ein 500µs puls = 2KHz Interrupt auslösen und für Programme
als Timer fungiert. Dabei decrementiere ich im SRAM ein vorgegebenen
Wert jedesmal -1 bis auf 00h (500µs * SRAM = Timer). z.B. für ein
Steppermotor. Diese Tools setze ich dann bei bedarf ein.

Antwort schreiben

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

Wichtige Regeln - erst lesen, dann posten!

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

Formatierung (mehr Informationen...)

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




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

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