Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

How does an FTDI chip work?

Status
Not open for further replies.

Robin2

New Member
Hi, I'm new here. I have an FTDI UM245R module and while I can get it to do some things there seems to be an awful lot of detail missing from the FTDI documentation and I can't find any additional material with Google. I have searched this forum and I have read some of the threads with FTDI in them but I have not found any answers.

I think my basic question is How does it work?

Supposing I send 1000 bytes to it from my PC (Ubuntu 10.10) what happens at the pins on the device?

If I want an external device to send 1000 bytes to the PC what has to happen at the pins of the UM245R?

There is some information from FTDI about bit-bang mode which is what I have used so far. But even there the information is very limited - for example how does the timing work between synchronous reads and writes, or how exactly does asynchronous bit-bang work?

There seems to be no information about non bit-bang mode. The data sheet has a couple of timing diagrams for a read and write and the importance of the TXE# and RXF# pins, but it doesn't explain when those pins change state.

Synchronous bit-bang can only accept 384 bytes before the on-chip buffer is full and then the PC needs to do a read to empty the buffer.

Is asynchronous bit-bang the same? If so how can the PC tell whether the buffer is full and a read is needed?

Is non bit-bang mode the same (i.e. only 384 bytes before the PC needs to do a read) and how does the PC know when a read is necessary?

As far as I can see in non bit-bang mode the external device has to clock the data from the UM245R pins into the chip. What is the maximum clock rate? Does the TXE# signal change with each byte or only when the buffer is full?

Obviously if anyone has specific answers to any of these questions I would be very grateful. More likely, perhaps, is that someone can point me to some useful reading to supplement what is on FTDI's website.

I am doing my PC programming in Ruby using the FTDI gem which seems to provide a Ruby interface for libftdi. And the documentation for libftdi and the FTDI gem is almost non-existent. If there was even a document that cross-referenced the D2XX driver with libftdi it would be a start.

Having said all that I like the convenience of the FTDI module.
 
Update on using the UM245R

I have noticed that quite a few people have read this thread and it occurs to me that some may be interested in the attached PDF which sets out what I have been able to figure out after many hours of reading and experimenting and almost in spite of FTDI's documentation.

View attachment NoteOnUM245R.pdf
 
Status
Not open for further replies.

Latest threads

Back
Top