Robotrontechnik-Forum

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

Robotrontechnik-Forum » Technische Diskussionen » SIO Kommunikation » Themenansicht

Autor Thread - Seiten: -1-
000
26.10.2025, 00:26 Uhr
Bea

Avatar von Bea

Hallo zusammen,

ich mal wieder ein Problem bei dem ich nicht weiterkomme.
Ich versuche zusammen mit einer SIO und CTC eine serielle Schnittstelle via USB
zu programmieren.
Theoretisch sind 1200 BAUD programmiert. Die LED am FT232 blinkt auch, jedoch kommt nichts am Terminal an. Das gleiche Spiel mit dem 2. Kanal, der eine echte V24 Schnittstelle darstellt. Am Oszi kann ich es sehen, kommt aber nix an.

Ich kann auch die Assembler Datei anhängen.

Gruß
Bea
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
26.10.2025, 08:16 Uhr
wpwsaw
Default Group and Edit


moin,

ja, mit code-Formatierung. Um zu helfen solltest du die Schaltung auch verraten. Du misst wahrscheinlich die Signale an der SIO , oder?

wpw
--
RECORD, CRN1; CRN2; PicoDat; LC80; Poly880; KC85/2,3,4,5 ; KC87; Z1013; BIC; PC1715; K8915; K8924; A7100; A7150; EC1834; und P8000 ab jetzt ohne Tatra813-8x8 aber mit W50LA/Z/A; P3; ES175/2 und Multicar M25 3SK; Barkas B1000 HP

Dieser Beitrag wurde am 26.10.2025 um 08:16 Uhr von wpwsaw editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
26.10.2025, 08:58 Uhr
Bert



Bei der Fehlersuche an UART-Schnittstellen schicke ich gern ein 'U' (055h). Da kann ich mit dem Oszilloskop gut die Baudrate ermitteln. Wenn man zwischen der Übertragung noch kleine Pausen einfügt, erkennt man auch Start- und Stopbit.

Auf der Empfängerseite (hier der PC) würde ich am FTDI mal eine Brücke zwischen TX und RX herstellen und damit die Software testen.
Wenn man mit z.B. HTERM das emfängt, was man sendet, ist sichergestellt, das die Empfängerseite prinzipiell arbeitet.

Kannst Du von einem Testbyte hier ein Oszilloskopbild zeigen?
--
Viele Grüße,
Bert
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
26.10.2025, 09:18 Uhr
schlaub_01



Wichtig sind auch noch die Handshake-Signale, die sollten auch passen.

Viele Grüße,
Sven.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
26.10.2025, 09:39 Uhr
Bea

Avatar von Bea

cpu z80

CTC0 equ 10h
CTC1 equ 11h
CTC2 equ 12h
CTC3 equ 13h
SIO_DATA_A equ 18h ; address of SIO A/D
SIO_CTRL_A equ 19h ; address of SIO A/C
SIO_DATA_B equ 1Ah ; address of SIO B/D
SIO_CTRL_B equ 1Bh ; address of SIO B/C

CLK equ 2764800 ; clock in Hz


org 2000h

ld a,00000111b ; init ctc Fosc/16
out (CTC0),a
ld a,9 ; divider /9
out (CTC0),a

ld a, 00011000b ; store channel reset command in a
out (SIO_CTRL_A),a ; send it to channel a

ld a, 00000100b ; select WR4
out (SIO_CTRL_A),a
ld a, 01000100b ; 16x clock, 1 stop bit, no parity
out (SIO_CTRL_A),a
ld a, 00000011b ; select WR3
out (SIO_CTRL_A),a
ld a, 11000000b ; 8 bits
out (SIO_CTRL_A),a
ld a, 00000101b ; select WR5
out (SIO_CTRL_A),a
ld a, 01100000b ; DTR inactive, 8 bits
out (SIO_CTRL_A),a

ld a, 00000101b ; select WR5
out (SIO_CTRL_A),a
ld a, 01101000b ; enable tx
out (SIO_CTRL_A),a

wait ld a, 00000000b ; select RR0
out (SIO_CTRL_A), a ; send the pointer
in a, (SIO_CTRL_A) ; read byte from RR0
bit 2, a ; test for the tx buffer being empty
jr z, wait ; loop until buffer becomes empty

ld a, 'U'
out (SIO_DATA_A),a ; send the character to the SIO

ld bc,0
delay dec bc
ld a,b
or c
jr nz,delay

jr wait


end

Dieser Beitrag wurde am 26.10.2025 um 09:41 Uhr von Bea editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
26.10.2025, 20:20 Uhr
wpwsaw
Default Group and Edit


Hallo Bea,

wie ich schon in 001 geschrieben habe nützt das Programm nichts ohne die Hardware genau zu kennen...

...aber wie auch Sven und Bert schon geschrieben haben sind auch die Kompunenten zum Terminal wichtig...

wpw
--
RECORD, CRN1; CRN2; PicoDat; LC80; Poly880; KC85/2,3,4,5 ; KC87; Z1013; BIC; PC1715; K8915; K8924; A7100; A7150; EC1834; und P8000 ab jetzt ohne Tatra813-8x8 aber mit W50LA/Z/A; P3; ES175/2 und Multicar M25 3SK; Barkas B1000 HP
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
26.10.2025, 20:23 Uhr
Bea

Avatar von Bea

Es handelt sich um einen Z84C15. Also die Standart I/O Adressen.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
007
26.10.2025, 20:40 Uhr
wpwsaw
Default Group and Edit


...ja, aber du schreibst doch etwas von USB und V24, da gehört doch einiges mehr dazu und am Terminal kommt doch nichts an .... und du bist ja der Meinung das aus der SIO etwas heraus kommt...

wpw
--
RECORD, CRN1; CRN2; PicoDat; LC80; Poly880; KC85/2,3,4,5 ; KC87; Z1013; BIC; PC1715; K8915; K8924; A7100; A7150; EC1834; und P8000 ab jetzt ohne Tatra813-8x8 aber mit W50LA/Z/A; P3; ES175/2 und Multicar M25 3SK; Barkas B1000 HP
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
008
27.10.2025, 11:04 Uhr
rm2
Default Group and Edit
Avatar von rm2

Hallo Bea,

- ich würde die CTC rücksetzten und dann erst neuinitialisieren
- kommen denn ca. 52 µs Impulse am Ausgang CTC0 an?
- die Fragen von wpwsaw bitte beantworten


mfg ralph
--
.
http://www.ycdt.net/mc80.3x . http://www.ycdtot.com/p8000
http://www.k1520.com/robotron http://www.audatec.net/audatec
http://www.ycdt.de/kkw-stendal
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
009
27.10.2025, 11:07 Uhr
Bert




Zitat:
Bea schrieb
Es handelt sich um einen Z84C15. Also die Standart I/O Adressen.


Ich habe nur das Datenblatt hier gefunden:
https://www.zilog.com/docs/z80/dc2992.pdf

Da kann ich nix zu den Adressen finden.


Quellcode:

CLK equ 2764800 ; clock in Hz
...
ld a,00000111b ; init ctc Fosc/16
out (CTC0),a
ld a,9 ; divider /9
out (CTC0),a


Welche Frequenz liegt an Pin CLK/TRG0?
Welche Frequenz kommt an Pin ZC/TC0 raus?
Und mit welcher Frequenz willst Du die SIO betreiben?

Nach meiner Rechnung kommt momentan 2764800/9/16 = 19200 raus...

Für die gewünschten 1200 bps sollte der CTC-Kanal evtl. mit Vorteiler 256 (= 0010_0111) programmiert werden.
https://www.mikrocontroller.net/attachment/235150/Instruction_Card_Z80.pdf
(Seite 11)
--
Viele Grüße,
Bert
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
010
27.10.2025, 13:06 Uhr
Bea

Avatar von Bea

Hallo Bert und Dank für die Antwort.
Bis zur CTC stimmt alles. Es kommen 19.2kHz raus.
Am Oszi kann ich auch das gesendete "U" sehen bzw. ein empfangenes "U" welche die gleichen Zeiten ausweisen.
Der FT232 zeigt sogar an, daß gesendet bzw. empfangen wird.
Ich hänge mal die Schaltung mit an.
Es ist eigentlich Idiotensicher nur die Theorie stimmt nicht mit der Praxis überein.

Gruß
Bea


Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
011
27.10.2025, 17:04 Uhr
wpwsaw
Default Group and Edit


Hallo Bea,

hast du XON/XOFF programmiert? oder belegst du CTS und RTS,

habe ich das richtig gelesen, du kannst ein gesendetes Zeichen am Oszi nachvollziehen?

Hast du z.B. am MAX mal TxD auch gemessen?

also mir ist es schon des öffteren passiert, das ich von meinem Standpunkt aus gesehen TxD und RxD verwechselt habe

am USB Chip sind auch TxD und RxD LED Ausgang auf eine LED gelegt, du siehst also nicht ob Senden oder Empfangen leuchtet

wpw
--
RECORD, CRN1; CRN2; PicoDat; LC80; Poly880; KC85/2,3,4,5 ; KC87; Z1013; BIC; PC1715; K8915; K8924; A7100; A7150; EC1834; und P8000 ab jetzt ohne Tatra813-8x8 aber mit W50LA/Z/A; P3; ES175/2 und Multicar M25 3SK; Barkas B1000 HP
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
012
27.10.2025, 17:20 Uhr
kaiOr

Avatar von kaiOr

Hallo Bea,

ich vermute CLKIN+CLKOUT sind direkt verbunden und zwischen XTAL1+2 hängt ein hübscher Quarz?
Jetzt nimmst Du z.B. ZC/TO0 vom Kanal 0 der CTC und verbindest das direkt mit /RxCA + /TxCA (anstatt CLKOUT).

/RTSA ist also auch verbunden, dann fehlt oben die Aktivierung:
ld a, 00000101b ; select WR5
out (SIO_CTRL_A),a
ld a, 01101010b ; enable tx
out (SIO_CTRL_A),a

Grüße,
Kai
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
013
27.10.2025, 19:12 Uhr
RenéB



Der TMPZ84C015 ist in alldatasheet zu finden. Das ist etwas ausführlicher.
https://www.alldatasheet.com/datasheet-pdf/view/97567/TOSHIBA/TMPZ84C015BF-10.html

Dieser Beitrag wurde am 27.10.2025 um 19:12 Uhr von RenéB editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
014
27.10.2025, 20:09 Uhr
RenéB



Wenn ich das richtig sehe, muss der Prescaler auf 256 stehen, damit mit einem timer counter von 9 die 1200 herauskommt. Das heißt D5 muss gesetzt werden.

ld a,00100111b ; init timer mode und Fosc/256

Wenn es 19200 gewünscht war stimmt die Timereinstellung natürlich.

Dieser Beitrag wurde am 27.10.2025 um 20:14 Uhr von RenéB editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
015
27.10.2025, 20:49 Uhr
RenéB



Ok. Ich sehe gerade …
Da WriteRegister 4 den Teiler auf 1/16 stellt (D6 und D7 auf 01) sind es dann wieder 1200.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
016
Heute, 10:28 Uhr
Bea

Avatar von Bea

Danke für die vielen Antworten.

Bis zur SIO sind die Frequenzen korrekt.
Wenn ich das Datenblatt richtig lese muß in der SIO der Takt durch 16 geteilt werden für die entsprechende Baudrate?
CLKIN kommt vom Taktgenerator von einem Quarzosszillator und CLKOUT sind 1,8432MHz. War mal geplant für eine "schöne" Frequenz für eine gute Baudrate. Wird aber nicht genutzt. Es wird der interne Takt von 2.76MHz genutzt.
RTS und CTS nutze ich noch nicht.
DIE RX und TX Ausgänge sind zusammengeschaltet um Material zu sparen, jedoch man sieht ob gesendet oder empfangen wird, je nachdem von welcher Seite die Zeichen kommen.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
017
Heute, 11:00 Uhr
Bert




Zitat:
Bea schrieb
DIE RX und TX Ausgänge sind zusammengeschaltet um Material zu sparen,


Das ist keine gut Idee, für den Fall, das sich ein TX-Sender nicht hochohmig schalten lässt.
Das Stichwort ist 'single wire UART' und da muß man schon etwas aufpassen.

Aber da wäre es hilfreich den Schaltplan zu haben, so wie das System wirklich aufgebaut ist. Ggf. auch noch ein Foto vom Aufbau.

Es ist (mir zumindest) auch immer noch nicht klar, ob nun 19200 bps oder 1200 bps genutzt werden sollen...
--
Viele Grüße,
Bert
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
018
Heute, 11:28 Uhr
schlaub_01



Hallo Bert,
ich denke mal Bea meint mit dem RX und TX zusammenschalten die LED. Da das Open-collector Signale sind, sollte da nichts passieren.

Viele Grüße
Sven.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
019
Heute, 19:12 Uhr
RenéB




Zitat:
Bert schrieb
Es ist (mir zumindest) auch immer noch nicht klar, ob nun 19200 bps oder 1200 bps genutzt werden sollen...



Nach 000 sind 1200 als Bittakt gewünscht.
Der Timer liefert 19200. in der SIO gibt es noch einen Teiler, der auf 1/1, 1/16, 1/32 oder 1/64 eingestellt werden kann. Es ist auf 1/16 eingestellt. Dadurch werden aus den19200 die 1200 als Bittakt.

Am FT232 sind die Ausgänge RX-Led und TX-Led verbunden und gehen auf eine LED.

Dieser Beitrag wurde am 28.10.2025 um 19:16 Uhr von RenéB editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
020
Heute, 19:37 Uhr
RenéB



Hast Du schon mal mit der zweiten SIO getestet und am MAX232 Pin 13 und 14 verbunden bzw. X102-3 und 2 ?
Kann die Routine mit sich selber sprechen?

Dieser Beitrag wurde am 28.10.2025 um 20:04 Uhr von RenéB editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
021
Heute, 19:54 Uhr
Bert



Ok, das macht es etwas klarer. Jetzt würde ich trotzdem gern noch ein Oszibild sehen, um zu beurteilen, ob das Problem am Sender oder beim Empfänger liegt...
--
Viele Grüße,
Bert
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