I am using ISL97901 for one of my project and having following issues:
> When I am modifying D1's current gain values, all D1, D2 and D3's output currents are changing.
> When D2 and D3 data is modified, none of outputs are getting modified.
void ISL_init(I2C_HandleTypeDef *hi2c) { Bus_Write(ISL97901_ENABLE_CONTROL, val_ENABLE_CONTROL , hi2c); Bus_Write(ISL97901_CLOCK_CONTROL, val_CLOCK_CONTROL , hi2c); Bus_Write(ISL97901_LED_R_LSB, val_LED_R_LSB , hi2c); Bus_Write(ISL97901_LED_G_LSB, val_LED_G_LSB , hi2c); Bus_Write(ISL97901_LED_B_LSB, val_LED_B_LSB , hi2c); Bus_Write(ISL97901_LED_RGB_MSB, val_LED_RGB_MSB , hi2c); } #define ISL97901_LED_STATUS 0x01 #define ISL97901_ENABLE_CONTROL 0x02 #define val_ENABLE_CONTROL 0x14 #define ISL97901_CLOCK_CONTROL 0x04 #define val_CLOCK_CONTROL 0x87 #define ISL97901_LED_R_LSB 0x13 #define val_LED_R_LSB 0x0D #define ISL97901_LED_G_LSB 0x14 #define val_LED_G_LSB 0x0D #define ISL97901_LED_B_LSB 0x15 #define val_LED_B_LSB 0x0D #define ISL97901_LED_RGB_MSB 0x17 #define val_LED_RGB_MSB 0x00
Even each gain status registers are showing different values that I am setting in the gain registers. So output is getting programmed as per the code but I am not able to get different currents as output. The next doubt might be hardware but the outputs are not shorted I have checked properly. Can you help me in pinpointing the issue.
Hi,
Let me check meanwhile Kindly share schematic to review
Thanks
AB
schematics
PCB Design
Kindly find below details
As you are not using D4 , please leave FB2 pin and D4 floating and tie EN4 to GND
Also in layout for Power input supply pin needs to be carefully decoupled because it supplies current to the Buck-Boost and eventually to the LEDs. The PVIN/GND loop should be tight. The input decoupling caps should be placed closed to the PVIN pins. Input capacitance is recommended to be 2x20µF or higher
For Vout for anode of all LEDs extra attention should be paid to this pin. The VOUT/GND loop must be very tight; that is, the output capacitors must be positioned as close to the IC as possible. If there is to much inductance in the loop and when the boost control switch turns off, the high di/dt will generate lots of voltage spike. These spikes may damage the device. Furthermore, a large capacitance is required for stability purpose. The VOUT trace also needs to be thick enough for high current
Thanks for your valuable insights, following are my replies:
1> We have already left D4 pin floating removed the 0.1 ohm resistor from the board. Next iteration we will pull EN to GND too.
2> We have placed a 22uF Capacitor based on 20-40uF capacitance mentioned in the datasheet and Its close to the PVIN pins(as per PCB design shared in the last image).3> As per datasheet reference, they have recommended a 47uF to be used. So same we are using here. It would be very helpful if you can state what needs to be modified exactly in the design. Also kindly check the following issues that I mentioned in the First post and help me how to solve these issues.
1> When I am modifying D1's current gain values, all D1, D2 and D3's output currents are changing.
2> When D2 and D3 data is modified, none of outputs are getting modified.You can see that here.
Looking forward to your replies.
In schematic it's showing fb2 is connected.
Please do EN ground and check once with all this correction
As you suggested we have grounded the En and removes the resistor on FB2 still I am getting the same issue.
The Peak to peak voltage on any of the RGB lines when taking VOUT is taken as base, we are not going above 2.4-2.7 Volts.
Hi AB,
Any updates on this?
Do you have any sample code or SDK for ISL97901 to test?
Hi ,
There is no sample code for ISL97901. To debug the issue Kindly read back all registers values and capture the waveform of EN1/2/3 pins and FB1 pin.
Hi AB, I am able to get the voltages of 5v now. But I need help in programming: what is the relation between sequence of RGB control and the voltage and current setting that we are doing. Because when we are programming the current control registers first time for RGB separately and then starting enabling the RGB. That first time they getting set to the required voltage and current. But after that When the 2nd RGB sequence comes It goes back to default value.So does the current register needed to be addressed each and every time when any of the RGB gets enabled. if not then How can I control that.
There is no information regarding this on the data sheet. Please provide me this sequence data if possible. Hence I asked for a sample code so that I can understand the sequence using the firmware.
Hi AB_RENESAS Any update on this?