I wanted to use LM3435 evaluation board for my project with raspberry pi.
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
I wanted to use LM3435 evaluation board for my project with raspberry pi.
Hi Adit,
1). We are using the I2C protocol to configurate register settings; for example, the current of R/G/B outputs and fault reporting function. For more details of this, please refer to section I2C REGISTER DETAILS on page #15 of LM3435 datasheet. Not exactly, you can easily control LEDs with PWM, but there are drawbacks with RPi's GPIOs driving ability. Based on the diagram provided, it seems easier to dim the single-color green LED from RPI's side.
2). I am not quite following on this question. What VIN voltage you had in here?
3). You won't need the I2C in this case. The PWM duty cycle 100%~0% determines if the LED is full ON/OFF. If to change the LED brightness, you can continuously modify the PWM duty cycle to achieve the so-called "breathing effect" that are commonly seen.
Best Regards,
Aaron
Thanks for making things a bit clear, after some trial and error I connected RPi as master and Arduino as it's slave using same I2C bus used for lm3435.
Now I am reading analog voltage from pot and sending it over to RPi through Arduino over I2C. Then changing the pwm values through pot to achieve the "breathing effect". It's working fine now.
Just wanted to clear one more thing, how am I supposed to use internal registers for controlling output current ? Can you share some code snippets or any reference that might be useful ?
Hi Adit,
Just wanted to clear one more thing, how am I supposed to use internal registers for controlling output current ? Can you share some code snippets or any reference that might be useful ?
Please refer to the below screenshot of C code. It's for a different device (not LM3435), but I want to explain the logic here.
The DC_Color() function is basically used to adjust the output current by sending data to corresponding current register (for LM3435, it will be addr 00h ~ 03h). The internal I2C_setSalve and I2C_write() functions are assembled for I2C communication. You could make use of this example for output current adjustment. FYI that the default setting for all LM3435 R/G/B output channel is max value.
Best Regards,
Aaron
Thanks a lot Aaron, I understood what needs to be done. Could you help me with one more problem, I am trying to use two lm3435 boards with my RPi. However, they have the same I2C addresses. How should I define different address for new board ?
Hi Adit,
You're welcome. Unfortunately, this can't be done with LM3435. Other devices like LP5009 with I2C slave address selection pins ADDRx can support multiple boards while separate slave configurations. For LM3435, the setting of one board will prevail to the other one due to the identical slave address.
Best Regards,
Aaron