Difference between revisions of "Z80 STI RS232 interface"

From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search
(Created page with 'How to build a RS232 - Interface for the CPC-Series! http://www.cpcwiki.eu/index.php/File:Rs232cpc.lzh ==================================================== Okay, …')
 
(Replaced content with 'How to build a RS232 - Interface for the CPC-Series! link to file http://www.cpcwiki.eu/index.php/File:Rs232cpc.lzh ===========================================…')
Line 1: Line 1:
 
How to build a RS232 - Interface for the CPC-Series!
 
How to build a RS232 - Interface for the CPC-Series!
  [[http://www.cpcwiki.eu/index.php/File:Rs232cpc.lzh]]          ====================================================
+
  [[link to file http://www.cpcwiki.eu/index.php/File:Rs232cpc.lzh]]          ====================================================
 
+
Okay, you have received the plan, how to construct a RS232 Interface for the
+
CPC. I hope you can read the numbers in the GIF-File. This README-File includes
+
more details about the RS232-Interface, how to connect the adress-bus with
+
the Interface and RS232.ASM contains an assembler routine to use the Interface
+
under BASIC.
+
 
+
I think, the best way to build the interface is to print the GIF file and
+
connect the components with each other.
+
 
+
First about the connection plan: You need a power supply that supports +9V,
+
                                -9V and 5V. Connect all pins. You have to
+
                                connect D0..D7 from the adressbus with the
+
                                Z80 STI. You have to connect D0 with pin 21,
+
                                D1 with pin 22, ..., D7 with pin 28. That's
+
                                all. Now you can plug in the interface in the
+
                                CPC. Switch the power on. If the CPC doesn't
+
                                work normal please switch the power off and
+
                                you have to watch for faults in the connection
+
                                of your interface :-(. If everything is ok then
+
                                you have to copy the assembler code and do the
+
                                next test.
+
 
+
WARRANTY: There is no warranty of any defects of your CPC!!! On my CPC every-
+
========= thing works fine and I hope that you won't have any problems with
+
          this RS232-Interface.
+
 
+
Second part: How to program the interface. (The assembler code is saved in
+
============ RS232.ASM)
+
           
+
 
+
Z80-STI: 50 to 19200 bps (5,6,7 or 8 bit, 1, 1 1/2, 2 stopb., all parity flags)
+
        24 registers,
+
        use 16 registers (direct) with F8E0-F8EF,
+
        the last 8 registers can be used indirect with a special register
+
 
+
The meaning and the adresses of the registers:
+
 
+
register 0, port adress F8E0:
+
This register transfers data from and to a indirect register.
+
 
+
register 1, port adress F8E1:
+
This register transfer the data from and to the I/O port of the chip. If you
+
use V24 you can request handshake signals from this port. In this interface
+
the following bits have this meaning:
+
 
+
                Bit 0:    DTR (Data Terminal Ready)
+
                Bit 1:    RTS (Ready to Send)
+
                Bit 2:    CTS (Clear to Send)
+
                Bit 3:    DSR (Data Set Ready)
+
                Bit 4-7:  not used
+
 
+
register 2-7, port adress F8E2-F8E7:
+
These registers are used by the interrupt handler. If you want to know
+
what you can do with this registers please write to Mostek for support.
+
 
+
register 8, port F8E8:
+
Bit 3-7 are used by the interrupt handler. With bit 0-2 you can choose the
+
indirect register.
+
 
+
register 9, port adress F8E9:
+
Controll register for timer A and B. You needn't to use the timer for a V24
+
interface.
+
 
+
register 10, port adress F8EA:
+
Timer B value
+
 
+
register 11, port adress F8EB:
+
Timer A value
+
 
+
register 12, port adress F8EC:
+
USART-register. Change the connect-parameters.
+
 
+
Bit          7    6    5    4    3    2    1    0
+
              x    x    x    x    x    x    x    0
+
              ^    ^    ^    ^    ^    ^    ^   
+
              |    |    |    |    |    |    1=even   
+
              |    |    |    |    |    |    0=odd
+
              |    |    |    |    |    1=Parity on
+
              |    |    |    |    |    0=Parity off
+
              |    |    |              Startbit  Stopbit  Format
+
              |    |    |    0    0 =    0        0    synchron
+
              |    |    |    0    1 =    1        1    asynchron
+
              |    |    |    1    0 =    1      1 1/2  asynchron
+
              |    |    |    1    1 =    1        2    asynchron
+
              |    0    0 = 8 Bit
+
              |    0    1 = 7 Bit
+
              |    1    0 = 6 Bit
+
              |    1    1 = 5 Bit
+
              please always set on 0
+
 
+
register 13, port adress F8ED:
+
Receiver status. You need only the following bits:
+
 
+
Bit 0: Receiver-Enable, set to 1 if receiving is possible.
+
Bit 1: Memory full "1" or not "0". (If 8 Bits are received then the interface
+
      send memory full).
+
 
+
register 14, port adress F8EE:
+
Sending status. Again you need only two bits:
+
 
+
Bit 0: Sending-Enable, must set to "1" if sending is allowed.
+
Bit 7: Memory full "1" or not "0". This bit can be used to ask if a word is
+
      send or not.
+
 
+
register 15, port adress F8EF:
+
This is the send and receive register. Here you can get a word or send a word.
+
 
+
Indirect registers (Choose them with register 8):
+
=================================================
+
 
+
register 0: Not used.
+
 
+
register 1: Data for Timer D.
+
 
+
register 2: Data for Timer C.
+
 
+
register 3: Not used.
+
 
+
register 4: Not used.
+
 
+
register 5: Not used.
+
 
+
register 6: I/O-Port (receive or send). High means sending, low receiving.
+
 
+
register 7: Used for Timer C and D. Reset with "1".
+
 
+
 
+
For more exact informations please write to Mostek and ask for support for the
+
Z80-STI. You also can look at the assembler code.
+
 
+
 
+
About the assambler code:
+
=========================
+
 
+
The program RS232.ASM installs 2 new BASIC commands (|FORMAT, |RECORD, |SEND).
+
Here you can read the description about this new commands:
+
 
+
|FORMAT, number of bps, number of stop-bits, data bits, parity on/off, parity
+
        even/odd
+
 
+
Number of bps:      0 =  50 bps
+
                    1 =  75 bps
+
                    2 =  110 bps
+
                    3 =  150 bps
+
                    4 =  300 bps
+
                    5 =  600 bps
+
                    6 = 1200 bps
+
                    7 = 2400 bps
+
 
+
Number of stop bits: 1 = 1 stop bit
+
                    0 = 2 stop bit
+
 
+
Data bits:          0 = 7 data bits
+
                    1 = 8 data bits
+
 
+
Parity:              1 = even
+
                    0 = odd
+
 
+
Parity:              1 = on
+
                    0 = off
+
 
+
Normally, you use 8N1 for connection with BBS's you can initialise this with
+
|FORMAT, number of bps, 1, 1, 0, 1.
+
 
+
 
+
|RECORD, @a$
+
The incoming chars will be read in a string. Control codes will be send to the
+
string, too, because sometimes you need it for binary transmissions.
+
 
+
 
+
|SEND, @a$
+
The string is send until it ends, except you press ESC. The program will not
+
send CR or LF, so you can use this for binary transmission.
+
 
+
 
+
Last words:
+
===========
+
 
+
This interface is described in the book "Maschinenspracheprogramm und Hardware-
+
erweiterungen fuer Schneider CPC's" from the IDEA Verlag. I hope that every-
+
thing is ok with the circuit plans and that you don't have a broken CPC when
+
you use it ;-).
+
 
+
Sorry for bad english. (Please help me to find my faults).
+
 
+
If something in my circuit plan is not ok please write to
+
 
+
Tim Riemann
+
Gartenweg 3
+
35114 Haina-Kloster
+
Germany
+
eMail: TCS-Software@t-online.de
+
 
+
Third part: Used components:
+
===========
+
 
+
1 Z80-STI (or MK 3801-4)
+
1 SN 75189
+
1 SN 75188
+
1 74 LS 30
+
1 74 LS 138
+
1 74 LS 20
+
1 74 LS 04
+
1 74 LS 32
+
1 25pin SUB-D connector (male)
+
1 connector for the expansion port
+
 
+
That's all!
+
 
+
[[Link title]]
+

Revision as of 19:04, 27 April 2010

How to build a RS232 - Interface for the CPC-Series!

link to file http://www.cpcwiki.eu/index.php/File:Rs232cpc.lzh           ====================================================