SH1122 SPI display wont go over 180khz spi frequency aswell as updating "line by line"
hi, im working on a dashboard display, but im not sure why the spi frequency for updating the display is so low
ive set it to 800khz, in the u8g2 library itself, aswell as configuring the display to acommodate for that frequency, but the transmit speed just doesnt want to go over 180khz
im also seeing this update effect, where it looks like the display is updating from top to bottom line by line, ive tried getting rid of that by changing the oscillator/clock divider but i just cant get rid of them, you can kind of see these lines in the video
does anyone here know how one might get rid of these "limitations"?
3 Replies
And by changing the Oszillator frequency/clock divider its only Gottes worse or even fester to the point of looking like the display is constantly being reset
Oh, i will post the code then as soon as possible, i was unter the impression that it may be a Hardware issue and not software
as for the clock, there is the spi clock, which is set to 800khz which overrides the default u8g2 clock speed
i understand that its a library made and maintained by hobbyists, it also uses the recommended frequencies and stuff from the chips (SH1122) datasheet, which is what i have overriden/changed in the initialization of the display (can be found here: https://github.com/olikraus/u8g2/blob/bde09fbf787892c79a184e88b124aa5c79393aed/csrc/u8x8_d_sh1122.c#L233)
as for my code, the ui/display related stuff is all in here: https://git.sr.ht/~literallynobody/moto_meter/tree/main/item/lib/screen
GitHub
u8g2/csrc/u8x8_d_sh1122.c at bde09fbf787892c79a184e88b124aa5c79393a...
U8glib library for monochrome displays, version 2 - olikraus/u8g2
and as one can see from main.cpp, i only initialize the screen with
scr_init(&scr, &state, &u8g2)
and render with ui_home_draw(&scr);