Latest FM Code with EEPROM
Dependencies: FreescaleIAP SimpleDMA eeprom mbed-rtos mbed
Fork of CDMS_QM_03MAR2017_Flash_with_obsrs by
EEPROM.h@356:4484bf39526f, 2018-02-24 (annotated)
- Committer:
- samp1234
- Date:
- Sat Feb 24 10:28:56 2018 +0000
- Revision:
- 356:4484bf39526f
EEPROM FM
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
samp1234 | 356:4484bf39526f | 1 | #ifndef EEPROM_H |
samp1234 | 356:4484bf39526f | 2 | #define EEPROM_H |
samp1234 | 356:4484bf39526f | 3 | |
samp1234 | 356:4484bf39526f | 4 | #define ee_scl PIN86 |
samp1234 | 356:4484bf39526f | 5 | #define ee_sda PIN87 |
samp1234 | 356:4484bf39526f | 6 | #define check 10 |
samp1234 | 356:4484bf39526f | 7 | |
samp1234 | 356:4484bf39526f | 8 | EEPROM e2prom(ee_sda, ee_scl, 0, EEPROM::T24C512); |
samp1234 | 356:4484bf39526f | 9 | int32_t INITIAL_EEPROM[32] = {1,1,1,1,1,0,0,0,0,35001,0xff,300,85,20,20,3,80000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; |
samp1234 | 356:4484bf39526f | 10 | uint32_t flasharray_thres[32]; |
samp1234 | 356:4484bf39526f | 11 | |
samp1234 | 356:4484bf39526f | 12 | void WRITE_TO_EEPROM(uint32_t address, int32_t data_block) |
samp1234 | 356:4484bf39526f | 13 | { |
samp1234 | 356:4484bf39526f | 14 | e2prom.write(address*4+10,data_block); |
samp1234 | 356:4484bf39526f | 15 | } |
samp1234 | 356:4484bf39526f | 16 | |
samp1234 | 356:4484bf39526f | 17 | void THRES_WRITE_TO_EEPROM(uint16_t mid, uint32_t* thres_data) |
samp1234 | 356:4484bf39526f | 18 | { |
samp1234 | 356:4484bf39526f | 19 | int8_t data[128]; |
samp1234 | 356:4484bf39526f | 20 | memcpy(data,&thres_data,128); |
samp1234 | 356:4484bf39526f | 21 | |
samp1234 | 356:4484bf39526f | 22 | if(mid <11 & mid >1) |
samp1234 | 356:4484bf39526f | 23 | { |
samp1234 | 356:4484bf39526f | 24 | e2prom.write((uint32_t)(mid-1)*128,data,128); |
samp1234 | 356:4484bf39526f | 25 | } |
samp1234 | 356:4484bf39526f | 26 | } |
samp1234 | 356:4484bf39526f | 27 | |
samp1234 | 356:4484bf39526f | 28 | void THRES_READ_FROM_EEPROM(uint16_t mid, uint32_t* thres_data) |
samp1234 | 356:4484bf39526f | 29 | { |
samp1234 | 356:4484bf39526f | 30 | int8_t data[128]; |
samp1234 | 356:4484bf39526f | 31 | if(mid <11 & mid >1) |
samp1234 | 356:4484bf39526f | 32 | { |
samp1234 | 356:4484bf39526f | 33 | e2prom.read((uint32_t)(mid-1)*128,data,128); |
samp1234 | 356:4484bf39526f | 34 | memcpy(&thres_data,data,128); |
samp1234 | 356:4484bf39526f | 35 | } |
samp1234 | 356:4484bf39526f | 36 | } |
samp1234 | 356:4484bf39526f | 37 | |
samp1234 | 356:4484bf39526f | 38 | uint32_t READ_FROM_EERPOM(uint32_t address) |
samp1234 | 356:4484bf39526f | 39 | { |
samp1234 | 356:4484bf39526f | 40 | int32_t data; |
samp1234 | 356:4484bf39526f | 41 | e2prom.read(address*4+10, data); |
samp1234 | 356:4484bf39526f | 42 | return (uint32_t)data; |
samp1234 | 356:4484bf39526f | 43 | } |
samp1234 | 356:4484bf39526f | 44 | |
samp1234 | 356:4484bf39526f | 45 | void INIT_EEPROM() |
samp1234 | 356:4484bf39526f | 46 | { |
samp1234 | 356:4484bf39526f | 47 | int32_t test_buffer; |
samp1234 | 356:4484bf39526f | 48 | e2prom.ready(); |
samp1234 | 356:4484bf39526f | 49 | e2prom.read(2,test_buffer); |
samp1234 | 356:4484bf39526f | 50 | if(test_buffer == 0) |
samp1234 | 356:4484bf39526f | 51 | { |
samp1234 | 356:4484bf39526f | 52 | for(int i=0;i<32;i++) |
samp1234 | 356:4484bf39526f | 53 | WRITE_TO_EEPROM( i, INITIAL_EEPROM[i]); |
samp1234 | 356:4484bf39526f | 54 | |
samp1234 | 356:4484bf39526f | 55 | e2prom.write(2,1); |
samp1234 | 356:4484bf39526f | 56 | gPC.printf("starting flash"); |
samp1234 | 356:4484bf39526f | 57 | } |
samp1234 | 356:4484bf39526f | 58 | |
samp1234 | 356:4484bf39526f | 59 | gPC.printf("I happen only once right??\n"); |
samp1234 | 356:4484bf39526f | 60 | EPS_V_A_EN_STATUS = READ_FROM_EERPOM(0); |
samp1234 | 356:4484bf39526f | 61 | BAE_STATUS = READ_FROM_EERPOM(1); |
samp1234 | 356:4484bf39526f | 62 | SD_STATUS = READ_FROM_EERPOM(2); |
samp1234 | 356:4484bf39526f | 63 | PL_STATUS = READ_FROM_EERPOM(3); |
samp1234 | 356:4484bf39526f | 64 | PL_BEE_SW_STATUS = READ_FROM_EERPOM(4); |
samp1234 | 356:4484bf39526f | 65 | RTC_INIT_STATUS = READ_FROM_EERPOM(5); |
samp1234 | 356:4484bf39526f | 66 | CDMS_RTC_DISABLE = READ_FROM_EERPOM(6); |
samp1234 | 356:4484bf39526f | 67 | CDMS_RESET_COUNTER = READ_FROM_EERPOM(7); |
samp1234 | 356:4484bf39526f | 68 | TIME_LATEST_CDSMS_RESET = READ_FROM_EERPOM(8); |
samp1234 | 356:4484bf39526f | 69 | COM_TC_BYTES_LIMIT = READ_FROM_EERPOM(9); |
samp1234 | 356:4484bf39526f | 70 | COM_RX_CURRENT_MAX = READ_FROM_EERPOM(10); |
samp1234 | 356:4484bf39526f | 71 | COM_RX_DISABLE_TIMEOUT = READ_FROM_EERPOM(11); |
samp1234 | 356:4484bf39526f | 72 | COM_PA_TMP_HIGH = READ_FROM_EERPOM(12); |
samp1234 | 356:4484bf39526f | 73 | COM_PA_RECOVERY_TIMEOUT = READ_FROM_EERPOM(13); |
samp1234 | 356:4484bf39526f | 74 | COM_SESSION_TIMEOUT = READ_FROM_EERPOM(14); |
samp1234 | 356:4484bf39526f | 75 | COM_RSSI_MIN = READ_FROM_EERPOM(15); |
samp1234 | 356:4484bf39526f | 76 | SD_LIB_BLK_CURRENT = READ_FROM_EERPOM(16); |
samp1234 | 356:4484bf39526f | 77 | } |
samp1234 | 356:4484bf39526f | 78 | |
samp1234 | 356:4484bf39526f | 79 | #endif |