RS-232 input module, with 11 inputs. Rebuild of previous RS-485 module. Uses an AVR ATtiny2313 microcontroller.

Table of contents

Details

This I/O module is connected to the computer via the serial port. If the status on any of the 11 digital inputs changes; it will send a command string containing the module number, input number and new status. This also occurs on boot.

But — the module can not receive any commands, that makes it impossible to request an input status.

This module was later rebuilt to handle more inputs: Serial port IO module with 15 inputs

Noise and rebuild

Noise on RS-485 communication
Noise on RS-485 communication

This module was originally designed for RS-485 — but, as the image shows, the signals were drowned in noise. Later I found out that the cause of the noise was a lack of stabilizing capacitors. 10 µF and 1 nF was installed directly over the AVR and the problem was solved.

It was then rebuild into RS-232, which is a bit easier to interact with then the RS-485. The source code was rewritten to suit the RS-232, but I ran out of flash memory I had to remove input 12. Leaving the module with only 11 inputs.

I/O

Inputs

  1. PB0 Input 1
  2. PB1 Input 2
  3. PB2 Input 3
  4. PB3 Input 4
  5. PB4 Input 5
  6. PB5 Input 6
  7. PB6 Input 7
  8. PB7 Input 8
  9. PD5 Input 9
  10. PD6 Input 10
  11. PA0 Input 11

Outputs

  1. PD2 Life-signal
  2. PD3 RS-485 Send enable (not in use)
  3. PD4 Link activity LED

Interface

  • PD0 RS-232 Rx
  • PD1 RS-232 Tx

Connectors

15-pin

  1. 5v
  2. 0v
  3. Input 1
  4. Input 2
  5. Input 3
  6. Input 4
  7. Input 5
  8. Input 6
  9. Input 7
  10. Input 8
  11. Input 9
  12. Input 10
  13. Input 11
  14. Life-signal

9-pin

  • 2 Transmit
  • 3 Receive
  • 5 GND

Communication

Interfacing is done with RS-232, using MAX232 or MAX202 and the SIOS protocol.

001:s:00:1:125 'boot
001:i:02:1:116 'input 2 on
001:i:01:1:115 'input 1 on
001:i:02:0:116 'input 2 off
001:i:01:0:115 'input 1 off
001:s:01:1:126 'life-signal

Serial settings

  • Baud: 9600
  • Data bits: 7
  • Parity: None
  • Stop bits: 1

Source code

Photos

Circuit board
Circuit board
Testing RS-485 with MAX485
Testing RS-485 with MAX485
Circuit board fitted in enclosure
Circuit board fitted in enclosure
Inside the module
Inside the module
Inside the module
Inside the module
Rebuilding for RS-232, testing MAX232 IC
Rebuilding for RS-232, testing MAX232 IC
Stabilizing capacitors installed
Stabilizing capacitors installed
Module complete
Module complete
Inside the module, after rebuild
Inside the module, after rebuild
Module installed in the rack box
Module installed in the rack box

Schematic drawing

Schematics for the serial interface module
Schematics for the serial interface module

Parts list

  • 1 × AVR ATtiny2313-20PU, DIL-20, 20 MHz, 18 I/Os
  • 5 × Capacitor, aluminium electrolytic, 1 µF, 50V
  • 2 × Capacitor, aluminium electrolytic, 10 µF, 25V
  • 1 × Capacitor, aluminium electrolytic, 47 µF, 25V
  • 2 × Capacitor, ceramic, 1 nF, 100V
  • 2 × Capacitor, metallized polyester foil, 10 nF, (0.01 µF)
  • 1 × D-sub soldering cups, 15 pin male
  • 1 × D-sub soldering cups, 9 pin female
  • 1 × DIL socket, 16-pin, 7.62mm
  • 1 × DIL socket, 20-pin, 7.62mm
  • 1 × Enclosure, plastic (1591 FL), 120x65x40mm, flange
  • 1 × Fuse 5x20 mm, 200 mA, fast-acting
  • 1 × Fuse holder, open, PCB, 5x20mm
  • 1 × Fuse holder, open, PCB, Protective cover
  • 1 × LED 5mm clear, Yellow, 2.0V, 20mA, 250mcd, 6°
  • 1 × LED 5mm coloured clear, Green, 2.1V, 20mA, 30mcd, 10°
  • 2 × LED holder 5mm, RTC51, black plastic
  • 2 × Mounting bracket, DIN rail, Plastic
  • 32 cm2 PCB, stripboard, 100x160mm, 160cm2
  • 13 × Resistor, carbon film, 0.25W, 330 Ω, 5%
  • 2 × Resistor, carbon film, 0.25W, 4.7 kΩ, 5%
  • 11 × Resistor, carbon film, 0.25W, 10 kΩ, 5%
  • 1 × RS232 interface, MAX232CPE, dual
  • 11 × Straight pin header, female, Single row, 2.54mm
  • 14 × Straight pin header, male, Single row, 2.54mm
  • 1 × Transistor, NPN, 100 mA, 45V, 0.5W, BC547B