Brand new FT93C66A EEPROM fail - Page 1
Forum section: electronics / general

author: jesuscf
author_rank: Frequent Contributor
timestamp: August 30, 2017, 09:12:34 pm
content: I recently bought from DigiKey a lot of 250 FT93C66A EEPROMs made by a company called Fremont Micro Devices. Since this is a brand I never used before I played it safe an tested 50 of them. Unfortunately 4 of memories had locations with defective bits/errors. One has over 200 locations with errors, one has a 14 locations with errors, one ha 5 locations with errors, and one has one location with errors. The other 46 didn't show any errors. Furthermore, the number of errors is temperature dependent. If I cool down the defective memories using one of those freeze spays the number of errors diminishes significantly or completely disappears. Once the temperature returns to about 22C the errors reappear. The memories are specified for the temperature range -40C to 80C . Does anybody have similar experiences with EEPROMs? What is a brand of reliable 93C66 EEPROMs you'll recommend?

author: amyk
author_rank: Super Contributor
timestamp: August 30, 2017, 11:06:26 pm
content: What voltage did you write/read them at? Also, what type of errors? I.e. were they all stuck at 1 or 0, random and unresponsive to erase, etc.?Note that thedatasheethas this restriction on the WRAL/ERAL commands:Quote"Fremont Micro Devices" sounds American, but is actually Chinese...

author: jesuscf
author_rank: Frequent Contributor
timestamp: August 30, 2017, 11:45:53 pm
content: Quote from: amyk on August 30, 2017, 11:06:26 pmVCC=4.95V.Testing every location with predetermined patterns indicate what locations failed (numbers are hex):Code:0x55 failed at: 1b90xaa failed at: 08f 19a0xf0 failed at: 1b90x5a failed at: 08f0x02 failed at: 08f0x08 failed at: 19a0x10 failed at: 056 0f0 1b90x20 failed at: 1340xf7 failed at: 1b9There were 12 ERROR(s).When I test all possible values for one of the locations above:Code:Location to test: 1b9000: 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f010: 00 01 02 03 04 05 06 07 18 19 1a 1b 1c 1d 1e 1f020: 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f030: 20 21 22 23 24 25 26 27 38 39 3a 3b 3c 3d 3e 3f040: 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f050: 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f060: 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f070: 70 71 72 73 74 75 76 77 78 79 7a 7b 7c 7d 7e 7f080: 80 81 82 83 84 85 86 87 88 89 8a 8b 8c 8d 8e 8f090: 80 81 82 83 84 85 86 87 98 99 9a 9b 9c 9d 9e 9f0a0: a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 aa ab ac ad ae af0b0: a0 a1 a2 a3 a4 a5 a6 a7 b8 b9 ba bb bc bd be bf0c0: c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 ca cb cc cd ce cf0d0: d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 da db dc dd de df0e0: e0 e1 e2 e3 e4 e5 e6 e7 e8 e9 ea eb ec ed ee ef0f0: f0 f1 f2 f3 f4 f5 f6 e7 f8 f9 fa fb fc fd fe ffThere were 33 error(s).For example, 0x10 was written to location 0x1b9, but 0x00 was read back. You may think the 5th bit is stuck to zero, but when 0x18 is written, is correctly read back as 0x18.

author: Niklas
author_rank: Frequent Contributor
timestamp: August 31, 2017, 08:35:23 am
content: Have you checked the actual timing in the circuit for the read and write? Signal quality on the I2C interface?

author: wraper
author_rank: Unknown
timestamp: August 31, 2017, 09:10:38 am
content: Quote from: Niklas on August 31, 2017, 08:35:23 amWrite is self timed.

author: Rerouter
author_rank: Super Contributor
timestamp: August 31, 2017, 09:34:05 am
content: As for brands, Automotive love microchip and atmel eeproms, (now the same company),As for your actual errors, Its almost implying an error in your code, or your expectation of how the device expects data,Most of these eeproms can operate in either an 8 bit or 16 bit addressing mode. This doesnt seem to be the case but i would check it,Most of your weirdness is that for lines 0-1, 2-3, and 8-9, A-B your getting a half line error, are you 100% certain you dont have an error on certain values in how your addressing the memory,

author: jesuscf
author_rank: Frequent Contributor
timestamp: August 31, 2017, 01:52:22 pm
content: Quote from: Niklas on August 31, 2017, 08:35:23 amThese memories use a 3-wire SPI interface. The signals look clean and well within specs. As per write timing I check the DO pin as indicated in the manual. After a write or erase the DO pin is held low until the operation completes. According to the manual it takes 3 to 10 ms.

author: jesuscf
author_rank: Frequent Contributor
timestamp: August 31, 2017, 02:09:16 pm
content: Quote from: Rerouter on August 31, 2017, 09:34:05 amI went for the cheapest memory. In retrospective I should have ordered Microchip. Now I am tempted to order other manufacturer memories and perform the same tests.These memories have a "WRITE ALL" instruction: "The Write All (WRAL) instruction programs all memory locations with the data patterns specified in the instruction." The failing locations are exposed both with the WRAL command or the individual location "WRITE" instruction. I think that discards an addressing problem.The EEPROM has a ORG pin used to select 8-bit or 16-bit addressing. I have that pin connected to GND for 8-bit interfacing. I also checked the READ instruction in a failing location with the oscilloscope. The data my test program reports is effectively what is coming out of the EEPROM.Then there is the temperature test. If I cool down a failing memory, the errors go away.

author: dmills
author_rank: Super Contributor
timestamp: August 31, 2017, 05:01:45 pm
content: One silly thing to check which has had me chasing my tail before now is to make good and damn sure that the SPI clock and read edge settings are correct, there are 4 combinations and sometimes you get a part that sort of works with the one that has clock and data updating on the wrong edge, but it is as fragile as anything you will ever see.Fixing the settings in the SPI master to resolve this makes the thing totally reliable.A careful look at the datasheets and a scope trace will reveal this at least in one direction, but the read edge is usually a case of read the processor manual carefully and curse a lot (It is often given in terms of 'active to idle or vice versa' rather then high and low, so the edge also depends on the clock polarity).

author: Niklas
author_rank: Frequent Contributor
timestamp: August 31, 2017, 07:40:12 pm
content: Quote from: jesuscf on August 31, 2017, 01:52:22 pmYes, that is true, my bad. I checked the datasheet on the phone on the way to the work earlier today and I saw SCL mentioned.

author: Buriedcode
author_rank: Super Contributor
timestamp: September 01, 2017, 03:57:07 pm
content: It isn't I2C, or SPI, it is microwire. I had to type that because I didn't see it mentioned in any of the posts, so whilst it may be obvious to everyone.. occasionally people just 'assume' and perpetuate problems.From memory, mode 0,0 (or just 'mode 0') SPI can be used for microwire, but of course requires manual CS toggling for the start condition. It runs at a slower clock than most 25xx SPI series EEPROMs can use. Poor documentation, but nice scope traces of what should happen:http://ww1.microchip.com/downloads/en/AppNotes/00975A.pdfOf course, it could well be dodgy memory - I'm not suggesting that its impossible, just that software/hardware bugs/glitches are generally more likely than bad silicon.

author: XFDDesign
author_rank: Frequent Contributor
timestamp: September 01, 2017, 05:23:40 pm
content: I would contact Digikey and reject the material as not within compliance of your company's quality policy. Ask for credit, and buy the Microchip parts.

author: jesuscf
author_rank: Frequent Contributor
timestamp: September 01, 2017, 09:59:36 pm
content: Quote from: Buriedcode on September 01, 2017, 03:57:07 pmAttached is a logic analyzer capture of a failing location. The top of the figure shows the signals when writing 0x10 to location 0x1b9. The bottom shows the signals when reading from the just written location 0x1b9 showing 0x00 as the returned value.

author: hcglitte
author_rank: Regular Contributor
timestamp: February 08, 2018, 05:40:25 pm
content: Hi,Did you come to a conclusion regarding the memory chip?

author: jesuscf
author_rank: Frequent Contributor
timestamp: February 08, 2018, 06:59:44 pm
content: Quote from: hcglitte on February 08, 2018, 05:40:25 pmYes: dodgy parts. The only way I can make a failing memory location in a FT93C66A (manufactured by Fremont Micro Devices) work is by cooling the IC using an upside down electronics duster. Also, the problem seems to happen when reading from the memory. For instance, if the memory is cooled down, and a write operation is performed to a failing location it writes and reads correctly. Once the memory warms up, a read from the failing location returns an incorrect value. Similarly, if the memory is not cooled down, writing and reading from a failing location results in an incorrect returned value. Then, if the memory is cooled down, reading from the just written failing location returns the correct value.I also ordered 100 93C66C-I/P EEPROMS from Digi-Key manufactured by Microchip. I tested all the 100 memories. All of them passed my tests.

author: hcglitte
author_rank: Regular Contributor
timestamp: February 08, 2018, 07:18:59 pm
content: Ok, thank you for the update! I was thinking of moving from Microchip to Fremont, but I will certainly not - even though it's a FLASH device I am using...