04-08-2011 09:50 AM
I'm using the ML605 to capture ADC data inteface and need to post process data in PC. I see that with the ML605 there is an UART to USB bridge by SiLabs CP2103GM. In wanting a simplier interface, I was wondering if I can use this bridge along with some simple UART VHDL code to get data from FPGA to PC through a HyperTerm?
I see that on ML605, Xilinx saids that an UART IP needs to be implemented such as XPS UART Lite or UART16550. I would prefer a simple FIFO to serial interface inside the FPGA instead of a whole UART IP with softwre. Is it possible to implement simple UART such as describe on XAPP223 or If you think there is a more simplier way of getting data to PC from the ML605 board.
Thanks in advance
ML605 User Guide UG534
200 MHz UART XAPP223
04-08-2011 10:11 AM
First, I noticed you attached a copy of UG534.pdf to your post. If everyone did this, there wouldn't be enough disk drives in the universe to store all the redundant copies and version of Xilinx docs for the forum posts.
Instead, just embed in your post a link to the document on the website (see the link button in the formatting bar when composing your post). This saves space, and ensures that the latest and greatest version of the doc is accessed. Example: UG534.
To answer your question, you should have no problem with substituting your own UART design for the UART16550 or XPS UART Lite "cores". Keep in mind that the USB = serial bridge includes RTS/CTS handshaking lines, and your UART implementation should have these signals in mind.
HyperTerm is a simple dumb terminal or console. There is no higher level protocol inferred or implied with the use of HyperTerm. If you were to run a more sophisticated application on the host PC -- one which implements a higher level protocol -- you should still be able to use your own low-level UART design in the FPGA. Any higher-level protocol support falls outside the boundaries of such interfaces as XPS UART Lite or UART 16550. In most cases, any higher level protocol sent via the serial/USB path would be implemented with a processor or controller of some sort (e.g. PicoBlaze or MicroBlaze).
Hope this helps. Does this make sense?
-- Bob Elkind
04-08-2011 10:40 AM
Thanks Bob, I'll keep the usage of links instead of attachments in mind next time.
As for your reply on using HyperTerm, I see that SiLabs offer a Virtual COM Port driver that lets you use COM to any SiLabs device from PC application. I don't have much experience in the software / PC port interface myself. I recall hearing that HyperTerm might limit the amount of data receive so this might be an issue, in other words do you recommend any other solution in extracting data.
Any how, thanks for your reponse
04-08-2011 10:57 AM - edited 04-08-2011 10:59 AM
It sounds like you are under the impression that you can use either HyperTerm or the SiLabs driver to converse with the SiLabs USB device. If so, you have made a very understandable mistake.
HyperTerm is a COM (serial) port console/terminal application program. In other words, it connects to a Windows COM port.
The SiLabs driver provides the smarts for Windows to view the SiLabs USB<=>serial adapter as a virtual Windows COM port. In other words, the SiLabs driver connects the HyperTerm application to the USB device. HyperTerm (or any other COM port application) requires the SiLabs driver in order to talk to the SiLabs device.
It is the SiLabs driver which allows any COM port application to converse with the SiLabs USB device as if the device is a COM port. If HyperTerm doesn't meet your needs, you have many other COM port applications from which to choose (or you could write your own).
Does this make sense?
On an admin note, the forum design allows you to edit your posts (including the original post in this thread), and to add or delete attachments to your posts. In case you are interested.
- Bob Elkind