Other Parts Discussed in Thread: TPIC2810
Tool/software: Linux
The AM437x Industrial EVM contains an LED driver at I2C address 0x60 (User's Manual, Table 3). Hardware is TPIC2810, 8-bit LED driver.
I am using subaddress 44H to write data to the data shift register and transfer the data to the output storage register immediately.
The code below seems to work fine, but LEDs D3..D10 are not working as expected. A walking 1's pattern shows that some LEDs are affecting others.
mSMbusData.read_write = I2C_SMBUS_WRITE; mSMbusData.command = 0x44; mSMbusData.size = I2C_SMBUS_BYTE_DATA; mSMbusData.data = &I2CData; I2CData.byte = value; ioctl(mFileDescriptor, I2C_SMBUS, &mSMbusData);
Questions:
1. Are all LEDs (D3..D10) under software control?
2. What is the advantage of writing data to the shift register (subaddress 11H) and transferring to the output storage register (subaddress 22H) in 2 separate steps? Why provide that option.
3. What is driving the LEDs other than the TPIC2810? Are they tied to some onboard status that would interfere with software control?