4 bit address decoding I2C chip


Closed Thread
Results 1 to 4 of 4
  1. #1
    Join Date
    Sep 2007
    Location
    Waco, Texas
    Posts
    151

    Default 4 bit address decoding I2C chip

    Hello All-
    This is a bit off topic as I am now asking for a chip recomendation. I am using multiple MCP23016s in a design and now I need more than the 8 which is addressable.

    I looked into a PIC as a I2C slave (great examples) but I was wondering if anyone has used a chip like the 23016 but that has 4 address lines for a total of 16 I2C port expanders.
    Otherwise I will start breadboarding the PIC I2C slave idea.

    If this is not appropriate for this forum (as it is PICBasic/Pro), my apologies.

    -Regards

  2. #2
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by ecoli-557 View Post
    This is a bit off topic as I am now asking for a chip recomendation. I am using multiple MCP23016s in a design and now I need more than the 8 which is addressable.
    I looked into a PIC as a I2C slave (great examples) but I was wondering if anyone has used a chip like the 23016 but that has 4 address lines for a total of 16 I2C port expanders.
    Otherwise I will start breadboarding the PIC I2C slave idea.
    If this is not appropriate for this forum (as it is PICBasic/Pro), my apologies.
    -Regards
    If you're using the I2CREAD/I2CWRITE commands, just use a different clock pin for a different set of chips. Or maybe use one of the port expander as a chip select for the rest of the port expanders.

  3. #3
    Join Date
    Sep 2007
    Location
    Waco, Texas
    Posts
    151


    Did you find this post helpful? Yes | No

    Default Chip enable for a MCP23016

    Quote Originally Posted by skimask View Post
    If you're using the I2CREAD/I2CWRITE commands, just use a different clock pin for a different set of chips. Or maybe use one of the port expander as a chip select for the rest of the port expanders.
    Thanks! I considered the dual-clock pin idea. Have you done this? I just can not affort to have anything get wiggled on the non-clocked port expanders.

    How would you use a CE for the 23016s?

    I have looked again on the web but have not found any 4 channel addressing port expanders! You would think one would be made by someone?
    "If we knew what we were doing, it wouldn't be called research"
    - Albert Einstein

  4. #4
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by ecoli-557 View Post
    Thanks! I considered the dual-clock pin idea. Have you done this? I just can not affort to have anything get wiggled on the non-clocked port expanders.
    How would you use a CE for the 23016s?
    I have looked again on the web but have not found any 4 channel addressing port expanders! You would think one would be made by someone?
    4 channel port expander...Try looking up 4 channel demultiplexer.

    One idea I can think of off the top of my head is using 74LS154 - 4->16 demux chip...
    Tie 4 'upper address lines' into A-B-C-D inputs of the '154, tie 3 more 'lower address lines' into all of the MCP23016's directly.
    Put SCL onto G1 of the '154, tie G2 of the '154 low.
    The outputs pins of the '154 (0-15) will go to the individual MCP23016's SCL pin. SDA is tied together across all devices.
    (could also use a 74138 3-8 decoder, same logic applies)

    Gives you 7 bits for addressing 16 individual lines (2^7 * 16 = 2048 possible lines).
    Put the upper 4 bits into the '154....which will 'steer' the SCL to the appropriate bank of 8 MCP23016's.
    Put the lower 3 bits into the 23016's....which will enable/select 1 of the 8 23016's in each bank...which also share the same SCL output pin from the '154.
    Do whatever I2C commanding you need to do. The '154 effectively lets you toggle the SCL line on it's own output as selected by it's address pins.

    One problem I see with this method is the fact that the SCL pulses will be delayed by a fraction of time due to the fact that they have to travel thru the '154. So, the I2C speed might have to be slowed down just a bit. Actually, it really shouldn't matter since the clock pulse will get there after the data bit...but you never know...

    Then there's the matter of the pullups that'll be needed...and the device won't be able to hold the clock to slow it down...
    Last edited by skimask; - 10th June 2008 at 20:32.

Similar Threads

  1. I2C Master/Slave 16F88/16F767 working code
    By DanPBP in forum Code Examples
    Replies: 2
    Last Post: - 23rd October 2012, 23:31
  2. HARDWARE I2C SAMPLE CODE question
    By Michael Wakileh in forum Code Examples
    Replies: 2
    Last Post: - 16th June 2009, 22:07
  3. I2C Master Slave issues.
    By cpayne in forum mel PIC BASIC Pro
    Replies: 9
    Last Post: - 29th March 2008, 20:33
  4. Microcontroller with 2 way paging application problem
    By oneohthree in forum mel PIC BASIC Pro
    Replies: 30
    Last Post: - 20th April 2007, 18:27
  5. RF Transmitter
    By et_Fong in forum mel PIC BASIC Pro
    Replies: 4
    Last Post: - 27th October 2005, 17:34

Members who have read this thread : 1

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts