Forum breadcrumbs - You are here:ForumGeneral: Helpssd1306
You need to log in to create posts and topics.

ssd1306

PreviousPage 2 of 2

Hi there.

Yes, those commands are supported in the last tester build.

A0/A1 was introduced in this version to remove "Rotate" property.
As far as I can understand in the datasheet, when A1 is executed it mirrors the display vertically, but also depends on C0/C8.

This can explain some of the issues with scroll, but without the code it is difficult to say.
Scroll also depends on the parameters used in commands 26/27/29/2A.

If you share your code I can test.

 

Hi,

Please find the attached zip file for the .sim1, .s and .hex files.

The display after cmd A1 is executed looks like the one on the right below.

Here are the features in the circuit:

  1. press '#' to start. It then display the sine curve.
  2. press '3' to display the 'y=sinx' at the top right side of the image.
  3. press '*' to toggle the display between inverse and normal.
  4. press '0' to send A1 cmd.
  5. press '4' to scroll to the left, press '5' to stop the scroll and press '6' to scroll to the right.
  6. press '9' to scroll right and vertical and press '7' to scroll left and vertical. (press '5' to stop the scroll )
  7. press '8' to display offset vertical repeatedly. It appears the display is scrolling downward.
  8. press '2' to send A3 cmd (vertical scroll area setting) and to activate the scroll. This doesn't look working.
Uploaded files:

Thank you.

I found the problem with A1 and fixed it:

A3 is not implemented, I will do it, but not sure if I understand it correctly.
It seems to set a fixed area that should not scroll:
29/2A is used to setup vertical scrolling: page start, page end, offset and speed.
Then A3 determines a fixed area that does not scroll within scroll area.
Is this correct?

 

Hi,

Thanks for looking into these. 

As for A1, you've currently implemented a vertical flip. My interpretation of the datasheet is that it should be a left and right flip.

For example, the Y-Axis of the graph should appear in the right hand side and the end of the X-Axis should be displayed on the left hand side, etc.. as per "A1h, X[0]=1b: column address 127 is mapped to SEG0"

As for 29/2A, your current implementation is fine except that the vertical movement should be upward rather than downward as per p.45 of the datasheet

As for A3, I don't quite understand the implication or the behavior of the scrolling either if the MUX ratio is not set at 111111b.

If the MUX is the reset value, i.e. 111111b, I think then A[5,0] will be the fixed area, i.e. no scrolling, and the B[6,0] is the scrolling area. But the datasheet doesn't say if the vertical scrolling is upward or downward either. So,...

Cheers

 

 

 

 

As for A1, you've currently implemented a vertical flip. My interpretation of the datasheet is that it should be a left and right flip.

Yes, you are right.

 

As for A3, I don't quite understand the implication or the behavior of the scrolling either if the MUX ratio is not set at 111111b.

If the MUX is the reset value, i.e. 111111b, I think then A[5,0] will be the fixed area, i.e. no scrolling, and the B[6,0] is the scrolling area. But the datasheet doesn't say if the vertical scrolling is upward or downward either. So,...

Well, I think the scrolling is also messed up in the current implementation. A3 is not what I thought.

As I understand now 29/2A defines the RAM area to be used in scroll and A3 defines the screen area to be used in scroll.
In the example shown in the datasheet (image in your previous post) it is not clear because it uses the whole memory and whole screen, so is not really using A3.
So it should work something like this, let me know if this is also your interpretation:

About MUX ratio, it seems to me that this determines the last row to be printed in screen, above that nothing is printed.
So this value limits values used in A3 (table 10-1).
What is not clear is what happens if you actually use values not allowed, value is set to maximum? is ignored?

PreviousPage 2 of 2