PDA

View Full Version : How to drive the Vinculum VDIP1 in UART mode



BrianT
- 12th December 2007, 00:44
The FTDI Vinculum VDIP1 module appears to be a simple way of adding USB memory cards and other devices to PIC projects. Their documentation is appalling and there are several traps to waste many hours with. There are also huge timing differences between brands and sizes of memory sticks that need to be catered for.

WARNING - Regardless of when and where you bought your VDIP1 modules, get the latest code first (ver 3.61 as at 11 December 2007). I had ZERO success until I flashed the latest code into the VDIP1 module. I first tried to flash the code in using a slow Rundisk 2 GB card. That killed the bootloader in the VDIP1 and rendered the module useless. I had success with a faster Verbatim 512 MB card and was able to reflash the VDIP1 with version 3.61 code.

Schematic details.
Data TO the VDIP1 destined for the USB stick is sent into pin 8 called RXD.
Data FROM the VDIP1 is ignored.
VDIP1 pin 9 called RTS is monitored by the PIC. Data is only sent while RTS is LOW.
VDIP1 pin 10 called CTS is pulled low by the PIC and left low throughout.
The VDIP1 RESET line, pin 22, needs to float normally but every now and then a manual reset is required. This could either be by code or an external pushbutton.
+5 volts is applied to VDIP1 pin 1. VDIP pins 7 and 18 are tied to ground. All other pins are floating.

Setup for simplest UART mode.
a/ The interface defaults to 9600 bps, 8N1 TTL where steady mark/idle is +v and a space bit is zero volts. Use SEROUT 'driven true' mode.

b/ Set the jumpers to be both 1-2 or both 2-3 for UART mode.

c/ You can permanently ground the VDIP1 pin 10 called CTS. This pin must be low before the VDIP1 will work.

d/ You MUST monitor the VDIP1 pin 9, called RTS. Do NOT tie RTS to CTS as shown in the Circuit Cellar article - that only sometimes works. RTS is low when ready to accept data and when RTS goes high you must stop sending data to the VDIP1. If you continue to send data, the VDIP1 will frequently lock up and need a manual reset or power cycling before it comes good. Any active file on the USB stick will be left open and appear empty when viewed with a PC.

e/ RTS going high apparently indicates there are only 32 character positions left in the buffer. RTS ALSO goes high immediately after issuing some commands. Which commands seems to vary with brand of card. The WRF 26 <cr> in my code below causes pin 9 RTS to go high with a Rundisk 2 GB memory stick but RTS does NOT go high with a Verbatim 512 MB stick.

f/ Every command must be terminated with a carriage return. No line feed is necessary.

g/ You must count your characters very carefully. The WRF nn <cr> command tells the VDIP1 that nn characters are to be written to the memory stick. If you send more than nn the VDIP1 module will harmlessly truncate the data but the file will be readable minus those overflow characters. If you don't send enough characters however, the VDIP1 will hang waiting for the balance. Subsequent commands to close the file will be lost and the file will remain open and be unreadable or empty.

h/ The following code creates a new directory called TESTFILE (8 character limit) and creates a file in that directory called Test1.txt. It then opens Test1.txt, writes a short header block and closes the file. It then opens the file a second time and appends 10,330 bytes to Test1.txt and closes the file. Finally it opens it, appends a trailer and closes Test1.txt. Only 8.3 format file and directory names are allowed. All file names are changed to capitals by the VDIP1.

i/ I have put a flow control test after every command. This is probably overkill but I don't know what are the fast and what are the slow commands. These appear to vary between brands and memory sizes so I have left them in.

'************************************************* ***************
'* Name : Vinculum01.pbp *
'* Author : Brian Taylor *
'* Notice : Copyright (c) 2007 Brian Taylor *
'* : All Rights Reserved *
'* Date : 4/12/2007 *
'* Version : 1.0 *
'* Notes : USB memory stick interface for PIC 18F4620 *
'* : *
'************************************************* ***************

data @0, 0

VinTxD var portb.0 'data from Vinculum VDIP1 pin 6
VinRxD var portb.1 'data TO VDIP1 pin 8 for writing to USB stick
FlowIn var portb.2 'Flow control FROM VDIP1 pin 9
FlowOut var portb.3 'Flow control TO VDIP1 pin 10
RstVDIP1 var portb.4 'active LOW reset line to VDIP1
LED var portb.5
SpareB6 var portb.6
SpareB7 var portb.7
TRISB = %11001101 'bits 2 & 3 temporarily inputs

TxD var portc.6 'MCS+ bootloader
RxD var portc.7

A var byte
B var byte
C var byte
W var word

Start:
define osc 4
define loader_used 1

Define LCD_DREG PORTD
Define LCD_DBIT 0
Define LCD_RSREG PORTD
Define LCD_RSBIT 5
Define LCD_EREG PORTD
Define LCD_EBIT 4


high rstvdip1 'active LOW so not reset.
low flowout 'pull VDIP1 pin 10 CTS low
input flowin 'from VDIP1 pin 9 RTS

Loop:
read 0,a
lcdout $FE, $01, "A = ", #a
pause 1000
if a = 0 then
write 0,1
lcdout $FE, $01, "Press Reset to", $FE, $C0, "start logging."
end
endif

StartWriteBlock:
high vinrxd 'condition serout pin to mark state
pause 5
serout vinrxd , 2, ["ECS", 13] 'Select Extended Command Set
high vinrxd
Pauseus 10
serout vinrxd, 2, ["IPA", 13] 'Input in ASCII
high vinrxd
pause 10
serout vinrxd , 2, ["MKD TestFile", 13] 'Make Directory called TestFile
Pauseus 10
Wait11:
if flowin = 1 then wait11
lcdout $FE, $01, "Make directory", $FE, $C0, "TestFile"
serout vinrxd, 2, ["CD TestFile", 13] 'Change Directory
Pauseus 10
Wait12:
if flowin = 1 then wait12
WriteHeader:
high vinrxd 'condition serial data line state
pause 5
serout vinrxd , 2, ["OPW Test1.txt", 13] 'Open file test1.txt for Writing
Pauseus 10
Wait13:if flowin = 1 then wait13
serout vinrxd, 2, ["WRF 26",13] 'Write 26 characters to the open file
Pauseus 10
Wait1:
if flowin = 1 then wait1
serout vinrxd, 2, [13, 10, "Start 10,330 byte test "] 'these are the 26.
Pauseus 100
Wait2:
if flowin = 1 then wait2
serout vinrxd, 2, ["CLF Test1.txt", 13]
Pauseus 100
Wait3:
if flowin = 1 then wait3
WriteDataBlock:
high vinrxd
pause 5
serout vinrxd , 2, ["OPW Test1.txt", 13]
high vinrxd
Pauseus 10
wait4:
if flowin = 1 then wait4
serout vinrxd, 2, ["WRF 10330",13]
lcdout $FE, $01, "Writing data", $FE, $C0, "10,330 characters"
Pauseus 10
Wait14:
if flowin = 1 then wait14
for c = 0 to 9
serout vinrxd, 2, [13, 10, #c]
Pauseus 10
Wait15:
if flowin = 1 then wait15
for a = 0 to 9
serout vinrxd, 2, [13, 10, #a]
Pauseus 10
Wait5:
if flowin = 1 then wait5
for w = 0 to 99
serout vinrxd, 2, [#c]
Pauseus 10
Wait6:
if flowin = 1 then wait6
next w
next a
next c
Pauseus 10
serout vinrxd, 2, ["CLF Test1.txt", 13]
Pauseus 10
Wait7:
if flowin = 1 then wait7
CloseDataBlock:
lcdout $FE, $01, "Closing file", $FE, $C0, "Test1.txt"
serout vinrxd , 2, ["OPW Test1.txt", 13] 'Open file for Writing
Pauseus 10
Wait8:
if flowin = 1 then wait8
serout vinrxd, 2, ["WRF 24",13]
Pauseus 10
Wait9:
if flowin = 1 then wait9
serout vinrxd, 2, [13, 10, "End 10,330 byte test",13,10]
Pauseus 10
Wait10:
if flowin = 1 then wait10
serout vinrxd, 2, ["CLF Test1.txt", 13]
Wait16:
if flowin = 1 then wait16
write 0, 0
pause 1000
goto loop
end


Cheers
BrianT

BobP
- 9th January 2008, 14:49
Thanks BrianT,

I have just ordered one of these modules. When I get it will try out your program and see how reliable the module is!

Thanks for all your work,
Bob

Nicmus
- 6th February 2008, 04:04
Hi Brian,

I was wandering if, in your search for answers on how to make better use of the VDIP1 based products, you found a reliable way (other than the message on Tx line) that will show if the storage device is present or not.
I’m thinking more in terms like a pin status change or a sequence in pin status changes.

I have an application which just transfers data from and to the flash storage device one byte at the time without having the PIC to look at it and I need a way to detect if the device is still connected.

I just received my first VDIP1 module and my first tests show that, without checking the data content from the module, I receive an answer from the module to my “RDF $01” command (read one byte from an open file) even if the flash device is removed (I guess it is an error message like “no device detected” or “bad command”). I was hopping that RTS might change but it doesn’t.

To be able to keep the speed on data transfer to a maximum I prefer not to concern the PIC with the data content and I need an alternate way to detect if the flash media is present or not.

Any idea will be appreciated.
Thank you in advance.

Nick

BrianT
- 6th February 2008, 04:46
Hi Nick,

I don't believe there is any pin that will tell you a card is present or not. If I had to do it in hardware I would use a small resistor in series with the 5 volt line and sense the extra current pulled by the USB card.

Lots of luck with just sending bytes without a PIC. Data over- and under-runs drive the VDIP1 nuts and you must be careful to write exactly as many characters as you told the VDIP1 you were going to send otherwise the fiile can be left open and will be unreadable to any other device.

AFAIK, RTS / CTS are driven by the buffer falling below 32 or 64 characters or by some undefined messages sent between the VDIP1 and the USB card which the user never gets to see.

Email the factory but ask your questions very carefully. They responded quite quickly to me but never once volunteered any help or gave a suggestion outside the very narrowest meaning of my question.

HTH
BrianT

Nicmus
- 6th February 2008, 13:23
Thank you Brian.
I will try to E-mail FTDI.
I'll post the results.
Thanks again,

Nick

Nicmus
- 8th February 2008, 21:32
Hi all,

First I would like to clarify the fact that I am using a PIC for my data transfer to and from a USB data storage device and I’m carefully counting my bytes. It is just that there is no need for the PIC to know what they are. In order to get the information of device disconnected you must monitor the data stream for the “No disk” message and I can’t afford to keep the PIC busy with that. So checking a pin status makes it really easy for me.

After reading the information (Yes, now I agree with the RTFM supporters 100%) on the LEDs behavior one solution to detect USB device disconnect “blinked” to me.
The LED2 output is supposed to be ON (Low) when the device is inserted and there is no data exchange on USART monitor port. If there is traffic the LED2 blinks. If the USB device is disconnected the LED2 is OFF (High).
I’m using a loop like:

Loop:
Read a string of 50 bytes from a open file on the USB device, via Debugin
Process and format the string
Send the string out via Serout2 to an other application (Hyper Terminal)
Check if USB device is present
Go to loop

As you can see it works for me due to the slight pause on activity on the monitor port.
I did not do a full test to see how fast you can expect the LED2 response but it is fast enough for me.

Hope this information will help people with similar applications.

Regards,

Nick

BrianT
- 8th February 2008, 22:37
Well done Nic, beats my sense resistor and transistor by a mile.

Cheers
BrianT

viji
- 29th March 2008, 17:32
Hi Brian
i have VDIP2 module and ft232rl proto type board .VDIP2 module led's are blinking continuously indicating that the monitor is not connected.i would like to program
VDIP2 module .kindly suggest a method to reflash using the proto type board.the board has
signal lines plus 5volt supply line.
with regards
viji

mackrackit
- 29th March 2008, 17:51
If the pin out for the VDIP2 is the same as the VDIP1, you need to ground pin #10.

camolas
- 29th May 2008, 14:24
Hi,

My VDIP2 just came my starting point it will be sending from my pic 16f877a a simple word to pc.
Ive some doubts:

1- Thas CTS pin is connected to GND and "RstVDIP1 var portb.4 'active LOW reset line to VDIP1" port in the above code?
2- There is a need to put same resistors or others things on the 4 vdip2 and 4 pic conections?
3- What new firmware did you put to updat the vdip and please can explain me the how to precess?

Im very new at this and do not have much money to kill a 32 euros part.

I hope that you can hellp me on this because by my one the only thing that i can get its going to be a dead vdip modul.


Thanks

By by

mackrackit
- 18th December 2008, 20:52
Hi,

My VDIP2 just came my starting point it will be sending from my pic 16f877a a simple word to pc.
Ive some doubts:

1- Thas CTS pin is connected to GND and "RstVDIP1 var portb.4 'active LOW reset line to VDIP1" port in the above code?
2- There is a need to put same resistors or others things on the 4 vdip2 and 4 pic conections?
3- What new firmware did you put to updat the vdip and please can explain me the how to precess?

Im very new at this and do not have much money to kill a 32 euros part.

I hope that you can hellp me on this because by my one the only thing that i can get its going to be a dead vdip modul.


Thanks

By by

camolas,
I just noticed this old post when it was spammed.
Did you get your part working?

camolas
- 19th December 2008, 14:33
Hi,

No i dint, do you now how?

Xau

DavidK
- 20th December 2008, 08:42
For what it is worth, the VNC1L chip works great for data logging to a USB drive. Serin2, Serout2, monitor the CTS and that is it.

Besides logging, I have also written text in MS word, saved it to the USB drive (as .TXT file) and read it with the PIC for dispaly on my LCD.

mackrackit
- 20th December 2008, 09:47
I can only talk about the VDIP1 as that is the only one I have used so far.


1- Thas CTS pin is connected to GND and "RstVDIP1 var portb.4 'active LOW reset line to VDIP1" port in the above code?
Yes, the CTS pin is connected to ground. The RESET pin on the VDIP is not needed to be connected unless you want to reset the VDIP with the PIC. A power down and up will reset the VDIP.


2- There is a need to put same resistors or others things on the 4 vdip2 and 4 pic conections?
I do not use any resistors. Might be a good idea though.


3- What new firmware did you put to updat the vdip and please can explain me the how to precess?
The VDIP1 comes with firmware burned in from the factory. The firmware can be modified / customized somewhat.

Here is a good page to start
http://www.vinculum.com/

This page has the different firmwares available
http://www.vinculum.com/downloads.html#vfirmware

Near the bottom of that page in applications and utilities. there is a program called
Vinculum Firmware Customiser (V1.1b)

This allows to modify some of the main settings of the firmware. Once the firmware has been modified, if using the VDIP1, copy the firmware to the root of a USB "thumb drive". Placs the drive into the VDIP1, at power up the VDIP1 will load the new firmware from the "thumb drive". This all can also be accomplished via serial port connected to the VDIP1 but the flash/thumb drive is so easy.

circuitpro
- 30th September 2009, 04:07
I saw a post (somewhere! - can't seem to find it again) where mackrackit posted some code on the VNC1L and used 'flowcontrol' to somehow handshake with this chip. I am putting the VNC1L on my board and, basically laying out a VDIP1. I am using this chip in order to plug a USB keyboard into this board, and am at a total loss of what to expect. With no handshaking per se supported already, I guess we're going to 'roll our own'.

I don't want to miss any keyboard characters, so, can you tell me how you are using 'flowcontrol' ?

Thanks much!

mackrackit
- 30th September 2009, 05:43
I saw a post (somewhere! - can't seem to find it again) where mackrackit posted some code on the VNC1L and used 'flowcontrol' to somehow handshake with this chip. I am putting the VNC1L on my board and, basically laying out a VDIP1. I am using this chip in order to plug a USB keyboard into this board, and am at a total loss of what to expect. With no handshaking per se supported already, I guess we're going to 'roll our own'.

I don't want to miss any keyboard characters, so, can you tell me how you are using 'flowcontrol' ?

Thanks much!
I can not remember the post you are referring to, but the only time I used anything like flow control was when using a VDIP to write to a flash drive like the example shown by Brian above. And that is not really flow control, just checking to see if the write operation is finished before going on to the next step.

In your case I think an interrupt will be needed. I have not used a VDIP with a keyboard so I am not sure if it will work that way.

The VDIP when given the read command will "dump" whatever it has in the file you are calling, at least that is the way I was using it. So setup a hardware serial input on the PIC with an interrupt. DTs instants will work well here. That way you will not miss anything.

circuitpro
- 30th September 2009, 22:28
Thanks! Will do, and hope this VNc1L chip does it's thing! :D

kirtcathey
- 4th December 2009, 10:06
Hi All. Totally agree with SkiMask RTFM policy, so made sure I scoured this forum, Googled, thoroughly read data sheets, and re-reviewed a lot of code available.

BrianT's code and explanation above is good, but still have a few questions....
I want to receive keyboard strokes to an 18F2550 via UART from a keyboard plugged into the VDIP1. When I press a key on the keyboard, does that automatically get forwarded to the UART interface on the VDIP1 and wait for transfer? Or, somehow do I need to tell the vnc1l that it needs to forward that keystroke to UART? Then how do I tell the VDIP1 to transfer each byte to the PIC serial port?

The code above focuses on sending data out to a disk on the VDIP1, but doesn't show how to get data back.... I think. Somebody point it out if I've missed something.

Thank you.
Kirt

Bogs1217
- 30th January 2010, 04:36
Hi,

I am new here and as well as using VDIP1, I need it for my thesis prototype. I need help on how to reflash the frimware of VDIP1, I did these steps but i don't think something happens

1. I downloaded the latest firmware from vinculum, edit the filename of the file "ftrfb_main_3_68VDAP.ftd" to "ftrfb.ftd"
2. I copied the ftrfb.ftd to the root directory of my flash disk (PQI 512mb).
3. I made the circuit for the VDIP1 module:
3a. pin 1 to VCC (5V)
3b. connected pins 7 and 18 to GND
3c. pin 23 (PROG#) to GND
3d. I connected pin 22 (RESET#) into a reseting circuit that I made, There is a button that when pressed the output is low and when not pressed the output is high.
3e. I remove the jumper pins (both of them)
4. I inserted the flash disk to the VDIP1 module
5. Power the circuit, then press reset circuit to reset the module
6. Nothing happens.

I don't know if it is already reflashed or no, nothing is happening even the LEDs. I already e-mailed vinculum, but i haven't get any response for more than a week now. I really need the help, if you can, can you please give me a step-by-step procedure to reflash the module.

Thanks,
Bogs

mackrackit
- 30th January 2010, 05:03
Welcome to the forum.

This post may help
http://www.picbasic.co.uk/forum/showpost.php?p=83846&postcount=88

Bogs1217
- 30th January 2010, 09:00
Hi Dave,

Thanks a lot Bro! It worked! fine and smoothly! I owe you a lot! :). This Forum is the best!

Regards,

Bogs

mackrackit
- 30th January 2010, 12:17
Hey Bogs,

I am curious about your thesis. What is it about?

Bogs1217
- 30th January 2010, 14:12
Hi Dave,

I can not share it right now, its a bit of confidential, not until of course after I finish it. I'll share it soon. Thanks a lot!

Best regards! :)

mackrackit
- 30th January 2010, 15:18
Ok...
I was just wondering. I see so many say they are working on a school project. I can get that.
But when someone says they are working on a thesis I have always wondered how hardware and the "basic" code that all came from some place else works in.

Do not get me wrong. I am not saying you are copying anything and maybe this is just a small part of a larger project.

Good luck!!!

Maybe you and newbie from the other thread can get together...

Bogs1217
- 31st January 2010, 04:17
Hi Dave,

Yes it was just a little part of the whole, I just need to make that module work. I've been doing my research for about a year now, and I was already implementing it.

Thanks!

And oh! I am not interfacing the module to a PIC microcontroller.

mackrackit
- 31st January 2010, 05:29
I get it now..

Again, good luck! Glad I could help.

page101
- 26th February 2010, 03:25
Hello guys, I've been searching around, and finally got here. I am also using VDIP1.

Does anyone tried to send a file from the USB flash drive to the Microcontroller?
I am trying to get a file from my flash drive, a jpg file and I wanted to send it to the monitor or to the UART of the VDIP1. I guess I am having a difficulty which command I will use. I tried to use "RD" command to send the whole content of the JPG file and got lots of values and it lasts for about 10 mins to finish and my VDIP1 hangs up after it so I need to restart it.

And lastly I want to send again the jpg file to the UART of VDIP1 and send it to my flash drive. I can do it for txt file but that involves four steps, OPW, WRF, Content, CLF. I want to try different file types and not anymor txt files.

Does anyone knows what to do about these or just an experience relating to these??? Thanks

madhur
- 13th April 2010, 06:09
Hi.I am pre-final year engineering student from India.
Our project is to copy data from one USB stick to another without use of PC.
I searched a lot about it and I found that VNC1L is suitable for that.
But i don't know from where i should start?
Can anyone please help me??

mackrackit
- 13th April 2010, 06:18
I tried helping a couple of others get started on the same thing here
http://www.picbasic.co.uk/forum/showthread.php?t=10241
I do not know if they had any luck, you might contact them and see.

I wonder if all of you attend the same school? Seems to be a common homework assignment these days.

madhur
- 13th April 2010, 19:48
can you plz provide me schematic to interface VNC1L to MCU?
and which MCU is preferable PIC16F688?
plz help me guys i am @ level 0

ANANT PAL
- 18th May 2010, 03:27
hey, can you send me the circuit how you connected VDIP1 to PIC ?


Hello guys, I've been searching around, and finally got here. I am also using VDIP1.

Does anyone tried to send a file from the USB flash drive to the Microcontroller?
I am trying to get a file from my flash drive, a jpg file and I wanted to send it to the monitor or to the UART of the VDIP1. I guess I am having a difficulty which command I will use. I tried to use "RD" command to send the whole content of the JPG file and got lots of values and it lasts for about 10 mins to finish and my VDIP1 hangs up after it so I need to restart it.

And lastly I want to send again the jpg file to the UART of VDIP1 and send it to my flash drive. I can do it for txt file but that involves four steps, OPW, WRF, Content, CLF. I want to try different file types and not anymor txt files.

Does anyone knows what to do about these or just an experience relating to these??? Thanks

Jacques
- 20th May 2010, 19:58
Hi Guys, I have a issue which is driving me nuts...

When I connect either one of my flash drives to the VDIP module, nothing happens...

When I apply VCC 5V to the device the leds blinks alternating then stops this happens when i start the module in spi or FIFO mode with or witout my flash drives. However when i start the module in UART the led's blinks continuously even when i connect my flash drives.

1) Both my flash drives are not working with the VDIP, because they work perfectly on the pc
2) my VDIP is blown, but also unlikely because i can re flash is using my rs323rl board.

Does anyone had this led issue or what to do when vdip does not recognize your flash drives.

Help will be greatly appreciated

page101
- 21st May 2010, 03:31
Hi Guys, I have a issue which is driving me nuts...

When I connect either one of my flash drives to the VDIP module, nothing happens...

When I apply VCC 5V to the device the leds blinks alternating then stops this happens when i start the module in spi or FIFO mode with or witout my flash drives. However when i start the module in UART the led's blinks continuously even when i connect my flash drives.

1) Both my flash drives are not working with the VDIP, because they work perfectly on the pc
2) my VDIP is blown, but also unlikely because i can re flash is using my rs323rl board.

Does anyone had this led issue or what to do when vdip does not recognize your flash drives.

Help will be greatly appreciated

hi Jacques,

i think the problem is that the VDIP is unable to send bytes (Confirming that it is online) because of its UART Connection. Can you try to connect the CTS of the VDIP to the ground? may be this will solve it.

Best Regards!

Jacques
- 21st May 2010, 09:37
Page 101, youre a rock star thx man,

Now its the tricky task of getting it to work in fifo mode.

ganesh_shelkar
- 23rd August 2010, 14:24
hi all
i have done interface with VNC1L in SPI mode.I have a problem when write to VNC1L new data rejected according data sheet retry untill data not accepted but its not working i have send the data continuously but not accepted by VNC1L.

marky07
- 28th October 2011, 10:37
Mackrackit, what is the easiest mode in interfacing the VDIP1 Module and PIC microcontroller,,, UART or SPI?

I have seen in this site(http://www.pic_examples.byethost3.com/VDIP.html) that he used SPI mode in interfacing the PIC and VDIP2 module...
But, I'm planning to buy VDIP1 because it is more cheaper than VDIP2 module.
Do you have any circuit diagram just like in that site using UART mode in interfacing the PIC and the VDIP1 module not the PIC and VDIP2 module???

mackrackit
- 28th October 2011, 12:23
Read the first post of this thread. That is all you need to get started.

jellis00
- 22nd January 2012, 01:03
The VDIP1 comes with firmware burned in from the factory. The firmware can be modified / customized somewhat.

This page has the different firmwares available
http://www.vinculum.com/downloads.html#vfirmware


Dave, I am in the process of adding a USB interface to my WiFi application so that I can interface it with a temperature probe/datalogger product via USB connection (see the product at http://www.vfcdataloggers.com/usbtcdatalogger.aspx ). The application will send a command to the data logger via its USB interface instructing it to grab the last temperature measurement it made from its datalog and send it along with its date/time stamp over the USB interface to the PIC board. The PIC will then send the data to the ConnectOne Wifi MiniSocket for transmission via the internet to my Website for posting.

To do this I am considering use of a V1DIP1 or a V2DIP1 module to provide the USB interface to my PIC based application. I recognize that the pre-compiled firmware that is available for it will make my coding job easier to implement this. However, the FTDI people told me that if I want to use pre-compiled firmware with the V2DIP1 that they strongly recommend using a V2DIP1-48 rather than the V2DIP1-32.....no explanation why or if this indicates problems when using pre-compiled firmware with the V2DIP1-32. Any ideas why they would say that? I would prefer to use the simpler V1DIP1-32 or the V2DIP1-32.

I am also having difficulty in determining which Firmware package I would have to use in my application. Since the PIC will use its EUSART to implement a UART interface with the V2DIP1, it would probaby have to be either the UART to USB HID Class Device version or the UART to CDC Modem Sample version as shown at their firmware page (see http://www.ftdichip.com/Firmware/Precompiled.htm ), but I don't know which one. I have asked the manufacturer of the VFC5000-TC to advise me which class their product uses on its USB interface and to confirm it operates as a host, but they haven't answered me yet. The VFC5000-TC USB interface is capable of interfacing with a PC and downloading its datalog to special software they use on a PC, so I suspect they use a USB HID Class. However, I notice the firmware for this class from FTDI says it "allows data to be transferred from the UART to the USB Host", which is the wrong direction for my application. For the UART to CDC Modem class they say it "will bridge a CDC class device present on the VNC2 USB host port 1 to a UART interface, with data transferrable in both directions." This sound more like what I need but I don't think it would work with a HID class USB host.

Can you clarify any of this for me and tell me your opinion which V2DIP1 I should order and which firmware?

mackrackit
- 22nd January 2012, 16:25
It has been a couple of years since I played with this so I have not kept up with the new stuff.
I think I was using the Vinculum Firmware Customiser (V1.1b) found here
http://www.ftdichip.com/Firmware/VNC1Ltools.htm
(http://www.ftdichip.com/Firmware/VNC1Ltools.htm)

When the data logger is plugged into a PC is the software needed to read it or can it be accessed as a drive? If it can not be accessed as a drive I do not think the VDIP will help.

pthakkar
- 2nd April 2012, 10:04
Hi

I am using VDIP1 module in UART mode. I have been able to interface the module and everything works fine as long as I use a pen drive of capacity 2 GB or less. I read in the datasheet that the pen drive must have 512 bytes per sector and in 4GB pen drive this option is not available.
The issue is that I cannot find pen drive with capacity less than 2 Gb in the market. So is there any way I can use 4GB pendrive with VDIP1?

Archangel
- 4th April 2012, 07:43
They're not cheap but are available here:
http://www.amazon.com/Kingston-Traveler-Flash-DTI-1GB/dp/B000AV14M2/ref=sr_1_4?s=pc&ie=UTF8&qid=1333518109&sr=1-4

asadkhanfamt
- 23rd May 2013, 13:34
Hi pthakkar,

I am using VDIP1 module in UART mode. I have been trying to interface the module with my 8051 controller. But so far I have not been able to send the data from microcontroller to the pen drive visa VDIP1 module. Can I get some input from you?