i45one Posted May 19, 2006 Report Posted May 19, 2006 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---CHThis 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? Quote
stryd_one Posted May 19, 2006 Report Posted May 19, 2006 Is it a 2x16 screen? Maybe the app is still configured for 2x20? Quote
i45one Posted May 19, 2006 Author Report Posted May 19, 2006 Unfortunatly, no... It is configured for a 20x2, and the display is a 20x2I 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 itIt seems as if the display isn't clearing itself properlyUpdate:I installed the benchmark app... It gives the mios copyright, then I get:ABCD 3###JKLMNOP0 nsThe number signs denote changing numeric values, and the 0 is a zero and not the letter O Quote
i45one Posted May 19, 2006 Author Report Posted May 19, 2006 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... Quote
stryd_one Posted May 19, 2006 Report Posted May 19, 2006 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. Quote
i45one Posted May 19, 2006 Author Report Posted May 19, 2006 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. Quote
i45one Posted May 19, 2006 Author Report Posted May 19, 2006 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: 14DoneWith the display jumbled it replies:WREG: 54 MIOS_PARAM1: 00 MIOS_PARAM2: 04 MIOS_PARAM3: 14Done Quote
i45one Posted May 20, 2006 Author Report Posted May 20, 2006 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 Quote
stryd_one Posted May 20, 2006 Report Posted May 20, 2006 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. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.