Useri2c v3-1
Useri2c v3-1
I2C232/I2CUSB
I2C to RS232 Adapter
&
I2C to USB Adapter
Application Documentation
Version 3.1
4/27/08
I2C232/I2CUSB Documentation
Page 1
1. INTRODUCTION....................................................................................................................................................3
1.1. TYPICAL APPLICATIONS ....................................................................................................................................3
1.2. DESIGN INTENTIONS.........................................................................................................................................3
1.3. I2C232/I2CUSB OVERVIEW...........................................................................................................................3
1.4. I2C232 INSTALLATION....................................................................................................................................4
1.5. I2CUSB INSTALLATION...................................................................................................................................4
1.6. HARDWARE OVERVIEW.....................................................................................................................................5
1.7. I2C232 BAUD RATE SETTING...........................................................................................................................6
1.8. I2CUSB BAUD RATE SETTING.........................................................................................................................6
2. COMMANDS............................................................................................................................................................7
2.1. S - START COMMAND......................................................................................................................................7
2.2. T - STOP COMMAND........................................................................................................................................7
2.3. V - DISPLAY VERSION.....................................................................................................................................7
2.4. P - DISPLAY PARAMETERS ................................................................................................................................7
2.5. M - DISPLAY MODE COMMAND.........................................................................................................................7
2.6. D - SET DESTINATION ADDRESS .......................................................................................................................8
2.7. A - WRITE I2C BYTES ...................................................................................................................................8
2.8. B - READ 1 BYTE WITH ACKNOWLEDGE.....................................................................................................8
2.9. C - READ 1 BYTE WITH NO ACKNOWLEDGE..............................................................................................9
2.10. W - WRITE MESSAGE....................................................................................................................................9
2.11. R - READ MESSAGE......................................................................................................................................9
3. EXAMPLE..............................................................................................................................................................10
4. REVISION HISTORY...........................................................................................................................................11
I2C232/I2CUSB Documentation
Page 2
1.
Introduction
This document covers both the I2C232 and the I2CUSB. This devices used identical microcontrollers and
embedded software and only differ in the interface to the PC.
The I2C232 adapter connects a PC to the I2C bus using the RS232 port.
The I2CUSB adapter connects a PC to the I2C bus using the USB port.
The command set is in ASCII allowing a simple terminal emulation program such as Terminal.exe or
Hyperterminal.exe to be used to talk to the I2C buss.
The I2CUSB uses a driver to make it look like a typical RS232 device.
1.1.
Typical Applications
1.2.
Design Intentions
The I2C232/I2CUSB is intended to be a low-cost alternative to the PCMCIA, PC Bus Cards, and serial interface
cards used to connect a PC to the I2C bus. In order to keep the cost low while maintaining a high degree of
functionality, the I2C232 relies on a MicroChip PIC16F876 to provide the interface between the serial channel
(RS232) and the I2C bus. PC software enhances the package.
1.3.
I2C232/I2CUSB Overview
The following block diagram shows the hardware and software model.
Personal Computer
User Application
Serial Port
I2C232
I2CUSB
PIC16F876
Reg
V+
Gnd
SDA
SCL
I2C232/I2CUSB Documentation
Page 3
1.4.
I2C232 Installation
The I2C232 interfaces to the serial port of the PC. The following external connections are required;
1.
2.
3.
4.
5.
6.
Connect the I2C bus to clock and data terminals on the green terminal block.
Connect a DC voltage (6 to 24 volts) to V+ and GND on the green terminal block.
Verify polarity is correct (I2C232 is protected for reverse polarity and overvoltage).
Connect the I2C232 to the serial port on the PC.
Turn on power.
Test the installation by running any terminal program on the PC. Set communications parameters to
9600 baud, no parity, 8 bits, and 1 stop bit. Enter a V to display the version.
I2C232 V1.0
Embedded Micro
Software
1.5.
CLK
DTA
GND
V+
I2CUSB Installation
The I2CUSB interfaces to the USB port of the PC and requires a driver to be installed. Refer to
www.emicros.com/i2cusb.htm for complete installation.
1.
2.
3.
Connect the I2C bus to clock and data terminals on the green terminal block.
Connect the I2CUSB to an available USB port on the PC.
Test the installation by running any terminal program on the PC. Set communications parameters to 9600
baud, no parity, 8 bits, and 1 stop bit. Enter a V to display the version.
FLASH
I2CUSB
Embedded Micro
Software
www.emicros.com
I2C232/I2CUSB Documentation
Page 4
DTA
CLK
V+
GND
1.6.
Hardware Overview
J2
5
4
3
2
1
vcc
VCC
R1
11
12
13
14
15
16
17
18
RC0
RC1
RC2
RC3/SCK
RC4/SDI
RC5/SDO
RC6/TX
RC7/RX
9
10
RA0
OSC1
RA1
OSC2
RA2
RA3
Vdd
RA4/T0CKI
RA5/*SS
Vss
MCLR/Vpp
Vss
20
C5
+
33uF
C1
+
10uF
C2
+
10uF
VCC
19
8
Y1
1
3
4
5
11
9
10
12
C7
.01uf
C1+
VCC
RB0
RB1
RB2
RB3
RB4
RB5
RB6
RB7
4.7k 1
7805
U1
2
3
4
5
6
7
U3
VCC
C6
10uF
16
21
22
23
24
25
26
27
28
D1
R3
100k
Vout
R2
100k
Vin
GND
C1C2+
V+
V-
GND
C2T1IN T1OUT
R2OUT R2IN
T2IN T2OUT
R1OUT R1IN
U2
MAX232
2
6
15
14
8
7
13
C3
10uF
C4
10uF
J1
3
2
7
DB25
PIC16F876
J2
VCC
4
3
2
1
vcc
R2
100k
JP0
21
22
JP1 23
24
25
26
27
28
VCC
R1
2
3
4
5
6
7
4.7k 1
U1
RB0
RB1
RB2
RB3
RB4
RB5
RB6
RB7
R3
100k
RC0
RC1
RC2
RC3/SCK
RC4/SDI
RC5/SDO
RC6/TX
RC7/RX
RA0
OSC1
RA1
OSC2
RA2
RA3
Vdd
RA4/T0CKI
RA5/*SS
Vss
MCLR/Vpp
Vss
11
12
13
14
15
16
17
18
9
10
20
19
8
C6
10uF
C3
10uF
VCC
USB
VCC
Y1
C7
.01uf
PIC16F876
I2C232/I2CUSB Documentation
Page 5
1.7.
The I2C232 can be configured to operate at 4 different baud rates. The 2 jumpers are
located next to pin 1 on the PIC microcontroller. The default setting is 9600 baud, 8 data
bit, no parity, and 1 stop bit.
9600 Baud
1.8.
19200 Baud
57600 Baud
115200 Baud
The I2CUSB can be configured to operate at 4 different baud rates. The 2 jumpers are
located next to pins 13 and 14 on the PIC microcontroller. The default setting is 9600 baud,
8 data bit, no parity, and 1 stop bit.
R2
JP0
R3
JP1
crystal
pin 1
PIC16F876
JP0
out
in
out
in
JP1
out
out
in
in
Baud Rate
9600
19.2k
57.6k
115.2k
I2C232/I2CUSB Documentation
Page 6
2.
Commands
The commands are shown in this section. Note that these ASCII commands are the same for
both the I2C232 and the I2CUSB adapters.
Note: When entering hexidecimal value, use the standard C notation 0x00 to 0xFF. Values
from 0x00 to 0x0F must have 2 places, i.e. 0x0 to 0xF will result in unknown values.
Values shown as {,xx} are optional and can be repeated.
2.1.
S - Start Command
The Start Command, S, causes a start condition to occur on the I2C bus.
Command:
Response:
2.2.
S
!
T - Stop Command
The Stop Command, T, causes a stop condition to occur on the I2C bus.
Command:
Response:
2.3.
T
!
V - Display Version
The Display Version Command, V, displays the software version (x.y is replaced by current
version).
Command:
Response:
2.4.
V
' no carriage return required
I2C232 Version x.y: EMICROS[cr]
P - Display Parameters
The Display Parameter Command, P, displays the software version, display mode, and slave
address.
Command:
Response:
2.5.
P
' no carriage return required
I2C232 Version 2.0: EMICROS[cr]
Display Mode = {Hex | Decimal}[cr]
Slave Address = 0 (00 hex)[cr]
The Display Mode Command, M, selects the display mode of displayed values.
I2C232/I2CUSB Documentation
Page 7
Command:
Response:
Command:
Response:
2.6.
The Set Destination Address command sets the slave address sent at the start of the W
(write) and R (read) commands. The slave address can be displayed by entering this
command without any parameters. The slave address value will be displayed in the
currently selected mode, hex or decimal.
Command:
Response:
Dxx[cr]
Dxx[cr]
Command:
Response:
D[cr]
Dxx[cr]
Note: The destination address is the 1st 7 bits following the Start sequence and the 8th bit is
the R/W bit. Enter the address as the lower 7 bits, 0xxxxxxx. When the destination address
is used in the Write or Read command, the address is shifted left 1 bit and the R/W bit is set
according to the command entered (R or W).
2.7.
The Write I2C Bytes command writes from 1 to 64 bytes to the I2C bus. The Start and Stop
conditions are not executed in this command.
Command:
Response:
Example: This example shows the sequence to program 3 bytes of a 24C65 Serial EEPROM.
S
A0xa0,0,0[cr]
A1,2,3[cr]
T
2.8.
'
'
'
'
The Read 1 Byte command reads 1 byte from the I2C bus and displays the results. The
Start and Stop conditions are not used and the ACK pulse is generated at the end of the
byte read.
Command:
Response:
B
xx[cr]
Example: This example shows the sequence to read 3 bytes from a 24C65 Serial EEPROM.
S
I2C232/I2CUSB Documentation
Page 8
2.9.
'
'
'
'
'
'
'
'
Write address 0x50 (shifted by 1 and R/*W cleared), set 24C65 address to 0
execute another Start command
Write address 0x50 (shifted by 1 and R/*W set), read 24C65
Read 1 byte, address 0 from 24C65 with ACK
Read 1 byte, address 1 from 24C65 with ACK
Read 1 byte, address 2 from 24C65 with ACK
Read 1 byte, address 2 from 24C65 with NO ACK (see section 2.9)
execute Stop Command
The Read 1 Byte command with NO ACK reads 1 byte from the I2C bus and displays the
results. The Start and Stop conditions are not used and the ACK pulse is NOT generated at
the end of the byte read.
Command:
Response:
C
xx[cr]
Example: This example writes the values 1,2,3,4 to the current slave destination.
W0,0,1,2,3,4,5,6,7,8[cr]
' command to I2C232
0x00,0x00,0x01,0x02,0x03,0x04,0x05,0x05,0x06,0x07,0x08[cr]
' response from
I2C232
Example: This example reads 2 values from the current slave destination.
R2[cr]
0xFF,0xFF[cr]
I2C232/I2CUSB Documentation
Page 9
3.
Example
The following schematic shows the I2C232 connected to a 24C65 Smart Serial EEPROM
from Microchip. The 24C65 is an I2C device and contains 8k x 8 bytes of Electrically
Erasable PROM (EEPROM). Note that external pullup resistors may be required.
VCC
A0
A1
A2
Vss
C1
VCC
nc
SCL
SDA
8
7
6
5
GND
Vout
Vin
U1
1
2
3
4
+12V
U2
7805
3
.01uF
I2C232
1
2
3
4
4 HEADER
24C65
The slave address for the 24C65 is set according to A0, A1, and A2. The example has the 3
address lines grounded resulting in an address of 0x50. To write the 1st 8 bytes of EEPROM,
the following commands is issued;
D0x50
W0,0,1,2,3,4,5,6,7,8[cr]
then
The 24C65 will program the bytes when the stop condition is executed, done automatically
by the Write command.
To read back the bytes, the following sequence is executed;
S
'
A0xA0,0,0[cr] '
S
'
A0xA1[cr]
'
B
'
B
'
B
'
B
'
B
'
B
'
B
'
C
'
T
'
execute start
Sets the starting address to 0, slave address 0x50 shifted by 1
execute start again
Read bit set
Read 1 byte, I2C232 returns value
2nd data byte
3rd data byte
4th data byte
5th data byte
6th data byte
7th data byte
8th data byte, NOACK
Stop condition
I2C232/I2CUSB Documentation
Page 10
4.
Revision History
2/5/00 Added baud rate selection capability. Compiled to new version of compiler.
4/27/08 Added I2CUSB
I2C232/I2CUSB Documentation
Page 11