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.

i2cBus crash the dlp

Hello everyone,

I'm facing some problems with I2C and the DLP. I'm sending and I2C command to my DLP (for example to modify the RGB LED Current).
It works well with the DLP LightCrafter and my C code but sometimes the screen turns black and I have to switch off/on to turn the projector back on.

Can someone explain me why I have this crash ? Thank you!

  • Hello Sascha,

    Thank you for your interest in our DLP Technology. I have a few questions to understand the issue better.

    • Can you please let me know which EVM you are using ? Are you using the DLP LightCrafter4710EVM or DLP LightCrafter4710EVM-G2?
    • Are you using the cypress chip to send I2C commands ?
    • Is the behavior only accuring when using your code or also the DLP LightCrafter GUI ?
    • Does the crash occurs after each I2C commands or only after specific I2C commands ?

    Thanks,

    Nadine

  • Hello Nadine,

    - I'm using the DLP LightCrafter4710EVM
    - I'm not sure on what you mean by cypress chip. I am using the JDev pins (Groud, SDA, SCL, Voltage). I plug wires that connect the DLP to my motherboard.
    - This behavior occurs on my C code only (edited).
    - It's completely random, I did try the flip screen (it did not crash yet), so only on the brightness I see this.

    Many thanks !
    Ahmed

  • Hello Ahmed,

    I assume you are using the Gen1 version of the 4710EVM with the plastic cover.

    The I2C bus is shared between several devices on the EVM. There is a continues communication between the MSP430 and the ITE6801 part on the bus. To avoid any conflict we have a handshaking process in place between the cypress chip (USB to Serial bridge chip) and the MSP430.

    When you using the JDev pins you would also have to install the SW1 and press SW1 to receive access to the I2C bus only. Have you done that ?

    Can you share the I2C command you are sending for the brightness please ?

    Best regards,

    Nadine

  • Hello Nadine,

    Thank you very much for your clear feedback.
    Yes, we are using the Gen1 version of the 4710EVM.
    I understand now what is happening : because I did not install the SW1 near the JDev pins, this causes an overload of data that circulate causing a crash of the card. Is it ?

    Here is my code : http://pastebin.com/iJ38W7JB

    Best regards,
    Ahmed
  • Hello Ahmed,

    I assume that might be the problem. Can you just send me the command itself please ?

    I can not access your page.

    Best regards,

    Nadine

  • Hello Nadine,

    Oups it is normal !
    Here it is :


    int write_i2c_contrast(int file, unsigned char addr, unsigned char reg, char value) {

    // file = /dev/i2c-1
    // addr = 0x1B
    // reg = 0x80
    // value = for example in hex 7d

    char outbuf[3];
    struct i2c_rdwr_ioctl_data packets;
    struct i2c_msg messages[1];

    messages[0].addr = addr;
    messages[0].flags = I2C_SMBUS_WRITE;
    messages[0].len = sizeof(outbuf);
    messages[0].buf = outbuf;

    outbuf[0] = reg;
    outbuf[1] = 49;
    outbuf[2] = value;

    packets.msgs = messages;
    packets.nmsgs = 1;

    int i = 0;
    while (i < 3) {
    __android_log_print(ANDROID_LOG_DEBUG, "Code C", "----> Values contrast %x\n", outbuf[i]);
    i = i + 1;
    }

    if (ioctl(file, I2C_RDWR, &packets) < 0) {
    __android_log_print(ANDROID_LOG_DEBUG, "Code C", "Fail to Write %s\n", strerror(errno));
    return -1;
    }

    __android_log_print(ANDROID_LOG_DEBUG, "Code C", "Success Contrast Changed");
    return 1;
    }

    Looking for your feedback :)
    Cheers,
    Ahmed
  • Hello Ahmed,

    The code above is showing the command for Write Local Area Boost Control.

    You would have to send two bytes to successfully execute the command.

    So the I2C command would like following:

    Best regards,

    Nadine

  • Hello Nadine !

    Happy New Year :)

    I installed the SW1 between the JDev Pins and the ON/OFF Switch. I still have the same problem : a crash/black screen that appears randomly after the execution of the previous command for example.

    Here is screenshots of my installation : drive.google.com/open

    How can I fix this ?

    Thanks !
    Ahmed
  • Hello Ahmed,

    Happy New Year.

    Since it is only occurring with your code. I assume there is something wrong with sending the command or with the access to the I2C bus.

    Unfortunately I can not download it. Can you please copy the interesting parts into E2E ?

    To get full I2C access you have to press the button after power up and D_MSP should start blinking.

    Do you only have an issue with a specific command or with all of them ?

    Best regards,

    Nadine
  • Hello Nadine,

    I think that it does not come from my code because it does the good result but sometimes the crash occurs.
    The Google Drive link was pictures of the DLP installation I did but never mind.
    The issue comes with all of the commands and it is totally random.

    We will check if the button works perfectly and get back to you !

    Best regards,
    Ahmed
  • Hello Ahmed,

    Yes if you could look at with a scope and see if the command is actually getting send out correctly would be helpful.

    Please let me know how it goes.

    Thanks,

    Nadine