I2C Address

Every slave device, connected to the I2C bus, must have an unique I2C address. The I2C address can be either 7-bits or 10-bits long.

You can specify the I2C address in slaveDeviceAddress parameter when you call DlnI2cMasterWrite() or DlnI2cMasterRead() function.

If you use I2C slave interface of a DLN-series adapter, call DlnI2cSlaveSetAddress() to configure the I2C address. You can specify several I2C slave addresses. DLN-series adapter will respond to any of these addresses. After I2C master generates Stop Condition, DLN series adapter sends DLN_I2C_SLAVE_WRITE_EV or DLN_I2C_SLAVE_READ_EV event to your application. These events contain the I2C address in the slaveAddress field.

7-bit I2C Addressing

The first byte (immediately after the START condition) contains the I2C slave address.

The I2C address is 7-bits long. It is transmitted in the seven most significant bits (MSB). The last (eighth bit) of the I2C address byte is a data direction bit - a 'zero' indicates a transmission (I2C WRITE), a 'one' indicates a request for data (I2C READ).

You have to specify the 7-bit I2C slave address when you call the DlnI2cMasterRead() or DlnI2cMasterWrite() function. DLN-series PC-I2C adapters automatically add the direction bit. In fact the provided I2C address is shifted left and is supplemented by 0 (for I2C write transactions) or by 1 (for I2C read transactions).

DLN-series adapters can scan the bus for I2C addresses of the connected slave devices. Call the DlnI2cMasterScanDevices() function to get the list of I2C addresses.

Some slave device vendors specify the 8-bit I2C addresses in their documentation. In fact they specify the entire address byte (I2C address + direction bit). You need to discard the least significant bit and shift this byte right to obtain the real 7-bit I2C address.

10-bit I2C Addressing

With 7-bit addressing only 112 I2C slave addresses are available. To prevent address clashes Philips Semiconductors (now NXP Semiconductors) has introduced a 10 bit address scheme. Devices with 7-bit and 10-bit addresses can be connected to the same I2C-bus.

The 10-bit address is transmitted within the first two bytes following a START condition or a repeated START condition.

Five most significant bits of the first address byte are predefined (1111 0). I2C slave devices with 7-bit addressing ignore transactions with the first byte in the form of '1111 0XXX'.

The I2C address occupies bits 5 and 6 of the first byte and the eight bits of the second byte.

The transfer direction (read or write) is specified in the eighth bit of the first byte. As in the case of 7-bit I2C address, a 'zero' indicates a transmission (I2C WRITE), a 'one' indicates a request for data (I2C READ).

Slave devices with 10-bit I2C addressing will react to a general call in the same way as slave devices with 7-bit I2C addressing. I2C master devices can transmit the 10-bit I2C address after a general call.

I2C General Call Address

The general call address is used to address all I2C slave devices simultaneously. If I2C slave device doesn't support general call addressing, it ignores this transaction and doesn't issue an acknowledgment. The I2C master devise can't determine how many slave devices acknowledge the general call address.

You can enable the I2C general call address support for I2C slave interface with the DlnI2cSlaveGeneralCallEnable() function.

Reserved I2C slave addresses

There are 16 reserved I2C addresses. These addresses corresponds to one of the two patters: 0000XXX or 1111XXX. The table below describes the purposes of the most commonly used reserved I2C addresses:

I2C Slave Address R/W Bit Description
0000 000 0 general call address
0000 000 1 START byte[
0000 001 X  CBUS address
0000 010 X reserved for different bus format
0000 011 X reserved for future purposes
0000 1XX X Hs-mode master code
1111 1XX X reserved for future purposes
1111 0XX X 10-bit slave address

The full list of I2C address assignments you can see at I2C Address Allocation Table page or i2c-address-allocation-table.pdf document.

Rating: 
Средняя: 2.5 (4 оценок)

I2C Address Allocation Table

The group number represents the hexadecimal equivalent of the four most significant bits of the slave address (A6-A3).

GROUP(1) TYPE NUMBER DESCRIPTION
Group 0 (0000)
0 0 0 - General call address
X X X - Reserved addresses
Group 1 (0001)
1 A1 A0 SAA2530 ADR/DMX digital receiver
1 A1 A0 TDA8045 QAM-64 demodulator
Group 2 (0010)
0 0 A0 SAA4700/T VPS dataline processor
0 0 A0 SAA5233 Dual standard PDC decoder
0 0 1 SAA5243 Computer controlled teletext circuit
0 0 1 SAA5244 Integrated VIP and teletext
0 0 1 SAA5245 525-line teletext decoder/controller
0 0 1 SAA5246A Integrated VIP and teletext
0 0 1 SAA5249 VIP and teletext controller
0 A1 A0 CCR921 RDS/RBDS decoder
0 A1 A0 SAF1135 Dataline 16 decoder for VPS (call array)
1 0 0 SAA5252 Line 21 decoder
1 1 A0 SAB9075H PIP controller for NTSC
Group 3 (0011)
0 0 A0 SAA7370 CD-decoder plus digital servo processor
0 A1 A0 PCD5096 Universal codec
0 1 A0 SAA2510 Video-CD MPEG-audio/video decoder
0 1 1 PDIUSB11 Universal serial bus
1 0 1 SAA2502 MPEG audio source decoder
1 1 A0 SAA1770 D2MAC decoder for satellite and cable TV
Group 4 (0100)
0 0 0 SAA6750 MPEG2 encoder for Desk Top Video (=SAA7137)
0 0 0 TDA9177 YUV transient improvement processor
0 0 0 TDA9178 YUV transient improvement processor
0 0 A0 PCA1070 Programmable speech transmission IC
0 A1 A0 PCF8575 Remote 16-bit I/O expander
A1 A0 PCF8575C Remote 16-bit I/O expander
0 A1 A0 SAA1300 Tuner switch circuit
A2 A1 A0 TDA8444 Octuple 6-bit DAC
A2 A1 A0 PCF8574 8-bit remote I/O port (I2C-bus to parallel converter)
1 0 A0 PCD3311C DTMF/modem/musical tone generator
1 0 A0 PCD3312C DTMF/modem/musical tone generator
1 1 1 PCD5002 Pager decoder
Group 6 (0110)
0 0 0 SAA5301 MOJI processor for Japan/China
0 1 1 PCE84C467/8 8-bit CMOS auto-sync monitor controller
0 1 1 PCE84C882 8-bit microcontroller for monitor applications
0 1 1 PCE84C886 8-bit microcontroller for monitor applications
Group 7 (0111)
0 0 A0 SAA7140B High performance video scaler
0 0 A0 PCF8533 Universal LCD driver for low multiplex rates
0 0 A0 PCF8576 16-segment LCD driver 1:1 - 1:4 Mux rates
0 0 A0 PCF8576C 16-segment LCD driver 1:1 - 1:4 Mux rates
0 A1 A0 SAA1064 4-digit LED driver
A2 A1 A0 PCF8574A 8-bit remote I/O port (I2C-bus to parallel converter)
0 1 0 PCF8577C 32/64-segment LCD display driver
0 1 A0 PCF2103 LCD controller/driver
0 1 A0 PCF2104 LCD controller/driver
0 1 A0 PCF2105 LCD controller/driver
0 1 A0 PCF2113 LCD controller/driver
0 1 A0 PCF2119 LCD controller/driver
0 1 A0 SAA2116 LCD controller/driver
1 0 A0 PCF8531 34 X 128 pixel matrix driver
1 0 A0 PCF8548 65 X 102 pixels matrix LCD driver
1 0 A0 PCF8549 65 X 102 pixels matrix LCD driver
1 0 A0 PCF8578/9 Row/column LCD dot matrix driver/display
1 0 A0 PCF8568 LCD row driver for dot matrix displays
1 0 A0 PCF8569 LCD column driver for dot matrix displays
1 A1 A0 PCF8535 65 X 133 pixel matrix LCD driver
1 1 A0 OM4085 Universal LCD driver for low multiplex rates
1 1 A0 PCF8566 96-segment LCD driver 1:1 - 1:4 Mux rates
Group 8 (1000)
0 0 0 TEA6300 Sound fader control and preamplifier/source selector
0 0 0 TEA6320/1/2/3 Sound fader control circuit
0 0 0 TEA6330 Tone/volume controller
0 0 A0 NE5751 Audio processor for RF communication
0 0 A0 TDA8421 Audio processor
0 0 A0 TDA9860 Hi-fi audio processor
0 0 1 TDA8424/5/6 Audio processor
0 1 0 TDA8415 TV/VCR stereo/dual sound processor
0 1 0 TDA8417 TV/VCR stereo/dual sound processor
0 1 0 TDA9840 TV stereo/dual sound processor
0 1 A0 TDA8480T RGB gamma-correction processor
1 0 0 TDA4670/1/2 Picture signal improvement (PSI) circuit
1 0 0 TDA4680/5/7/8 Video processor
1 0 0 TDA4780 Video control with gamma control
1 0 0 TDA4885 150 MHz video controller
1 0 0 TDA8442 Interface for colour decoder
1 0 1 TDA8366 Multistandard one-chip video processor
1 0 1 TDA8373 NTSC one-chip video processor
1 0 1 TDA8374 Multistandard one-chip video processor
1 0 1 TDA8375/A Multistandard one-chip video processor
1 0 1 TDA8376/A Multistandard one-chip video processor
1 0 1 TDA9161A Bus-controlled decoder/sync. processor
1 A1 1 SAA7151B 8-bit digital multistandard TV decoder
1 A1 1 SAA7191B Digital multistandard TV decoder
1 A1 1 SAA9056 Digital SCAM colour decoder
1 A1 1 TDA9141/3/4 Alignment-free multistandard decoder
1 A1 1 TDA9160 Multistandard decoder/sync. processor
1 A1 1 TDA9162 Multistandard decoder/sync. processor
1 1 0 TDA4853/4 Autosync deflection processor
1 1 0 TDA9150B Deflection processor
1 1 0 TDA9151B Programmable deflection processor
1 1 A0 TEA6360 5-band equalizer
1 1 A0 TDA8433 TV deflection processor
Group 9 (1001)
A2 A1 A0 PCF8591 4-channel, 8-bit Mux ADC and one DAC
A2 A1 A0 TDA8440 Video/audio switch
A2 A1 A0 TDA8540 4 X 4 video switch matrix
1 A1 A0 TDA8752 Triple fast ADC for LCD
1 1 A0 SAA7110A Digital multistandard decoder
Group A (1010)
0 0 A0 SAA7199B Digital multistandard encoder
0 1 0 TDA8416 TV/VCR stereo/dual sound processor
0 1 A0 TDA9850 BTSC stereo/SAP decoder
0 1 A0 TDA9855 BTSC stereo/SAP decoder
0 1 1 TDA9852 BTSC stereo/SAP decoder
1 0 0 TDA9610 Audio FM processor for VHS
1 0 0 TDA9614H Audio processor for VHS
1 A1 0 SAA7186 Digital video scaler
1 0 1 PCA8516 Stand-alone OSD IC
1 1 1 SAA7165 Video enhancement D/A processor
1 1 1 SAA9065 Video enhancement and D/A processor
Group B (1011)
0 0 A0 SAA7199B Digital multistandard encoder
0 1 0 TDA8416 TV/VCR stereo/dual sound processor
0 1 A0 TDA9850 BTSC stereo/SAP decoder
0 1 A0 TDA9855 BTSC stereo/SAP decoder
0 1 1 TDA9852 BTSC stereo/SAP decoder
1 0 0 TDA9610 Audio FM processor for VHS
1 0 0 TDA9614H Audio processor for VHS
1 A1 0 SAA7186 Digital video scaler
1 0 1 PCA8516 Stand-alone OSD IC
1 1 1 SAA7165 Video enhancement D/A processor
1 1 1 SAA9065 Video enhancement and D/A processor
Group C (1100)
0 0 1 TEA6100 FM/IF for computer-controlled radio
0 1 0 TEA6821/2 Car radio AM
0 1 0 TEA6824T Car radio IF IC
0 A1 A0 TSA5511/2/4 1.3 GHz PLL frequency synthesizer for TV
0 A1 A0 TSA5522/3M 1.4 GHz PLL frequency synthesizer for TV
0 1 A0 TDA8735 150 MHz PLL frequency synthesizer
0 1 A0 TSA6057 Radio tuning PLL frequency synthesizer
0 1 A0 TSA6060 Radio tuning PLL frequency synthesizer
0 1 A0 UMA1014 Frequency synthesizer for mobile telephones
1 0 0 TDA8722 Negative video modulator with FM sound
Group D (1101)
0 0 A0 TDA8043 QPSK demodulator and decoder
0 0 A0 TDA9170 YUV processor with picture improvement
0 A1 A0 PCF8573 Clock/calendar
A2 A1 A0 TDA8443A YUV/RGB matrix switch
0 1 A0 TDA8745 Satellite sound decoder
1 0 0 TDA1551Q 2 ´ 22 W BTL audio power amplifier
1 A1 A0 TDA4845 Vector processor for TV-pictures tubes
1 A1 A0 UMA1000T Data processor for mobile telephones
1 1 A0 PCD4440 Voice scrambler/descrambler for mobile telephones
Group E (1110)
0 0 0 PCD3316 Caller-ID on Call Waiting (CIDCW) receiver
0 0 0 TDA9177 2nd address for LTI (1st is '40')
0 0 0 TDA9178 2nd address for LTI (1st is '40')
0 0 A0 SAA7192 Digital colour space-converter
Group F (1111)
X X - Reserved addresses
Group 0 to F (0000 to 1111)
X X X PCF8584 I2C-bus controller

Note

1. X = Don't care, A = Programmable address bit, P = Page selection bit

Rating: 
Средняя: 3 (6 оценок)