FRAM Dump Utility

Dependencies:   MB85RSxx_SPI mbed

FRAM Dump Utility

This utility is for a one of the memory dump tool what SPI based on FRAM(MB85RS64).

You can use terminal application as UART port with your Mbed.

Here is shown example of the FRAM memory dump. You can modify the address range in source code. The sample code is shown address from 0 to 0x9F.

Please try it!

--------------------

FRAM Dump Utility

FRAM Status 0

* FRAM Read Operation *

Address :00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

Address 0000 :DD C8 00 C0 AA 00 00 00 CC 00 00 00 00 00 00 00

Address 0010 :55 7D 76 65 72 61 67 65 73 22 3A 31 32 34 35 37

Address 0020 :31 38 7D 00 00 00 00 00 00 00 00 00 00 00 00 00

Address 0030 :00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Address 0040 :00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Address 0050 :00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Address 0060 :00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Address 0070 :00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Address 0080 :00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Address 0090 :00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

FRAM Dump Done

Committer:
APS_Lab
Date:
Thu Jun 22 08:34:50 2017 +0000
Revision:
0:97181dcb9c01
Child:
1:10e313f8fd57
FRAM Dump v1.0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
APS_Lab 0:97181dcb9c01 1 #include "mbed.h"
APS_Lab 0:97181dcb9c01 2 #include "MB85RSxx_SPI.h"
APS_Lab 0:97181dcb9c01 3
APS_Lab 0:97181dcb9c01 4 MB85RSxx_SPI fram(D4, D5, D3, D6);
APS_Lab 0:97181dcb9c01 5
APS_Lab 0:97181dcb9c01 6 int main() {
APS_Lab 0:97181dcb9c01 7 char r_data=0, data=0;
APS_Lab 0:97181dcb9c01 8 int cnt, addr, idx, cnt1, idx1;
APS_Lab 0:97181dcb9c01 9
APS_Lab 0:97181dcb9c01 10 printf("\nFRAM Dump Utility\n");
APS_Lab 0:97181dcb9c01 11 fram.Init();
APS_Lab 0:97181dcb9c01 12
APS_Lab 0:97181dcb9c01 13 addr=0;
APS_Lab 0:97181dcb9c01 14
APS_Lab 0:97181dcb9c01 15 //printf("\n*** FRAM Write Operation ***\n");
APS_Lab 0:97181dcb9c01 16 //printf("Address :00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F\n");
APS_Lab 0:97181dcb9c01 17 //for(idx=0; idx < 512; idx++)
APS_Lab 0:97181dcb9c01 18 //{
APS_Lab 0:97181dcb9c01 19 //printf("Address %03d :", idx);
APS_Lab 0:97181dcb9c01 20 // for(cnt=0; cnt< 16;cnt++)
APS_Lab 0:97181dcb9c01 21 // {
APS_Lab 0:97181dcb9c01 22 // fram.write(addr, data);
APS_Lab 0:97181dcb9c01 23 //printf("%04X -> %02X \n", addr+cnt+idx, data);
APS_Lab 0:97181dcb9c01 24 // addr++;
APS_Lab 0:97181dcb9c01 25 // data++;
APS_Lab 0:97181dcb9c01 26 // }
APS_Lab 0:97181dcb9c01 27 //printf("\n");
APS_Lab 0:97181dcb9c01 28 //}
APS_Lab 0:97181dcb9c01 29 printf("\n*** FRAM Read Operation ***\n");
APS_Lab 0:97181dcb9c01 30 printf("Address :00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F\n");
APS_Lab 0:97181dcb9c01 31 addr=0;
APS_Lab 0:97181dcb9c01 32 for(idx1=0; idx1 < 512; idx1++)
APS_Lab 0:97181dcb9c01 33 {
APS_Lab 0:97181dcb9c01 34 printf("Address %04d :", idx1*10);
APS_Lab 0:97181dcb9c01 35 for(cnt1=0; cnt1< 16;cnt1++)
APS_Lab 0:97181dcb9c01 36 {
APS_Lab 0:97181dcb9c01 37 //wait_us(5);
APS_Lab 0:97181dcb9c01 38 r_data = fram.read(addr);
APS_Lab 0:97181dcb9c01 39 printf("%02X ", r_data);
APS_Lab 0:97181dcb9c01 40 addr++;
APS_Lab 0:97181dcb9c01 41 }
APS_Lab 0:97181dcb9c01 42 printf("\n");
APS_Lab 0:97181dcb9c01 43 }
APS_Lab 0:97181dcb9c01 44 printf("FRAM Dump Done\n");
APS_Lab 0:97181dcb9c01 45 }