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.

DLPC300 how to reset buffer pointer to beginning of frame buffer0.

Guru 10570 points
Other Parts Discussed in Thread: DLPC300


Hello,
I am developping DLP3000/DLPC300 system without optional FPGA.
I am sending command to DLPC300 via I2C.
I would like to reset the buffer pointer to beginning of frame buffer0 without using RESET signal or Reset command(I2C: 0x1F).
Do you have method to reset buffer pointer?

Best regards, RY

 

  • Hello RY,

    What is your pattern display mode? i.e., are you prefilling four buffers buferr#0 thru buffer#3. I think so. 

    Please confirm. 

    Regards,

    Sanjeev

  • Sanjeev-san,

    Thank you for your quick reply.
    You are correct. I am preloading to images to four buffers "buffer#0 through buffer#3".

    If you need more information, please let me know.

    Best regards, RY

  • Hello RY,

    Good question. 

    Before I jump to explain how to reset the buffer i.e., point to the first buffer buffer#0 you need to remember important thing when you are pre-loading the patterns into the buffer.

    History:

    In DLPC300 chip has two I/Os signals RD_BUF0 and RD_BUF1 on pin B6 and R9 respectively. This will basically notate which buffer it is currently. To enable the RD_BUF0 & RD_BUF1 functionality you must enable the same via DLPC300 I2C register commands 0x4B (for RD_BUF0) and 0x4C (for RD_BUF1). 

    So when you begin loading or prefilling 1st buffer you can read the values which can be any one of the four

    '00'

    '01'

    '10'

    '11'

    Suggestion:

    For example: Lets say the RD_BUF1:RD_BUF0 have value '10' during the pre-filling operation. Now to reset, send VYSNCs or buffer swap command until you read one value less i.e., '01'. This because on the next VSYNC or start display the display pointer would begin showing from the '10'.

    Let me know if anything not clear here.

    Regards,

    Sanjeev

  • Sanjeev-san,

    Thank you so much for your careful comment.
    I am considering the method to recover from illegal state for our reliable system.
    At that time, I assume that RD_BUF[1:0] can not be detected in our system.

    So, I am interested in if there is some buffer pointer reset method.
    e.g.
    Mode change command actullay resets buffer pointer. etc..
    Do you have any idea?

    Best regards, RY

  • Hello RY,

    Unfortunately there is no other way around. 

    In short, it is not possible to go back to 1st buffer with i2c command. 

    One idea, if you find it is out-of-sync, you can stop and pre-load the patterns again. 

    Regards,

    Sanjeev

  • Sanjeev-san,

    Thank you so much for your comment.
    I will consider other method in our system.

    Best regards, RY

  • Sanjeev-san,

    Hello.
    I have once more question.

    When I configure LightCrafter like following, I could see LightCrafter immediately displays 1st pattern after displays 52nd patterns.
    How does it work?

    Since DLPC300 has 96 bit frame, I am interested in how to displays 1st pattern immediately after 52nd pattern.

    I guess optional FPGA sends some special command to LightCrafter, or dummy VSYNCs returns 1st pattern.

    What do you think?

    Best regards, RY

  • Hello RY,

    Could you please explain more in detail? I am not following your question completely.

    If there are 52 binary patterns, your question is how it is displaying 1st pattern after display last pattern i.e., 52nd pattern? is that so?

    Regards,

    Sanjeev 

  • Sanjeev-san,
    Thank you for your reply.

    Yes, your understanding is correct.
    I would to display patterns repeatedly.

    To achieve it, I have to send 44 dummy Vsyncs(96 - 52 = 44) to advance patterns?
    Or, are there other methods to return 1st pattern after 52nd pattern?

    Best regards, RY

  • Sanjeev-san,
    From our exam, the lightcrafter does not use dummy vsyncs.
    It seems to be displayed 13 patterns per each buffer. It amounts to 52 patterns by four buffers.

    Is our understanding right?
    Best regards, RY

  • Hello RY,

    Yes your understanding is correct, it is 13 patterns per each buffer.

    Regards,

    Sanjeev

  • Sanjeev-san,

    Thank you so much for your strong support !
    May I have a question again?

    Can you let me know the conditions to reset buffer pointer in DLPC300?
    - RESET (h/w signal)
    - Software Reset (I2C: 0x1F)

    Is my understanding right?
    If other signals or commands exist, please let me know.

    Best regards, RY

  • Hello RY,

    As I have explained at the beginning there is no specific command as such that would cause the buffer to be reset.

    Software Reset (0x1F) - This will just reset controller chip to the default values, the buffer position has importance in the Pattern Sequence Mode, now after software reset, if there is NO valid solution stored that is Pattern Sequence Solution, then it goes to static image display, as you know in Video Mode, buffer position don't have any significance.

    Reset (h/w signal) - You must keep track of the RD_BUF1:0 signals while loading the buffer, so for reset you need to generate pusedo sync & buffer swap signals to position it to the right buffer.

     Regards,

    Sanjeev