My board works fine with Z8S18010VSGZ, but if I replace it with another Z8S18010VSGZ, it doesn't work.

90 views
Skip to first unread message

Juha Immonen

unread,
Aug 4, 2025, 8:43:25 AM8/4/25
to RC2014-Z80
My Z8S180 board uses ASCI0 for communication with my PC. the PC has Waveshare USBtoRS232 that is connected to ASCI0 RX & TX trough a standard MAX232 IC. Everything works fine, and with WIN API I have been able to set the baud rate to 144000 bits/s (Cport doesn't have that in its Baudrate options and in Delphi 5 I can't uses custom ones directly). Now that info about the communication may not be essential here, the mystery is: Why does my board work fine with one Z8S18010VSGZ but not with another  Z8S18010VSGZ?
Might there be something with the the Z8S18010VSGZ  pins that are floating on my PCB?
Those are:
6 /BUSACK
13 ST
50 CKA0/DREQ0
51 TXA1
52 TEST
53 RXA1
54 CKA1/TEND0
57 CKS
59 /TEND1
60 /HALT
61 /RFSH
Connected to VCC are: (I have newer used pull up resistors, still all has worked fine)
5 /WAIT
7 /BUSREQ
9 /NMI
12 /INT2
34 VCC
47 /DCD0
58 /DREQ1

I have also tried to go trough all the internal register initial settings thinking that there might be some badly documented things that might cause one processor to work but not necessarily another similar.
Because there might have been static electricity causing damage to the MPU I used my oscilloscope to check that the replaced MPU is in its senses: clock, /MREQ, /WR, addresses, /IORQ etc. seems to work fine. Then In my ROM code there is a loop where the execution goes after initializations. That loop waits for PC to send something:
WAITCOMM:   TSTIO 80h ; test if a byte has arrived:
         JR Z,WAITCOMM
This loop takes about 2.2us, and I see that using oscilloscope attached to /IORQ.
Rest of my code is irrelevant here because it works! Works with one MPU at least.

Has anybody had similar problems?
Please help me!

Thanks!

Steve Cousins

unread,
Aug 4, 2025, 12:50:26 PM8/4/25
to RC2014-Z80
Hi Juha,

Try connecting DCD0 to ground instead of Vcc. Some versions of the Z180 require this in order to receive serial data.

If you purchased these components recently, was it from eBay, AliExpress, etc?
Many Z180 CPUs supplied through these channels have been relabelled and could be different versions even if the labels are the same.

I don't know what the Z8S18010VSGZ is. The Z on the end is not something I've seen before. A quick google suggests these part numbers are only found on ICs from eBay etc. I think they are an error and further indicate the ICs are of suspect quality.

Steve

Wayne Warthen

unread,
Aug 4, 2025, 1:36:56 PM8/4/25
to RC2014-Z80
I am also unaware of the "Z" chip variant.  Regardless, if they are good chips, note the following:
  • There are 2 variants of the Z8S180.  Rev. K and Rev. N.  It is not obvious which is which by looking at the chip markings.  Rev. N had a slightly improved ASCI including a BRG (baud rate generator).
  • If an ASCI port see a line error (parity, framing, etc.) it will lock, the port and no further characters can be received until you explicitly clear the error.
Thanks, Wayne

Juha Immonen

unread,
Aug 4, 2025, 3:24:31 PM8/4/25
to RC2014-Z80
 Steve, I cut the /DCD0 line to VCC and connected it to GND. Now it works to some extend: PC sends the board a "Are you there" byte and the board replies with a "I am here" byte. :-)
The reason why I had /DCD0 connected to VCC is that the board is a modification of an older Z80S180 board that didn't use ASCI, it used the ISA-bus of an older computer, and so
I totally forgot that pin.
But sending/receiving bigger chunks of bytes doesn't work. Maybe I can figure out a way to change my program to make all work, but if you have further suggestions please let me know.
Thanks Steve!
Thanks Wayne!

Reply all
Reply to author
Forward
0 new messages