Welcome! Log In Create A New Profile

Advanced

OLED Display SSD1322, Due, RADDS integration

Posted by Chaosstifter 
OLED Display SSD1322, Due, RADDS integration
October 20, 2015 11:36AM
Hello,

i've been working on integration the SSD1322 based display in Repetier fw
This pointer, indirect call mumbo jumbo really takes time to read...
Got the display working with U8Glib in sw and hw SPI mode.
So I know the hardware is working.
Tried working with this and other postes I found about display integration: Forum post

But a basic questions arose:

Non of the display uses A0 (or DC) Pin, even the SSD1306 wich offers the same modes (3-wire and 4-wire SPI)
According to some online research U8Glib does not support 3-wire SPI mode, so the DC Pon wich tells the controller if command or data are send needs to be connected
If that is true how can this work:
u8g_InitSPI(&u8g,&u8g_dev_ssd1306_128x64_sw_spi,  UI_DISPLAY_D4_PIN, UI_DISPLAY_ENABLE_PIN, UI_DISPLAY_RS_PIN, U8G_PIN_NONE, U8G_PIN_NONE);

Does 4-wire SPI (SCK, MOSI, CS, CD (A0) ) even work?
There is some mumbo jumbo going on with these write pins and access hardware functions in this Hall thingys
I found this:

#if defined(U8GLIB_ST7920) || defined(U8GLIB_SSD1306_SW_SPI) || defined(U8GLIB_SSD1322_SW_SPI)
#define UI_SPI_SCK UI_DISPLAY_D4_PIN
#define UI_SPI_MOSI UI_DISPLAY_ENABLE_PIN
#define UI_SPI_CS UI_DISPLAY_RS_PIN
#endif
#include "u8glib_ex.h"
#include "logo.h"

Which I already extended for my display.
Setting one of these pins to -1 showed me that there is some Hall thing going to call the write commands for these pins...
I wonder why I have to tell the Pins again in this function:

#ifdef U8GLIB_SSD1322_SW_SPI
    //u8g_InitSPI(&u8g,&u8g_dev_ssd1322_nhd31oled_bw_sw_spi, UI_DISPLAY_D0_PIN, UI_DISPLAY_D1_PIN, UI_DISPLAY_RS_PIN, U8G_RW_NONE, UI_DISPLAY_ENABLE_PIN);
    //u8g_InitSPI(&u8g,&u8g_dev_ssd1322_nhd31oled_2x_bw_sw_spi, UI_DISPLAY_D0_PIN, UI_DISPLAY_D1_PIN, UI_DISPLAY_RS_PIN, U8G_RW_NONE, UI_DISPLAY_ENABLE_PIN);
    u8g_InitSPI(&u8g,&u8g_dev_ssd1322_nhd31oled_gr_sw_spi,  UI_DISPLAY_D4_PIN, UI_DISPLAY_ENABLE_PIN, UI_DISPLAY_RS_PIN, UI_DISPLAY_RW_PIN, UI_DISPLAY_D0_PIN);
    //u8g_InitSPI(&u8g,&u8g_dev_ssd1322_nhd31oled_2x_gr_sw_spi, UI_DISPLAY_D0_PIN, UI_DISPLAY_D1_PIN, UI_DISPLAY_RS_PIN, U8G_RW_NONE, UI_DISPLAY_ENABLE_PIN);
    //#error IU.cpp U8GLIB_SSD1322_SW_SPI is compiled
#endif

Anyway most important to me:
Is the data/command pin even possible? Or does the U8Glib has to support 3-wire mode.
Some other display dont need this pin as far as I can tell...

Another thing is speed.
I have been using SB with SW since it came out.
But I found a lot of people complaining about speed losses after adding a GLCD to a 8bit based hardware.
If I remember correctly a lot of people recommand text based display for perfonrmace on Delta printers.
Is there any information about impact on speed with Due?
Also does it matter if I use HW or SW SPI in repetier?
To me SW will alway be slower the HW SPI but maybe the way repetier works will keep SW SPI from influencing overal performacne?

I know HW SPI will may not work since SD SPI settings will have to work with the display as well.
If I'm not wrong there is at least one more SPI port on the Due which could be used.
In U8Glib I could change the hardware specific methods to use the other SPI port.
But I dont know about the voodo that is going on in repetiers task handling impementation.

Which brings me to my last questing:
Is there any nicer, more in depth overview of the way repetier firmware works?
Sometimes this could make understanding things a lot easier the just klicking throu functions calling each other and pointing to whatever...

Edited 2 time(s). Last edit at 10/20/2015 01:17PM by Chaosstifter.
Sorry, only registered users may post in this forum.

Click here to login