Accessing EEPROM user area and EEPROM checksum

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Accessing EEPROM user area and EEPROM checksum

Thilo Schulz
Hello,

at this time, libftdi does not seem to feature an explicit mechanism for
reading the user area (except directly accessing the data buffer in ftdi
context structure) and more importantly, it has no direct support for writing
to the user area with a correct EEPROM checksum.

Is there a good reason for this? One could image extending the ftdi_eeprom
structure (which is opaque to programs using the library anyways) by
appropriate fields and adding library support functions for reading and setting
of user space area data, so the API would remain fully backwards compatible.

I'd also be interested to know about the significance of the EEPROM checksum.
My FTDI chip comes preshipped with the checksum that libftdi would compute, so
where does this come from?
Does it have any  effect on chip initialisation (e.g. EEPROM checksum invalid,
chip will start up with some default values) or is it solely to satisfy user-
space programs running on the host-side?

Last but not least I wanted to point something out that might be of interest
to you.
From the discussion:
http://developer.intra2net.com/mailarchive/html/libftdi/2015/msg00010.html

> The descriptive strings begin at byte 0x1C (=28) in the EEPROMs I have at
> hand (both written with FTProg and ftdi_eeprom).

In the EEPROM from my FT232R that is factory-shipped, the descriptive strings
start at 0x18 (=24). See attached EEPROM.

--
Best regards,
Thilo Schulz

--
libftdi - see http://www.intra2net.com/en/developer/libftdi for details.
To unsubscribe send a mail to [hidden email]  

ftdi-in.eeprom (178 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Accessing EEPROM user area and EEPROM checksum

Thomas Jarosch
Hi Thilo,

On Saturday, 10. October 2015 13:30:22 Thilo Schulz wrote:

> at this time, libftdi does not seem to feature an explicit mechanism for
> reading the user area (except directly accessing the data buffer in ftdi
> context structure) and more importantly, it has no direct support for
> writing to the user area with a correct EEPROM checksum.
>
> Is there a good reason for this? One could image extending the ftdi_eeprom
> structure (which is opaque to programs using the library anyways) by
> appropriate fields and adding library support functions for reading and
> setting of user space area data, so the API would remain fully backwards
> compatible.

so far probably nobody needed to really store data there.

If you need access to it, providing an API that deals
with the opaque ftdi_eeprom structure is a good idea.

Backwards compatibility is king :)

> I'd also be interested to know about the significance of the EEPROM
> checksum. My FTDI chip comes preshipped with the checksum that libftdi
> would compute, so where does this come from?
> Does it have any  effect on chip initialisation (e.g. EEPROM checksum
> invalid, chip will start up with some default values) or is it solely to
> satisfy user- space programs running on the host-side?

back in the days, the FT245BM type chips ignored the eeprom
content when the checksum was wrong. I guess never chips behave the same.
If the checksum does not match -> use default values.

> Last but not least I wanted to point something out that might be of
> interest to you.
> From the discussion:
> http://developer.intra2net.com/mailarchive/html/libftdi/2015/msg00010.html
> > The descriptive strings begin at byte 0x1C (=28) in the EEPROMs I have
> > at
> > hand (both written with FTProg and ftdi_eeprom).
>
> In the EEPROM from my FT232R that is factory-shipped, the descriptive
> strings start at 0x18 (=24). See attached EEPROM.

sorry, can't investigate atm. Currently in a "release cycle" at $dayjob.

Cheers,
Thomas


--
libftdi - see http://www.intra2net.com/en/developer/libftdi for details.
To unsubscribe send a mail to [hidden email]  

Loading...