Over the weekend I played around with a USB to digital I/O chip from Delcom Engineering. The plan was to use it as an interface to a graphic LCD module.
I created a .Net adaptor class for the dll and a small test program in C# to do some initial testing. Source Files.
The chip is very easy to work with and provides 12 or 16 I/O pins with various built in functions like variable flash rate, event counters, variable sink current and more. They provide lots of documentation and a DLL to make interfacing easy.
Unfortunately the maximum rate I could toggle an I/O line was about 1 millisecond. I need to bit bang several different control lines (CS, WR, RD etc..) to operate the graphic LCD making a single byte write take about 6 milliseconds. A clear operation requires 4K bytes of data, or about 25 seconds to complete.
I am sure the Delcom chips will come in handy on other projects but I will have to switch to the PC parallel port for the LCD work. I can toggle an I/O at about 6 microseconds on the parallel port. This means a byte write takes about 36uS. The clear could be done in 150 milliseconds. I can live with that for now. More on the parallel port later…
4 Responses
Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.
If there a project the LCD will be used for? Or is it simply experimental for now?
If you have a good “getting started” guide to graphic LCDs I would love to know about it.
Alan,
No specific project yet. I am just experimenting for now.
It may not be a good “getting started” guide but I do plan to write up may experiments soon.
The way to use USB to control such a thing is to compose your message and send all the bytes at once instead of writing one bit or byte at a time. The Delcom device may not support this, but others do such as the Activewire dev board and, my personal favorite, the USB plus FPGA dev boards from Opal Kelly.
jdoege,
Yes a streaming transfer would be much faster. The current version of the Delcom chip just does a single packet and the standard interval for this kind of comunications on USB is 1mS.
I will look at the Activewire and Opal kelly units.
Thanks for the comment.