Suggestions for Buffering I/O Lines
Suggestions for Buffering I/O Lines
I have a project that i need to place a color LCD onto its own board. It will be 6" from the MOD5270's main board. i have used a 40 pin .5mm flat flex cable in between the boards.
I have used the 74LVC574A to buffer the Data bus in the past. Because of my own foolishness i did not design a couple of these in on this design. I just finished trying it out, and of course there is so much noise at the LCD end it does not work.
The LCD uses the following lines from the NB module.
D0-D15
~CS3
A1
R/W (fyi) i never read from the LCD its only writes.
I can use the CS3 pin to the CLK line on the 574 to fire it.
since i have to send the CS3 line up to the LCD, i would have to also send that through the 574 as well, but how will that do with timing issues as far as its used to trigger it and also going through it to the LCD board.
Or am i just looking at this all wrong and there is a better way to send all of these line up to the LCD board ?
What about placing a inverter on the NB end to buffer it from the bus, and then a schmitt trigger inverter on the LCD boards end to clean up anything we got from the cable ?
I have used the 74LVC574A to buffer the Data bus in the past. Because of my own foolishness i did not design a couple of these in on this design. I just finished trying it out, and of course there is so much noise at the LCD end it does not work.
The LCD uses the following lines from the NB module.
D0-D15
~CS3
A1
R/W (fyi) i never read from the LCD its only writes.
I can use the CS3 pin to the CLK line on the 574 to fire it.
since i have to send the CS3 line up to the LCD, i would have to also send that through the 574 as well, but how will that do with timing issues as far as its used to trigger it and also going through it to the LCD board.
Or am i just looking at this all wrong and there is a better way to send all of these line up to the LCD board ?
What about placing a inverter on the NB end to buffer it from the bus, and then a schmitt trigger inverter on the LCD boards end to clean up anything we got from the cable ?
Re: Suggestions for Buffering I/O Lines
I think i will just use a 74LVC245A on the NB end. If any of you have a better suggestion please feel free to make suggestions.
-
- Posts: 513
- Joined: Sat Apr 26, 2008 7:14 am
Re: Suggestions for Buffering I/O Lines
That should work fine, but I think you'd neet two of the '245s. Seems like for a 16 bit interface you might use a PI74LPT16245 and the D[16-31] lines (not named D[0-15]) instead. D16 is LSB. Run the NB's TIP* lines to both of the IC's OE* pins, and NB R/W* to both of the IC's DIR pins. The NB data bus lines D[16-31] go to the IC's B pins, the buffered LCD lines DB[16-31] connect to its A pins.
The attached PDF shows what I've done for an 8 bit interface using one 74LV245. Note that as an 8 bit interface, it uses D[24-31] where D24 is the LSB.
The attached PDF shows what I've done for an 8 bit interface using one 74LV245. Note that as an 8 bit interface, it uses D[24-31] where D24 is the LSB.
- Attachments
-
- 8 bit bi-directional bus.pdf
- (60.66 KiB) Downloaded 353 times
Re: Suggestions for Buffering I/O Lines
Thanks, normally i would use the PI74LPT16245, but i need more than the 16 bits as i need to also take care of the CS3, R/W, & A0 lines.
at the moment i am wiring up 3, 245's 2 for for the 16bit bus and the last one for the CS3, R/W, & A0 line.
I am also running the SPI lines up there, i will use whats left over on the 3'rd one for them.
at the moment i am wiring up 3, 245's 2 for for the 16bit bus and the last one for the CS3, R/W, & A0 line.
I am also running the SPI lines up there, i will use whats left over on the 3'rd one for them.
Re: Suggestions for Buffering I/O Lines
Hi seulater,
I have used the MOD5234 with an LCD with a similar 16 bit bus. I buffered the databus with a SN74LVT16245BDL but as the R/W, A1 and CS2 where only connected to the LCD I did not need to buffer these. The LCD is connected over a 45 way flat flex cable of 200mm in length.
Have you used this LCD with the board before? It may actually be just timing that is the main issue?
I found that the LCD I was using had both an E input and a \CS. The E input was basically an inverted \CS but it wouldn't work like this because the CS in the timing was asserted a few ns after the E clock. I had to delay the CS by a very small amount to get the LCD to work. I also had to delay A1 through 2 74AC04 gates too. Attached is the interfacing I used with this LCD. It also shows the databus buffer I used. It is using the Solomon SSD2119 controller on the LCD.
Good luck
Dave...
I have used the MOD5234 with an LCD with a similar 16 bit bus. I buffered the databus with a SN74LVT16245BDL but as the R/W, A1 and CS2 where only connected to the LCD I did not need to buffer these. The LCD is connected over a 45 way flat flex cable of 200mm in length.
Have you used this LCD with the board before? It may actually be just timing that is the main issue?
I found that the LCD I was using had both an E input and a \CS. The E input was basically an inverted \CS but it wouldn't work like this because the CS in the timing was asserted a few ns after the E clock. I had to delay the CS by a very small amount to get the LCD to work. I also had to delay A1 through 2 74AC04 gates too. Attached is the interfacing I used with this LCD. It also shows the databus buffer I used. It is using the Solomon SSD2119 controller on the LCD.
Good luck
Dave...
- Attachments
-
- LCDinterface.pdf
- (51.42 KiB) Downloaded 328 times
Re: Suggestions for Buffering I/O Lines
Thanks for the tips v8dave. The first design i placed the LCD 50 pin connector about 3" from the MOD5270. Just to write the code for the LCD and make sure there were no problems.
Got that all working and then i made the second board with the .5mm cable between the 2 boards. That's when i saw that the MOD booted as said something like check sum failure and booted to the command prompt. I unplugged the LCD and it booted fine. I scoped the pins and jeez it had some crazy spikes on the I/O up at the LCD end.
This LCD does not use the E signal like you mentioned it has an on board Graphics controller and is mapped in like a memory peripheral.
http://www.crystalfontz.com/product/CFA ... -T-TS.html
I sure hope adding these 3 245's takes care of all this. Boss, sold a product before it was even made, with a delivery date by the end of the month. (why do they do that ?)
Got that all working and then i made the second board with the .5mm cable between the 2 boards. That's when i saw that the MOD booted as said something like check sum failure and booted to the command prompt. I unplugged the LCD and it booted fine. I scoped the pins and jeez it had some crazy spikes on the I/O up at the LCD end.
This LCD does not use the E signal like you mentioned it has an on board Graphics controller and is mapped in like a memory peripheral.
http://www.crystalfontz.com/product/CFA ... -T-TS.html
I sure hope adding these 3 245's takes care of all this. Boss, sold a product before it was even made, with a delivery date by the end of the month. (why do they do that ?)
Re: Suggestions for Buffering I/O Lines
Ah, the old boss sold it trick!! Been there, done that!
Interesting to see you are using the exact same LCD as I am using!
)
You obviously got it working differently to the way I did it but if it works, great. I do read from the controller though as I use that to read back the pixel colours on the LCD for certain functions. The library I am using also requires to read the LCD, although this could be disabled.
I am interested to know how you got around the E signal. I assume you are not using the 6800 bus mode for this controller? This is only present in this mode. In the 8800 mode it is RD instead.
I think just adding the buffer to the databus should get you working. If you don't have the R/W etc connected to anything else it should work fine. I have 2 designs using this LCD and both over the same 200m cable and both work perfectly.
Do let us know if you solve this?
Dave...
Interesting to see you are using the exact same LCD as I am using!

You obviously got it working differently to the way I did it but if it works, great. I do read from the controller though as I use that to read back the pixel colours on the LCD for certain functions. The library I am using also requires to read the LCD, although this could be disabled.
I am interested to know how you got around the E signal. I assume you are not using the 6800 bus mode for this controller? This is only present in this mode. In the 8800 mode it is RD instead.
I think just adding the buffer to the databus should get you working. If you don't have the R/W etc connected to anything else it should work fine. I have 2 designs using this LCD and both over the same 200m cable and both work perfectly.
Do let us know if you solve this?
Dave...
Re: Suggestions for Buffering I/O Lines
Attached is the skiz for the LCD pin out i am using.
D0-15 on the LCD are to D16-D31 on the MOD.
D/C to A0
R/W to R/W
CS to CS3
RESET to RESET OUT
D0-15 on the LCD are to D16-D31 on the MOD.
D/C to A0
R/W to R/W
CS to CS3
RESET to RESET OUT
- Attachments
-
- lcd.pdf
- (273.01 KiB) Downloaded 345 times
Re: Suggestions for Buffering I/O Lines
Ah, ok, you are using the 8800 interface. This makes sense to how you have it working. As you don't need read, the timing of the WRITE will allow this to work.!
Are you rolling your own graphics drivers? I decided against this and went for the Ramtex drivers. Added a bit of cost to my design but in the end it was worth it as I had them working within about 15 mins of getting the code and I have some very nice features!
These displays are very nice and the touch adds a nice way of adding user input without lots of switches etc.
Hope you can get the buffer issue sorted?
Dave...
Are you rolling your own graphics drivers? I decided against this and went for the Ramtex drivers. Added a bit of cost to my design but in the end it was worth it as I had them working within about 15 mins of getting the code and I have some very nice features!
These displays are very nice and the touch adds a nice way of adding user input without lots of switches etc.
Hope you can get the buffer issue sorted?
Dave...
Re: Suggestions for Buffering I/O Lines
Ya, Way back i made a board for the Sony PSP 4.3" LCD. (A SWEET LCD!) not to mention you can pick them up for about $25. The only drawback is that you need a graphics controller for it. I used an Epson controller. Back then, i wrote my own drivers for line, box, circle, and so on. Also generated 14 different sets of fronts as well. I just changed a the init routine and a few other things to port it over to this LCD.Are you rolling your own graphics drivers?
http://www.sparkfun.com/commerce/produc ... ts_id=8335
Just for reference, i DON'T recommend you get it from them as they jack up the cost of things like crazy. Like i said, you can get these a ton of places for about $25-30.