GLCD SSD1327 SPI needed

Post here to discuss any new features, components, chips, etc, that you would like to see in Flowcode.
Jorg_Guldner
Posts: 31
http://meble-kuchenne.info.pl
Joined: Wed Dec 23, 2020 9:55 am
Been thanked: 4 times

Re: GLCD SSD1327 SPI needed

Post by Jorg_Guldner »

Hello,
I tried your idea with the c-box. Result is the same like before.
Pin 17,18,21 and 22 are not toggling. All other pins are working. Switch off the comparator modul gives no success.
Setting ANSELB to 0 is although not successfully.
Any idea? This would solve in the end, that the oled modul will works.
toggle problem port b.jpg
toggle problem port b.jpg (80.95 KiB) Viewed 3837 times
Regards
Jorg

BenR
Matrix Staff
Posts: 1707
Joined: Mon Dec 07, 2020 10:06 am
Has thanked: 435 times
Been thanked: 598 times

Re: GLCD SSD1327 SPI needed

Post by BenR »

Hi Jorg,

Hmm that is a strange one, I'm largely out of ideas now. Could there be something simple like a short to ground on those pins stopping them from toggling? Otherwise could it be a damaged device are you able to replicate on another device.

Jorg_Guldner
Posts: 31
Joined: Wed Dec 23, 2020 9:55 am
Been thanked: 4 times

Re: GLCD SSD1327 SPI needed

Post by Jorg_Guldner »

Hello!
I tried several chips with the same result.
Measuring with an oscilloscope:
Pin 15 = toggling
Pin 16 = toggling
Pin 17 = GND ???
Pin 18 = +2V ???
Pin 19 = GND
Pin 20 = +2V (vcap)
Pin 21 = GND ???
Pin 22 = GND ???
Pin 23-26 = toggling
Pin 27 = GND
Pin 28 = +3,25V
Is it a help, while pin 18 have +2V?
This is no digital value.

In an older project there was a similar problem. After some days I found the error.
For this pin i needed, I have to switch off the comp-modul. Was not clearly to read out of the datasheet.

Are there any pullups to switch off or anything else?


I found in a forum the following information to another cpu:
toggle problem port b_Forum.jpg
toggle problem port b_Forum.jpg (62.05 KiB) Viewed 3796 times



Regards
Jorg

BenR
Matrix Staff
Posts: 1707
Joined: Mon Dec 07, 2020 10:06 am
Has thanked: 435 times
Been thanked: 598 times

Re: GLCD SSD1327 SPI needed

Post by BenR »

Aha that's a good find, have you tried changing the JTAG enable bit in the Build -> Project options to Disabled?

Jorg_Guldner
Posts: 31
Joined: Wed Dec 23, 2020 9:55 am
Been thanked: 4 times

Re: GLCD SSD1327 SPI needed

Post by Jorg_Guldner »

Hello!
I did it and now port b is complete toggling.

Idea for this long way to find a solution: > creation of a wikipedia for hints like this case <
There anybody can write or choose a cpu or component, where solutions for problems are writing down. Where although little drawings, how to connect something, can place in there. This could may be, less work for you. So in my case, the hint will be placed there and you could erased the complete conversation between us. Other guys don`t need to read long rows of text to find the solution the are looking for.
What do you think about this?

Or can you set the jtag to "disable" by starting a project with that cpu?

Here now the screen of the display:
SSD1327_first impression.jpg
SSD1327_first impression.jpg (140.8 KiB) Viewed 3774 times
What in the first moment not works, is the "clear display" function.
Placing text, rotating display and rectangle runs. Rest will be tested the coming week.....
Starting the intern debugg to work without hardware lets the flowcode create an error, which is already send to you.
The program then crashes and need a new start.

Regards
Jorg

Jorg_Guldner
Posts: 31
Joined: Wed Dec 23, 2020 9:55 am
Been thanked: 4 times

Re: GLCD SSD1327 SPI needed

Post by Jorg_Guldner »

Hello!
Here are the results from testing:

Rectangle (boundary=white inside=black) transparent=0 solid=0 --> OK
Rectangle (boundary=white inside=white) transparent=1 solid=0 --> OK
Rectangle (boundary=white inside=white) transparent=0 solid=1 --> OK
Line --> OK
Print string --> OK
Fonts --> OK
Clear display --> no reaction
Circle --> OK
Ellipse --> OK
Bplot --> OK
Plot --> OK
Control display --> OK
Invert display: first time (background is white, a line is dark) --> ok
second time (background is dark, no line to see) --> no reaction
third time (background is white, a line is dark) --> OK
Print number = OK
Display orientation: turns 90° / display pixel are set not correct(see picture) --> math not correct
Font scaler --> OK
Shadeintensity: 255 --> OK
150 pixel not correct set / differant colours --> not correct
100 pixel not correct set --> not correct
(see picture)
Window ??? --> not tested
ReadFontStat ??? --> not tested
ReadFontWidth ??? --> not tested
SSD1327_orientation error.jpg
SSD1327_orientation error.jpg (65.5 KiB) Viewed 3703 times
SSD1327_shadeintensity.jpg
SSD1327_shadeintensity.jpg (69.12 KiB) Viewed 3703 times
Importend is the "clear display" function.

Regards
Jorg

BenR
Matrix Staff
Posts: 1707
Joined: Mon Dec 07, 2020 10:06 am
Has thanked: 435 times
Been thanked: 598 times

Re: GLCD SSD1327 SPI needed

Post by BenR »

Hi Jorg,

Many thanks for your detailed report, that really helps. I think we are making progress,

I beleive the text and pixel functions are now working correctly at all orientations which is a great start and the clear function should also be working now too.

I've also been working on trying to make the I2C version of the display faster and in doing so I've rolled this over to the SPI version too. The main slowness is due to the fact that each pixel was being written to the display as part of an individual I2C/SPI transaction which is a very slow way to do things. To do anything more advanced got very complicated fast as two pixels occupy the same data byte and I would have had to jump through lots of hoops to get the right two bytes in each orientation.

I’ve now simplified and changed things so that the display is written all at once at high speed. But this means that to change anything you have to refresh the entire display.

To work around this I have added a new component property named Auto Draw which will default to Yes and allow the display to act like normal. If you set this to No then you can draw as much data to the screen as you like and then call the Refresh function to blast it all out to the screen in one go. This should be much faster and should allow for much more seamless full screen updates.

The downside to this is that the intensity will affect all active pixels on the display at once so you can't have things at varying intensity across the display. However it would allow for things like full screen fade in/out which might look quite cool. Please know that pixel intensity is only 4-bit and so can only vary between 0 (min) and 15 (max).

If you have a go then let me know what you think.

Jorg_Guldner
Posts: 31
Joined: Wed Dec 23, 2020 9:55 am
Been thanked: 4 times

Re: GLCD SSD1327 SPI needed

Post by Jorg_Guldner »

Hi Ben,
I was out of the office some days, but now I tested the downloaded component.
All was working now. You are the greatest! The idea with refresh is although working.
It`s a good idea! Another great jump forward is the possibility to choose fonts for
text. This is now readable for older users and looks more professional.
Debugging inside fc9 with the display let errors occur. The picture below shows,
that the text is displayed, but the rectangle stops the program. The time from
starting debugging to the text is very long.
SSD1327_simulation error.jpg
SSD1327_simulation error.jpg (87.58 KiB) Viewed 3655 times
regards
Jorg

BenR
Matrix Staff
Posts: 1707
Joined: Mon Dec 07, 2020 10:06 am
Has thanked: 435 times
Been thanked: 598 times

Re: GLCD SSD1327 SPI needed

Post by BenR »

Hi Jorg,

Aha think I might have found it, try changing the Simulate Comms component property to No and this should allow the display to run correctly in the simulation.

I'll edit the component and set the default value for the property to no. Yes allows us to drive a real display from within the simulation runtime via an API slave device.

Jorg_Guldner
Posts: 31
Joined: Wed Dec 23, 2020 9:55 am
Been thanked: 4 times

Re: GLCD SSD1327 SPI needed

Post by Jorg_Guldner »

Hi Ben,
you`re right, now it`s running without errors and quicker.
A good description to that point in the help document would be good.

Great done from you!

Now other users have although the possibility for one size higher resolution oled-display
with graphic in 128x128 pixels.

Regards
Jorg

Post Reply