Stefan Piatidis <ib93_spi@it.kth.se> wrote: >I want to divide a bidirectional data line into two groups of >EEPROMS. >I have a controll signal that can state to which of these two >groups, it should be activated too. >I.e. i am looking for some kind of 1 to 2 device. But not a >multiplexer, if there isnt a bidirectional one. >I've got some hints on that there are devices called analog >switches. Maybe they could work. > > > ----------- > I I > I------I EEPROM I >bidir.dataline ---- BDL1 I I I >---------------I I------ I I > I XX I ----------- >control signal I I BDL2 >---------------I I------ ----------- > ---- I I I > I------I EEPROM I > I I > I I > ----------- <snip> Two suggestions: 1. If you ABSOLUTELY must use I2C devices, you might be able to use a analog mux or bidirectional I/O device to handle the data line switching. I don't recall the exact part number, but I beleive there are a number of 4000-series CMOS devices that can perform this function. The CD4016 "Quad bilateral switch" might work for your application. 2. Instead of using I2C serial EEPROMS, consider using the 93Cxx serial EEPROMs instead. These devices use a 4-wire serial bus (clock, data in, data out, select) and would be considerably easier to drive using a PC parallel port. Since the data out pins of these devices employ open-collector outputs you could tie the clock, data in and data out pins together and use two digital outputs to (seperately) drive the select signals of each EEPROM, like this: /----------------------o-------------- - - - | | | /--------------------)--o----------- - - - | | | | | | /------------------)--)--o-------- - - - | | | | | | | | | 93C46 | | | 93C46 Clock (from PC) | | | |---------| | | | |---------| -------------------------(-(-o--|CLK | | | \--|CLK | | | | | | | | | Data out (from PC) | | | | | | | | -------------------------(-o----|DI | | \-----|DI | | | | | | | Data in (to PC) | | | | | | -------------------------o------|DO | \--------|DO | | | | | Select #1 (from PC) | | | | --------------------------------|CS | /--|CS | |---------| | |---------| Select #2 (from PC) | ------------------------------------------------------/ This approach has a number of advantages: - It does not require the use of any support hardware (other than the EEPROMs themselves and perhaps a power source). - No bidirectional signal lines are needed, thus it will work on ANY PC parallel port. - Multiple devices can easily be added. If you are driving a large number of devices, a 3-to-8 demultiplexer could be added to drive the multiple SELECT pins with just three output lines. You might even be able to power the EEPROM device(s) (irregardless of type) by using the remaining data outputs as power sources. If you use this approach, make sure to bypass the power supply pins with capacitors (suggest a 0.1 uF and 4.7 uF tantalum in parallel on each device) to handle peak current demands seen when a write cycle occurs.
Date: Fri, 08 Nov 1996 10:40:39 GMT
Original Subject: Re: Dividing a bidirectional line in two!!