From: Aragon G. <ar...@ph...> - 2004-02-14 18:53:54
|
Hi, I've seen lcd4linux's GPO system and example on the page. I'm trying to find the right circuitry that must work similarly to the example on the page, but provide analog output. More specifically, I'd like to control backlight intensity using a GPO by converting 3 bits of the binary data to 8 voltage variations to the backlight LED. I'm not very experienced with circuit design and was wondering if anyone had some pointers for me? Thanks, Aragon |
From: Michael R. <re...@eu...> - 2004-02-15 06:50:16
|
Hi Aragon, > I've seen lcd4linux's GPO system and example on the page. I'm trying to > find the right circuitry that must work similarly to the example on the > page, but provide analog output. More specifically, I'd like to control > backlight intensity using a GPO by converting 3 bits of the binary data to > 8 voltage variations to the backlight LED. First, I think this is a good idea. I'm planning to include code for software-controlled backlight like for a circuit like this: http://www.jalcds.de/images/4x20backlight.gif But there is no intensity, just switch on/off If you want intensity, I'd try thw following: use the diode 1N4148, the resistor 150 Ohm and the transistor BD135 three times. the 100 Ohm petentiometer should be replaced by a resistor, it's value should be different for all three transistors, and show some binary scheme (e.g. 100 - 220 - 470). The output of all three resistors would be connected together on Pin 16 of the LCD. I know that there may be cleaner solutions.... bye, michael -- Michael Reinelt Tel: +43 676 3079941 Geisslergasse 4 Fax: +43 316 692343 A-8045 Graz, Austria e-mail: re...@eu... |
From: Aragon G. <ar...@ph...> - 2004-02-15 10:56:13
|
I'm really glad you like my idea. :) However, I'm having difficulty figuring out how your idea will work with the resistors? Here's my idea. These are the output control lines I'm currently using on my parallel port: 1 -> 44780 Strobe (6) 14 -> 44780 R/W (5) 16 -> 44780 R/S (4) 17 -> LCD backlight transistor switch Instead of using pin 17 for a 1 bit operation, I'm going to use it to strobe a pair of CD4514s. Each CD4514 can take 4-bits of binary input, so I'm going have one connected to bits 0-3 of the parallel port's i/o lines, and the other connected to bits 4-7. They will share I/O lines with the LCD display, but the CD4514 pair will be strobed independantly of the display. This is the same way a 40x4 display is addressed. It also means that addressing the CD4514s will require one dedicated time cycle of I/O (which the LCD would not get). This is fine considering the frequency at which the CD4514s will be typically addressed. The CD4514s have a built in latch, in case anyone is wondering what happens when the I/O and strobe disapears from the 4514s inputs. :) Googling for CD4514 will get you a PDF spec sheet on them if you want to see more. So what will this achieve? Well, it will give you 32 switchable channels that can be controlled from software. You could have 16 of these providing 16 levels of backlight brightness, and another 16 performing other switching operations (panel LEDs, relays, etc. etc.). It really adds a huge level of flexibility. You could hook up a relay to cut your PCs power if you so wanted! If you really wanted to go crazy, the 4514s could be wired up more efficiently to provide 256 (!) switchable channels. The only downside is that each 4514 will require its own time cycle for addressing it - more complex and cpu intensive when it comes down to programming. IMHO this would be overkill, but that's just me. :) Well I'm going to be giving this a try soon, depending on how much time I can scavage from work. I might need help on the programming side as my C skills are very much in their infancy. Regards, Aragon | By Michael Reinelt <re...@eu...> | [ 2004-02-15 08:47 +0200 ] > > Hi Aragon, > > >I've seen lcd4linux's GPO system and example on the page. I'm trying to > >find the right circuitry that must work similarly to the example on the > >page, but provide analog output. More specifically, I'd like to control > >backlight intensity using a GPO by converting 3 bits of the binary data to > >8 voltage variations to the backlight LED. > > First, I think this is a good idea. > > I'm planning to include code for software-controlled backlight like for > a circuit like this: http://www.jalcds.de/images/4x20backlight.gif > > But there is no intensity, just switch on/off > > If you want intensity, I'd try thw following: > > use the diode 1N4148, the resistor 150 Ohm and the transistor BD135 > three times. > > the 100 Ohm petentiometer should be replaced by a resistor, it's value > should be different for all three transistors, and show some binary > scheme (e.g. 100 - 220 - 470). The output of all three resistors would > be connected together on Pin 16 of the LCD. > > I know that there may be cleaner solutions.... > > bye, michael > > -- > Michael Reinelt Tel: +43 676 3079941 > Geisslergasse 4 Fax: +43 316 692343 > A-8045 Graz, Austria e-mail: re...@eu... |
From: Michael R. <re...@eu...> - 2004-02-15 17:31:01
|
Hi Aragon, > However, I'm having difficulty figuring out how your idea will work with the > resistors? Every resistor can be switched on and off with a transistor, and every resistor allows a specific current. If you choose the resistors in a way like a "binary system", so that the current will be 10, 20 and 40 mA, you can control the current from 0 to 90 mA in steps of 10 mA. > Instead of using pin 17 for a 1 bit operation, I'm going to use it to strobe > a pair of CD4514s. Each CD4514 can take 4-bits of binary input, so I'm > going have one connected to bits 0-3 of the parallel port's i/o lines, and > the other connected to bits 4-7. This is very similar to the GPIO schematic on the web page, except that we use a 74HCT573 as a latch. > So what will this achieve? Well, it will give you 32 switchable channels > that can be controlled from software. You could have 16 of these providing > 16 levels of backlight brightness, and another 16 performing other switching > operations (panel LEDs, relays, etc. etc.). It really adds a huge level of > flexibility. You could hook up a relay to cut your PCs power if you so > wanted! I'm not shure, but what I've read is that the CD4514 is a demultiplexer. This means that it has 16 outputs, but only one can be active at a time! Are you shure that this is what you want? bye, Michael -- Michael Reinelt Tel: +43 676 3079941 Geisslergasse 4 Fax: +43 316 692343 A-8045 Graz, Austria e-mail: re...@eu... |
From: Aragon G. <ar...@ph...> - 2004-02-15 17:44:32
|
| By Michael Reinelt <re...@eu...> | [ 2004-02-15 19:29 +0200 ] > Every resistor can be switched on and off with a transistor, and every > resistor allows a specific current. If you choose the resistors in a way > like a "binary system", so that the current will be 10, 20 and 40 mA, > you can control the current from 0 to 90 mA in steps of 10 mA. How will you select each resistor? > This is very similar to the GPIO schematic on the web page, except that > we use a 74HCT573 as a latch. Yes. The 4514 has a builtin latch which outputs to a decoder. > I'm not shure, but what I've read is that the CD4514 is a demultiplexer. > This means that it has 16 outputs, but only one can be active at a time! > Are you shure that this is what you want? Pretty sure. For the backlight trick, each of the 16 outputs is connected to a resistor of different value (after going through a diode to prevent pull-down). The output of each resistor is connected to the base of a transistor (I'm thinking 2N2222). The output that is switched on will determine which resistor power flows through onto the transistor's base (thus providing a variable current level at the transistor's collector where the load (LED) will be connected). Or am I mistaken? Regards, Aragon |
From: Aragon G. <ar...@ph...> - 2004-02-15 18:00:41
|
| By Aragon Gouveia <ar...@ph...> | [ 2004-02-15 19:42 +0200 ] > Pretty sure. For the backlight trick, each of the 16 outputs is connected > to a resistor of different value (after going through a diode to prevent > pull-down). The output of each resistor is connected to the base of a > transistor (I'm thinking 2N2222). The output that is switched on will > determine which resistor power flows through onto the transistor's base > (thus providing a variable current level at the transistor's collector where > the load (LED) will be connected). Incase I'm introducing ambiguity, I will have 16 resistors, the output of all of them will be connected to the base of a single transistor. I wasn't clear on that in my explanation. Regards, Aragon |
From: Michael R. <re...@eu...> - 2004-02-15 18:25:59
|
Hi Aragon, >>Every resistor can be switched on and off with a transistor, and every >>resistor allows a specific current. If you choose the resistors in a way >>like a "binary system", so that the current will be 10, 20 and 40 mA, >>you can control the current from 0 to 90 mA in steps of 10 mA. > > How will you select each resistor? Trial & Error? :-) You have 5 V voltage. a typical LED needs about 1 V (hou have to find out yourself. Maybe the backlight has already current limiting resistors built in. I'm pretty shure they have, because otherwise you'd not be able to connect it directly to +5V). Maybe it's better to go for it the other way round: just measure the current for backlight when connected to +5V and thus running at 100%. Say this current would be 100mA (just a guess! I really don't know!) This means the backlight has an equivalent resistance of 5V / 100mA = 50Ohm To limit the current to 50 mA (which may give about half the intensity) another resistor of 50 Ohm would be necessary. use this 50 Ohm as the "middle resistor", and choose 25 and 100 Ohm for the other resistors. so you would have the maximum resistance (except from infinity where all transistors are switched off) of 100 Ohm (only the transistor connected to 100Ohm switched on) and a minimum resistance of about 14 Ohm (all transistors switched on, therefore all three resistors 25, 50 and 100 in parallel) >>I'm not shure, but what I've read is that the CD4514 is a demultiplexer. >>This means that it has 16 outputs, but only one can be active at a time! >>Are you shure that this is what you want? > > Pretty sure. For the backlight trick, each of the 16 outputs is connected > to a resistor of different value (after going through a diode to prevent > pull-down). The output of each resistor is connected to the base of a > transistor (I'm thinking 2N2222). The output that is switched on will > determine which resistor power flows through onto the transistor's base > (thus providing a variable current level at the transistor's collector where > the load (LED) will be connected). Well, thats quite similar to the scheme I'm talking about, with two differences: a) I'm saving some resistors and the demultiplexer by binary combining some values (in my case, more than one transistor could be switched on at a time!) b) I'm controlling the current "after" the transistor. Shure, I need three of them, where you need only one, but with my schematics the current (and therefore the intensity) depends only on the resistor (and can be easily adopted), where you have to take the transistor and all this current-amplification stuff into account. Shure, it's possible. But I did calculate such transistor schematics about 15 years ago :-) -- Michael Reinelt Tel: +43 676 3079941 Geisslergasse 4 Fax: +43 316 692343 A-8045 Graz, Austria e-mail: re...@eu... |
From: Aragon G. <ar...@ph...> - 2004-02-15 19:22:51
|
Okay I understand now. :) Your method makes sense. I like it. :) My method will require much more resistors, but it might afford me greater flexibility in the brightness curve. I'm saying this without having done any testing on combining and removing resistors in parallel in an LED circuit. Is the LED's brightness proportional to the current? Not sure myself... Whatever method one chooses to wire up, the programming in lcd4linux will stay the same. (I think?) Ideally it'd be nice to configure software to tell it what range of bits to use for backlight brightness. And then to also allow other bits to be configured for additional toggles. (panel LEDs, relays, etc. would be cool!) Regards, Aragon | By Michael Reinelt <re...@eu...> | [ 2004-02-15 20:22 +0200 ] > Hi Aragon, > > >>Every resistor can be switched on and off with a transistor, and every > >>resistor allows a specific current. If you choose the resistors in a way > >>like a "binary system", so that the current will be 10, 20 and 40 mA, > >>you can control the current from 0 to 90 mA in steps of 10 mA. > > > >How will you select each resistor? > > Trial & Error? :-) > > You have 5 V voltage. a typical LED needs about 1 V (hou have to find > out yourself. Maybe the backlight has already current limiting resistors > built in. I'm pretty shure they have, because otherwise you'd not be > able to connect it directly to +5V). > > Maybe it's better to go for it the other way round: just measure the > current for backlight when connected to +5V and thus running at 100%. > Say this current would be 100mA (just a guess! I really don't know!) > > This means the backlight has an equivalent resistance of > 5V / 100mA = 50Ohm > > To limit the current to 50 mA (which may give about half the intensity) > another resistor of 50 Ohm would be necessary. > > use this 50 Ohm as the "middle resistor", and choose 25 and 100 Ohm for > the other resistors. > > so you would have the maximum resistance (except from infinity where all > transistors are switched off) of 100 Ohm (only the transistor connected > to 100Ohm switched on) and a minimum resistance of about 14 Ohm (all > transistors switched on, therefore all three resistors 25, 50 and 100 in > parallel) > > > >>I'm not shure, but what I've read is that the CD4514 is a demultiplexer. > >>This means that it has 16 outputs, but only one can be active at a time! > >>Are you shure that this is what you want? > > > >Pretty sure. For the backlight trick, each of the 16 outputs is connected > >to a resistor of different value (after going through a diode to prevent > >pull-down). The output of each resistor is connected to the base of a > >transistor (I'm thinking 2N2222). The output that is switched on will > >determine which resistor power flows through onto the transistor's base > >(thus providing a variable current level at the transistor's collector > >where > >the load (LED) will be connected). > > Well, thats quite similar to the scheme I'm talking about, with two > differences: > > a) I'm saving some resistors and the demultiplexer by binary combining > some values (in my case, more than one transistor could be switched on > at a time!) > > b) I'm controlling the current "after" the transistor. Shure, I need > three of them, where you need only one, but with my schematics the > current (and therefore the intensity) depends only on the resistor (and > can be easily adopted), where you have to take the transistor and all > this current-amplification stuff into account. Shure, it's possible. But > I did calculate such transistor schematics about 15 years ago :-) > |
From: Martin H. <ma...@he...> - 2004-02-16 00:02:41
|
Hi, sorry for jumping in late into the discussion - but up until now, I didn't have much to add. > Is the LED's brightness proportional to the current? Not sure > myself... No, it isn't - at least not on the displays I have here. One kind seems to have two "brightnesses" (low and _pretty_ high, to the point where I think that "pretty high" may burn out the display soon - since it gets somewhat warm) and the other kind simply has "on" if no resistor is attached between pins 15 and 16 (I never attached anything to A and K directly) and "off" if there's a resistor > 10 Ohm. Found this out simply by attaching a pot to pins 15 and 16 and seeing what happens when I turn the knob. But there are different kinds of backlights (electro luminescent, cold cathode flourescent lamps and light emitting diode - and the LED type might be implemented as a "Lightbox" or as a "Light-Pipe", or so I gather from the various specs) and each will probably behave differently. So, I guess you'll have to try to be sure. Just my two cents Martin |
From: Aragon G. <ar...@ph...> - 2004-02-16 08:06:45
|
| By Martin Hejl <ma...@he...> | [ 2004-02-16 01:59 +0200 ] > No, it isn't - at least not on the displays I have here. One kind seems > to have two "brightnesses" (low and _pretty_ high, to the point where I > think that "pretty high" may burn out the display soon - since it gets > somewhat warm) and the other kind simply has "on" if no resistor is > attached between pins 15 and 16 (I never attached anything to A and K > directly) and "off" if there's a resistor > 10 Ohm. Found this out > simply by attaching a pot to pins 15 and 16 and seeing what happens when > I turn the knob. I think others with different modules will probably have different experiences too, to make matters more difficult. :) > But there are different kinds of backlights (electro luminescent, cold > cathode flourescent lamps and light emitting diode - and the LED type > might be implemented as a "Lightbox" or as a "Light-Pipe", or so I > gather from the various specs) and each will probably behave > differently. So, I guess you'll have to try to be sure. EL and CCFL backlights I'm sure are very different from LED when it comes to adjusting light intensity level. I have experience only with LED backlights. Can anyone using EL and/or CCFL comment on the process of adjusting brightness? I'm leaning toward my design idea with a 4514 based decoder because it'll allow the most flexibilty in choosing resistance values precisely for each desired brightness level. (at the cost of having to wire lots of resistors) Regards, Aragon |
From: Michael R. <re...@eu...> - 2004-02-16 08:12:04
|
Hi Martin, >> Is the LED's brightness proportional to the current? Not sure >> myself... > > No, it isn't - at least not on the displays I have here. Oh, I think it is. It has to be. Brightness is proportional to power. Power is proportional to the current. Maybe you meant that it's not linear - that may be true. btw, Martin, I'd be very interested in your opinion regarding the 'dynamic loading of plugins'. bye, Michael -- Michael Reinelt Tel: +43 676 3079941 Geisslergasse 4 Fax: +43 316 692343 A-8045 Graz, Austria e-mail: re...@eu... |
From: Martin H. <ma...@he...> - 2004-02-16 12:06:01
|
Hi Michael, Michael Reinelt wrote: >>> Is the LED's brightness proportional to the current? Not sure >>> myself... >> No, it isn't - at least not on the displays I have here. > Oh, I think it is. It has to be. Brightness is proportional to power. > Power is proportional to the current. > > Maybe you meant that it's not linear - that may be true. Well, at least on the one display (manufactured by display-electronic) it's all but proportional (let alone linear). It's either on (at a constant brightness) or off (that is, using 5V as defined in the specs). The other display I have is from Crystalfontz, and that one is the one with the two levels of brightness - and this one 'jumps' from off to the first brighness level to the second brightness level as the resistance is lowered. Maybe it's just these two displays, and others work more like you would expect. Oh, and no, the power supply used for this has plenty of Amps to spare (the backlight uses around 150mA at 5V, and the power supply is rated at 5V/1.25A) > btw, Martin, I'd be very interested in your opinion regarding the > 'dynamic loading of plugins'. I haven't forgotten about that - I have it on my todo-list. But in order to give you a meaningful response, I'll need to research a bit, if my thoughts on that topic are actually correct (all of my experience with writing plugins and such are from Windows - not much use for lcd4linux). Martin |
From: Michael R. <re...@eu...> - 2004-02-16 19:12:08
|
Hi Martin, >> Oh, I think it is. It has to be. Brightness is proportional to power. >> Power is proportional to the current. > Well, at least on the one display (manufactured by display-electronic) > it's all but proportional (let alone linear). It's either on (at a > constant brightness) or off (that is, using 5V as defined in the specs). Strange. I can't imagine how this should work. Maybe there's some additional components on the display - something like a current sink? > Oh, and no, the power supply used for this has plenty of Amps to spare > (the backlight uses around 150mA at 5V, and the power supply is rated at > 5V/1.25A) Oh! I'd never spend so much current to my displays (I destroyed three of them in the meantime :-( That's why I spent the last months soldering a power supply with current limiting. No more buning chips.... It's a quite cool device - a step-down regulator (switching power supply) that delivers from 0 to 14 V, 0-6 ampere, and can be supplied by a car battery (i.e. it needs only +12V-+14V). Especially the absence of a symmetric supply voltage made things quite complex. (I need this for my model aircrafts, because you don't have 220V out there in the fields). Oh... this is getting a bit off-topic :-) >> btw, Martin, I'd be very interested in your opinion regarding the >> 'dynamic loading of plugins'. > I haven't forgotten about that - I have it on my todo-list. But in order > to give you a meaningful response, I'll need to research a bit, if my > thoughts on that topic are actually correct (all of my experience with > writing plugins and such are from Windows - not much use for lcd4linux). Well, I'm not expecting too deep experience - just your comments on my and Xavier's arguments.... OTOH, I'm planning to think about this stuff when the NextGeneration has settled down a bit, and at least a 0.9.12 is released. -- Michael Reinelt Tel: +43 676 3079941 Geisslergasse 4 Fax: +43 316 692343 A-8045 Graz, Austria e-mail: re...@eu... |
From: Martin H. <ma...@he...> - 2004-02-16 20:33:43
|
Hi Michael, (I guess it's getting time we move this to the devel-list...) >>> Oh, I think it is. It has to be. Brightness is proportional to >>> power. Power is proportional to the current. >> Well, at least on the one display (manufactured by >> display-electronic) it's all but proportional (let alone linear). >> It's either on (at a constant brightness) or off (that is, using 5V >> as defined in the specs). > Strange. I can't imagine how this should work. Maybe there's some > additional components on the display - something like a current sink? Could well be, but I don't see anything. No "real" components (apart from a few smd resistors) at the back of the display (and the front is covered by the display itself). >> Oh, and no, the power supply used for this has plenty of Amps to >> spare (the backlight uses around 150mA at 5V, and the power supply is >> rated at 5V/1.25A) > Oh! I'd never spend so much current to my displays (I destroyed three > of them in the meantime :-( I know the feeling - did that the other day too (by soldering the cable on from the wrong side, which unfortunately switched Vlcd and GND, which of course killed the display, just like everybody said it would...). The only reason why I don't use anything with less power is that it's the only one I have which gives stable 5V. >>> btw, Martin, I'd be very interested in your opinion regarding the >>> 'dynamic loading of plugins'. >> I haven't forgotten about that - I have it on my todo-list. But in >> order to give you a meaningful response, I'll need to research a bit, >> if my thoughts on that topic are actually correct (all of my >> experience with writing plugins and such are from Windows - not much >> use for lcd4linux). > Well, I'm not expecting too deep experience - just your comments on my > and Xavier's arguments.... > > OTOH, I'm planning to think about this stuff when the NextGeneration > has settled down a bit, and at least a 0.9.12 is released. Sounds like a good idea - get it released, so it will receive some broader testing, before introductin even more new code. Talking about testing - I'm having a problem with the current version from CVS - I'm running configure with: --prefix=/usr/ \ --without-sco \ --without-sunos-curses \ --without-osf1-curses \ --without-vcurses \ --without-ncurses \ --disable-dependency-tracking \ --with-x=no \ --disable-shared \ --disable-static \ --with-drivers=BeckmannEgle,CrystalFontz,Cwlinux,HD44780,M50530,T6963,USBLCD,MatrixOrbital But for some reason, it still tries to link against libcurses (which it doesn't find on my build system, so the build fails). If I change configure.in if test "$TEXT" = "yes"; then if test "$has_curses" = true; then # DRIVERS="$DRIVERS Text.lo" # DRIVERS="$DRIVERS Text.o" DRVLIBS="$DRVLIBS $CURSES_LIBS" CPPFLAGS="$CPPFLAGS $CURSES_INCLUDES" AC_DEFINE(WITH_TEXT,1,[Curses driver]) else AC_MSG_WARN(curses not found: Text driver disabled) fi fi and comment out the line "DRVLIBS="$DRVLIBS $CURSES_LIBS", everything works fine. Any idea? Sorry that automake stuff is also on my list of things to learn (but unfortunately, I haven't even started working with that yet). Martin -- You think that's tough? Try herding cats! |
From: Aragon G. <ar...@ph...> - 2004-02-15 12:25:32
|
Just thinking even further... With some logics added to the circuit I think I can allow for these criteria: 1. Ability to use a 40x4 display 2. Ability to software control the backlight on a 40x4 display I think I can do it so that it'll be compatible with existing HD44780 driver code for everyone that currently uses Winamp style 8 bit connections. Basically it'll work like this: On parallel port... set pin 1 high to strobe 44780 #1 set pin 17 high to strobe 44780 #2 set pin 1 and pin 17 high to strobe backlight controller What do you think? | By Michael Reinelt <re...@eu...> | [ 2004-02-15 08:48 +0200 ] > > Hi Aragon, > > >I've seen lcd4linux's GPO system and example on the page. I'm trying to > >find the right circuitry that must work similarly to the example on the > >page, but provide analog output. More specifically, I'd like to control > >backlight intensity using a GPO by converting 3 bits of the binary data to > >8 voltage variations to the backlight LED. > > First, I think this is a good idea. > > I'm planning to include code for software-controlled backlight like for > a circuit like this: http://www.jalcds.de/images/4x20backlight.gif > > But there is no intensity, just switch on/off > > If you want intensity, I'd try thw following: > > use the diode 1N4148, the resistor 150 Ohm and the transistor BD135 > three times. > > the 100 Ohm petentiometer should be replaced by a resistor, it's value > should be different for all three transistors, and show some binary > scheme (e.g. 100 - 220 - 470). The output of all three resistors would > be connected together on Pin 16 of the LCD. > > I know that there may be cleaner solutions.... > > bye, michael > > -- > Michael Reinelt Tel: +43 676 3079941 > Geisslergasse 4 Fax: +43 316 692343 > A-8045 Graz, Austria e-mail: re...@eu... > > > ------------------------------------------------------- > SF.Net is sponsored by: Speed Start Your Linux Apps Now. > Build and deploy apps & Web services for Linux with > a free DVD software kit from IBM. Click Now! > http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click > _______________________________________________ > Lcd4linux-users mailing list > Lcd...@li... > https://lists.sourceforge.net/lists/listinfo/lcd4linux-users |
From: Aragon G. <ar...@ph...> - 2004-02-15 13:38:57
|
Something I need to know... All these components that I could add have a propogation delay just like the 44780 has propogation delays. How granular can signals be timed on a parallel port? A CD4515 has a delay of around 200-300 ns according to spec (real world results may be longer). A standard set of CMOS logical gates could add as much as 600 ns to the strobe signals. I'm thinking I should rather design around faster components. Propogation delays of <100ns should be possible. Anyone think faster components will be a problem? Thanks, Aragon | By Aragon Gouveia <ar...@ph...> | [ 2004-02-15 14:23 +0200 ] > Just thinking even further... > > With some logics added to the circuit I think I can allow for these > criteria: > > 1. Ability to use a 40x4 display > 2. Ability to software control the backlight on a 40x4 display > > I think I can do it so that it'll be compatible with existing HD44780 > driver code for everyone that currently uses Winamp style 8 bit > connections. Basically it'll work like this: > > On parallel port... > > set pin 1 high to strobe 44780 #1 > set pin 17 high to strobe 44780 #2 > set pin 1 and pin 17 high to strobe backlight controller > > What do you think? > > > > | By Michael Reinelt <re...@eu...> > | [ 2004-02-15 08:48 +0200 ] > > > > Hi Aragon, > > > > >I've seen lcd4linux's GPO system and example on the page. I'm trying to > > >find the right circuitry that must work similarly to the example on the > > >page, but provide analog output. More specifically, I'd like to control > > >backlight intensity using a GPO by converting 3 bits of the binary data to > > >8 voltage variations to the backlight LED. > > > > First, I think this is a good idea. > > > > I'm planning to include code for software-controlled backlight like for > > a circuit like this: http://www.jalcds.de/images/4x20backlight.gif > > > > But there is no intensity, just switch on/off > > > > If you want intensity, I'd try thw following: > > > > use the diode 1N4148, the resistor 150 Ohm and the transistor BD135 > > three times. > > > > the 100 Ohm petentiometer should be replaced by a resistor, it's value > > should be different for all three transistors, and show some binary > > scheme (e.g. 100 - 220 - 470). The output of all three resistors would > > be connected together on Pin 16 of the LCD. > > > > I know that there may be cleaner solutions.... > > > > bye, michael > > > > -- > > Michael Reinelt Tel: +43 676 3079941 > > Geisslergasse 4 Fax: +43 316 692343 > > A-8045 Graz, Austria e-mail: re...@eu... > > > > > > ------------------------------------------------------- > > SF.Net is sponsored by: Speed Start Your Linux Apps Now. > > Build and deploy apps & Web services for Linux with > > a free DVD software kit from IBM. Click Now! > > http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click > > _______________________________________________ > > Lcd4linux-users mailing list > > Lcd...@li... > > https://lists.sourceforge.net/lists/listinfo/lcd4linux-users > > > ------------------------------------------------------- > SF.Net is sponsored by: Speed Start Your Linux Apps Now. > Build and deploy apps & Web services for Linux with > a free DVD software kit from IBM. Click Now! > http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click > _______________________________________________ > Lcd4linux-users mailing list > Lcd...@li... > https://lists.sourceforge.net/lists/listinfo/lcd4linux-users |
From: Michael R. <re...@eu...> - 2004-02-15 17:38:11
|
Hi Aragon, > All these components that I could add have a propogation delay just like the > 44780 has propogation delays. How granular can signals be timed on a > parallel port? Well, that depends on the speed of your computer. For small delays I have to use busy-waiting, and I do use the RDTSC command (Read Time Stamp Counter) from the i686. This gives you a theoretical resolution of 1/(CPU clock frequency), which is 1 nanosecond at 1 GHz. But this is very theoretical :-) There are things like signals, interrupts, syscall latency, .... I do use delays in the range of 20-50 nsec, but always as a "minimum delay". bye, Michael -- Michael Reinelt Tel: +43 676 3079941 Geisslergasse 4 Fax: +43 316 692343 A-8045 Graz, Austria e-mail: re...@eu... |
From: Aragon G. <ar...@ph...> - 2004-02-15 17:45:50
|
Based on that, I don't think faster components will be a problem. But the final test will tell. ;) | By Michael Reinelt <re...@eu...> | [ 2004-02-15 19:36 +0200 ] > Hi Aragon, > > >All these components that I could add have a propogation delay just like > >the > >44780 has propogation delays. How granular can signals be timed on a > >parallel port? > > Well, that depends on the speed of your computer. For small delays I > have to use busy-waiting, and I do use the RDTSC command (Read Time > Stamp Counter) from the i686. This gives you a theoretical resolution of > 1/(CPU clock frequency), which is 1 nanosecond at 1 GHz. > > But this is very theoretical :-) There are things like signals, > interrupts, syscall latency, .... > > I do use delays in the range of 20-50 nsec, but always as a "minimum delay". > > > bye, Michael > > -- > Michael Reinelt Tel: +43 676 3079941 > Geisslergasse 4 Fax: +43 316 692343 > A-8045 Graz, Austria e-mail: re...@eu... > |
From: Michael R. <re...@eu...> - 2004-02-15 17:33:59
|
Hi Aragon, > With some logics added to the circuit I think I can allow for these > criteria: > > 1. Ability to use a 40x4 display > 2. Ability to software control the backlight on a 40x4 display > > I think I can do it so that it'll be compatible with existing HD44780 > driver code for everyone that currently uses Winamp style 8 bit > connections. Basically it'll work like this: > > On parallel port... > > set pin 1 high to strobe 44780 #1 > set pin 17 high to strobe 44780 #2 > set pin 1 and pin 17 high to strobe backlight controller > > What do you think? Should be no problem in hardware, but at the moment this is not supported in software. AND there's another problem: Some commands (clear, init, character define) go to _both_ displays at the same time, just by rising _both_ enable lines. bye, Michael -- Michael Reinelt Tel: +43 676 3079941 Geisslergasse 4 Fax: +43 316 692343 A-8045 Graz, Austria e-mail: re...@eu... |
From: Aragon G. <ar...@ph...> - 2004-02-15 17:50:59
|
| By Michael Reinelt <re...@eu...> | [ 2004-02-15 19:31 +0200 ] > Should be no problem in hardware, but at the moment this is not > supported in software. AND there's another problem: Some commands > (clear, init, character define) go to _both_ displays at the same time, > just by rising _both_ enable lines. Ah ic. Yes, that will be a problem if this extra circuitry were added. You wouldn't want to send your init, clear, and character define to the CD4514s... ;) I'm very keen to do this for myself though. A 20x4 display is kinda small, and I don't like the idea of loosing software controlled backlighting with a 40x4 display. Is it complicated to change those commands to address each display one at a time? Or maybe make it user configurable? I'm thinking all the commands that address both displays together are ones used relatively infrequently? Consequently, addressing them one at a time shouldn't have a noticable performance hit? Thanks, Aragon |
From: Michael R. <re...@eu...> - 2004-02-15 18:04:54
|
>>Should be no problem in hardware, but at the moment this is not >>supported in software. AND there's another problem: Some commands >>(clear, init, character define) go to _both_ displays at the same time, >>just by rising _both_ enable lines. > I'm very keen to do this for myself though. A 20x4 display is kinda small, > and I don't like the idea of loosing software controlled backlighting with a > 40x4 display. Is it complicated to change those commands to address each > display one at a time? Or maybe make it user configurable? > > I'm thinking all the commands that address both displays together are ones > used relatively infrequently? Consequently, addressing them one at a time > shouldn't have a noticable performance hit? Hmmm.... sneding data to both displays is used for icon definitions. This sequence is 9 bytes long, and can happen really often... But I don't see the problem: You can use 4 control lines from the parallel port (AUTOFD, INIT, SELECT and STROBE). The dual-HD44780 needs at least three (RS, SELECT#1, SELECT#2), because you can hardwire RW to GND. so you have a free line to control the latch individually... -- Michael Reinelt Tel: +43 676 3079941 Geisslergasse 4 Fax: +43 316 692343 A-8045 Graz, Austria e-mail: re...@eu... |
From: Aragon G. <ar...@ph...> - 2004-02-15 18:10:45
|
| By Michael Reinelt <re...@eu...> | [ 2004-02-15 20:02 +0200 ] > Hmmm.... sneding data to both displays is used for icon definitions. > This sequence is 9 bytes long, and can happen really often... > > But I don't see the problem: You can use 4 control lines from the > parallel port (AUTOFD, INIT, SELECT and STROBE). The dual-HD44780 needs > at least three (RS, SELECT#1, SELECT#2), because you can hardwire RW to > GND. so you have a free line to control the latch individually... Yea I see your point. I guess I'll have to sacrifice the RW control. Cool. Thanks, Aragon |