Rev 1; 7/04 Serial Communications Module For Evaluation Kits The DS3900 provides bidirectional communication with 2-wire and 3-wire devices using a PC’s serial port. In addition, it can also be used as a general-purpose digital I/O interface with 11 I/O signals that can evaluate a wide variety of ICs. The DS3900 is intended for evaluation purposes only. Features ♦ Communicates from PCs to ICs Through a Serial Port ♦ Fast Communication to 2-Wire Devices ♦ Eleven General-Purpose Digital I/O Pins, Including SDA and SCL ♦ Built-in Pullup Resistors for SDA and SCL Minimize Required External Hardware Applications Prototyping 2-Wire and 3-Wire Device Designs Evaluating 2-Wire and 3-Wire Devices ♦ Connection to Standard Prototyping Boards Possible Using Header Connectors ♦ Operates from 3.0V to 5.5V Building Test Software for Systems Containing 2-Wire or 3-Wire Devices Communicating With ICs that Require up to 11 I/O Signals Ordering Information PART DESCRIPTION DS3900EVKIT DS3900 Module DS3900 Photo Pin Configuration P1 P2 DS3900 R1.0 P11 / SDA P10 / SCL C4 U1 P3 GND (N.C.) RESET X1 VCC C6 GND P9 P4 P8 P5 C1 P7 C5 GND P6 JP1 SCL R2 SDA R3 JP2 Typical Operating Circuit appears at end of data sheet. ______________________________________________ Maxim Integrated Products For pricing, delivery, and ordering information, please contact Maxim/Dallas Direct! at 1-888-629-4642, or visit Maxim’s website at www.maxim-ic.com. 1 DS3900 General Description DS3900 Serial Communications Module For Evaluation Kits RECOMMENDED OPERATING CHARACTERISTICS (VCC = 3.0V to 5.5V, TA = +25°C.) PARAMETER SYMBOL CONDITION MIN Supply Voltage VCC (Note 1) +3.0 Input Logic 0 VIL (Note 2) 0 Input Logic 1 VIH (Note 2) 0.8 x VCC Supply Current ICC VCC = 5V TYP RS232 Baud Rate MAX UNITS +5.5 V 0.15 x VCC V VCC V 5.0 mA 57600 bps Note 1: All voltages listed are with respect to ground. Note 2: Devices are only functionally tested; all of the DC parametric values listed are designed parameters. Pin Description PIN P1, P2, P4 TO P9 P3/PULSE Pulse or general-purpose bit I/O with open-drain I/O pin (input, open-drain output driver) P10 SCL (open-drain output when used as SCL) or general-purpose bit I/O with tristate I/O pin (input, totem-pole output driver) P11 SDA (open-drain output or input when used as SDA) or general-purpose bit I/O with tristate I/O pin (input, totem-pole output driver) RESET (N.C.) 2 FUNCTION General-purpose bit I/O with tristate I/O pin (input, totem-pole output driver) Do not connect (reset for microprocessor). This pin is controlled by application software through the serial port’s DTR signal. GND Ground Terminals. All three ground terminals must be connected to ground for operation. VCC Power Supply Terminal _____________________________________________________________________ Serial Communications Module For Evaluation Kits DS3900 VCC DS3900 SERIAL COMMUNICATION MODULE VCC 2.2kΩ N.C. 4.7kΩ 4.7kΩ 330Ω SWITCH MICROPROCESSOR DB9 MAX3223 TRANSCEIVER PC DTR TX RX N.C. LED PULSE PULSE (P3) R2IN R2OUT RESET SDA (P11) R1IN R1OUT SERIAL COMM SCL (P10) T1OUT T1IN T1OUT T2IN P1, P2, P4–P9 2-WIRE INTERFACE 8 8 GENERAL-PURPOSE DIGITAL I/O SIGNALS Figure 1. Functional Diagram Detailed Description The DS3900 communicates with ICs using a PC’s serial port. It utilizes a MAX3223 RS232 transceiver to translate the serial port signal levels from ±12V to acceptable levels for a microprocessor. The microprocessor is then able to communicate to the PC by using its universal asynchronous receiver transmitter. In addition to the serial communication channel that is routed through the MAX3223, the data terminal ready (DTR) signal is routed through the secondary channel to produce a control signal that can reset the DS3900 from software. The software-reset function primarily allows the PC to search its available serial ports to find the DS3900. After a reset occurs, the DS3900 writes a banner over the serial port that allows the PC to detect its presence. Once it has been detected, the PC sends simple 2-byte commands over the serial connection, which provides instruction and data for the DS3900 to communicate with 2-wire parts, or to read or write a specific pin of the DS3900. All of the pins, with the exception of P3, have tristate drivers. P3 has an open-drain output, and can be read as an input pin as well; however, its default function is a system pulse that provides a visual indication (through an LED) that the DS3900 is operating properly. The P3 pin defaults to a slow-pulsing output, but this can be disabled, enabling P3 as an I/O pin, or it can be adjusted to a faster pulse rate as an indicator for the application. Because it is rated to work with supply voltages ranging from +3.0V to +5.5V, the DS3900 operates from the same voltage supply as the IC that it is controlling in most cases. Resetting the DS3900 The DTR signal of the serial port (pin 4 of a DB9 connector) is routed through the second channel of the MAX3223 transceiver. DTR controls an NMOS, which is connected to the reset signal of the microprocessor. This allows the PC to hold the DS3900 in reset until it is ready for operation, or to reset the DS3900 in the event an error occurs. Although the reset signal is accessible through the DS3900’s connector, it should be left disconnected so it can be controlled through software. When DTR transitions to ON, the DS3900 exits its reset state and executes its initialization code. The initialization routine writes a banner (see DS3900 Revisions section), “DSIO r2.0” over the serial connection to the PC, which can be used by the PC to identify that the DS3900 is present. After it has left the reset state, all of the DS3900 signals, except P3, are configured as inputs (the output drivers are disabled). P3 appears as an output and begins to pulse slowly. If the switches enable SDA’s and SCL’s pullups, those signals float high, and all the other pins float to an undetermined state if they are not being driven by external signals. Designing Hardware to Utilize the Built-in Support for 2-Wire Devices The DS3900 has custom firmware that enables fast communication to 2-wire devices. To utilize this firmware, connect the SCL bus to P10 and the SDA bus to P11. Additionally, it has built-in pullup resistors that can be utilized by turning both switches on (see Using _____________________________________________________________________ 3 DS3900 Serial Communications Module For Evaluation Kits Integral Pullups section). This connects 4.7kΩ resistors to both 2-wire buses. 3) For designs that only use the DS3900 to communicate to 2-wire devices, the following items must be accounted for in the hardware design: 1) 2) 3) 4) 5) 6) Place the mating connectors on the circuit board (see Figure 5). Connect VCC and all three ground terminals. Connect the SCL bus to pin P10, and the SDA bus to P11 of the DS3900. If the application board does not have pullup resistors, turn the switches on to enable the onboard pullups; otherwise, turn the switches off to disconnect the integrated pullups. Optional: connect an LED to P3 for the pulse function (see Typical Operating Circuit). Drive the DS3900 with either evaluation software provided by Dallas Semiconductor or custom-designed software for the end application (see Writing Software to Interface with the DS3900 section). Designing Hardware to Utilize the GeneralPurpose Bit I/O Signals Utilizing the DS3900 for general-purpose bit I/O is equally simple as using it for 2-wire applications. All of the I/O pins with the exception of P3 have tristate outputs. These signals can be written to a ‘0’ or a ‘1’, and they can be read as inputs. P3 has an open-drain output, and can also be read as input. Because it defaults to a pulsing output, P3 is generally connected to an LED as shown in the Typical Operating Circuit. Writing it to a ‘1’ turns off the pulldown transistor, which turns the LED off, and writing it to a ‘0’ turns the pulldown and the LED on. This can also be used as an open-collector I/O pin with an external pullup resistor and no LED, making the pin appear as a normal output. The pulse function can be disabled in software, but designs using P3 for I/O should be conscious that the DS3900 could attempt to blink P3 before the pulse function is disabled. As long as the IC connected to P3 is tolerant of this behavior, P3 can be used as an additional I/O. Additionally, designs using P10 and P11 should be conscious of the built-in pullup resistors that are intended for use with 2-wire devices (see Using Integral Pullups section for details). The general procedure for connecting the DS3900 for bit I/O applications is as follows: 1) Place the mating connectors on the circuit board (see Recommended PC Board Connection). 4) 5) Connect P1 through P11 to the application. If the application is using 2-wire devices in addition to the remaining bit I/O signals, make sure to reserve P10 and P11 for the 2-wire application. Use P3 only if the application is able to tolerate the pulse function until it is disabled. Optional: connect an LED to P3 for the pulse function (see Typical Operating Circuit). Write software to allow the DS3900 to communicate with the target IC. Writing Software to Interface with the DS3900 The DS3900 interprets 2-byte instructions (see Table 1) sent from a PC to determine what to do. After a valid command is received, it will begin to execute the command. Upon completion, it will return any data associated with the command, plus a unique acknowledgement byte that informs the PC that the command completed successfully. If an invalid command was received or the command did not complete successfully, the DS3900 will return error code (0xFA). Because the DS3900 could return 0xFA as data, it is important that the PC software is aware of the amount of data that it should expect to be returned. For example, if a 2-wire read operation is performed and a signal byte, 0xFA, is returned, then the PC is receiving an error code because the 2-wire read command should return first the data, then the acknowledgement. If the data was 0xFA, the DS3900 would return 0xFA followed by the command acknowledgment 0xB2. DS3900 Revisions Revisions yielding significant changes and/or improvements can be tracked by reading the banner after a reset or by calling the Read Revisions command (0xC2). The Read Revisions command (added in Rev. 2.0) will return three bytes: the major revision, the minor revision, and a command acknowledgement (0xD2). For example, if the DS3900's revision is 2.0, it will return a major revision of 2, a minor revision of 0, and the command acknowledgement 0xD2. Knowing the revision allows the software to both utilize new functions that are not available in previous versions of the DS3900's firmware and to avoid using commands that are not present in prior versions. Although there are no plans to change the firmware at this time, Dallas Semiconductor reserves the right to change the firmware at any time without notice. 2) Connect VCC and all three GND ground terminals. 4 _____________________________________________________________________ Serial Communications Module For Evaluation Kits DS3900 Table 1. DS3900 Command Protocol COMMAND 1ST BYTE SENT 2ND BYTE SENT RETURNED BYTE(S) 0x8% % = number of bytes to write -1 Memory address followed by %+1 data bytes 0x8% Command Successful 0xFA Command Failed 0x9% % = number of bytes to read -1 Memory Address (%+1) Data bytes followed by 0x9% Command Successful 0xFA Command Failed 2-Wire Start* (and Repeated Start) 0xA0 0x00, Ignored 0xB0 Command Successful 0xFA Command Failed 2-Wire Write Byte* 0xA1 Data 0x00-0xFF Valid 0xB1 Command Successful 0xFA Command Failed Packet Write* Packet Read* 2-Wire Read Byte* 0xA2 Acknowledge 0x01 ACK 0x00 NACK 1st Returned Byte Data 2nd Returned Byte 0xB2 Command Successful 0xFA Command Failed 2-Wire Stop* 0xA3 0x00, Ignored 0xB3 Command Successful 0xFA Command Failed Toggle SCL 9 Times 0xA4 0x00, Ignored 0xB4 Command Successful 0xFA Command Failed Set Packet Device Address* 0xA5 Device Address 0x00-0xFE Even Values Only 0xB5 Command Successful 0xFA Command Failed Pulse Enable/Disable (Available after Rev 1.1) 0xC0 0x00 Disable 0x01 Enable 0xD0 Command Successful 0xFA Command Failed Pulse Fast/Slow (Available after Rev 1.1) 0xC1 0x00 Pulse Slow 0x01 Pulse Fast 0xD1 Command Successful 0xFA Command Failed Read Revision (Available after Rev 2.0) 0xC2 0x00, Ignored 1st Returned Byte Major Revision 2nd Returned Byte Minor Revision 3rd Returned Byte 0xD2 Command Successful 0xFA Command Failed Bit I/O Read** 0xE# # determines pin to read. (See Table 2) 0x00, Ignored 0x00 Pin P# Low 0x01 Pin P# High 0xFA Command Failed Bit I/O Write** 0xF#, # determines pin to write. (See Table 2) Write Pin P# 0x00 Low 0x01 High 0xF0 Command Successful 0xFA Command Failed *See Using the DS3900 with 2-Wire Devices section. **See Using the DS3900's General-Purpose Bit I/O Signals section. _____________________________________________________________________ 5 DS3900 Serial Communications Module For Evaluation Kits Table 2. Bit I/O Addresses Table 3. DS3900 Revisions BIT I/O PIN ADDRESS # DS3900 PIN 1 P1 2 P2 3 P3 4 P4 5 P5 6 P6 7 P7 8 P8 9 P9 A P10 B P11 Using the DS3900 with 2-Wire Devices There are two modes that can be used to communicate with 2-wire devices. There is an individual command mode that allows the PC to control exactly what is written over the 2-wire bus, and a packet-based mode that automatically sends the start, device address, data address, and the stop commands. When using the individual command mode, the PC sends out individual commands to issue 2-wire start conditions, stop conditions, write data, and read data with or without acknowledgement. After each command is sent, the DS3900 executes the command and returns the individual 2-wire command's acknowledgement code. If an error occurs, the DS3900 will return 0xFA. For a complete listing of commands see Table 1. To help with using the individual commands, two examples showing writing to and reading from a DS1803 are shown in Tables 4 and 5. The assumption made for addressing the DS1803 is that all three addressing pins (A0, A1, and A2) are grounded. Packet mode was added in revision 2.0 of the firmware, and it is supported by 3 new commands: Set Packet Device Address (0xA5); Packet Write (0x8%); and Packet Read (0x9%). The Set Packet Device Address command is used to set the 2-wire device address used by the Packet Read and Packet Write commands. The Set Packet Device Address command should be called before any packet reads or writes to ensure that communications are initiated at the intended device address. Once the packet device address is set, it will remain set until it is changed again by calling the Set Packet Device Address function, or the power is cycled. Upon initial power-up, this value is indeterminate, so it should be reset to the desired value when there is any doubt 6 REVISION DS3900 BANNER DESCRIPTION DSIO r1.0 Original Issue. P3 is not utilized for the pulse function, it is opencollector I/O only. 1.1 DSIO r1.1 The pulse functions were added, changing P3’s primary function. Commands 0xC0 and 0xC1 were added. 2.0 DSIO r2.0 Major rev = 2 Minor rev = 0 Packet read and write, packet address, and read revision commands added. 1.0 about its current state. If the value is successfully changed, the DS3900 will return an acknowledgement of 0xB5, and if an error occurs, 0xFA will be returned. Note: The value sent to the DS3900 with the Set Packet Device Address command should always be an even value (e.g. 0xA0, 0xA2). The DS3900 automatically controls the read/write bit of the device address during packet read and write operations. Failure to send even values will result in communication problems. The Packet Write command allows up to 16 data bytes to be sent from the PC to a 2-wire device with a single command. The data will be written to the device address set using the Set Packet Device Address command. To initiate a Packet Write command, the first byte sent to the DS3900 is 0x8%, where % is one less than the number of bytes to be written (e.g. 0x80 hex writes one byte). The second byte sent to the DS3900 is the starting memory address to write the data, which is followed immediately by %+1 data bytes. Once the DS3900 has received the entire packet of data, it will begin sending it to the 2-wire device. The Packet Write command monitors the 2-wire communication to ensure that the 2-wire device is acknowledging every byte of the data transmission. If every byte of the Packet Write is acknowledged, the DS3900 sends 0x8% back to the PC. If all bytes are not acknowledged, the DS3900 returns 0xFA. Because the Packet Write forces the following order of events during the 2-wire communication to be: start condition, write the device address, write the memory address, write the data[1...16], stop condition, it may not work with all devices. Use the individual 2-wire commands if the packet write is not compatible with a particular 2-wire device. _____________________________________________________________________ Serial Communications Module For Evaluation Kits DS3900 Table 4. Example of Writing to a DS1803 SEQ # SEND START COMMAND, WRITE 0x23 TO POT 0, AND 0X34 TO POT 1, SEND STOP COMMAND 1ST BYTE SENT 2ND BYTE SENT 1ST BYTE RETURNED 2ND BYTE RETURNED 1 0xA0 0x00 Place holder 0xB0 Command ack None 2-wire start 2 0xA1 0x50 Data 0xB1 Command ack None Send 0x50 over 2-wire bus (send write DS1803 addr) 3 0xA1 0xA9 Data 0xB1 Command ack None Send 0xA9 over 2-wire bus (write pot 0 command) 4 0xA1 0x23 Data 0xB1 Command ack None Send 0x23 over 2-wire bus (write 0x23 to pot 0) 5 0xA1 0x34 Data 0xB1 Command ack None Send 0x34 over 2-wire bus (write 0x23 to pot 1) 6 0xA3 0x00 Place holder 0xB3 Command ack None 2-wire stop Example: Sending the byte sequence {0x82, 0x20, 0x45, 0x67, 0x89} to DS3900 causes it to: 1. Send a 2-wire Start condition. 2. Write the device address R/W =0 (previously set using Set Packet Device Address). 3. Write the memory address (0x20). 4. 5. 6. 7. Write data 0x45 (to address 0x20). Write data 0x67 (to address 0x21). Write data 0x89 (to address 0x22). Send a 2-wire Stop condition. 8. If the 2-wire device acknowledges all bytes of the data transmission, the DS3900 will return (0x82); otherwise it will return an error code (0xFA). The Packet Read command allows up to 16 data bytes to be read with a single 2-byte instruction. The read operation will be sent to the device operating at the device address set using the Set Packet Device Address command. The first byte sent for a Packet Read command is 0x9%, where % is one less than the number of bytes to read (e.g. 0x95 reads 6 bytes). The second byte sent determines the memory address to begin reading from within the device that is being addressed. After the second byte is received, the DS3900 will begin a dummy write cycle that will address the part as if writing, and write out the device DESCRIPTION address followed by the memory address. Then a restart condition is generated, and the device's read address is sent to start the read operation. The DS3900 will begin reading the data from the 2-wire part and sending it back to the PC. The DS3900 will acknowledge all but the last data byte sent from the 2-wire part. The last byte is Not Acknowledged, which is a standard 2-wire practice. Once it has read %+1 data bytes and sent them to the PC, the DS3900 will send 0x9% if the read occurred without error, or 0xFA if a problem did occur. Example: Sending the byte sequence {0x91, 0x20} to the DS3900 will cause it to: 1. Send a 2-wire Start command. 2. Write the device address R/W =0 (set previously using Set Packet Device Address). 3. Write the memory address 0x20. 4. Send a 2-wire Start command (repeated-start). 5. Write the device address R/W =1 (set previously using Set Packet Device Address). 6. Read the data (at address 0x20), send 2-wire Acknowledge on 9th clock cycle, and send the data read back to the PC. 7. Read the data (at address 0x21), send 2-wire Not Acknowledge on 9th clock cycle, and send the data read back to the PC. _____________________________________________________________________ 7 DS3900 Serial Communications Module For Evaluation Kits Table 5. Example of Reading from a DS1803 SEQ # SEND START COMMAND, READ 0x23 FROM POT 0 AND 0x34 FROM POT 1, SEND STOP COMMAND 1ST BYTE SENT 2ND BYTE SENT 1ST BYTE RETURNED 2ND BYTE 1 0xA0 0x00 Place holder 0xB0 Command ack None 2-wire start 2 0xA1 0x51 Data 0xB1 Command ack None Send 0x51 over 2-wire bus (send read DS1803 addr) 3 0xA2 0x01 Read with ack 0x23 Data Read with nack 1st return byte 0x34 (data from pot 1) 2nd return byte 0xB2 (command ack) 0xA2 0x00 Read with nack 0x34 Data 0xB2 Command ack 5 0xA3 0x00 Place holder 0xB3 Command ack None Send a 2-wire Stop command. If the transmission occurred without errors detected, return the command acknowledgement (0x91), else return the error code (0xFA). Because the Packet Read command assumes that the memory address should be sent out with a dummy write cycle before a restart with the read device address, it may not work with some devices. In cases where it is not appropriated, use the individual 2-wire commands. Resetting the 2-Wire Bus The only 2-wire command that is in Table 1 and not listed in either example of the 2-wire section is toggle SCL nine times. This is used to reset the 2-wire bus in the event that there is a communications breakdown while the slave is holding SDA low. When a slave holds SDA low, a stop command cannot be issued since it requires SDA to transition from lowto-high while the clock is high. For the transition from low-to-high to happen, both the slave and the master have to release their SDA pulldown transistors. To reset the bus, send out the command to toggle SCL nine times followed by a stop command. This clocks the 2wire bus nine times, so if a read operation was disturbed, the slave is clocked until it is expecting acknowledgement from the master. At the time it is 8 0xB2 Command ack Read with nack 1st return byte 0x23 (data from pot 0) 2nd return byte 0xB2 (command ack) 4 8. 9. DESCRIPTION 2-wire stop expecting acknowledgement, it releases the bus, and is clocked at least once more, providing a NAck condition. Once the nine clock cycles are sent, the slave should no longer be controlling SDA signal. This allows the DS3900 to issue a stop command. When the stop command occurs, all slaves on the 2-wire bus should respond to their addresses. The Pulse Commands The pulse commands enable or disable the pulse function, and set the pulse rate to either fast (7.37Hz) or slow (0.92Hz). If P3 was last used as an input, P3 must be written to either a 1 or a 0 to make it appear as an output for the pin to toggle. If left as an input, the register controlling P3 will toggle, but the pin will not because the driver is not enabled. On power-up P3 is set to an output, and the pulse will begin at the slow rate. Using the DS3900’s General-Purpose Bit I/O Signals Reading and writing individual DS3900 pins is done by using the bit I/O commands 0xE# and 0xF# respectively, where # (Table 2) represents an individual pin on the DS3900. For example, the command 0xE2, places the P2 output driver in a high-impedance state and reads the pin as an input. Writing to a pin sets it to the desired state and leaves it there until it is written to the opposite state or a read command issued. When a read is performed, the driver _____________________________________________________________________ Serial Communications Module For Evaluation Kits Application Information Decoupling the DS3900’s VCC Supply The DS3900 has decoupling on its PC board, but due to the high periodic current draw of the RS232 transceiver. It is recommended to place a decoupling capacitor (47µF, Tantalum capacitor) next to the connector on the board that the DS3900 will be mounted. Using the Integral Pullups Moving the switches to the on (labeled “ON” on the switch) position enables the integral pullups. This connects 4.7kΩ pullup resistors to the SDA and SCL buses, and it eliminates the need to place external pullup resistors on the application board for 2-wire communication. In the event that the application board already has pullups present, disconnect the integral pullups by placing the switches in the off position. This eliminates the extra (unnecessary) pullup strength, because having both the integral pullup and the application board’s pullup on at the same time could potentially cause problems for either the DS3900 or the 2-wire slaves, which are required to pull the buses low. Additionally, when P10 and P11 are used as bit I/O pins, it can be advantageous to disconnect the pullups to reduce the through current when either signal is driven low. For bit I/O operations, writing the signal to a ‘1’ enables a PMOS driver that drives the signal high. However, it is also possible to use P10 and P11 as open-collector I/O pins by enabling the pullups and performing only read and write ‘0’ operations. As long as a ‘1’ is never written to P10 or P11 it appears as an open-collector output. This is how the firmware manufactures the open-collector output for the 2-wire interface. Intended Use The DS3900 module and the bundled software are intended only to be used to evaluate Maxim and Dallas Semiconductor’s integrated circuits. The software is provided “as is”, without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall Dallas Semiconductor be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of, or in connection with the software or the use or other dealings in the software. _____________________________________________________________________ 9 DS3900 is tristated and the input is read. The pin remains in a high-impedance state until a write operation is performed. As mentioned before, all I/O pins, except P3, are inputs on power-up. Note: If an I/O pin is being used for both reads and writes, take care to avoid bus contention. Since software can only change a single pin at a time, the DS3900 is much slower when communicating using the bit I/O commands. For some applications, this is acceptable since the 57600 baud communications along with the streamline 2-byte command system allow pins to be changed hundreds of times a second. If the design requires higher performance than 100s of pin changes per second the DS3900 may not be a good choice for that general-purpose bit I/O application. DS3900 Serial Communications Module For Evaluation Kits Troubleshooting SYMPTOM CAUSES SOLUTION(S) Power might not be applied to the DS3900, DTR might not be in the correct state for the DS3900 to operate, the LED might be connected improperly, or P3 might have been used previously by the software as an input. Ensure that power is applied to the circuit and that DTR is on. Verify that LED is connected properly. If none of the above works, cycle power or issue a bit I/O write to P3 to ensure that P3 is enabled as an output. The serial cable is not connected, the DS3900 is not firmly seated on the application board, power is not applied to DS3900, or another piece of software is controlling the serial port. Make sure the serial cable is connected from the PC to the DS3900’s DB9 connector. If multiple serial ports are present on the back of the PC, ensure the proper port has been connected. Ensure the DS3900 is well seated on the application board and that power has been applied. Check for other software that may be controlling the serial port. 2-wire communication errors or general communication errors Either the PC cannot communicate with the DS3900, or the DS3900 cannot communicate with the 2-wire device. Verify the DS3900 is not held in reset by the DTR signal. Verify the pullups for SDA and SCL are on if the application board does not have pullups. Verify the 2-wire device is being addressed correctly by the software. Verify power is applied to the both the DS3900 and the 2-wire device. Verify the serial cable is properly connected from the PC to the DS3900. Verify the DS3900 is properly seated on the application board. SDA or SCL line is stuck low If only SDA is held low, the 2-wire bus might have been disturbed while a slave was controlling the bus during a read operation. Additionally, P10 and P11 may have been used as bit I/O pins and the last program left the pins in a low state. Try to issue a bit I/O read command to the pin that is stuck low, and the bus will be freed by the DS3900. If SDA remains low, a slave device is controlling it. Reset the 2-wire bus (clock the bus nine times, and issue a stop command) or cycle power to the application board to free the pin. Bit I/O operation not working as expected P3 is being used, and the pulse function is operating and changing the state of the pin. Disable the pulse with software, or do not use P3 for an input or output. Pulse function not operating properly DS3900 not found by software after reset For technical support email [email protected]. 10 ____________________________________________________________________ Serial Communications Module For Evaluation Kits DS3900 VCC VCC 4.7kΩ 2.2kΩ MA2YD15 JP1 P1 CT2192MST RA2 RA1 RA3 RA0 RA4 MCLR OSC1 P3 VSS OSC2 (N.C.) RESET VSS GND P5 GND JP2 CTX501 P2 P4 4.7kΩ U1 PIC16LF628 (TSSOP) VCC RB0 VCC RB1 RB7 RB2 RB6 P11-SDA 27pF P10-SCL GND CRYSTAL 3.68MHz VCC VCC 27pF P9 P8 1.0µF 0.1µF P7 P6 RB5 2 x 8 FEMALE HEADER RB3 RB4 VCC 1µF FORCEOFF EN 0.1µF C1+ VCC V+ GND C1C2+ 1µF C2V1µF U2 MAX3223 (SSOP) T1OUT R1IN R1OUT FORCEON T2OUT T1IN R2IN T2IN R2OUT 2 x 8 FEMALE HEADER 0.1µF JP3 1 6 2 3 7 8 4 9 5 DB9 INVALID Figure 2. DS3900 Schematic ____________________________________________________________________ 11 DS3900 Serial Communications Module For Evaluation Kits TOP LAYOUT P1 P11 P2 P10 P3 GND (N.C.) RESET VCC GND P9 P4 P8 P5 P7 GND P6 BOTTOM LAYOUT Figure 3. DS3900 Layout 12 ____________________________________________________________________ Serial Communications Module For Evaluation Kits DS3900 1.344" X1 C6 C5 C1 JP1 1.584" C4 U1 1.469" DS3900 R1.0 SCL R2 SDA R3 JP2 1.300" 0.75" 0.84" 0.550" 0.43" 0.312" 0.312" 0.25" 0.100" 0.100" 0.025" 0.25" 0.43" 0.20" 0.025" 1.200" 0.84" 1.56" 1.12" 0.80" Figure 4. DS3900 Dimensions Note: The DS3900 mates with standard 2.54mm (0.100in) 2 x 8 male header connectors. These connectors do not come standard with the board (see Figure 5). ____________________________________________________________________ 13 DS3900 Serial Communications Module For Evaluation Kits 0.100" 0.025", 16 places 0.025" 16 places 0.100" 8 places 0.240",16 places 1.200" Figure 5. Recommended PC Board Connection for DS3900 14 ____________________________________________________________________ Serial Communications Module For Evaluation Kits OSCILLATOR OUTPUTS PC OUT1 SCL OUT0 VCC SDA CTRL1 DS1077 GND SERIAL PORT VCC P1 LED P2 DB9 VCC P11-SDA MORE 2-WIRE DEVICES P10-SCL P3 GND N.C. VCC GND CTRL0 DS3900 P4 P9 P8 P5 P7 GND P6 VCC 10µF SDA VCC SCL H0 A0 A1 A2 WP GND DS1848 N.C. H1 L1 N.C. VARIABLE RESISTORS L0 Maxim cannot assume responsibility for use of any circuitry other than circuitry entirely embodied in a Maxim product. No circuit patent licenses are implied. Maxim reserves the right to change the circuitry and specifications without notice at any time. Maxim Integrated Products, 120 San Gabriel Drive, Sunnyvale, CA 94086 408-737-7600 ____________________ 15 © 2004 Maxim Integrated Products Printed USA is a registered trademark of Dallas Semiconductor Corporation. is a registered trademark of Maxim Integrated Products. DS3900 Typical Operating Circuit