Hello, I'm not so familiar with the SI 1133 and don't understand the measurement procedure completely.
I want to use the SI 1133 as light sensor for a pulse oximeter. Therefor I must measure the intensity changes over the time (for example 5 or 10 minutes).
I don’t understand what the sensor gives me back as result of the measurement. Is it just one number? Because the HOSTOUT register is 8 bit long, but you can change between a 16 or 24 bit long measurement? And how is the result related to the light intensity?
I also don’t really understand the function of the measurement time (HW_GAIN) and the number of measurements (SW_GAIN). Does it mean I can do 128 measures in 24.4µs? And how can I distinguish the 128 measurements?
I hope it is clear what my problems are, and I hope somebody can help me.
Thank you a lot
I wanted to know is there any demo / example code available to read the Si7021 sensor temperature and humidity values which on the EFR32MG12 Mighty Gecko Kit. How to communicate to this sensor?
I want to use four SI1133 Senors at the same time. To get the data from all four Sensors I think I have to change the slave address off each sensor right? I read in the Data sheet that it is possible but I don't know how it works.
Are there any examples how to initialize the SI 1133 or some kind of User Guide?
I am looking for AC current sensor of small form factor and less than $1 per unit. My agenda is not to do accurate current measurement but to know whether the current is following through the PCB trace or not to identify whether the particular appliance is on or off.
Si8512 seems to be a good option but it has reached EOL. Please suggest an alternate part for the same. I am considering ACS712, but is there any offering from Silicon Labs?
I have attached the schematic in which the I need to know whether the current is flowing through the terminals ( X2-1, X2-2 and so on are terminals).
In UG163 page 1, the introduction of sunlight immune proximity module maybe error, it should change Si1153-AA09 to Si1153-AA9x.
To answer my own question.
The CRC-8 is NOT Maxim even though it has a polynomial of 0x31.
Maxim has both input and result reflected whereas the si7006 CRC does not.
What am I misunderstanding?
When I send the si7006 a measure temperature command 0xF3 I receive the expected 3 byte reply.
For example: 0x76 0x70 0x99
This is supposed to be MSB, LSB and CRC in that order.
0x7670 = 30320 = 34.4 Centigrade which correlates with independant temperature measures.
So far so good.
However I would like to check the data transmission by verifying the CRC
The polynomial is documented as being X8, X5, X4 + 1
However the CRC for two bytes with values 0x76 and 0x70 using a CRC-8 with a polynomial of 0x31 and a start value of 0x00 (ie CRC-8/Maxim) is 0xD2 not the 0x99 I receive.
In fact, none of the byte triplets I receive from the Si7006 have the correct CRC.
As I doubt that any of our data transmissions are actually being corrupted I assume I must be calculating the CRC incorrectly.
Perhaps you have to reverse the bit order or something.
I have tried everything I could think of but never get a correct CRC.
Can anyone help?
Other sample data is (0x76,0x08,0xD8) and (0x75,0xCC,0x76)
I have couple of questions.
1) We have a designed a system with Si7007. The device temperature readings are accurate as it was from the beginning but the humidity readings slightly drifts with time. What could have caused the drift in the humidity readings? The same sample device reads different values when its tested against same reference meter after 6 months. Its about 2 to 3% difference.
2) 6 months ago when the 1st set of devices produced by us, the device's humidity test results of all devices are found 3 to 4% lesser than a NIST certified reference TH meter. Now when the 2nd set of devices are produced , in the humidity test results of all the devices are 8 to 10 % lesser than the 'same' reference meter.
In both the time, the temperature tests are always with +/- 1%. What could have caused the change in the 2nd set of devices produced. We use the same design. We just purchased a new set of Si7007s and the PCB is newly fabricated from the same gerber files.And we strictly follow the same assembly process both the times.
I am working with STM32L1 board where I want to capture the sensors reading from Si 1147 sensor board through I2C communication. So I took STM32 board as master and SI board as slave. But when i used the slave address as 0x60 of SI 1147 mentioned in the datasheet ,communication has not done. So that I probe the I2C data in SI board and decode the slave address used by them. Hence i found out that slave address using is pretty much different from what it is mentioned in datasheet.It is using 0xC0 as slave address instead 0X60. So I can do communication over STM and SI board using I2C now.
But the problem what i am facing now is that the sensor value I am reading from the memory locations (0x22-0x2D) mentioned in Users manual is not reliable with the data I am getting from the LAUNCHER software tool in various scenarios(dark,medium and in light)(even though i am converting the data into 16 bit format)
Can you please clarify that whether I need to do any initialization steps in SI 1147 sensor module side before taking the reading?
Or it is because of the fact that the memory location I am using is wrong ?
Datasheet and User manual that I referred is attaching with this.
I tested an adafruit si1145 module with adafruit library example along with other existing I2C modules (temp, hum, pressure, 20X4LCD, ADC). Every readings are updated once per second. At startup, everything perfectly works. Reported UV index makes sense. Some time later (sometimes 10 minutes, sometimes many hours), si1145 starts reporting 0 for UV index. I tested it with IR and visible light and same problem occurs. As all other modules continue perfectly working , it's like si1145 is sleeping.
Could the si1145 fall asleep ? I understand that problem could come from Adafruit code but as I'm not an IT guy, fixing the code is not an option. Is there another tested arduino library I could use ? If not, is there a way to check if si1145 is still working and how could I wake it up if it's sleeping ?
If you have working arduino code, let me know where to find it.
Thanks J Guy