diff options
| author | Avi Levkovich <avi@twine-s.com> | 2020-01-05 14:16:11 +0200 |
|---|---|---|
| committer | Avi Levkovich <avi@twine-s.com> | 2020-01-05 14:16:11 +0200 |
| commit | 2323fb8dd806d91e35339d6e7e464a5ac97b6d7b (patch) | |
| tree | c5394c6ea2a6a6a9b1045a75bf24eff725db809d /Software | |
| parent | 082002e55b203a01868c2713c78df71ad5b9e32c (diff) | |
| download | Tango-2323fb8dd806d91e35339d6e7e464a5ac97b6d7b.tar.gz Tango-2323fb8dd806d91e35339d6e7e464a5ac97b6d7b.zip | |
decrease the I2C delay from 15000 to 3000.
read odd/even head pt100 and config even/odd
Diffstat (limited to 'Software')
3 files changed, 60 insertions, 50 deletions
diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/PT100/Head_PT100_ADC.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/PT100/Head_PT100_ADC.c index 0f2be54f1..2ee740d0e 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/PT100/Head_PT100_ADC.c +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/PT100/Head_PT100_ADC.c @@ -670,25 +670,8 @@ uint32_t control_HeadCard_PT100(uint8_t HEAD_CONFIG_PT100_MUX) //delayms(5); if(HEAD_CONFIG_PT100_MUX == HEAD_CONFIG_ODD_PT100_MUX) { - //Config_SEL - HeadCard_Toggle_PT100_SEL(HEAD_CONFIG_ODD_PT100_PT_SEL); - //delayms(5); - for(SensorId = HEAD_PT100_ZONE_1_0X80_0; SensorId < HEAD_PT100_ZONE_2_0X80_1; SensorId++) - { - //Config_Mux - HeadTempSensConfig[SensorId].Reg0.bits.MUX = HEAD_CONFIG_ODD_PT100_MUX; - Write_Buf[0] = ADS122X_WREG_CMD | (ADS122X_CONFIG_0_REG<<2); - Write_Buf[1] = HeadTempSensConfig[SensorId].Reg0.Byte; - Status |= I2C_Write_SensorId(I2C_ID_HEAD_CARD, SensorId, Write_Buf, 2); - } - //delayms(5); - for(SensorId = HEAD_PT100_ZONE_1_0X80_0; SensorId < HEAD_PT100_ZONE_2_0X80_1; SensorId++) - { - //Sync - Write_Buf[0] = ADS122X_START_CMD; - Status |= I2C_Write_SensorId(I2C_ID_HEAD_CARD, SensorId, Write_Buf, 1); - } - //delayms(5); + + //-------------------------------------- READ ODD -------------------------------------- for(SensorId = HEAD_PT100_ZONE_1_0X80_0; SensorId < HEAD_PT100_ZONE_2_0X80_1; SensorId++) { //Read Data @@ -706,44 +689,71 @@ uint32_t control_HeadCard_PT100(uint8_t HEAD_CONFIG_PT100_MUX) // HeadADCPT100_PowerDown(SensorId); // } + //-------------------------------------- CONFIG EVEN -------------------------------------- + //Config_SEL + HeadCard_Toggle_PT100_SEL(HEAD_CONFIG_EVEN_PT100_PT_SEL); + //delayms(5); + for(SensorId = HEAD_PT100_ZONE_2_0X80_1; SensorId < HEAD_PT100_RESERVE_0X8E_1; SensorId++) + { + //Config_Mux + HeadTempSensConfig[SensorId].Reg0.bits.MUX = HEAD_CONFIG_EVEN_PT100_MUX; + Write_Buf[0] = ADS122X_WREG_CMD | (ADS122X_CONFIG_0_REG<<2); + Write_Buf[1] = HeadTempSensConfig[SensorId].Reg0.Byte; + Status |= I2C_Write_SensorId(I2C_ID_HEAD_CARD, SensorId, Write_Buf, 2); + } + //delayms(5); + for(SensorId = HEAD_PT100_ZONE_2_0X80_1; SensorId < HEAD_PT100_RESERVE_0X8E_1; SensorId++) + { + //Sync + Write_Buf[0] = ADS122X_START_CMD; + Status |= I2C_Write_SensorId(I2C_ID_HEAD_CARD, SensorId, Write_Buf, 1); + } + //delayms(5); + } else if(HEAD_CONFIG_PT100_MUX == HEAD_CONFIG_EVEN_PT100_MUX) { + + //-------------------------------------- READ EVEN -------------------------------------- + for(SensorId = HEAD_PT100_ZONE_2_0X80_1; SensorId < HEAD_PT100_RESERVE_0X8E_1; SensorId++) + { + //Read Data + HeadADCPT100_SendReadDataCommand(SensorId); + } + + for(SensorId = HEAD_PT100_ZONE_2_0X80_1; SensorId < HEAD_PT100_RESERVE_0X8E_1; SensorId++) + { + //Calculate Temperature + TempSensorResponse[SensorId].Temperature_C_mult_by_100 = CalculateTemperatures(SensorId, TempSensorResponse[SensorId].PT100_ADC_Reading_Bits); + } + +// for(SensorId = HEAD_PT100_ZONE_2_0X80_1; SensorId < HEAD_PT100_RESERVE_0X8E_1; SensorId++) +// { +// HeadADCPT100_PowerDown(SensorId); +// } + + //-------------------------------------- CONFIG ODD -------------------------------------- //Config_SEL - HeadCard_Toggle_PT100_SEL(HEAD_CONFIG_EVEN_PT100_PT_SEL); + HeadCard_Toggle_PT100_SEL(HEAD_CONFIG_ODD_PT100_PT_SEL); //delayms(5); - for(SensorId = HEAD_PT100_ZONE_2_0X80_1; SensorId < HEAD_PT100_RESERVE_0X8E_1; SensorId++) + for(SensorId = HEAD_PT100_ZONE_1_0X80_0; SensorId < HEAD_PT100_ZONE_2_0X80_1; SensorId++) { //Config_Mux - HeadTempSensConfig[SensorId].Reg0.bits.MUX = HEAD_CONFIG_EVEN_PT100_MUX; + HeadTempSensConfig[SensorId].Reg0.bits.MUX = HEAD_CONFIG_ODD_PT100_MUX; Write_Buf[0] = ADS122X_WREG_CMD | (ADS122X_CONFIG_0_REG<<2); Write_Buf[1] = HeadTempSensConfig[SensorId].Reg0.Byte; Status |= I2C_Write_SensorId(I2C_ID_HEAD_CARD, SensorId, Write_Buf, 2); } //delayms(5); - for(SensorId = HEAD_PT100_ZONE_2_0X80_1; SensorId < HEAD_PT100_RESERVE_0X8E_1; SensorId++) + for(SensorId = HEAD_PT100_ZONE_1_0X80_0; SensorId < HEAD_PT100_ZONE_2_0X80_1; SensorId++) { //Sync Write_Buf[0] = ADS122X_START_CMD; Status |= I2C_Write_SensorId(I2C_ID_HEAD_CARD, SensorId, Write_Buf, 1); } //delayms(5); - for(SensorId = HEAD_PT100_ZONE_2_0X80_1; SensorId < HEAD_PT100_RESERVE_0X8E_1; SensorId++) - { - //Read Data - HeadADCPT100_SendReadDataCommand(SensorId); - } - for(SensorId = HEAD_PT100_ZONE_2_0X80_1; SensorId < HEAD_PT100_RESERVE_0X8E_1; SensorId++) - { - //Calculate Temperature - TempSensorResponse[SensorId].Temperature_C_mult_by_100 = CalculateTemperatures(SensorId, TempSensorResponse[SensorId].PT100_ADC_Reading_Bits); - } -// for(SensorId = HEAD_PT100_ZONE_2_0X80_1; SensorId < HEAD_PT100_RESERVE_0X8E_1; SensorId++) -// { -// HeadADCPT100_PowerDown(SensorId); -// } } Semaphore_post(I2C_Sem); diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C.c index b29e901d0..aaaee1b5d 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C.c +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C.c @@ -221,7 +221,7 @@ void Write_I2C(uint32_t I2C_BASE,uint32_t Slave_Add, uint8_t Byte2Write) { I2CMasterControl(I2C_BASE, I2C_MASTER_CMD_BURST_SEND_START); } - SysCtlDelay(15000); + SysCtlDelay(3000); } @@ -230,12 +230,12 @@ uint8_t Read_I2C(uint32_t I2C_BASE,uint32_t Slave_Add) // Start Read from configured slave I2CMasterSlaveAddrSet(I2C_BASE, Slave_Add, true); I2CMasterControl(I2C_BASE, I2C_MASTER_CMD_BURST_RECEIVE_START); - SysCtlDelay(15000); + SysCtlDelay(3000); uint8_t get = I2CMasterDataGet(I2C_BASE); I2CMasterControl(I2C_BASE, I2C_MASTER_CMD_BURST_RECEIVE_FINISH); - SysCtlDelay(15000); + SysCtlDelay(3000); //uint8_t get1 = I2CMasterDataGet(I2C4_BASE); @@ -265,7 +265,7 @@ uint8_t Write_Single_I2C(uint32_t I2C_BASE,uint32_t Slave_Add, uint8_t Byte2Writ I2CMasterControl(I2C_BASE, I2C_MASTER_CMD_SINGLE_SEND); - SysCtlDelay(15000); + SysCtlDelay(3000); return OK; } @@ -276,7 +276,7 @@ uint8_t Read_Single_I2C(uint32_t I2C_BASE,uint32_t Slave_Add) I2CMasterSlaveAddrSet(I2C_BASE, Slave_Add, true); I2CMasterControl(I2C_BASE, I2C_MASTER_CMD_SINGLE_RECEIVE); - SysCtlDelay(15000); + SysCtlDelay(3000); uint8_t get = I2CMasterDataGet(I2C_BASE); diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Comm.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Comm.c index 1ba2abef5..490376710 100644 --- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Comm.c +++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Comm.c @@ -35,7 +35,7 @@ uint32_t I2C_WriteBuff(uint32_t I2C_BASE, unsigned char addr, unsigned char* dat // // return I2CMasterErr(I2C_BASE) == I2C_MASTER_ERR_NONE; status = I2CMasterErr(I2C_BASE); - SysCtlDelay(15000); + SysCtlDelay(3000); } else { @@ -47,7 +47,7 @@ uint32_t I2C_WriteBuff(uint32_t I2C_BASE, unsigned char addr, unsigned char* dat // if (I2CMasterErr(I2C_BASE) != I2C_MASTER_ERR_NONE) // return false; status = I2CMasterErr(I2C_BASE); - SysCtlDelay(15000); + SysCtlDelay(3000); len--; data++; @@ -60,7 +60,7 @@ uint32_t I2C_WriteBuff(uint32_t I2C_BASE, unsigned char addr, unsigned char* dat // if (I2CMasterErr(I2C_BASE) != I2C_MASTER_ERR_NONE) // return false; status = I2CMasterErr(I2C_BASE); - SysCtlDelay(15000); + SysCtlDelay(3000); len--; data++; } @@ -72,7 +72,7 @@ uint32_t I2C_WriteBuff(uint32_t I2C_BASE, unsigned char addr, unsigned char* dat // // return I2CMasterErr(I2C_BASE) == I2C_MASTER_ERR_NONE; status = I2CMasterErr(I2C_BASE); - SysCtlDelay(15000); + SysCtlDelay(3000); } return status; @@ -89,7 +89,7 @@ uint32_t I2C_ReadBuff(uint32_t I2C_BASE, unsigned char addr, unsigned char* data { I2CMasterControl(I2C_BASE, I2C_MASTER_CMD_SINGLE_RECEIVE); //while(I2CMasterBusy(I2C_BASE)); - SysCtlDelay(15000); + SysCtlDelay(3000); *data = I2CMasterDataGet(I2C_BASE); //return I2CMasterErr(I2C_BASE) == I2C_MASTER_ERR_NONE; @@ -102,7 +102,7 @@ uint32_t I2C_ReadBuff(uint32_t I2C_BASE, unsigned char addr, unsigned char* data // Start receiving consecutive data I2CMasterControl(I2C_BASE, I2C_MASTER_CMD_BURST_RECEIVE_START); //while(I2CMasterBusy(I2C_BASE)); - SysCtlDelay(15000); + SysCtlDelay(3000); *data = I2CMasterDataGet(I2C_BASE); // if (I2CMasterErr(I2C_BASE) != I2C_MASTER_ERR_NONE) // return false; @@ -116,7 +116,7 @@ uint32_t I2C_ReadBuff(uint32_t I2C_BASE, unsigned char addr, unsigned char* data while(len > 1){ I2CMasterControl(I2C_BASE, I2C_MASTER_CMD_BURST_RECEIVE_CONT); //while(I2CMasterBusy(I2C_BASE)); - SysCtlDelay(15000); + SysCtlDelay(3000); *data = I2CMasterDataGet(I2C_BASE); // if (I2CMasterErr(I2C_BASE) != I2C_MASTER_ERR_NONE) // return false; @@ -129,7 +129,7 @@ uint32_t I2C_ReadBuff(uint32_t I2C_BASE, unsigned char addr, unsigned char* data // Receive last piece of data I2CMasterControl(I2C_BASE, I2C_MASTER_CMD_BURST_RECEIVE_FINISH); //while(I2CMasterBusy(I2C_BASE)); - SysCtlDelay(15000); + SysCtlDelay(3000); *data = I2CMasterDataGet(I2C_BASE); //return I2CMasterErr(I2C_BASE) == I2C_MASTER_ERR_NONE; |
