Hi,
I am working with EEPROM on S32K144 board , I am using BCC API's ( BCC_EEPROM Write and Read). Those functions support to read/write (00 to 7FH) a byte data only. How to access the available pages in eeprom. Is it possible to access the pages using this BCC_EEPROM functions.
Please help me to sort out if this issue ASAP.
Below are the functions from latest BCC driver code.
bcc_status_t BCC_EEPROM_Write(bcc_drv_config_t* const drvConfig, bcc_cid_t cid,uint8_t addr, uint8_t data)
bcc_status_t BCC_EEPROM_Read(bcc_drv_config_t* const drvConfig, bcc_cid_t cid,
uint8_t addr, uint8_t* const data)
Hi Vardhan,
please confirm, which of our BCC you are using. MC33771A, MC33772B, MC33771B, MC33771C, MC33772C? So I will know which documents I need to check.
Thank you.
With Best Regards,
Jozef
Thanks Jozefkozon,
We are using BCC MC33771C.
Hi Vardhan,
I have checked the MC33771C datasheet. Unfortunately MC33771C and our other BCCs are not designed to support MCU's EEPROM through SPI or TPL interface. It is designed to use an external EEPROM through the I2C interface.
Please see below answers from application engineers regarding EEPROM use with our BCCs from older cases.
1. Customer can use a 1K EEPROM as 24LC01B from Microchip; The MCU can write and read data from the EEPROM but through specific BCC registers. The EEPROM is intended to be used to store calibration data; If the customer wants to store other data, he should avoid to store $CB at adress 00h of the EEPROM. He has to read carefully the datasheet
2. The EEPROM present flag indicates that a Programmed EEPROM was detected. Programmed means, at the $00 EEPROM-address there is the correct key value, namely $CB hexadecimal. In the absence of correct key, the EEPROM may be written/read but the flag remains at logic zero.
Please, check whether the customer has properly programmed the EEPROM key.
3. If I attach an EEPROM but don't put the correct key byte can I still access it using the EEPROM_CTL register?
>> No.
If no EEPROM is attached then the mirror memory is loaded from the fuse memory,
If an EEPROM is attached then the mirror memory is loaded from the EEPROM.
What happens if the EEPROM ECC check fails?
>> There is no EEPROM ECC, unless you meant the copy of the ECC accompanying the data, which are considered in much the same way as any other data (the EEPROM cannot be aware that those are special bits). If you meant that, then after the uploading to the mirror a problem would be detected and the user would be alerted by the FUSE_MIRROR_CNTL[SEC_ERR_FLT] bit and the FAULT2_STATUS[DED_ERR_FLT] bit. Note that the ECC downloaded to the mirror protects all user data, included itself. If a double error is detected, the pack controller shall bring the system to the safe state.
Is the mirror memory then loaded from the fuse memory?
>> No. The content of the fuse memory is reloaded only in case of aborted upload procedure due to an I2C error.
If so, can I use this to force loading from fuse memory but have access to the EEPROM (since it was recognized).
>> No, it is not so.
The description of the fuse memory is a bit confusing. As read it implies that the contents are not byte aligned. Is this true?
>> Well, the EEPROM is thought being organized as an array of bytes. In contrast, the mirror is organized as an array of 16-bits words.
Is there a memory map of the fuse memory and (imaged EEPROM)?
>> What do you mean?
What is the first or lowest address available for generic data use?
>> It is 01x, the address of the 1st byte.
What is minimum and maximum size of EEPROM supported?
>> 16 bytes (min) to 128 bytes (max).
Does NXP suggest/have a recommended device?
>> In NXP EVB there is the 24AA00oT 16 bytes EEPROM. I would not state it is NXP recommendation, it is just an example.
With Best Regards,
Jozef