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.

LM3549: LM3549 and PCA9543 Schematic Check

Part Number: LM3549
Other Parts Discussed in Thread: LM3435,

Tool/software:

Hi TI E2E

Before, I used the LM3435 as our Head Mount Display LED driver.

and the result is great, but in some rare case, such as the LED control is failed (I2C write the led current control failed) 

the LM3435 will work in a very high current output, it will let our battery and HMD PCB broken, 

so, I want to try LM3549 in our new Head Mount Display.

This is my Software and Hardware Setting, I'm not sure is correct or not.

LM3549 I2C device address could not be selected, so I choose the I2C MUX PCA9543. 

The hardware connection path is STM32F1(MCU)_I2C2->PCA9543(I2C MUX)->LM3549_Right and LM3549_Left(LED Driver)->LCOS

in the PDF TI_LM3549 pdf, as shown below, This is a part of the LED driver design(hardware is refer from the LM3549 EVK).

TI_LM3549.pdf

1.I pull down the the A0 and A1pin from PCA9543(PCA9543.schDoc,part number U10), cause the I2C devices is only two.

2.As the same page, I use four MOS to prevent the current leakage from I2C slave device to master.(I'm not sure this method is correct or not)

3.In the software control as show below
(3-1)MCU and PCA9543 turned on as the same time

(3-2)pull high the I2C reference voltage for LM3549  

(3-3)pull high the LM3549 enable

(3-4)set the PCA9543 for the SD0 and SC0

(3-5)configure the LM3549_Right

(3-6)set the PCA9543 for the SD1 and SC1

(3-7)configure the LM3549_Left

(3-8)Turn off the the PCA9543 to prevent some malfunction

/*enable the lm3549 power source and the lm3549 i2c reference voltage start*/
/*add the PCA9543 control for the two lm3549 which the i2c device address is same*/

uint8_t pca9543_cmd_R = 0x01;
uint8_t pca9543_cmd_L = 0x02;
uint8_t pca9543_cmd_off = 0x00;
HAL_GPIO_WritePin(GPIOB,V3V3_EN_Pin_Pin,GPIO_PIN_SET);//enable the i2c refernece voltage for lm3549
HAL_GPIO_WritePin(GPIOA,LM3435_EN_Pin,GPIO_PIN_SET);//pull high the lm3549 reset pin, let it on work.
//config the right lm3435
HAL_I2C_Master_Transmit(&hi2c2, 0x70 << 1, &pca9543_cmd_R, 1, 10);
set_bank0(&hi2c2);
Set_RGB_Current(&hi2c2,153,153,153);//15% duty = 1023*0.15 ->nearby 153
//config the left lm3435
HAL_I2C_Master_Transmit(&hi2c2, 0x70 << 1, &pca9543_cmd_L, 1, 10);
set_bank0(&hi2c2);
Set_RGB_Current(&hi2c2,153,153,153);//15% duty = 1023*0.15 ->nearby 153
//turn off the pca9543 channel
HAL_I2C_Master_Transmit(&hi2c2, 0x70<<1,&pca9543_cmd_off,1,10);

Thank you 
Best Regard Steve

  • Hi Steve,

    For the 2nd point, i'm not very understanding what's the meaning of "prevent the current leakage from I2C slave device to master". And not sure why there is a separate voltage reference, I2C_Ref3V3, for the I2C of LM3549.

    From my understanding, the VCC_3V3 could be used for the reference for all the I2C from the MCU to LM3549 as shown below. As they all share the same voltage level.

    Best regards,

    Felix

  • Thank you for your reply, I will correct my misconceptions, 

    1.I will change the LM3549's I2C voltage source from I2C_Ref3V3 to VCC_3V3 and remove the U6 buck.

    2.Q1~Q4 is necessary? It seems redundant in this circuit.

  • Hi Steve,

    For the MOSFET circuit, I have seen it was used for lever shift as shown below to convert 5V logical level to 3.3V logical level.

    So from my understanding, in this application there is no need for the Q1-Q4 circuit.

    Best regards,

    Felix