diff options
| author | Avi Levkovich <avi@twine-s.com> | 2020-12-23 09:34:15 +0200 |
|---|---|---|
| committer | Avi Levkovich <avi@twine-s.com> | 2020-12-23 09:34:15 +0200 |
| commit | 7769a81204af381152824b3a3b30aaaddf76aaca (patch) | |
| tree | b946489e7e2b5d231612a9322c3e6c407a6bf4cd /Software/Embedded_SW/Embedded/Drivers | |
| parent | eb434d3a2db37d47df2d29e597e92900fdf84af8 (diff) | |
| parent | 953cb38772543e941c9b115a787bc2bec2187ee1 (diff) | |
| download | Tango-7769a81204af381152824b3a3b30aaaddf76aaca.tar.gz Tango-7769a81204af381152824b3a3b30aaaddf76aaca.zip | |
Merge branch 'master' of https://twinetfs.visualstudio.com/Tango/_git/Tango
Diffstat (limited to 'Software/Embedded_SW/Embedded/Drivers')
6 files changed, 99 insertions, 36 deletions
diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/RFID_NFC/NFC.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/RFID_NFC/NFC.c index 33f154492..1e989d4d1 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/RFID_NFC/NFC.c +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/RFID_NFC/NFC.c @@ -118,15 +118,14 @@ RFID_RETURN_CODE RFID_Status = 0; uint8_t Connect_to_RFID_Reder(uint8_t readerID)//2 { RFID_RETURN_CODE RFIDRetValue; - bool isTagValid; uint8_t Status = OK; - - +/* + bool isTagValid; uint32_t newPwd; uint32_t newPACK; uint32_t counter; - int PwdRetVal; +*/ static uint32_t nop = 0; RFID_StartDiscovery(readerID); @@ -187,7 +186,7 @@ NFC_Tag NFC_Tag_U[Max_Readers];//read with updates RFID_RETURN_CODE TagWriteData(RFID_READER_ID readerID) { - uint8_t index = 0; + //uint8_t index = 0; uint32_t dummy = 0; uint32_t Tuint32 = 0; //uint16_t Tuint16 = 0; @@ -375,7 +374,7 @@ RFID_RETURN_CODE TagWriteData(RFID_READER_ID readerID) RFIDRetValue = WriteValue( readerID, &tagInfo, tagMemory, 31, Tuint32 ); - return SUCCESS; + return RFIDRetValue; } diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/RFID_NFC/logi-tag/LT_RFID.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/RFID_NFC/logi-tag/LT_RFID.c index 7035d172e..6d6425172 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/RFID_NFC/logi-tag/LT_RFID.c +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/RFID_NFC/logi-tag/LT_RFID.c @@ -1209,13 +1209,13 @@ uint32_t crc_ccitt_update(unsigned char * buf, int len) } -void RFID_Test() +RFID_RETURN_CODE RFID_Test() { uint8_t i, readerID = 1; NxpNci_RfIntf_t tagInfo; -uint8_t addressBlock = 0xE3; // NTAG216 - User memory blocks: 0x04-0xE1 = 222 blocks = 888 bytes -uint8_t tagId[]= {0}; +//uint8_t addressBlock = 0xE3; // NTAG216 - User memory blocks: 0x04-0xE1 = 222 blocks = 888 bytes +//uint8_t tagId[]= {0}; uint8_t Serial[] = {'1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G'}; uint8_t factoryID[] = { '1', '2', '3'}; uint16_t fillingSystem = 55; @@ -1250,12 +1250,12 @@ uint8_t uid[7] = {0}; uint8_t hashValue[16] = {0}; uint8_t newPACK[] = {0x11, 0x22}; uint8_t newPwd[] = {0xFF, 0xFF, 0xFF, 0xFF}; -uint8_t startingBlock = 0x04; +/*uint8_t startingBlock = 0x04; uint8_t pwdAddr = 0xE5; -uint8_t tagMemory[1024]; uint16_t succeededWriteSize = 0; uint16_t succeededReadSize = 0; -bool firstTime = true; +bool firstTime = true;*/ +uint8_t tagMemory[1024]; uint32_t dummy = 0; RFID_RETURN_CODE RFIDRetValue; @@ -1421,6 +1421,6 @@ while(1) } //---------------------------------------------------------------------------- - + return RFIDRetValue; } diff --git a/Software/Embedded_SW/Embedded/Drivers/flash_ram/FlashProgram.c b/Software/Embedded_SW/Embedded/Drivers/flash_ram/FlashProgram.c index 10f65db1d..c757c3a3b 100644 --- a/Software/Embedded_SW/Embedded/Drivers/flash_ram/FlashProgram.c +++ b/Software/Embedded_SW/Embedded/Drivers/flash_ram/FlashProgram.c @@ -132,18 +132,16 @@ uint32_t ReadAppAndProgram(uint32_t ui32FlashStart,uint32_t ui32FileSize,void* b return(1); } int base_flashErased = false; -uint32_t EraseFlashSection(uint32_t ui32FlashStart) +uint32_t EraseFlashSection(void) { - volatile uint32_t ui32Idx = ui32FlashStart; + volatile uint32_t ui32Idx = FLASH_RAM_BASE; uint32_t status; - if (ui32FlashStart<GENHWCFG_SECTION_FLASH) - { - if (base_flashErased == true) - return ERROR; - else - base_flashErased = true; //once in a run - } + if (base_flashErased == true) + return WARNING; + else + base_flashErased = true; //once in a run + #ifdef FLASH_DEBUG Address[RxIndex] = ui32FlashStart; Size[RxIndex] = ui32FileSize; @@ -152,9 +150,27 @@ uint32_t EraseFlashSection(uint32_t ui32FlashStart) RxIndex = 0; #endif status = FlashErase(ui32Idx); + //FlashErase returns 0 or -1 return status; } +/*void FlashTest(void) +{ + int i; + uint32_t stack[0x200]; + uint32_t offset = 0; + + for (i = 0; i < 0x200; i++) + stack[i] = i; + + while (offset < FLASH_SIZE) + { + ReadAppAndProgram(FLASH_RAM_BASE+offset,0x200,stack); + offset+=0x200; + } + EraseFlashSection(); + +}*/ //Each word may not be subject to more than a specific number of programming cycles before an //erase cycle is required. In other words, for any given word, FlashProgram can only be called //twice before FlashErase is called. diff --git a/Software/Embedded_SW/Embedded/Drivers/flash_ram/FlashProgram.h b/Software/Embedded_SW/Embedded/Drivers/flash_ram/FlashProgram.h index 7da9f92a7..ab2c87acc 100644 --- a/Software/Embedded_SW/Embedded/Drivers/flash_ram/FlashProgram.h +++ b/Software/Embedded_SW/Embedded/Drivers/flash_ram/FlashProgram.h @@ -8,23 +8,23 @@ #ifndef DRIVERS_FLASH_RAM_FLASHPROGRAM_H_ #define DRIVERS_FLASH_RAM_FLASHPROGRAM_H_ -#define FLASH_RAM_BASE 0x000F8000 +#define FLASH_RAM_BASE 0x000FC000 -#define EMBEDDED_PARAMETERS_SECTION_FLASH (FLASH_RAM_BASE + 0X0000 ) //512 -#define PROCESS_PARAMETERS_SECTION_FLASH (FLASH_RAM_BASE + 0X0000 )//512 -#define DANCERS_SECTION_FLASH (FLASH_RAM_BASE + 0X0000) -#define DISPENSERS_SECTION_FLASH (FLASH_RAM_BASE + 0X0000) -#define GENHWCFG_SECTION_FLASH (FLASH_RAM_BASE + 0X2000) -#define ALARM_SECTION_FLASH (FLASH_RAM_BASE + 0X4000 ) +//#define EMBEDDED_PARAMETERS_SECTION_FLASH (FLASH_RAM_BASE + 0X0000 ) //512 +//#define PROCESS_PARAMETERS_SECTION_FLASH (FLASH_RAM_BASE + 0X0000 )//512 +//#define DANCERS_SECTION_FLASH (FLASH_RAM_BASE + 0X0000) +//#define DISPENSERS_SECTION_FLASH (FLASH_RAM_BASE + 0X0000) +//#define GENHWCFG_SECTION_FLASH (FLASH_RAM_BASE + 0X0000) +//#define ALARM_SECTION_FLASH (FLASH_RAM_BASE + 0X0000 ) +//#define PROCESS_PARAMETERS_MAP_IN_FLASH (FLASH_RAM_BASE + 0X0200 ) +//#define DANCERS_MAP_IN_FLASH (FLASH_RAM_BASE + 0X0400) +//#define DISPENSERS_MAP_IN_FLASH (FLASH_RAM_BASE + 0X500) +//#define GENHWCFG_MAP_IN_FLASH (FLASH_RAM_BASE + 0x0300) #define EMBEDDED_PARAMETERS_MAP_IN_FLASH (FLASH_RAM_BASE + 0X0000 ) -#define PROCESS_PARAMETERS_MAP_IN_FLASH (FLASH_RAM_BASE + 0X0200 ) -#define DANCERS_MAP_IN_FLASH (FLASH_RAM_BASE + 0X0400) -#define DISPENSERS_MAP_IN_FLASH (FLASH_RAM_BASE + 0X500) -#define GENHWCFG_MAP_IN_FLASH (FLASH_RAM_BASE + 0X2000) -#define ALARM_MAP_IN_FLASH (FLASH_RAM_BASE + 0X4000 ) +#define ALARM_MAP_IN_FLASH (FLASH_RAM_BASE + 0X0300) -#define FLASH_SIZE 0X8000 +#define FLASH_SIZE 0X4000 extern int base_flashErased; @@ -38,7 +38,7 @@ extern int base_flashErased; //***************************************************************************** uint32_t ReadAppAndProgram(uint32_t ui32FlashStart,uint32_t ui32FileSize,void* buffer); void FlashInit(void); -uint32_t EraseFlashSection(uint32_t ui32FlashStart); +uint32_t EraseFlashSection(void); diff --git a/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.c b/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.c index e9d5cfc07..71d26888d 100644 --- a/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.c +++ b/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.c @@ -60,6 +60,42 @@ uint32_t MCU_E2PromRead(int Address,uint32_t *Data) return OK; } +/**************************************************/ +uint32_t MCU_E2PromProgramChunk(int Address,uint16_t Length,uint32_t Data) +{ + uint32_t Buffer = Data; +#ifdef EVALUATION_BOARD + return 0; +#else + Report("MCU_E2PromProgramChunk",__FILE__,Length,Address,RpWarning,Data,0); + return (EEPROMProgram((uint32_t *)Buffer, Address, Length)); +#endif +} +uint32_t MCU_E2PromReadChunk(int Address,uint16_t Length,uint32_t *Data) +{ +#ifndef EVALUATION_BOARD + EEPROMRead((uint32_t *)Data,Address, Length); +#endif + Report("MCU_E2PromReadChunk",__FILE__,Length,Address,RpWarning,*Data,0); + + return OK; + +} +void MCU_E2PromUpdateResetReason(int i) +{ + uint32_t Head; + uint32_t RESC = SysCtlResetCauseGet(); + + EEPROMRead(&Head,EEPROM_RESET_REASON_HEAD_ADDRESS, 4); + if (Head>=EEPROM_RESET_REASON_MAX_DATA) Head=0; + Head++; + RESC+=(i*0x1000); + EEPROMProgram(&Head, EEPROM_RESET_REASON_HEAD_ADDRESS, 4); + EEPROMProgram(&RESC, (EEPROM_RESET_REASON_HEAD_ADDRESS+(Head*4)), 4); + +} + +/*************************************************/ void MCU_E2PromProgramMidTank(int midtankId,float a,float b) { float A,B; diff --git a/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.h b/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.h index 12598ed07..2102d1716 100644 --- a/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.h +++ b/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.h @@ -61,6 +61,18 @@ typedef enum { ORIFICE3_ZERO_VALUE_ADDR, }EEPROM_ADDRESSES;*/ +#define EEPROM_RESET_REASON_HEAD_ADDRESS 160 +#define EEPROM_RESET_REASON_MAX_DATA 80 + +#define DISPENSERS_MAP_IN_EEPROM 0x200 +#define PROCESS_PARAMATERS_IN_EEPROM 0x400 + +uint32_t MCU_E2PromProgramChunk(int Address,uint16_t Length,uint32_t Data); +uint32_t MCU_E2PromReadChunk(int Address,uint16_t Length,uint32_t *Data); + +void MCU_E2PromUpdateResetReason(int i); + + uint32_t MCU_E2PromProgram(int Address,uint32_t Data); uint32_t MCU_E2PromRead(int Address,uint32_t *Data); void MCU_E2PromProgramMidTank(int midtankId,float a,float b); |
