- Silicon Labs Community
- Welcome and Announcements
- Silicon Labs Knowledge Base
- 8-bit MCU
- 32-bit MCU
- Bluetooth / Wi-Fi
- Other Products Category
- Optical/RH/Temp Sensor
- Other Products
- Hardware and Software Tools
- Simplicity Studio and Software
- General Discussions and Suggestions
- Chinese Forum
- Software Libraries
- Development Kits
- Reference Designs
- Third Party Tools
- White Papers
- Official Blog of Silicon Labs
- Chinese Blog
03-13-2017 07:13 AM
As the title states I would like to ask advice on workarounds for the following C8051F58x erratum on cold FLASH programming:
"For –I (Industrial Grade) parts, a cold temperature programming deficiency may be present on weak Flash memory bits. There is no problem programming the Flash at 0°C and above. There is only a potential Flash read issue if programming was done at cold temperature below 0°C. If programmed at 0°C or higher, there is no problem reading Flash across the entire temperature range of -40°C to 125°C. This errata does not apply to –A (Automotive Grade) devices."
Our application has an extended operating range down to -20°C and employs in-system programming for EEPROM emulation and bootloader firmware upgrades. The obvious solution would be to switch to the C8051F580-AQ part. Alas old hardware is still in the field must be supported, plus these seem parts not to be in stock or easily sourced.
For bootloader usage a temperature limitation is acceptable. However are there any recommendation on the margin to use on the die temperature sensor measurements to safely permit programming?
The EEPROM is more difficult as, ideally, the state should be continually tracked and recovered regardless of operating mode. However the blocks are verified via checksums and extensively wear-leveled, and so writing multiple records in the hopes of one being recoverable might be a viable strategy. Is an estimate on the probability of weak bits to base this decision on?
So far we have not been able to induce the issue in our (admittedly limited) testing.
Has anyone else here had to deal with this gotcha late in the development cycle?
Thank you in advance for your assistance.
03-14-2017 03:29 PM
How are you calibrating the temperature sensor of the part? This method will determine how much of a margin you will need when programming the devices. As long as you are sure you are over 0 degrees C you are ok. So you should be at least the margin of error above zero.
03-14-2017 04:26 PM
Hello Joe and thank you for your intere
Regrettably there is no calibration data available for the units already deployed as this limitation was discovered rather late in the development cycle. We could introduce a single-point calibration at room temperature of the temperature and reference voltage if warranted, but accurate internal die measurement and multi-point temperature calibration is likely prohibitively expensive.
The datasheet specifies the offset error in terms of a deviation from the mean but I was sort of hoping there might be a tighter bound available, perhaps as part of a recommended workaround. Otherwise I guess a "high" confidence threshold exceeds 10 degrees.
Mostly, though, I'd be interested a rough estimate of the probability of failure to base the risk assessment on. If the failure rate is rather low or inversely proportional to the temperature then this might not be a significant issue.