SSD1351 not working

For Flowcode users to discuss projects, flowcharts, and any other issues related to Flowcode 6.

Moderator: Benj

Post Reply
MarkW
Flowcode v5 User
Posts: 118
Joined: Thu Sep 17, 2009 1:30 pm
Has thanked: 3 times
Been thanked: 11 times
Contact:

SSD1351 not working

Post by MarkW »

Hello

I have an OLED display connected to 18F46K22 (int osc 16mhz) working with FC V6.1.2.0

Connections are as follows:

1. CLK RA2
2. DATA RA1
3. REG SEL RD3
4. CS RE0
5. RESET RD2

These are all general I/O as the clk / data is bit bashed as explained before

The display also has the required 15V and logic level 2V8 connected with its associated circuitry
however, no matter what i try i cannot get an image or nothing on the screen.....just stays blank.
I have set the foreground color to black, and the background color to white in the properties in the
dashboard panel
Has this macro ever been tested with success on such a display?

Need help here as this is going into a product and well, i hit a brick wall now

Thanks

Mark

User avatar
LeighM
Matrix Staff
Posts: 2178
Joined: Tue Jan 17, 2012 10:07 am
Has thanked: 481 times
Been thanked: 699 times
Contact:

Re: SSD1351 not working

Post by LeighM »

K22: first thing to do is ensure that, in the device config, "Extended Instruction Set" is "Disabled".
I that does not help, then please could you post your project file?

MarkW
Flowcode v5 User
Posts: 118
Joined: Thu Sep 17, 2009 1:30 pm
Has thanked: 3 times
Been thanked: 11 times
Contact:

Re: SSD1351 not working

Post by MarkW »

Hi Leigh

The extended set is disabled

The processor is running OK.....led reality test

See attached FC file.....there are 2 macros to turn OLED on/off
which is working OK

Just cant get image
Attachments
OLED_TEST_SSD1351_FC6_46K22.fcfx
(9.14 KiB) Downloaded 225 times

User avatar
LeighM
Matrix Staff
Posts: 2178
Joined: Tue Jan 17, 2012 10:07 am
Has thanked: 481 times
Been thanked: 699 times
Contact:

Re: SSD1351 not working

Post by LeighM »

Hi,
Some of these displays can be very tricky to start up.
Particularly with regard to delays to allow voltages to stabilize before sending further commands.
There is a possibility that our initialization does not suit your display.
I have amended the component such that SendData and SendCommand are now externally available,
such that you can check the manual for your display regarding setup procedure and hopefully create your own.
Just drop the updated component into your Flowcode 6 \components directory.
Hope that helps
Leigh
Attachments
gLCD_SSD1351.fcpx
(52.95 KiB) Downloaded 223 times

MarkW
Flowcode v5 User
Posts: 118
Joined: Thu Sep 17, 2009 1:30 pm
Has thanked: 3 times
Been thanked: 11 times
Contact:

Re: SSD1351 not working

Post by MarkW »

Hi Leigh

Thanks for the external commands

Before i can setup my own "initialize" macro, is it possible to
tell me or show me what is going on in the flowcode initialize
macro command?

there are quite a number of things to setup, so it will be very helpful
to see what the standard initialize is doing, otherwise i might just be
going through a whole exercise that is not needed

I will also need to see what is going on with a scope as i recall a little
while ago when i did look, the CLK is constantly running and i think
i didnt see any bit bash data coming through....was stuck high

But lets see the standard initialize code first? Or some way i can see
whats going on there

Thanks

Mark

User avatar
LeighM
Matrix Staff
Posts: 2178
Joined: Tue Jan 17, 2012 10:07 am
Has thanked: 481 times
Been thanked: 699 times
Contact:

Re: SSD1351 not working

Post by LeighM »

Hi Mark,
Attached is the initialise macro that you can import into Flowcode
Leigh
Attachments
Initialise_V7.fcm
(7.88 KiB) Downloaded 223 times
Initialise_V6.fcm
(7.14 KiB) Downloaded 212 times

MarkW
Flowcode v5 User
Posts: 118
Joined: Thu Sep 17, 2009 1:30 pm
Has thanked: 3 times
Been thanked: 11 times
Contact:

Re: SSD1351 not working

Post by MarkW »

Hi Leigh

Something weird going on with this component macro

When i issue the initialize command (using data/command send or the normal one)
the clock just keeps running and the data is stuck high. Also the assigned CS is also
stuck high
I put this into a loop with 1sec delay to scope out the pins to see some burst of CLK/DATA
in 1 sec intervals....nothing doing....does as above

Surely the CLK should only happen when a transaction is done? not run all the time
i even inserted output hi/lo on my RD3 (data/command) to toggle between a command
and data type event, but something hijacks the whole thing and keeps it stuck high as well

to verify the OLED somehow i am re-doing the initialize on the hardware SPI with a small
screen fill command....to do a reality check

If that works then there is a definite problem with this component macro on the 46K22

Problem is that if it works on hardware SPI then how do i use the other functions like print text/number
etc etc that the component provides? I dont fancy rewriting all these functions as then whats the point
of having the component?
would you be able to make the component work on hardware SPI(1)?

going around in circles here :(

MarkW
Flowcode v5 User
Posts: 118
Joined: Thu Sep 17, 2009 1:30 pm
Has thanked: 3 times
Been thanked: 11 times
Contact:

Re: SSD1351 not working

Post by MarkW »

Hi Leigh

OK.....so hard spi is working....i can fill red/blue/green screen

where to from here?

I have some pcb's made already that were setup for the FC macro using
software bit bash and relevant control signals as posted above.
So although the hardware spi is working.... i cannot use it on the ready
made pcb....for obvious reasons....i need the ssd1351 FC macro to work

hopefully you will give me a solution :-)

User avatar
LeighM
Matrix Staff
Posts: 2178
Joined: Tue Jan 17, 2012 10:07 am
Has thanked: 481 times
Been thanked: 699 times
Contact:

Re: SSD1351 not working

Post by LeighM »

OK. Will check the component software (bit banged) SPI when back in office next week

User avatar
LeighM
Matrix Staff
Posts: 2178
Joined: Tue Jan 17, 2012 10:07 am
Has thanked: 481 times
Been thanked: 699 times
Contact:

Re: SSD1351 not working

Post by LeighM »

Please try attached updated component, to go into your Flowcode 6 \components directory
Attachments
gLCD_SSD1351.fcpx
(52.96 KiB) Downloaded 202 times

MarkW
Flowcode v5 User
Posts: 118
Joined: Thu Sep 17, 2009 1:30 pm
Has thanked: 3 times
Been thanked: 11 times
Contact:

Re: SSD1351 not working

Post by MarkW »

Thanks Leigh

I will try give it a bash today and give you feedback

In the meantime did you find anything in the existing
component code?

User avatar
LeighM
Matrix Staff
Posts: 2178
Joined: Tue Jan 17, 2012 10:07 am
Has thanked: 481 times
Been thanked: 699 times
Contact:

Re: SSD1351 not working

Post by LeighM »

Yes, there was a bug in the data send, which would explain the constant clock that you observed.

MarkW
Flowcode v5 User
Posts: 118
Joined: Thu Sep 17, 2009 1:30 pm
Has thanked: 3 times
Been thanked: 11 times
Contact:

Re: SSD1351 not working

Post by MarkW »

Hi Leigh

OK....the component works now....but an oddity

My display is 128X96 pixels, so when the initialization is done
it only fills the background about 3/4 of the way (white) and the
remaining 1/3 still has random color pixels

If i declare the screen to be 128x128 then it fills the background
completely
Can you take a look and see if the settings are being utilized properly
in the component? ( i set these values in the dashboard panel / properties
of the display)
I dont think the 128X96 is being processed correctly

also the operations to the screen are quite slow, but i guess thats because of the
software bit bash routines?.....as opposed to the hardware spi

User avatar
LeighM
Matrix Staff
Posts: 2178
Joined: Tue Jan 17, 2012 10:07 am
Has thanked: 481 times
Been thanked: 699 times
Contact:

Re: SSD1351 not working

Post by LeighM »

Hi,
I have had look and don't see any issue with the screen clear functionality, as long as the display width equates to the controller pixel columns.
Have you tried swapping the height/width values i.e. 96x128
There is also the display orientation that can be changed.
The controller chip supports 128x128 so I guess the issue is down to how that is mapped to the display.
If the text orientation is currently as you want it, then I suspect we are best not changing anything if a 128x128 setting clears the display OK.

MarkW
Flowcode v5 User
Posts: 118
Joined: Thu Sep 17, 2009 1:30 pm
Has thanked: 3 times
Been thanked: 11 times
Contact:

Re: SSD1351 not working

Post by MarkW »

Hi Leigh

yes i did swop the settings around....it always leaves a small section
with random pixels not cleared
But as u say.....prob best to just set it to 128X128....instead of 128X96
My display is physically 128X96, and states so in the datasheet
It is rectangular in shape

Another question, the command / data send that you opened up....it
does use the I/O setting for DC as setup in the panel settings automatically?
Just asking because i toggle it as well, but would like to remove those
because if the command / send is doing it according to I/O settings then
i am just repeating not needed instructions

User avatar
LeighM
Matrix Staff
Posts: 2178
Joined: Tue Jan 17, 2012 10:07 am
Has thanked: 481 times
Been thanked: 699 times
Contact:

Re: SSD1351 not working

Post by LeighM »

Hi,
Yes, the send command/data functions setup and use all the CS/RS/SD/SCK pins from the connections properties.
So you don’t need to set RS or CS before calling them.

MarkW
Flowcode v5 User
Posts: 118
Joined: Thu Sep 17, 2009 1:30 pm
Has thanked: 3 times
Been thanked: 11 times
Contact:

Re: SSD1351 not working

Post by MarkW »

thanks leigh

will see how i get on with the existing libary

i may setup a hardware driven library (spi port) and see how it goes
if it works i will post here for others to use....

MarkW
Flowcode v5 User
Posts: 118
Joined: Thu Sep 17, 2009 1:30 pm
Has thanked: 3 times
Been thanked: 11 times
Contact:

Re: SSD1351 not working

Post by MarkW »

Hi Leigh

can you also please give me the component glcdssd1351 update/bug fix
with exposed data/command for Flowcode7?

i do work on the latest V7 as well

thanks

mark

User avatar
LeighM
Matrix Staff
Posts: 2178
Joined: Tue Jan 17, 2012 10:07 am
Has thanked: 481 times
Been thanked: 699 times
Contact:

Re: SSD1351 not working

Post by LeighM »

Flowcode V7 version attached ...
Attachments
gLCD_SSD1351.fcpx
(55.26 KiB) Downloaded 159 times

MarkW
Flowcode v5 User
Posts: 118
Joined: Thu Sep 17, 2009 1:30 pm
Has thanked: 3 times
Been thanked: 11 times
Contact:

Re: SSD1351 not working

Post by MarkW »

Hi Leigh

Would it be possible for you guys to have the SSD1351 component driven
by hardware SPI ? The current bit bash method is just too slow when doing
updates on the screen.....

With the hardware spi option available i can clock the data much faster
and that would be a great feature to have

I do realize that would take a bit a modifying but it would be really useful
if it can be done :)

MarkW
Flowcode v5 User
Posts: 118
Joined: Thu Sep 17, 2009 1:30 pm
Has thanked: 3 times
Been thanked: 11 times
Contact:

Re: SSD1351 not working

Post by MarkW »

Hi

Any answer to this question about driving the OLED library through
hardware SPI?

User avatar
LeighM
Matrix Staff
Posts: 2178
Joined: Tue Jan 17, 2012 10:07 am
Has thanked: 481 times
Been thanked: 699 times
Contact:

Re: SSD1351 not working

Post by LeighM »

Hi
Sorry for no reply so far. We havn't had chance to look at the implications yet.
Ben wrote this component, so I'll get his view of the time to enhance it.

Post Reply