Changes

Jump to: navigation, search

Z80 STI RS232 interface

7,072 bytes removed, 23:04, 27 April 2010
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]] ===========================================…'
How to build a RS232 - Interface for the CPC-Series!
[[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 theCPC. I hope you can read the numbers in the GIF-File. This README-File includesmore details about the RS232-Interface, how to connect the adress-bus withthe Interface and RS232.ASM contains an assembler routine to use the Interfaceunder BASIC. I think, the best way to build the interface is to print the GIF file andconnect 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 youuse V24 you can request handshake signals from this port. In this interfacethe 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 knowwhat 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 theindirect register. register 9, port adress F8E9:Controll register for timer A and B. You needn't to use the timer for a V24interface. 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 theZ80-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 thestring, 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 notsend 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 whenyou 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 RiemannGartenweg 335114 Haina-KlosterGermanyeMail: TCS-Software@t-online.de Third part: Used components:=========== 1 Z80-STI (or MK 3801-4)1 SN 751891 SN 751881 74 LS 301 74 LS 1381 74 LS 201 74 LS 041 74 LS 321 25pin SUB-D connector (male)1 connector for the expansion port That's all! [[Link title]]
19
edits