Announcement

Collapse
No announcement yet.

Line Scan Speed & OLED on time

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Line Scan Speed & OLED on time

    First some background information:
    I am using the G1 development board with an uOLED-160 with the Goldelox platform.

    Attached is a plot from a photodiode looking at the uOLED. A command to draw a filled square on the uOLED was sent to the display. From the plot you can see each individual row on the OLED turn on. I have a few questions:

    1.) Is there any way to change the time the OLEDs are on? From the plot it appears the OLEDs are on for ~ 100us. The change can be accomplished either by software or hardware, although software is preferred.

    2.) Is there any way to change the time before the next row is updated? From the plot, it appears that after 1 row of OLEDs are turned off, the next row is updated ~30us later.

    Thanks for your help.

    Cheers,
    mcduff


    Attached files

  • #2


    You need to read the datasheet for the display driver. From here http://www.4dsystems.com.au/prod.php?id=20 I guess that means the SEPS525 for you.

    There are quite a few settings that will alter the times you are talking about. They are currently optimised for 'normal' viewing, but I guess you are asking the question for some abnormal reason.

    If you are using SGC you can use DISP to change these settings.

    If you are using GFX use the samples in the 'uOLED160 External' folder.

    Please be warned, incorrect values can destroy the display.
    Mark

    Comment


    • #3


      Thanks for the advice. I'll look into these commands.

      cheers,
      mcduff

      Comment


      • #4


        ESPsupport

        Thanks for your help. Please try to excuse my ignorance and/or stupidity.

        I've looked at the examples and the literature, it is possible that I am looking in the wrong places, but it is my understanding that these settings are set in the beginning of the program, either through the default values in the PmmC file or the DISP command at the beginning of a program.

        I guess that I was unclear in my previous question.

        I would really like to "dynamically" change these values while a program is running and not just set them at the beginning of a program.

        Is this possible without breaking the display?

        Thanks again for your help.

        Cheers,
        mcduff

        Comment


        • #5


          IF you are sending the correct values you can send them at any time without destroying the display.

          Of course some commands may need sending in a particular sequence, but that is (usually) apparent from the datasheet.
          Mark

          Comment


          • #6


            Thanks for all of your help, but I am still befuddled in my attempts to change the display settings.

            In the manual, GOLDELOX-GFX2-4DGL-Internal-Functions-rev5.pdf, and in the example provided with the 4d programs, all of the parameters are changed at once. I am unclear about your statement "some commands may need sending in a particular sequence." The Disp_Init command seems to change all of the relevant values. Also in my lame attempts to try and change the display values using the Disp_Init command, the screen always flickers/resets even if I try to specify that the display does not turn off or resets itself.

            Thanks again for your advice.

            cheers,
            mcduff

            Comment


            • #7


              Obviously if you were going to reduce the driving current and increase the precharge time you would do the former first, otherwise the display could be over driven for a period of time.

              Some changes will always cause the display to flicker, that's why it's good to turn it off while you make them.

              To change values on the fly you can use the $W (write to oled reg) command. First operand is the register, second is the new value.
              Mark

              Comment


              • #8


                Thanks for your advice.

                As you may have expected, I am problems. I cannot find any documentation regarding the $W command. When I try to use it, I get a compile error.

                What am I missing?

                Thanks
                mcduff

                Comment


                • #9


                  The $W command is not documented to prevent it's 'destructive' use.

                  Similarly it is not in the 'compiler', is is expected that if you need to use it you will send it directly from your controller.
                  Mark

                  Comment


                  • #10


                    Thanks.

                    So, if I try to use the $W command, I should be in SGC mode, correct?

                    Cheers
                    mcduff

                    Comment


                    • #11


                      Uh, sorry, somehow I thought you were using SGC.

                      GFX commands are :-
                      disp_WriteControl
                      disp_WriteByte
                      Mark

                      Comment


                      • #12


                        First of all I would like to thank you for your help; I'm finally making progress.

                        I've changed to SGC mode as this seems easier for me to program.

                        I have a couple of more questions:
                        1.) Is there a read command analogue to the write command, $W? I've tried $R with a register argument but that does not work.

                        2.) Beside the SEPS525 documentation, is there any internal document describing these registers? I am not a electrical engineer, I have more of a biology background, and am unclear about what is "(usually) apparent from the datasheet".

                        For example, the SEPS525 documentation says the precharge time range is 0 to 15 based on the internal oscillator. However, I cannot find any information that describes this dependence in the documentation. To be safe I've ordered four more displays before I start messing with the commands.

                        Thanks again for your help.

                        Cheers,
                        mcduff

                        Comment


                        • #13
                          There's no $R command as most displays do not have any readable registers (yep!).

                          There is very little 'usually apparent' they seem to always be written in Chinglish and you need to read between the lines way too often and testing is often the only way to wrok out what is really going on.

                          If you look in C:\Users\Public\Documents\4D Labs\Goldelox GFX2\GP\uOLED160 External at one of the files you can see the commands used to init the display, so the initial state can be assumed from there.
                          Mark

                          Comment

                          Working...
                          X