Jump to content

8 LCDs on 1 CORE :D


MTE
 Share

Recommended Posts

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_multi

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 pins

You especially don't need to copy the driver into a new directory to change the number of supported LCDs

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

Link to comment
Share on other sites

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

Well, 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 pins

You especially don't need to copy the driver into a new directory to change the number of supported LCDs

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

Link to comment
Share on other sites

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 :)

Link to comment
Share on other sites

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 :(

Link to comment
Share on other sites

  • 6 months later...

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

Link to comment
Share on other sites

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

×
×
  • Create New...