Hi, i was interfacing oled with nrf52 board. I got some example and modified bit to use it with GCC. But it is now working. Oled not at all starting. oled is 0.96 inch, I2C based 128x64. Vdd = 5v sda = p0.26 scl = p0.27
Here is code github.com/.../
Hi, i was interfacing oled with nrf52 board. I got some example and modified bit to use it with GCC. But it is now working. Oled not at all starting. oled is 0.96 inch, I2C based 128x64. Vdd = 5v sda = p0.26 scl = p0.27
Here is code github.com/.../
Hi,
The problem seems to be that you are using the TWI driver in non-blocking mode, but you do not have any mechanism implemented to make sure that the previous transfer is done before starting a new transfer. If you check the return code of your calls to nrf_drv_twi_tx()
in ssd1306_command()
, you will see that you get a lot of error code 0x11 - NRF_ERROR_BUSY. This leads to that the commands is not sent to the OLED.
A simple fix to this problem is to switch to blocking mode for the TWI instance. This is done by passing NULL
to event_handler argument of nrf_drv_twi_init()
.
Best regards,
Jørgen
I checked with blocking mode, but it didn't work for me. Do i have to change jumper anywhere? I checked voltage and its proper, but like other lcd's which glow backlight, but with oled backlight is not coming. Do we have any example to refer?
Yes, the backlight is enables in initialization (at least on my device). Do you get any error codes from the calls to nrf_drv_twi_tx
? Have you checked that you are using the correct address for the device? You can scan for TWI devices using the TWI scanner example.
No, I think my code is not working at all. Even if i do LED ON then also no effect. I saw once LED backlight was ON, but later no such effect. I have updated code on github and link shared in 1st post.
The code from your GitHub is working with my display if I change the I2C address from 3D to 3C. Are you sure the OLED is powered correctly?