aboutsummaryrefslogtreecommitdiffstats
path: root/Software
diff options
context:
space:
mode:
authorAvi Levkovich <avi@twine-s.com>2020-01-05 14:16:11 +0200
committerAvi Levkovich <avi@twine-s.com>2020-01-05 14:16:11 +0200
commit2323fb8dd806d91e35339d6e7e464a5ac97b6d7b (patch)
treec5394c6ea2a6a6a9b1045a75bf24eff725db809d /Software
parent082002e55b203a01868c2713c78df71ad5b9e32c (diff)
downloadTango-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')
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/PT100/Head_PT100_ADC.c84
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C.c10
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C_Comm.c16
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;