FantomXR

OLED shows noisy-output

14 posts in this topic

Hey people,

I need you experienced guys! I've made a mios32-Core by myself which I test at the moment. While the first one works great. The second one causes trouble. And I don't know why. 

Please see the picture attached. Does anyone have an idea where the noise on the displays come from? I used this OLED-breakout (it contains OLEDs, Reset-circuits (Cap & Res) & Shiftregister) in some other projects already and it worked fine. So I assume the mistake is somewhere on the core. But as I said: Another identical core runs fine... Could it be the STM that is damaged? 

To be sure, that the mistake is not on the 9x OLED Breakout, I also tried it with an OLED with Reset and shiftregister on the breadboard. Same here...

I now searched for about eight hours and also searched with an oscilloscope, but I was not able to locate the problem. 

Thank you very much!

Best,
Chris

Foto 15.08.18, 13 38 30.jpg

Foto 15.08.18, 13 55 39.jpg

Share this post


Link to post
Share on other sites

It could be a dud display injecting bad vibes onto the SPI, it could be a defective chip or flux residue. 

Share this post


Link to post
Share on other sites

Yes it was happened to me recently, it was a bad clearing in software...
The noise appears on startup you have to clear it correctly. MIOS32_LCD_Clear

Share this post


Link to post
Share on other sites
42 minutes ago, latigid on said:

It could be a dud display injecting bad vibes onto the SPI, it could be a defective chip or flux residue. 

No. The same oled-breakoutboard works on another core. So I don't think it's a defective display.

@Antichambre But still: Why does that happen only on that core? The other one runs fine. Which modification do I have to make in the firmware to clear it correctly? Could you help me with that?

Thanks guys!

Share this post


Link to post
Share on other sites

first go in your bootloader updater (terminal) and check if there's difference in the configuration between the two cores...

Share this post


Link to post
Share on other sites

Do you use the same powersupply when testing the second core?

Share this post


Link to post
Share on other sites
1 hour ago, novski said:

Do you use the same powersupply when testing the second core?

Yes. USB power on both cores.

Share this post


Link to post
Share on other sites

Did you check the soldering/flux residue around the pins that control the display?

Share this post


Link to post
Share on other sites

I was serious with the bootloader check, but doesn't matter... Did you try an app with a correct clear of the oled on init and write something after... (not just the legacy boot sequence) ???!!
But Andy is maybe right, you have to check your core boards first and the resistance network there's on the J15 lines, check the 595 too it can put too much load on the RS line.
If the boards you use are not the ones you made, swap the cores of the two mbhp to see if it comes from board or Core...

Edited by Antichambre

Share this post


Link to post
Share on other sites
16 minutes ago, Antichambre said:

I was serious with the bootloader check, but doesn't matter... Did you try an app with a correct clear of the oled on init and write something after... (not just the legacy boot sequence) ???!!
But Andy is maybe right, you have to check your core boards first and the resistance network there's on the J15 lines, check the 595 too it can put too much load on the RS line.
If the boards you use are not the ones you made, swap the cores of the two mbhp to see if it comes from board or Core...

Which app do you mean?
As the resistor-network is on the same PCB as the OLEDs and the PCB works great with another core, this shouldn't cause any problems. 

I'll check again all connections and soldering...

Share this post


Link to post
Share on other sites
25 minutes ago, FantomXR said:

Which app do you mean?

One which uses the LCD routines, you can write it.
 

/////////////////////////////////////////////////////////////////////////////
// Include files
/////////////////////////////////////////////////////////////////////////////

#include <mios32.h>
#include "app.h"

#include <glcd_font.h>


/////////////////////////////////////////////////////////////////////////////
// Local variables
/////////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////////
// This hook is called after startup to initialize the application
/////////////////////////////////////////////////////////////////////////////
void APP_Init(void)
{

  // initialize all LEDs
  MIOS32_BOARD_LED_Init(0xffffffff);

}


/////////////////////////////////////////////////////////////////////////////
// This task is running endless in background
/////////////////////////////////////////////////////////////////////////////
void APP_Background(void)
{
  int i;
  // clear LCDs
  MIOS32_LCD_DeviceSet(0xff); //select all lcds
  MIOS32_LCD_Clear();

  // endless loop
  while( 1 ) {
    for(i=0; i<16; i++){
      MIOS32_LCD_DeviceSet(i);
      MIOS32_LCD_GCursorSet(0, 0);
      MIOS32_LCD_FontInit((u8 *)GLCD_FONT_NORMAL); // 6x8 font
      MIOS32_LCD_PrintString("This is a test for:");
      MIOS32_LCD_GCursorSet(0, 8);
      MIOS32_LCD_PrintFormattedString("LCD#%02d ", i);
    }
  }
}

something like that...


obviously you must include the app_lcd in your makefile:

# application specific LCD driver (selected via makefile variable)
include $(MIOS32_PATH)/modules/app_lcd/$(LCD)/app_lcd.mk

check your LCD variable is "universal", of course.

And LCD must be configured in your bootloader(updater) Did you check it?
Capture%20d%E2%80%99%C3%A9cran%202018-08

Edited by Antichambre

Share this post


Link to post
Share on other sites

Oh my god! This is embarrassing. I forgot to set the correct width and height in the bootloader.... I worked with OLEDs already a dozen times... I wonder how I was able to overlook that!

Thanks for your help!

 

Share this post


Link to post
Share on other sites
On 15/08/2018 at 9:10 PM, Antichambre said:

first go in your bootloader updater (terminal) and check if there's difference in the configuration between the two cores...

:wink:
Have fun !

Bruno

Share this post


Link to post
Share on other sites

Yeah. You were absolutely right! The last days I had no time to connect both cores... but today I checked everything.... man...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now