Robotrontechnik-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Mitglieder || Home || Statistik || Kalender || Admins Willkommen Gast! RSS

Robotrontechnik-Forum » Technische Diskussionen » AC1-2010 SIO » Themenansicht

Autor Thread - Seiten: -1-
000
12.04.2020, 21:37 Uhr
andy62



Hallo,
ich habe mir mal Gedanken zu einer SIO Baugruppe für den AC1-2010 gemacht.
Der SIO Kanal A ist dabei mit Jumper auf ein FS Interface umsteckbar.
Was mir noch Kopfzerbrechen macht, ist die Gestaltung der Baudrate mit dem CTC.
Im Moment läuft die Takterzeugung als Zeitgeber mit dem Systemtakt von 2MHz.
Da lassen sich nur Baudraten von 2400 bis 9600Bd erzeugen, und das mit leichten Abweichungen. Um das zu umgehen habe ich den Quarzoszillator am Eingang des ersten und zweiten CTC Kanals angeschlossen. Diese hat eine #Frequenz von 4,9152MHz. Das funktioniert aber nicht in der Zähler- Betriebsart. Im Datenblatt des CTC habe ich dann gelesen, das die Eingänge nur bis 2,5MHz arbeiten.
Nun bin ich auf der Suche nach einer eleganten Lösung um alle Baudraten von 50Bd bis 115000Bd abzudecken.
Für Verbesserungsvorschläge an der Baugruppe wäre ich dankbar.
Grüße Andy


Dieser Beitrag wurde am 12.04.2020 um 21:40 Uhr von andy62 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
12.04.2020, 22:16 Uhr
Hobi



Ich habe gerade meine Version fertig und stand vor selbigen Problemen. Deine Überlegung war schon recht gut, letztendlich da der CTC nur mit endlicher Taktfrequenz sampelt, kann aber die Frequenz nicht mehr als die Hälfte des Taktes sein.

Sprich ich habe einen 1.8432 MHz (bzw in meinem Fall erstmal durch 2 geteilt) Takt genommen, den kann man direkt an die SIO geben, diese kommt mit dem Vorteiler auf genau 115200.
Mit dem 4.9152 wirst du kaum auf 115200 kommen, dann müsstest du mit einen Teiler von 42 arbeiten. Die SIO kann aber nur 16 (oder halt 64). Womit man bei 4.9152/16/3 nur bei 10240 kBit rauskommt.

Die Idee den Zählerausgang zu verwenden funktioniert, wenn der Takt 4 MHz ist. Dann kann man auch 1.8432 MHz an den Zähler schicken.

Vielleicht sollte man statt den MAX232 etwas moderner wählen. Es gibt günstigere und dazu noch schnellere Varianten, die auch bei >230400 noch gut funktionieren (für den Fall, dass man auf Vorrat kauft)
--
-------------------------------------------
Corontäne
-------------------------------------------

Dieser Beitrag wurde am 12.04.2020 um 22:30 Uhr von Hobi editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
12.04.2020, 22:25 Uhr
Klaus



Hallo Andy,

ich habe zwar vom AC1 keine Ahnung und habe die Schaltung nur mal ganz kurz überflogen.
Was mir aufgefallen ist....
Du hast ja /INT, IEO, IEI mit verdrahtet, was vermutlich bedeutet, dass Du Interrupts von der SIO bzw. CTC verwenden willst.

Wenn dem so ist, muss aber der Bustreiber IC2 noch etwas zusätzliche Logik für die Richtungssteuerung bekommen. Allein mit /RD wird das nicht reichen, denn beim Lesen des Interruptvector (von CTC bzw. SIO) wird nur /M1 und /IORQ aktiv. /RD ist da nicht im Spiel.
Evtl. muss IEI und IEO der Baugruppe auch noch mit rein.

Am Besten Du wirfst nochmal einen Blick ins Buch Microprozessortechnik von Kieser/Meder. Da sind einige Diagramme vom Interruptquittierungszyklus drin (für CTC z.B. auf Seite 156).

Mir ist das nur aufgestoßen, weil wir damals bei der K1520-SOUND-Karte vom Daniel genau das Daten-Bustreiber-Interruptproblem (IV Lesen) anfangs nicht im Fokus hatten. Letztendlich haben wir dann aus Platzgründen einen GAL verwendet. Bei Dir wird das aber vermutlich auch ohne gehen.

Viele Grüße,
Klaus

Dieser Beitrag wurde am 12.04.2020 um 22:29 Uhr von Klaus editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
12.04.2020, 22:51 Uhr
andy62



Hallo Hobi, hallo Klaus,
danke für eure Antworten.
@Hobi
Wenn du den 1,8432MHz Quarz direkt an die SIO gibst, bist du aber nicht variabel mit der Baudrate.
Da werde ich mal versuchen, die CPU Taktfrequenz auf 4MHz zu bekommen um dann einen 1,8432MHz Quarz am Zählereingang zu verwenden.
Die MAX 232 habe ich verwendet, da ich aus früherer Zeit noch eine ganze Stange hatte.
@Klaus
Ich wollte mir eine Interruptsteuerung vorbehalten um so universell wie möglich zu sein. Ich schaue mir das nochmal an.
Danke und Grüße,
Andy
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
12.04.2020, 22:58 Uhr
Wusel_1



Ich habe mir mal den Plan angesehen.
1. Was sollen die zwei Oszilatoren bewirken, wenn du die mit den Ausgängen verbindest? - oder verzeichnet?
2. Das mit dem Interupt solltest du dir noch mal ansehen.
--
Beste Grüße Andreas
______________________________________
DL9UNF ex Y22MF es Y35ZF
JO42VP - DOK: Y43 - LDK: CE

*** wer glaubt, hört auf zu denken ***

Dieser Beitrag wurde am 12.04.2020 um 23:11 Uhr von Wusel_1 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
12.04.2020, 23:02 Uhr
Klaus



Hallo Andy,

neben der RS232 hast Du ja auch eine IFSS (TTY) Schnittstelle vorgesehen.
Soweit mir bekannt ist, ist diese nur bis 9600 Baud spezifiziert.
Von daher ist Dein Vorhaben mit variabler Baudrate wichtig.

Ich nutze IFSS z.B. an meinem NANOS Rechner für die Tastatur (modifizierte K7672.03) und den Drucker K6313. Hierbei auch die 9600 Baud.


Viele Grüße,
Klaus
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
12.04.2020, 23:03 Uhr
andy62



Hallo Andreas,
die beiden Oszillatoren sind nur für verschiedene Bauformen(DIL8 und DIL14) drin.
Ich habe nur einen bestückt.
Grüße Andreas
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
007
12.04.2020, 23:04 Uhr
Hobi



Oder halt etwas entspannter mit 57.6 anfangen? Interrupt macht bei 115200 kaum Spass. Selbst bei 4mhz kommt alle 300 Takte ein neues Zeichen an.
Bei 9600 kann man dagegen im Interrupbetrieb sehr gut arbeiten.
--
-------------------------------------------
Corontäne
-------------------------------------------
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
008
12.04.2020, 23:11 Uhr
Wusel_1



Den Aufwand mit der I/O-Selektierung kannst du dir sparen.
Gehe mal auf http://www.ac1-info.de/ unter AC1-2010 auf I/O-Nutzung. Dort hast du eine Übersicht, welche I/O-Adressen belegt sind und welche frei sind.
--
Beste Grüße Andreas
______________________________________
DL9UNF ex Y22MF es Y35ZF
JO42VP - DOK: Y43 - LDK: CE

*** wer glaubt, hört auf zu denken ***

Dieser Beitrag wurde am 12.04.2020 um 23:12 Uhr von Wusel_1 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
009
12.04.2020, 23:22 Uhr
Klaus



Hallo Andy,

nochmal zur IFSS (TTY) Schnittstelle.
Ich würde hier anstelle des 5V/24V evtl. einen 5V/12V DC-DC-Wandler einsetzen.
Hier noch ein Link zur Berechnung der LM317 Stromquelle:

http://www.netzmafia.de/skripten/hardware/LM317/LM317.html

Die 25 Ohm sind wohl etwas zu klein (der Strom damit zu groß). IFSS bzw. TTY ist mit 20 mA spezifiziert.
https://de.wikipedia.org/wiki/TTY-Schnittstelle
Es sei denn Du hast was anderes mit der Schnittstelle vor...
Die Diode über den LM317 sollte besser auch dran.

Viele Grüße,
Klaus

Dieser Beitrag wurde am 12.04.2020 um 23:24 Uhr von Klaus editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
010
12.04.2020, 23:38 Uhr
andy62



HalloAndreas,
die I/O Dekodierung habe ich auch nur für den universellen Einsatz gemacht.
Ich habe z.B. auch die KRAMER Software auf die AC1 CPU implementiert. Dort sind die I/O Adressen anders.
@Klaus
Ja, da gehören 62Ohm rein. Die Dioden werde ich noch nachrüsten. Die Schnittstelle habe ich noch nicht getestet. Ich würde dort gern einen Fernschreiber anschließen. Ich habe noch einen F1100 und einen F1300.
Viele Grüße,
Andy
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
011
13.04.2020, 21:32 Uhr
andy62



Ich habe die Richtungsumschaltung des Datenbusbuffers nochmal überarbeitet.
Kann da bitte mal jemand drüber schauen?
Die Daten der beiden Schaltkreise sollten jetzt ausgelesen werden können wenn
/RD * /CS * /IORQ, oder /IORQ * IEI * IEO * /M1 aktiv sind.



Danke und Grüße,
Andy
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
012
13.04.2020, 22:24 Uhr
Klaus



Hallo Andy,

ich glaube IEO wird L wenn einer der Peripheriebausteine einen Interrupt anmeldet.
Also müsste IEO am Eingang deiner Richtungsumschaltung noch negiert werden.

Ich bin leider kein Profi.
Evtl. kann ja nochmal ein echter Experte einen Blick drauf werfen.

Im Kieser/Meder ist der ganze Interruptkram ziemlich ausführlich beschrieben. Für Laien, wie mich aber auch nicht immer ganz leicht zu verstehen ;-(

Viele Grüße,
Klaus
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
013
13.04.2020, 22:53 Uhr
andy62



Hallo Klaus,
danke. Stimmt, IEO muß ich invertieren. Habe es korrigiert, s.u.
Ich sitze auch schon den ganzen Tag mit dem Kieser/Meder rum.
Ich habe das selbe Problem, das ich das nicht richtig verstehe.
Eventuell kann sich das noch ein Experte anschauen.
Grüße Andy


Dieser Beitrag wurde am 13.04.2020 um 22:59 Uhr von andy62 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
014
13.04.2020, 23:48 Uhr
Klaus



Hallo Andy,

da ist ja schon einiges an Logikgattern zusammengekommen.
Falls da bei Dir der Platz auf der Platine auch knapp wird, ist ein GAL evtl. eine Alternative. Bei Reichelt gibts ja noch welche von Microchip (ATF ...).
Die freien GAL-Pins könntest Du dann evtl. gleich als Bustreiber für die Steursignale verwenden. Adress- und Datenbus hast Du ja getrieben, aber /RD, /IORQ, /M1 u.s.w. nicht.
Hier sind natürlich auch wieder die Profis gefragt, wegen evtl. Problemen mit Gatterlaufzeiten o.ä.

Wie gesagt ich bin kein AC1-2010 Spezi und kann nicht beurteilen wie das dort gehandhabt wird, ob evtl. auf der CPU-Karte schon genügend Bustreiber drauf sind oder ob der Aufwand evtl. auch garnicht nowendig ist, da die Belastung durch die bisher vorhandenen Steckkarten eher gering ist. Schaden kann es zwar nie, aber der Schaltungsaufwand steigt durch die Treiberei natürlich.

Wäre wirklich schön, wenn sich mal ein AC1- und/oder Hardware-Experte dazu äußert.

Viele Grüße,
Klaus

Dieser Beitrag wurde am 13.04.2020 um 23:48 Uhr von Klaus editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
015
14.04.2020, 17:40 Uhr
Steffen.111

Avatar von Steffen.111

Moin in die Runde,

falls von Interesse mal http://www.nkc-wiki.de/index.php?title=IO-CSP ansehen.
Das ist eine Platine für den NKC mit 2 CTC, PIO und SIO, Daisy-Chain-Beschleunigung und Steuerung des Datenbustreibers für IM2-Z80.
Alles beschrieben in der Beschreibung http://www.nkc-wiki.de/images/c/c6/CSP_1.0-h_Beschreibung.pdf
Die Taktratenerzeugung ist dort allerdings nicht ganz korrekt (Seite 8).
Da die SIO intern einen 16er Vorteiler anbietet (UND benötigt !!) kommt man bei dem 1,8432MHz Quarz mit einem CTC-Kanal für alle Bd-Raten 57600 bis 600 Bd aus. Für 600..150 Bd muss der Vorteiler in der SIO auf 256 programmiert werden. (z.B. SIO-VT = 16 und CTC-Zähler 12 = 9k6).

Was die Bustreiber anbelangt, so wären die sicher bei den LS-Typen von der Leistung her entbehrlich, aber jede sauber abgeschlossene Karte behält ihre unsauberen Signale für sich und der Bus als solcher bleibt sauber. ...meine Meinung (War in den 80ern eiserne Regel: Keine Platine ohne Treiber auf den Bus!).

VG
Steffen

Dieser Beitrag wurde am 14.04.2020 um 17:46 Uhr von Steffen.111 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
016
14.04.2020, 20:45 Uhr
andy62



Hallo Steffen,
vielen Dank.
Das schaue ich mir mal an.
Grüße Andy
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
017
14.04.2020, 21:36 Uhr
Hobi



Die Baudratenberechnung scheint nicht ganz korrekt zu sein. Für das Senden ist das ok. Für das Empfangen setzt die SIO den Vorteiler 16 selbst. Beim NKC scheint man dagegen 1 zu verwenden.
--
-------------------------------------------
Corontäne
-------------------------------------------
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
018
15.04.2020, 03:26 Uhr
Steffen.111

Avatar von Steffen.111


Zitat:
Hobi schrieb
Die Baudratenberechnung scheint nicht ganz korrekt zu sein. Für das Senden ist das ok. Für das Empfangen setzt die SIO den Vorteiler 16 selbst. Beim NKC scheint man dagegen 1 zu verwenden.

... woraus schließt du das?
Die SIO setzt nix selbst! Die braucht aber zum async. Empfangen einen Vorteiler!
Der ist in beide Richtungen gleich. Schreibregister 4 Protokollsteuerung.
--
so sieht die ini aus z.B.:

--

Dieser Beitrag wurde am 15.04.2020 um 03:56 Uhr von Steffen.111 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
019
15.04.2020, 06:38 Uhr
Hobi



Es war vielleicht nur etwas unglücklich ausgedrückt. Du hast den Punkt getroffen. Die SIO braucht den Vorteiler um das Signal 16 Mal abzutasten.
--
-------------------------------------------
Corontäne
-------------------------------------------
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
020
15.04.2020, 11:51 Uhr
andy62



Ist das nur beim Empfang so?
Gesendet habe ich auch ohne Vorteiler und es hat funktioniert.
2400 Hz am Baudratentakt der SIO und Übertragungsgeschwindikeit war 2400 Bd.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
021
15.04.2020, 13:17 Uhr
Steffen.111

Avatar von Steffen.111

Ja, für den Empfang ohne Syncronsignal ist der Vorteiler unabdingbar! Dem Sender ist's wohl wurscht. Nur sollten beide die gleiche Bd-Rate fahren!
Also nicht lange überlegen -asyncron immer mit Vorteiler in beide Richtungen! ...sonst müsstest Du die SIO ständig umprogrammieren ;-)
-----
Ich habe für den NKC ein quasi Remote-Programm geschrieben. Nicht die Konsole, sondern 4 Funktionen:
1. Daten von Adresse, bis Adresse an anderen NKC nach Adresse senden
2. Daten von Adresse, bis Adresse von einem anderen NKC holen und auf Adresse hier ablegen
3. Programm auf anderem NKC ab Adresse starten.
4. Prüfsumme von Adresse bis Adresse auf den anderen NKC berechnen lassen.

Damit kannst Du alles bewerkstelligen, wenn der andere NKC das gleiche Remote-Programm hat. Satelliten lassen grüßen ;-)

Dazu noch eine Funktion mit der Bediener auf beiden Seiten kurze Textnachrichten austauschen können.

Hat alles schon über RS232/TCP - Tunnel funktioniert. Wahlweise mit SIO oder SY6551 die verstehen sich.

...nur soweit in Kürze.
VG

Dieser Beitrag wurde am 15.04.2020 um 13:28 Uhr von Steffen.111 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
Seiten: -1-     [ Technische Diskussionen ]  



Robotrontechnik-Forum

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek