Jump to content

Recommended Posts

Posted

I finally got a display to work with my core module... The display shows the copyright information fine, but when it displays a patch name it is incomplete...

This is what I get on the screen:

A  1Inte 1al1---CH

This is a 4 bit display, which i didn't realize until i recieved it. The sid app has been recompiled to compensate for this.

Anything else to concider, or check?

Posted

Unfortunatly, no... It is configured for a 20x2, and the display is a 20x2

I even tried to set it as a 16x2 to see what happened... pretty much the same thing

#define CS_MENU_DISPLAYED_ITEMS 5 is set in main.asm... That was my first thought as well.

It's somewhat odd, when the unit is powered on, the copyright comes up on the top line. then something else shows really quickly, temp something, then the messed up patch kinda comes in on top of it

It seems as if the display isn't clearing itself properly

Update:

I installed the benchmark app... It gives the mios copyright, then I get:

ABCD 3###JKLMNOP0 ns

The number signs denote changing numeric values, and the 0 is a zero and not the letter O

Posted

Update #2:

In tinkering around with this thing, I found that if I send a MIOS_LCD_Init then send a  LCD message at the current cursor position, the display magically displays properly...

This whole LCD thing is new to me and im kinda clueless as to what is going on....

But in guessing, I would say that the lines arent addressing properly. Everything is getting dumped on the 1st line...

Keep in mind I don't actually have a control surface setup on this thing yet. I'm not sure if something is floating that needs to be tied to ground...

One step closer to the madness...

Posted

Ahh troubleshooting I like that :) Good stuff, mate!

Have you got a datasheet for this thing? It could be helpful.

I found that if I send a MIOS_LCD_Init then send a  LCD message at the current cursor position, the display magically displays properly...

So after this, everything is fine until you power down ?

But in guessing, I would say that the lines arent addressing properly. Everything is getting dumped on the 1st line...

Obviously I can't see that from here but it's possible... That might be a sign that the 4 bit addressing isn't working right. Have you seen the page on the wiki about that? I'm sure I remember seeing one...

Keep in mind I don't actually have a control surface setup on this thing yet. I'm not sure if something is floating that needs to be tied to ground...

I doubt that it'd have any effect, but I could be wrong.

Posted

I don't have the datasheet for this exact module, I do have the pinout though.

I also know that it contains a few OKI M5839B's and a Sanyo LC7985NA which is HD44780 compatible. I'm not the only person who has seen this issue with this BG Micro display.

Unfortunatly the board is wired strictly for 4 bit, the traces to the other 4 bits on the processor are non existant. If there were actual traces to these pins I would try hardwiring them.

And yes, all is well until either a power down or a MIOS_Reset command.

I'm begining to wonder if this display takes an odd command set or something. This is my first go at anything like this, so I'm kinda shooting in the wind.

As far as the WIKI goes, all I can find is info on how to recompile an app to work in 4 bit mode, which I have already done.

Also, the pinout shows R/W tied directly to ground. When I tie R/W to ground I get the normal black bars. I can tell it is doing something because it turns on the 2nd line of black bars after a few seconda. With R/W tied to the core, I get the strange 1 line problem.

Posted

Here is some y position data... Not sure if it matters though.

With the display working, MIOS_LCD_YAddressGet replies with:

WREG: 54    MIOS_PARAM1: 00    MIOS_PARAM2: 40    MIOS_PARAM3: 14

Done

With the display jumbled it replies:

WREG: 54    MIOS_PARAM1: 00    MIOS_PARAM2: 04    MIOS_PARAM3: 14

Done

Posted

Problem solved  :)

What I did to fix the problem was to add a call to MIOS_LCD_Init after the 4 bit code and recompile. The copyright now uses both lines, where before it was only on the top...

Heres the segment of code:

;; use a CLCD, E input of first CLCD at D.7, E of second CLCD @C.4

        ;; using the 4-bit interface:

        ;; -> connect MBHP_CORE:J15:D7-D4 of the core module to D7-D4 of the LCD

        ;; -> left MBHP_CORE:J15:D3-D0 of the core module open!

        ;; -> tie D3-D0 of the LCD to ground

        movlw        0x37 | 0x80        ; E1: D.7, 4bit interface

        movwf        MIOS_PARAMETER1

        movlw        0x24 | 0x80        ; E2: C.4, 4bit interface

        movwf        MIOS_PARAMETER2

        movlw        MIOS_LCD_TYPE_CLCD ; LCD type 0

        call        MIOS_LCD_TypeSet

call     MIOS_LCD_Init

Posted

Damn my reply from last night has disappeared, I must've closed the wrong window or something  :-\

I suggested just that - if a lcd_init works then maybe you should just add one... Although it begs the question why two are required (one is already called automatically on bootup)...

I wonder if your LCD is taking too long to initialise and so is not ready when the first lcd_init is sent (when MIOS boots). I was thinking that it could just be a charactristic of your particular model of display, or maybe the LCD or core might not be getting enough power?

Personally I don't like to leave loose ends. I'd be trying to find out why it's doing this, because if it's missing the lcd_init, who knows what else is being missed... You have a workaround but it's not really a fix.

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