Hi, I'm new to this forum but not to hardware/software, still I spent weeks on understanding the controller and how to control it.
I have read loads of how to initiate the controller with all kinds of settings which you can't find in the datasheet and still having problem.
I'm using ARM(NXP) and I2C(400Khz), and bare metal code. I have the same I2C routines that I have been using for 10 years so I think they are working, but now to one of many problems.
I initiate the SSD1306 to page mode setting......and all that, when I try to send text at Page 0(0xB0) with LSB=0x00 and MSB=0x10, should be Colum 0 at page 0, then I see the text I want to display, then I set page 0 and colum 0 again and try to clear everything, nothing happens. I have verified all one bytes command and they work all fine. Regarding any timing issues I normally step with debugger and there is no difference by running with breakpoints or not. I have seen so many interpretations regarding how to send CMND/DATA, but I'm using it like this ADRSSD1306 = 0x78, // 0111 10+SA0(D/#C)+W
mDATA = 0xC0, // 1100 0000 multiple Data
mCMND = 0x80, // 1000 0000 multiple Command
sDATA = 0x40, // 0100 0000 single Data
sCMND_ = 0x00 // 0000 0000 single Command
So, does any have any ideas about this and make my day ?
Cheers
CK
Hi, I'm new to this forum but not to hardware/software, still I spent weeks on understanding the controller and how to control it. I have read loads of how to initiate the controller with all kinds of settings which you can't find in the datasheet and still having problem.
I'm using ARM(NXP) and I2C(400Khz), and bare metal code. I have the same I2C routines that I have been using for 10 years so I think they are working, but now to one of many problems.
I initiate the SSD1306 to page mode setting......and all that, when I try to send text at Page 0(0xB0) with LSB=0x00 and MSB=0x10, should be Colum 0 at page 0, then I see the text I want to display, then I set page 0 and colum 0 again and try to clear everything, nothing happens. I have verified all one bytes command and they work all fine. Regarding any timing issues I normally step with debugger and there is no difference by running with breakpoints or not. I have seen so many interpretations regarding how to send CMND/DATA, but I'm using it like this ADRSSD1306 = 0x78, // 0111 10+SA0(D/#C)+W mDATA = 0xC0, // 1100 0000 multiple Data mCMND = 0x80, // 1000 0000 multiple Command sDATA = 0x40, // 0100 0000 single Data sCMND_ = 0x00 // 0000 0000 single Command So, does any have any ideas about this and make my day ? Cheers CK