Hello,
ok another wired problem with me and my MSP430.
I want to write float and long values into the internal Flas of my MSP430F5529.
I chose to write and read from InfoB memory since I do not have to unlock it like InfoA and its size should fit my needs, as I only want to store like 10 values:
InfoB has 128Bytes, and I am right now using 9* 4 Bytes = 36 Bytes in use.
Now following issue, I am using the normal standart Flash read write routines as proposed int the code examples and as described in the FamilyUser Guide for Flash memory:
void wrt_long_InfoB_uint32( unsigned long *uint32_Flash_ptrInfoB, unsigned long uint32_temp) { FCTL3 = FWKEY; // Clear Lock bit FCTL1 = FWKEY+BLKWRT; // Enable long-word write // FCTL1 = FWKEY+WRT; // Enable word write // *Flash_ptrInfoB = f32_KalibFaktor; // Write a word to flas *uint32_Flash_ptrInfoB = uint32_temp; FCTL1 = FWKEY; // Clear WRT bit FCTL3 = FWKEY+LOCK; // Set LOCK bit }
this is my long routine i got another one for floats.
And there is the superstrange problem I need Your help with:
InfoB goes from 0x1900 till 0x197F
Now my routine works perfectly from 0x1900 till approx. 0x1921 and in addresses higher than that it will stop working always gives back 0xFFFF as if the memory never was written to , or always is erased.
I did now try to fix this for about 2 days, I am getting nearer, but I think I I cannot solve this last bit, workaround would be to use InfoC also for the values I would normally want to store after address 0x1921.
Any known issues with the silicon of my version, I really have no clue, so I guess it could be a hardware issue of the MSP430F5529, since my programming routines are simply copy and pastet for the different addresses and ones do work and others dont...
Could need your help, thanks in advance,
seb