Win-I2CNT I²C and SMBus Control Software User’s Manual Date: 01/11/2004
Information provided in this document is solely for use with Win-I2CNT. SB Solutions reserves the right to make changes or improvements to this document at any time without notice. We assume no liability whatsoever in the sale or use of this product, including infringement of any patent or copyright. No part of this document may be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without the express written permission of SB Solutions.
I²C PROTOCOL................................................................................................................8 GENERAL CHARACTERISTICS .................................................................................................... 8 BIT TRANSFER ..................................................................................................................... 8 START AND STOP CONDITIONS................................................................................................
Page Write Size Selection ............................................................................................. 16 EEPROM Selection ....................................................................................................... 16 Goto Byte Button......................................................................................................... 16 Edit Menu ...................................................................................................................
Auto Write .................................................................................................................. 29 LED BLINKERS/DIMMERS/DRIVERS ...........................................................................30 PCA9550/30 PCA9551/31 PCA9552/32 PCA9553/33....................................................... 30 Device Address............................................................................................................ 30 Auto Write On/Off Button .......................
Alarm Date Controls..................................................................................................... 43 THERMAL MONITORS ...................................................................................................44 NE1617.......................................................................................................................... 44 Read-Only Registers ....................................................................................................
Add a Row .................................................................................................................. 54 Delete a Row .............................................................................................................. 54 Clear the current row................................................................................................... 55 Copy the Current Row..................................................................................................
I²C Protocol General Characteristics The I²C protocol allows data to be transferred between devices using two open-drain (or open-collector) bidirectional lines. One line is the serial clock (SCL) and the other is the serial data (SDA). The bus master generates the Start conditions, the clock signals on SCL, as well as the Stop condition. An acknowledge is transmitted on the bus after each byte is sent over the bus. Bit Transfer Data on SDA must be stable while SCL is high.
Devices supported in Win-I2CNT Clock Buffers PCK2001 PCK2001M Clock / Calendar PCF8583 PCF8593 EEPROMs 16 x 8 (128 bits) 128 x 8 (1K bits) 256 x 8 (2K bits) 512 x 8 (4K bits) 1K x 8 (8K bits) 2K x 8 (16K bits) 4K x 8 (32K bits) 8K x 8 (64K bits) 16Kx8 (128K bits) 32Kx8 (256K bits) 64Kx8 (512K bits) I/O Expanders PCA9534 PCA9535 PCA9554 PCA9554A PCA9555 PCA9556 PCA9557 PCF8574 PCF8574A PCF8575 PCA9500 PCA9501 LED Blinkers/Dimmers/Drivers PCA9530 PCA9531 PCA9532 PCA9533 PCA9550 PCA9551 PCA9552 PCA9553 SAA106
Device Menu The device menu contains a list of I²C devices supported by the Win-I2CNT software. Selecting the device from this menu may start any of the listed devices. You can have any combination of devices open at one time, although only one instance of a particular device will be allowed to be active at one time. Switching between active devices may be accomplished via the Window menu on the main toolbar. Message Panel The main screen has a panel that displays messages from the program.
You can expect data rates over 100 kHz with a Pentium class computer, however, many factors influence the maximum data rate and your results may vary significantly. Many I²C devices are not designed to operate at frequencies above 100 kHz and may cause communication errors if operated beyond 100 kHz. Lower I²C frequencies may be needed for long cable runs or excessive bus capacitance situations.
Windows Menu The Windows Menu contains screen commands such as cascade, tile, arrange all icons, and minimize all. If there are devices active in the program, you will find them listed in this menu. When multiple device types are open, it is easy to move between the device types by clicking on the desired item in this menu. Help Menu Help Help may be activated at any time in the program by choosing Help from the Help Menu. Pressing the F1 key may also activate context-sensitive help.
Clock Buffers PCK2001 / PCK2001M The PCK2001 is a 1–18 fan-out buffer used for 133/100 MHz CPU, 66/33 MHz PCI, 14.318 MHz REF, or 133/100/66 MHz SDRAM clock distribution. Eighteen outputs are typically used to support up to 4 SDRAM DIMMS commonly found in desktop, workstation or server applications. All clock outputs meet Intel's drive, rise/fall time, accuracy, and skew requirements. An I²C interface is included to allow each output to be enabled/disabled individually.
Byte 0, 1, and 2 Register Clicking on the LEDs will change the state of the output. An enabled output is shown light green while a disabled output is shown dark green. The contents of the registers are shown in hexadecimal above the checkboxes. Automatic Write If ‘Auto Write On’ is enabled (light green), any changes to the PCK2001(M) data bytes will immediately be sent via the I²C bus. ‘Auto Write Off’ is shown in red when it is disabled.
EEPROM and RAM Devices Upon starting any memory device, such as an EEPROM or RAM, you will see a screen similar to the one shown below. I²C Address A drop-down menu is provided which allows the user to select a valid address for the selected device type. Data Grid The data grid consists of rows and columns. Each cell within the grid contains a two digit hexadecimal number. Each cell corresponds to a physical byte location within the memory device.
Subaddress (Word Address) The subaddress (sometimes called word address) is a pointer to a register or memory location within the I²C device. To access this location, the software will send out the device I²C address, followed by this subaddress, followed by the read or write data. The program displays the subaddress of the active cell of the memory grid in both hexadecimal and decimal notation. Read Byte Button Pressing the 'Read Byte' button initiates a read from the I²C device.
Pressing the plus (+) will show cause the button to expand as shown below: Changing the function of the button does not cause that function to be performed. After a change, the user must press the button to complete the function. Goto Byte brings up a dialog box which allows the user to input an address to jump to.
I/O Expanders PCA9500 / PCA9501 I/O Expander & EEPROM The PCA9500 and PCA9501 (note that these devices were previously released as the PTN3500 and PTN3501) provides general-purpose remote I/O expansion for most microcontroller families via the I²C bus. The device consists of an 8-bit quasi bi-directional port and an I²C interface. The PCA950x has low current consumption and includes latched outputs with high current drive capability for directly driving LEDs.
Set Data All the cells of the memory grid will be filled with the two digit hexadecimal number found in the Preset edit box when the Set Data button is pressed. No information will be sent over the I²C bus. Word Address The Word Address (also called subaddress) is a pointer to a register or memory location within the I²C device. To access this location, the software will send out the device I²C address, followed by this subaddress, followed by the read or write data.
PCA9554/9554A and PCA9534 8-bit I/O Expanders The PCA9554 and PCA9554A are 16-pin CMOS devices that provide 8 bits of General Purpose parallel Input/Output (GPIO) expansion for I2C/SMBus applications and were developed to enhance the Philips family of I2C I/O expanders. The improvements include higher drive capability, 5V I/O tolerance, lower supply current, individual I/O configuration, 400 kHz clock frequency, and smaller packaging.
Register 4 (Configuration) This register configures the directions of the I/O pins. If a bit in this register is set, the corresponding port pin is enabled as an input with high impedance output driver. If a bit in this register is cleared, the corresponding port pin is enabled as an output. At reset, the I/Os are configured as inputs with a weak pullup to VDD.
PCA9555 / PCA9535 16-bit I/O Expander The PCA9555 is a 24-pin CMOS device that provide 16 bits of General Purpose parallel Input/Output (GPIO) expansion for I2C/SMBus applications and was developed to enhance the Philips family of I2C I/O expanders. The improvements include higher drive capability, 5V I/O tolerance, lower supply current, individual I/O configuration, and smaller packaging.
cleared, the corresponding port pin is enabled as an output. At reset, the I/Os are configured as inputs with a weak pull-up to VDD. Automatic Write Enable When Auto Write On is enabled (green), any changes made to Registers 1 through 7 checkboxes will cause the program to write the new data to the PCA9555. The display will read 'Auto Write Off' when it is disabled and 'Auto Write On' when enabled. Checkboxes The checkboxes indicate the logic level of the various bits in the registers.
PCA9556 and PCA9557 8-bit I/O Expanders The PCA9556 and PCA9557 are CMOS circuit that provides parallel input/output expansion for I2C and SMBus applications. These devices consist of an 8-bit input port register, 8-bit output port register, and an I2C interface. It has low current consumption and a high impedance open drain output pin, I/O0. T he system master can reset the PCA9556 in the event of a timeout by asserting a LOW on the reset input.
Register 1 (Output port) This register is an output-only port. It reflects the outgoing logic levels of the pins defined as outputs by register 3. Bit values in this register have no effect on pins defined as inputs. In turn, reads from this register reflect the value that is in the flip-flop controlling the output selection, NOT the actual pin value. Register 2 (Polarity) This register enables polarity inversion of pins defined as inputs by register 3.
PCF8574 and PCF8574A 8-bit I/O Expanders The PCF8574 provides general-purpose remote I/O expansion for most microcontroller families via the I²C bus. The device consists of an 8-bit quasi bi-directional port and an I²C interface. The PCF8574 has low current consumption and includes latched outputs with high current drive capability for directly driving LEDs. It also possesses an open-drain interrupt output that can be connected to the interrupt logic of the microcontroller.
boxes or checkboxes in this area. The information is updated only by pressing the Read Button. Data read from the PCF8574(A) will be shown in the box beside the Read Button. The checkboxes are then changed to show the value of each individual I/O of the device. If the checkbox is checked, then the I/O pin is high while an unchecked box means that the I/O pin is low. It is important to remember that before any I/Os in the PCF8574(A) can be used as inputs, they must be set high first.
PCF8575 16-bit I/O Expander The PCF8575 is a CMOS circuit which provides general purpose remote I/O expansion for most microcontroller families via the two-line bi-directional bus (I²C-bus). The device consists of a 16-bit quasi bi-directional port and an I²C-bus interface. The PCF8575 has a low current consumption and includes latched outputs with high current drive capability for directly driving LEDs.
Read Data Boxes These two boxes show the port state of the PCF8575 in hexadecimal format. These boxes cannot be directly modified by the user but must be changed by pressing the read button. Write Data Boxes The user can change the contents of the register by entering a two digit hexadecimal number into the upper and/or lower edit boxes. If the Auto Write is enabled, both data registers are sent, even if only one is changed.
LED Blinkers/Dimmers/Drivers PCA9550/30 PCA9551/31 PCA9552/32 PCA9553/33 The PCA955x LED Blinker blinks LEDs in I2C applications where it is necessary to limit bus traffic or free up the I2C Master’s (MCU, MPU, DSP, chipset, etc.) timer. The uniqueness of this device is the internal oscillator with two programmable blink rates. To blink LEDs using normal I/O Expanders like the PCF8574 or PCA9554, the bus master must send repeated commands to turn the LED on and off.
PWM Period Slide bar The period of the PCA955x can be changed by moving the PWM0 or PWM1 slide bars. The period (in seconds) and frequency (in Hertz) is displayed below the slide bar. The actual value of the PCA955x register is displayed in the Registers groupbox. PWM Duty Cycle The duty cycle for PWM0 and PWM1 can be changed by moving the PWM0 or PWM1 slide bars. The duty cycle is displayed (in percent) below the slide bar. The actual value of the PCA955x register is displayed in the Registers groupbox.
SAA1064 LED Driver When the SAA1064 is chosen from the device menu, the following screen will appear on your monitor. Control Register The Control Register is responsible for determining the mode of operation of the SAA1064. It can control which digits are blanked, static versus dynamic operation, and the current supplied to the LEDs.
immediately be sent via the I²C bus. The data sent to the SAA1064 consists of a Start condition, the I²C address, Instruction byte, then the data for the changed Control Register or Data byte, followed by the Stop condition. Therefore, a total of three bytes will be sent any time a change is made and Automatic Write is enabled. Digits 1, 2, 3, and 4 The SAA1064 can drive up to four 8-segment LEDs. The data for these digits is contained in four registers within the SAA1064.
I2C Multiplexers PCA9540, PCA9542, and PCA9544 The PCA954x is a family of bi-directional translating multiplexers, controlled via the I²C bus. The SCL/SDA upstream pair fans out to SCx/SDx downstream pairs, or channels. Only one SCx/SDx channel is selected at a time, determined by the contents of the programmable control register. Interrupt inputs (not available in the PCA9540), one for each of the SCx/SDx downstream pair, are provided.
to channel 2, then bit 6 will be set in the control register. Likewise, an interrupt on any device connected to channel 3 would cause bit 7 of the control register to be set. The master can then address the PCA954x and read the contents of the control byte to determine which channel contains the device generating the interrupt. The master can then reconfigure the PCA954x to select this channel, and locate the device generating the interrupt and clear it.
I²C Switches PCA9543, PCA9545, PCA9546, and PCA9548 The PCA9543/9545/9546/9548 are a family of bi-directional translating switches, controlled via the I²C bus. The SCL/SDA upstream pair fans out to SCx/SDx downstream pairs, or channels. Multiple SCx/SDx channels may be selected at a time, determined by the contents of the programmable control register. Interrupt inputs, one for each of the SCx/SDx downstream pair, are provided.
Auto Write When the Auto Write On is enabled (checked), any changes made by the user to the PCA954x channel selection radio buttons will immediately be sent to the device via the I²C bus. If not checked, the write button will need to be pressed before the data is sent to the PCA954x.
Non-Volatile Registers PCA8550, PCA9559, PCA9560, and PCA9561 Address Selection A drop down address selection is available which can be used to change the I²C address of the PCA9559, PCA9560, and PCA9561. Note that the PCA8550 does not have a programmable I²C address as it is fixed at 0x9C. Data Register Clicking on the checkboxes will change the state of the non-volatile register.
Real-time Clock/Calendars PCF8583 / PCF8593 The PCF8583 and PCF8593 are CMOS clock/calendar circuits, optimized for low power consumption. Addresses and data are transferred serially via the two-line bi-directional I²C bus. The built-in word address register is incremented automatically after each written or read data byte. The built-in 32.768 kHz oscillator circuit and the first 8 bytes of RAM are used for the clock/calendar and counter functions.
Alarm Control Register When the alarm enable bit of the control/status register is set (address 0x00, bit 2), the alarm control register (address 0x08) is activated. All alarm, timer, and interrupt output functions are controlled by the contents of the alarm control register. Write All Button The write all button sends the contents of the sixteen registers to the devices via the I²C bus.
Read All Button The read all button sends the appropriate commands via the I²C bus to read the contents of the sixteen registers within the PCF8583/8593. The on-screen controls will be updated with the register data. When the PCF8583 and PCF8593 are first started, the register data is random so it is recommended that the registers be initialized with valid data before a read is performed. Cyclic Read Win-I2CNT will read registers 0x00 through 0x15 constantly when this button is pressed.
Clock Controls The various spin controls, within in the Clock Time panel, can be used to change the clock time. Changes made here will be reflected in the Clock Registers edit boxes shown near the top of the screen. The AM/PM radio buttons determine the state of the AM/PM flag within the hours counter (register 0x04). The 12 Hour checkbox determines the format of the time. If it is checked (logic '1'), the clock is in 12-hour format and the AM/PM flag will be updated by the PCF8583/8593.
Thermal Monitors NE1617 The figure below shows the screen of the NE1617.
LM75A Thermal Monitor The LM75A is a temperature-to-digital converter using an on-chip band-gap temperature sensor and Sigma-delta A-to-D conversion technique. The device is also a thermal detector providing an over-temp detection output.
(MS) data byte and one least significant (LS) data byte. However, only 11 bits of those two bytes are used to store the Temp data in 2’s complement format with the resolution of 0.125°C Notice that when the Temp register is read, all 16 bits are provided to the bus and must all be collected by the controller to complete the bus transaction. However, only the 11 most significant bits should be used, and the 5 LSB bits of the LS byte are zero and should be ignored.
Tone Generators PCD3311/PCD3312 Tone/Frequency Selection Grid The Tone/Frequency grid contains a list of tones and frequencies which the PCD3311 and PCD3312 can generate. Listed beside the tones, you will find the hexadecimal code that will be sent to the device to generate that tone. Upon clicking on the desired tone in the grid, you will see that the data byte in the Address/Data box also changes to reflect the new data.
Universal Modes Universal Transmitter/Receiver The figure below shows the screen of the Universal I²C Transmitter/Receiver. Data Bytes for Universal Transmitter/Receiver Each I²C Message (dataset) contains a maximum of 16 data bytes. The data bytes are shown as two digit hexadecimal numbers. Only valid hexadecimal numbers can be entered into each box. Non-hexadecimal keyboard entries will be ignored with the following exceptions: INSERT key - pressing this key adds an extra edit box to the Message.
R (Read) key - is a read condition. This may be changed to a write condition by pressing the ‘w’ key. W (Write) key - is a write condition. This may be changed to a read condition by pressing the ‘r’ key Progress Bar The progress bar is visible when the Repeat sequence button is pressed and is invisible when the transmission has stopped. It is used as a visual cue that there is a transmission underway.
User Definable Device The User Definable Device allows you to define your own I²C device and then enables the user to change the values of the individual cells within the grid using various controls such as sliders and spin controls. When the User Definable Device is first opened, a 256 byte device grid is shown on the screen but does not have any names associated with the data, and all the data bytes are set to 0xFF.
Open Device Definition File A previously saved device definition file (.def) can be recalled by selecting this menu item. The device definition file contains the Device Name, Device Address, Register Names, and Register Values. Save Device definition files can be saved to disk by selecting the Save menu item. Save As… Use the Save As dialog box to change the definition file name or to save the definition file in a new location.
definition file is opened. Device Address: is the device I²C address that will be displayed in the Address box when the definition file is opened. Note that only even addresses are valid here. Win-I2CNT will append the appropriate R/W bit at the end of the address depending upon the operation to be performed (the last bit will be a '1' if it is a read operation and a '0' if it is a write). Number of Registers: Enter the number of registers the device contains.
Spin Control The Spin Control is activated when the user presses the Spinner button on the User Defined Device screen or by right clicking the grid and then selecting 'Increment/Decrement Current Register with a Spin Control' from the pop-up menu. Register subaddress Register value in decimal Register value in hexadecimal format Register description Automatic Write selection The subaddress of the active cell in the grid will be assigned to the Spin Control.
Expert Mode The figure below shows the Expert Mode screen. Open New Page Pressing this button opens a new blank page. There will be 32 empty rows (messages). Selecting ‘New’ from the ‘File’ menu while the Expert Mode is active will perform the same function. Open Data File A previously saved data file can be recalled by pressing the Open Data File button or by selecting Open from the File menu while the Expert Mode is active.
Clear the current row The current row (message) will be cleared. The row will not be deleted but will appear blank. Copy the Current Row The current row (message) will be copied. Use the Paste command to paste it to a different row. Paste Data Previously copied data will be pasted into the current row (message). Compress Data All blank rows will be eliminated from the display.
Send Message The current message will be sent when this button is pressed. The current message number is shown below the Send Message button. To change the active message to be sent, single-click on the row of the data to be sent. Send All All the valid messages on the screen will be sent in order of the row number. The action will be performed one time. A message is valid if there is a minimum of an address within the message.
Message Editor in Read Mode Message Number The message being edited is shown at the top of the message editor screen. Delay after message A delay, measured in milliseconds, can be inserted after a message. Device Address The I2C slave address is entered in the address box in hexadecimal notation. The least significant bit of the address is not important (can be a ‘1’ or ‘0’) since the Expert Mode will ensure that this is appropriate for the read/write transaction when the message is actually transmitted.