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.

Linux/DLPDLCR2000EVM: DLPDLCR2000EVM

Part Number: DLPDLCR2000EVM

Tool/software: Linux

Dear Sirs,

Trying to wet my feet using the DLP2000EVM in conjunction with a raspberry pi3.

Was aattempting the I2C access reading registers, the folllowing was done:

EVM displlays ssplash screen properly

EVM reports the right device address "0x1b" when using I2cdetect

Tried:

wrote to Reg 0xAA, the value 0xdd 0xdd 0xdd 0xdd using i2cset

attempted reading using:

i2cset -y 1 0x1b 0x36 0x15 0xAA i

folllowed by:

i2cget 0x1b 0x37

0x00

I expected to be able to read the 0xdd that I wrote to the register?

Am I doing something wrong???

Best Regards

Samir Lehaff

  • Samir,

    Your I2C commands feature 0x36 and 0x37, but I believe that they may be a mistake or not necessary. You are correct in writing to subaddress 0x15 to provide the "read register address" but I believe you may be accidentally writing to 0x36 as the subaddress instead of 0x15.

    The subaddress for reading basic registers is 0x37, so you should be fine there.

    Let me know if that helps.

    Best Regards,

    Philippe Dollo
  • Philppe,
    thanks for your response. You were right about pointing obout pointing out my error the i2c read command, I did correct it such that my modified input,when trying to write and read from 0xAA, now is:
    i2cset -y 1 0x1b oxAA 0xdd 0xdd 0xdd 0xdd i # write dd into oxAA
    i2cset -y 1 0x1b 0x15 0xAA i # point the read reg at AA
    i2cget -y 1 0x1b # read AA
    0x00 # I still get 0x00 and not 0xdd that I previously wrote ???

    Any suggestions??
    Regards
    Samir
  • Samir,

    After looking into this a bit more, I can confirm that there are some iterations of i2ctools which do not support 4-byte reads with i2cget (which is required to interface with the DLPDLCR2000EVM as the registers are all 4 bytes wide). The justification for this is that the i2ctools are intended for debug purposes and not all features are necessarily supported.

    If you cannot update your i2c tools to support 4-byte reads, I recommend you review the DLP Lightcrafter library provided with the BeagleBone Black distro. I provided a link to it in this thread: e2e.ti.com/.../636432

    In this library, you can see how to write code that generates i2c calls with example code provided. These I2C commands allow the user to call for any number of bytes.

    Let me know if I can be of further assistance on this matter.

    Best Regards,
    Philippe Dollo
  • Philippe,
    I have actually moved on to adapting your python interface code with good results, I am simply using the ddp2607.py as an interface lib to the controller, my preference is to use python for my implementation, results look quite encouraging so far.

    Regards
    Samir
  • Samir,

    I too am working to get the integration on Raspberry Pi. Can you elaborate a little on how you can use the ddp2607.py file? Are you just putting the ddp2607.py file, and the other files it references, beside your custom python script and using an 'import ddp2607' reference at the top of your python script and then calling the relevant functions? If you could share a simple example, maybe you have something that defines the video mode correctly for the RPi?

    I am looking at the file ddp2607.py and see the following code...

    class PixFormat(IntEnum):
        """
        Pixel Data Format
        """
        RGB565_16_BIT_ = 0x00
        RGB666_18_BIT_ = 0x01
        RGB888_24_BIT_ = 0x02
        RGB565_8_BIT_ = 0x03
        RGB888_8_BIT_ = 0x04
        RGB888_16_BIT_ = 0x05
        RGB666_8_BIT_ = 0x06
        RGB666_16_BIT_ = 0x07
        X_4_2_2_YCR_CB_16_BIT_ = 0x08
        X_4_2_2_YCR_CB_8_BIT_ = 0x09
    "
    "
    "
    Further down...
    "
    def DPP2607_Write_VideoPixelFormat(pix_format):

    so I would call something like below from my Python script?

    DPP2607_Write_VideoPixelFormat(RGB666_18_BIT)

    Thanks,

  • Philip,

    Thanks for your question, I have been busy with some other parts of my project, but, to answer your question, I use the dpp2607.py file both as an import and as a design input. Referring to your example above:

    in my pyhton file, considering I needed to use the functionality of the DPP2607_Write..., I would:

    Import dpp2607  as dpp

    ...

    dpp.DPP2607_Write_VideoPixelFormat( dpp.RGB666_18_BIT)

    .....

    I will be looking at the DMD interface shortly and would gladly share my samples.

    Feel free to get back to me If I can be of some help.

    Regards

    Samir