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!