I'm testing the ADC overflow conditions in the si1133 and I'm getting a weird behavior when changing the Channel setup right after an overflow condition. Here's the setup:
Here's what happens:
My suspicion without knowing how is the controller of this chip implemented, is that this is a bug in the chip in the error handling case: when there's an ADC overflow or SW_GAIN accumulation overflow the internal pointer to the output buffer (HOSTOUTx) is not reset when a PARAM_SET (0x82, 0x83 ....) command is send before the next FORCE; but it is reset when the next command is directly FORCE. To be clear:
HW_ID is 0x03
REV_ID is 0x10
Are you aware of this issue? Is there a workaround? I didn't find any errata on the topic. The only way I have found to work is to issue a RESET_SW but that requires to wait additional 25ms for the device to exit the "Initialization Mode" again and reconfigure everything. Arguably one should be able to change the sw_gain to a lower value when an accumulation error is detected.
I am working on SS5, and I managed to send theof microphone's data following the example to another node.
Now I want to send the sample buffer to another node and I want the receiver to convert the int16_t buffer into voice data. What I have to do to achieve that?
Thanks in advance,
Hello dear SI-Labs community,
I'm currently working on the si7210 and have some questions, which keep me struggling. Would be amazing if anyone could help me out.
1. My sampling frequency is about 5kHz, even though the bits [3:0] in 0xc4 are set to 0. The datasheet says a sampling rate of about 113kHz can be reached but even turning of every filter didn't help. (0xCD is also set to 0)
2. The datasheet says that the sensor has a minimum operate point of 0.6 mT. What happens, if those are not reached? I'm getting really high values if no magnet is near the sensor?
Thank you in advance and kind regards
I am working with a niche application where I create my own field and try to measure when objects are measuring through it, rather than the field itself moving. In doing so and the distance my object is away from the field, when graphing raw data I can physically see the change in measurement when the device enters and exists the field, though due to general background field, temperatures and measurement errors at roughly 2.8V (battery powered application), the single shot measurements done in sleep mode don't yield consistent results. Is there any of the ICs in the series that allow for setting the burst/averaging bits in the register by the user, or even any pre-programmed variants that have this value > 0.
From what I can tell in the datasheet, this value is set in factory in the OTP (One-Time-Program) bits and cannot be adjusted. Though it goes further to say that if it WERE set, it would do all the averaging required, though no parts currently exist with this set, does this mean I would need to do a customer order with a minimum supply quantity from Si Sales team?
Looking at the datasheet section 4.1.3 states that when Userstore bit is set, that only 4 registers are actually reloaded from user area, the rest are loaded from OTP?
I guess my question really is, can I set the IC to read more than 1 sample at a time, average it, make a decision on the output pin and go back to sleep automatically and continuously without an external MCU reconfiguring the IC every sleep cycle?
The amount of power required to run in IDLE would kill the battery too quick.
My application is: detect day versus night, indoors, in a room with south facing windows. I am exploring the Si1133 to measure UVA. I can put the detector within 10 feet of the windows, high and facing down so the detector gets reflected UV, and never gets direct sunlight, and gets only reflected artificial lights from typical room lighting of about 400 lux white, fluorescent light. My understanding is the window glass will transmit about 50% of UVA, that the sky will scatter significant UVA, that night sky has no UVA, and that artificial lights produce negligible UVA.
Might that work? Do you have any suggestions re diffuser, physical filters, parameters of the Si1133, and which set of diodes to use? My plan is to read only the UV diode.
I want to estimate sun time by detecting sundown and sunset, despite noise from artificial lights. I don't need accuracy. I plan to take samples over many days. I understand that the weather and season will have an effect.
Can you explain the notation in the datasheet in the "operation" column of the ADCMUX row of the table for the ADCCONFIGx parameter? The notation uses for example "D + 10" for the UV "optical function." But the term "D" has no antecedent anywhere in the datasheet, as far as I know.
I assume "D" refers to a separate diode for UV.
Does the "+10" mean that the mcu on the chip adds ten to some raw result?
Also, what is the interpretation of a negative result? That the dark current is less than the light current (where you are measuring the diode in two ways, dark current and light current, and taking the difference) ?
Related to my other post about detecting daylight using UV indoors.
We are seeing the issue on I2C bus where the sensor communication is failing. I2C bus error.
There are many functions in driver like SI1133_paramSet() which are calling I2C read() back to back. These calls are failing. If we add some delay between calls it works fine. Finally we resorted to add delay in the I2C_Read() and I2C_Write() functions in the beginning. It resolved the issue.
I think, si1133 has some issue if host MCU runs fast and sends commands quickly one after the other.
I have used the SI1133(slave) with LPC1765(Master) for detecting IR.But i have received the data's with the delay of 320us in the initial stage .After some milliseconds it goes to 520us as I attached here.
I think this is happened due to I2C clock Stretching.Kindly give a idea to reduce it if possible.
I have several problems with the use of Si1151。
1, SI1151 have an interrupte register IRQ_ENABLE with the address 0X0F,but I didn't find the detail information to tell you how to config it.
2,how to increase the RPOX‘s distance ? when I use the demo board ，I can detect only 25cm with this configurations
3，about the funtion of the PROX. I saw if we need use the funtion of the PROX，we need to measure twice(LED ON/OFF), so we need to calculate the value between the two detections? or I can use the Interrupt to achieve this function？how to config it？
From the knowledge base articles, there is an example for calculating the power draw.
There seems to be a discrepancy with regards to the LED power calc in AN950 (LED current *48.8us * gain), as opposed to knowledgebase (LED current *24.4us*gain).
The knowledgebase seems correct based on the the standard 24.4uSec LED period. (and knowledgebase example assumes HW_GAIN = 0).
Can you confirm?
with the appropriate snippet:
The si1153 sensor will perform 2 back-to-back measurements, one with the LED on and the other with the LED off. Therefore, if we assume integration time is set to default and LED current is set to maximum 354mA, the total power consumption will be:
I = (155us * 4.5mA + 48.8us * 525uA + 2* 24.4us * 525uA + 24.4us * 354mA) * Fs
where Fs is the sampling frequency of the measurement.
This references app note AN950
With this snippet:
6.4 LED Power
On each proximity measurement, the LED current is on for 48.8 μs times the gain. Thus, for each proximity channel, the LED duty cycle
DC LED = 48.8μs × 2HW_GAIN
From the documentation, I see that I can specify the target "bank" (LED1_A/LED2_A/LED3_A or LED1_B/LED2_B/LED3_B) and "trim" (nominal, +9%, or +10%) in the MEASCONFIGx parameters for each channel, but I haven't been able to locate any documentation about how the "bank" parameters that are being pointed to are configured to specify a current value.
There should be "30 current settings between 5.6mA and 360mA", but the "bank" parameters aren't defined, and every piece of example code I've come across is setting all the "bank" parameters to 0x3F.
I have an SI1147-M01-EB evaluation kit. I have downloaded the SI114x Programmers Toolkit, but I cannot get a connection to the hardware. The quick-start guide refers to Windows 7 only, so is it impossible to make this kit work on a Windows 10 machine?
In Device Manager, the device appears as an HID (Human Interface Device) rather than under Ports or USB - is this the problem?
If I launch SI1140 Control Panel, under devices I can see COM1 or TS004A572A. Pressing Connect with either device selected results in an error - unable to set baud rate for COM1 and unable to initialize SI114x. Function: InitSI114x for TS004A572A.
Also, when I launch the Firmware Updater, what should I choose from the evaluation board drop-down? Module?
Can someone help please?
Our first batch of boards work fine. Our driver uses the default I2C address of 0x53 (we have AD pulled high).
Our second batch do NOT work using address 0x53. They ONLY work if we use an I2C address of 0x51 which is very odd as this address is not documented anywhere. Again, we have AD tied high. BUT, if we pull AD low, we can successfully use address 0x52. Very odd.
We have verified clock speeds etc. As I said, we only have this issue on the second build. Also note that it fails on the all reads and writes. Also note that we do not attempt to change the I2C address parameter. Also note that we have confirmed that we have a clean powerup. We do not enable power to the sensor until our rail is solid.
I cannot find any eratta. Is there a known batch issue with the Si1153s? The part number is SI1151-AB09-GM
This has stumped us (I have over15 years commercial experience in I2C programming)
I am developing a ambient light sensor board with Si1133-AA00-GMR. The main controller is STM32F405. The status is as following:
1. All the direct accessed registers and indirected accessed parameters could be correctly write and read.
2. A function is designed to read all the parameters send to Si1133 and all values are matched with the original values.
3. The sensor is set to be working in autonomous mode and channel 1&2 is enabled.
4. The problem is that the interrupt pin of Si1133 is always at high level and no rising or falling edge is triggered after the measurement is start.
5. The interrupt pin is only found at low level for less than 100ns when software reset command is executed.
6. The interrupt status register is checked many times. The interrupt pin did't change at all whatever the status register is.
7. Two succeessive read command of the interrup status register is executed. It's found that the register value is not reset automatically as description in datasheet, after the first read command.
The initial code of the sensor as following:
Is there some problem about the interrupt setting issue?
Thanks a lot.
Update on Jan 20, 2020:
The sensor was configured to be working in forced mode. The sampling and data read back rate is decided by timer on controller board, while the value of IRQ_STATUS is ignored. The sensor is good working.