Jump to content

Recommended Posts

Posted

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

Posted
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!

Posted (edited)

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
Posted
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...

Posted (edited)
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
Posted

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!

 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...