TK. Posted June 10, 2008 Report Share Posted June 10, 2008 I've a rough assumption why it could fail, but it doesn't match exactly with your observations:The bootloader toggles pin RC0 one time, and RC1 128 times during startup in order to perform a "soft-reset" of a evtl. register chain which is connected to this port. This could "confuse" LCDs, which are connected to these pins. The pins are also toggled by MIOS before a reboot.This "soft-reset" is especially important when MBHP_MF is connected to port J7 to ensure that all motorfaders are stopped during/after reset. It's also required for AOUT modules.A long term solution to overcome such conflicts with IO pin usage is to provide a flag in the ID header which disables this pin toggling. But currently, the CLCD module would be the first one which would require such a flag...On the other hand, for the multi-CLCD driver there is a much better solution: as you probably already noticed, I've prepared it for 4bit mode to free pin RB0..RB3 for enable lines. I just have commited a modified version of clcd_multi which allows to use these lines for the last 4 LCDs: http://svnmios.midibox.org/trunk/modules/app_lcd/clcd_multiNote that the pin assignments can be changed externally (-> Makefile) - you don't need to modify the original module in order to assign them to other IO pinsYou especially don't need to copy the driver into a new directory to change the number of supported LCDsThe changes are totally untested, I cannot exclude that there are one or two mistakes in the code, because I don't own this hardware, and I'm currently too lazy to double and tribblecheck the routines.So, if there are problems: please start to debug this by doing code changes in order to get a feeling about the effects before saying "it doesn't work". E.g., if some displays are working unstable, add some NOPs before the return instruction of USER_LCD_Strobe_Set and _Clr to check, if this is a timing related issue (enable pulse too small).Best Regards, Thorsten. Quote Link to comment Share on other sites More sharing options...
stryd_one Posted June 11, 2008 Report Share Posted June 11, 2008 I've a rough assumption why it could fail, but it doesn't match exactly with your observations:The bootloader toggles pin RC0 one time, and RC1 128 times during startupWell, that would explain why we had problems with the built-in CLCD driver too.... Though normally, a CLCD shouldn't go crazy like that if the enable line is strobed.... in theory it shouldn't do anything at all... and it doesn't explain why it sometimes works and sometimes doesn't ... ...But it will be interesting!!RB0..RB3 for enable lines.I'd suggested this too, and MTE wanted to try J5, so it should be interesting to see how this goes...Note that the pin assignments can be changed externally (-> Makefile) - you don't need to modify the original module in order to assign them to other IO pinsYou especially don't need to copy the driver into a new directory to change the number of supported LCDsHeh, I was going to write that for you tonight :) I hope you weren't waiting for me... If you are waiting for me just let me know :)MTE if you need a hand with this, we'll meet in the chat at the usual time. From our testing, I know that you know how to change the include with the makefile, so now you should use the one from SVN (don't forget to do SVN Update first!) so it should use $MIOS_PATH*.So, if there are problems: please start to debug this by doing code changes in order to get a feeling about the effects before saying "it doesn't work". E.g., if some displays are working unstable, add some NOPs before the return instruction of USER_LCD_Strobe_Set and _Clr to check, if this is a timing related issue (enable pulse too small).FYI, we did try this with the old driver to no avail. Quote Link to comment Share on other sites More sharing options...
MTE Posted June 11, 2008 Author Report Share Posted June 11, 2008 Nice, thats good news :)Ok so Ill start from scratch and solder the last 4 LCDs to RB0 - 3 and need only a little introduction what I should change in the makefile ;)*MTE now fires on his solderstation ;D...meet ya in the chat :) Quote Link to comment Share on other sites More sharing options...
stryd_one Posted June 11, 2008 Report Share Posted June 11, 2008 MTE is a troubleshooting trooper!However, for all our efforts, we can't get it to behave. I suspect that MTE's new mystery LCDs are a bit unusual; it seems as though, when they are not being written to any more, the LCDs are still interfering with the control or data lines, so the other LCDs are not written to correctly.MTE is going to try and track down the manufacturer so that he can get a datasheet, but until then we have to give up, because I only have PLEDs (which don't like 4bit mode).Damn :( Quote Link to comment Share on other sites More sharing options...
ultra Posted December 15, 2008 Report Share Posted December 15, 2008 any progress on this? i'm interested in using 5 glcds!ultra Quote Link to comment Share on other sites More sharing options...
stryd_one Posted December 16, 2008 Report Share Posted December 16, 2008 Nah, MTE abandoned it... Not until after a considerable effort to make it work though. Honestly, there's no reason why it shouldn't work, at least in theory. The displays were acting up pretty badly, I'd say that you'll probably have more luck with an LCD designed for the job you have in mind, rather than one designed specifically for a mobile phone ;) (and not new but ripped from some of said phones, and bought for real cheap on ebay, etc.) Quote Link to comment Share on other sites More sharing options...
ultra Posted December 16, 2008 Report Share Posted December 16, 2008 well, i'm going to go ahead and order my lcds when i can. sometimes investing some money is a kick in the butt to get it figured out.of course, i'll probably be bugging the heck out of you guys to figure this out :P. Quote Link to comment Share on other sites More sharing options...
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.