BRT Community

Please login or register.

Login with username, password and session length
Advanced search  

News:

Welcome to the Bridgetek Community!

Please read our Welcome Note

Technical Support enquires
please contact the team
@ Bridgetek Support

Please refer to our website for detailed information on all our products - Bridgetek - Bridging Technology

Author Topic: MM900EVxB I2C eeprom question / datasheet readability  (Read 13755 times)

hdc

  • Newbie
  • *
  • Posts: 7
    • View Profile
MM900EVxB I2C eeprom question / datasheet readability
« on: February 22, 2019, 07:23:53 PM »

Greetings,

I'm attempting to port 24C1024 I2C eeprom code to the MM900EV1B (FT900Q rev C) board from the LITE board (rev B) but after getting unexpected read behavior realized that U6 is on the I2C1 bus but appears to not have any address pins.  The part number is largely unreadable on page 12 of BRT_00021 (MM900EVxB Datasheet Version 1.0) but might be a 24AA02.  Microchip's docs for this part number don't come right out with it while ON Semi's says "In  contrast  to  the  CAT24C01/24C02,  the  CAT24AA01/24AA02 have  no  external  address  pins,  and  are  therefore  suitable  in applications that require a single CAT24AA01/02 on the I2C bus."

Questions:
1) is U6 a 24AA02 part (and what is it's full part number please) used on the MM900EVxB boards
2) is there some way to use an additional I2C EEPROM with any of the MM900EVxB boards that I'm overlooking?

Feedback:
1) I notice a number of the FTDI and BridgeTek docs appear to have overly compressed images for schematics in particular.  Is it possible to get higher-resolution copies and if so how or if not would you please consider settings which improve the readability.

Thanks in advance,
David
HDC
Logged

BRT Community

  • Administrator
  • Hero Member
  • *****
  • Posts: 728
    • View Profile
Re: MM900EVxB I2C eeprom question / datasheet readability
« Reply #1 on: February 27, 2019, 04:44:32 PM »

Hello,

We already have software examples which access U6. Full Part number is 24AA02E48T.
This EEPROM stores a permanently write-protected MAC address in upper half of memory array.

Code: [Select]
/* Set up I2C */
i2cm_init(I2CM_NORMAL_SPEED, 10000);

/* Enable the I2C device... */
sys_enable(sys_device_i2c_master);

 /* Setup I2C channel 0 pins */
    /* Use sys_i2c_swop(0) to activate. */
    gpio_function(44, pad_i2c0_scl); /* I2C0_SCL */
    gpio_function(45, pad_i2c0_sda); /* I2C0_SDA */

    /* Setup I2C channel 1 pins for EEPROM */
    /* Use sys_i2c_swop(1) to activate. */
    gpio_function(46, pad_i2c1_scl); /* I2C1_SCL */
    gpio_function(47, pad_i2c1_sda); /* I2C1_SDA */

/* Set the I2C Master pins to channel 1 */
sys_i2c_swop(1);

//read MAC address and other network parameters.
my_netif.hwaddr_len = 6;
i2c_status = ee_read(NET_EEPROM_OFFSET_MACADDRESS, &my_netif.hwaddr[0], 6);
i2c_status = ee_read(0, (uint8_t *)&er, sizeof(struct eeprom_net_config));

Note: NET_EEPROM_OFFSET_MACADDRESS = 0xFA

See FT90x Ethernet Video Bridge for the source code.

Higher resolution schematics can be found here:

https://www.ftdichip.com/Support/Documents/Schematics.htm

If you have any other questions you can send us an email.

Best Regards,
BRT Community
Logged

hdc

  • Newbie
  • *
  • Posts: 7
    • View Profile
Re: MM900EVxB I2C eeprom question / datasheet readability
« Reply #2 on: February 27, 2019, 08:49:10 PM »

Thanks very much for the part number and link to the schematics.

I found the schematic for the MM900EV1A board (perfectly readable - thank-you!) but don't see a schematic for the MM900EV1B version of the board; is the only difference the FT900Q-C?

Thanks for the code reference but believe our code is working correctly; the design requires a larger eeprom. An aside, the 24C1024 we're using with the prototype requires 2-byte addressing. I had referred to the OV5640 code in the 2.5.0 Toolchain example "USBD Example UVC Webcam" for the registers/flow with 2-byte addressing.

The primary reason for switching to the MM900EV1B board was to take advantage of the built-in USB host port to help move our prototyping along quickly (no ethernet port in this design.) I simply wasn't paying enough attention to the other board differences like U6.

In the interests of time I have since removed U6 solving my immediate problem but again, interested to know if I'm overlooking some other way to add a second I2C epprom with the EV1B.

Thanks again,
David
HDC

Logged

BRT Community

  • Administrator
  • Hero Member
  • *****
  • Posts: 728
    • View Profile
Re: MM900EVxB I2C eeprom question / datasheet readability
« Reply #3 on: March 01, 2019, 04:25:31 PM »

Hello,

Yes the only difference is the IC which contains FT900 RevC.
We are working to get this corrected on the website.

The I2C1_SDA and I2C1_SCL signals are available via CN3 (GPIO47 and GPIO46 respectively).
I2C bus external pullups are also present on the hardware.

Many I2C devices (127) can be connected to the same I2C master.

Best Regards,
BRT Community
Logged

hdc

  • Newbie
  • *
  • Posts: 7
    • View Profile
Re: MM900EVxB I2C eeprom question / datasheet readability
« Reply #4 on: March 05, 2019, 07:54:22 PM »

> The I2C1_SDA and I2C1_SCL signals are available via CN3 (GPIO47 and GPIO46 respectively).
> I2C bus external pullups are also present on the hardware.
>
> Many I2C devices (127) can be connected to the same I2C master.

I'm not an I2C expert by any means.  Are you saying that it is possible to add a second EEPROM to I2C1 on the MM900EV1B?

The 24C1024 we have is connected to I2C1 via CN3 pins 25 (GPIO46) and 26 (GPIO47). Added 2 jumpers with the 24C1024 for setting A1 and A2 of the device address for the 24C1024; these can be tied to either pin 23 3V3 or pin 24 GND.  The code to set up the I2C master is essentially what you provided earlier but includes the #ifdef obviously. That is set to channel 1.

Appreciate the help with this and thank-you for the information about the A vs B board difference.

David
HDC
Logged

BRT Community

  • Administrator
  • Hero Member
  • *****
  • Posts: 728
    • View Profile
Re: MM900EVxB I2C eeprom question / datasheet readability
« Reply #5 on: March 08, 2019, 03:31:43 PM »

Hello,

Yes multiple I2C devices can be connected to an I2C master.

Actually there are two on the board that we use in our software examples, U6 and U11.

The master generates the clock and initiates communication with the slaves with a 7-bit address.

You can find more information on I2C protocol online.

I also need to comment that there have been additional changes to the MM900EV1B over the MM900EV1A on top of RevC. However these changes shouldn't affect you. I'm looking to get the schematics up on our website. They can be found on our FTP site for now:

MM900EV1B Schematic.pdf

Best Regards,
BRT Community
« Last Edit: September 13, 2019, 03:31:11 PM by BRT Community »
Logged

hdc

  • Newbie
  • *
  • Posts: 7
    • View Profile
Re: MM900EVxB I2C eeprom question / datasheet readability
« Reply #6 on: March 09, 2019, 06:18:09 AM »

Thanks for the update on the schematic.

Appreciate the support and apologies for not being clearer. My question was specifically about I2C eeproms on the same bus that share the same device address (0x1010) and one of them has no address pins and appears to listen only for the device address 0x1010 rather than being hardcoded to a particular full address. It seems like this would not be an effective configuration because both eeproms would respond but that was what I was trying to confirm/understand.

Rather than take up more of your time will take your suggestion and look elsewhere if we need more info on this.

Thanks again,
David
HDC
« Last Edit: March 10, 2019, 03:17:41 AM by hdc »
Logged

BRT Community

  • Administrator
  • Hero Member
  • *****
  • Posts: 728
    • View Profile
Re: MM900EVxB I2C eeprom question / datasheet readability
« Reply #7 on: March 12, 2019, 04:40:33 PM »

Hello,

There is nothing built into I2C to do this, normally slave devices will have some externals pins that can be set to 0 or 1 to toggle a couple of the address bits to avoid this issue. There are some manufacturers that have 4 or 5 part numbers for a part, the only difference being its I2C address.

Best Regards,
BRT Community
Logged