about the DIR command, how will i be able to display the data that the vdip will return? will i also use an array of bytes like in your program? or there will be a different approach?
Printable View
about the DIR command, how will i be able to display the data that the vdip will return? will i also use an array of bytes like in your program? or there will be a different approach?
Are you wanting to display the output on a LCD? If so then you will need to break the array up to fit on the screen and maybe do "line by line" refresh using the array parts that will fit...
Below I was dumping the whole array to a PC terminal.
Code:'Read from the VDIP
SERIN2 PORTB.4,8588,[STR VDAT\96]
'Send to PC terminal
SEROUT2 PORTB.3, 24972,[STR VDAT,10,13]
you mean right after i send the command
SEROUT2 VinRXD,8588,["DIR",13]
the commands that you wrote above will follow?
Yes, almost instantly after the command to do something is sent to the VDIP it will respond.
So you need to be ready to receive.
I am wondering about the direct copy from one device to another the more I think about it. The VDIP will send data all at once but you have to tell the VDIP how much data it is to receive. So you will somehow have to figure that part out.
Maybe there is a built in copy command with the VDIP?
there is a CPS command which i have read in the manual that will copy the source disk to the target disk
and the CPS-file which will copy a particular file from the source to the target disk. these are available only for the VDFC firmware..
have you tried these commands already? do you think that using these commands, i will still be needing to tell the vdip how much data to recieve?
No, I have not tried it. But if it is there it should work.
Changing the firmware is easy. So give it a try.
yes i would definitely do that.. but just to double check, after i have downloaded the reflash(ftd) for the VDFC firmware, will there be a need to rename it or do anything to it before saving it to the root of a flash disk?
The file needs to be named FTRFB.FTD
Put that file on the root of a USB stick and the VDIP should see it and re-do the firmware.
this is the name of the file that i downloaded in the website: ftrfb_main_03_65VDFC.ftd, so i will rename it to FTRFB.FTD...
now i will be redoing the firmware, i wii just be powering the vdip by its ground and vcc pins and i dont need to connect anything to the vdip yet right? how do i know if the firmware had already been installed?
I always had the VDIP outputting to a terminal so I could see what was going on.
There are two LEDs on board that blink in different sequences for different things. I do not remember the sequence but it is in the documentation.
Yes, I know the docs are hard to find and not well organized. That is one of the things that is bothersome about the company that makes them.
you are so right about that. They have a lot of PDF files about the vinculum but their contents are in a disorder. Anyway I have found the table of led behavior that indicates the status of the vdip but nothing i there indicates that a firmware had been installed.
I also did the firmware installation already, i powered the vdip on and then inserted the flash drive containing the firmware at its root. the led behavior indicated that it went to power on and then USB Disk Initialization then USB Disk Ready and then just stayed like that.
i do not have a level converter to connect the vdip to the computer so i do not have a view if my installation was a success.
i was thinking, since i have an lcd module, can i view the responses of the vdip through it?
You could use a PIC and the LCD, but it would be much easier to use a MAX232 or similar.
If you are going to be working with this stuff you need the tools.
ok i will get a max232 as soon as possible but for the mean time i will try to display the vdip's responses through my lcd module since i also need that in my projects.
about your program, you were using the array of bytes to display the name of the file but for the file extension, you just used ".DAT" right? my project is a file transfer device using the vdip so i have to recognize all kinds of file extensions that are there. so do you think something like this would work?
["OPR ",x1,x2,x3,x4,x5,x6,x7,x8,"."x9,x10,x11,13]
You have to tell the VDIP what to do at all times. It will read the files but then you have to have someway to "remember" what the file name and extension is if you want to do anything with it.
So that is why I used an array. The app I was doing all of the files were DAT so I did not have to worry about that part of it.
I've finally bought a max232 but i cannot find any schematic to connect it to the vdip and and also its connection to the computer. do you have any schematics that you can share with me? even just pin connections will do..
Google must have been down for awhile when you tried to find the info. It is working now though. Here is one of the things that came up.
Look at post #34
http://www.todopic.com.ar/foros/inde...topic=24289.20
And the data sheets for almost any part can be found on google too.
Ive finally connected it into the computer's serial port and the vdip2 responded very well. i can already issue copy commands and the files were indeed copied from the source disk to the target disk. the problem is when i try to enter a sub directory, it only prints $00 $00 $00 $00... have you encountered this? I really need to view the files in the sub folders for file browsing.
Cool!!! You are making progress.
I did not play with sub directories much, I was just writing file to the root directory. But I do remember trying it.
Are you using the Extended Command Set with your firmware?
Looking at the
Vinculum Firmware User Manual
Version: 2.3
Issue Date: 2007-12-03
On page 30 section 6.2.1 Directory (DIR)
This statement is made:
So maybe you are there and do not know it???Quote:
Note that if the specified file is a directory, a size of zero will be displayed rather than a listing of the files in that directory.
I should thank you because you shared your knowledge with me that's why my project is developing. However, knowing the note from the firmware really hurt my feelings. how will i ever manipulate the file names for the file transfer if i cannot view them? Ive read in one of their manuals that the vdip can go down to 16 sud directories, how can they say that if they would only print zeroes? :mad:
Are you saying that I hurt your feelings?
I only ran across that note about five minutes before I posted it after looking through the manual for clues to your problem.
If I knew how to do what you are wanting I would gladly tell you how.
After you receive the zeros, what happens if you send another DIR command?
The manufacturer also has tech support if all else fails.
oh no you got me misunderstood.. that just meant that i think I'm in a little bit of a trouble not being able to view the sub directories. I will ask the vinculum's customer support about this matter, and for the mean time i will be concentrating on the files located on the root..i wasn't successful the first time i interfaced the vdip2 to the pic16f877a. I could not get any response from the vdip. all i get are weird characters printed in the lcd even when the vdip is turned off. have you encountered this?
OK. I get what you mean.
Contact teck support and see what they say.
In the mean time post your code and configs along with a schematic here and maybe if we are lucky someone will see the problem.
As you can see I ripped a part of your code. pardon me for doing so. I just wanna see if the vdip would respond to the pic. This program is pretty short, I just wanted to display the first file it detects to the lcd. I wouldn't want to write a long program and then start wondering what part of the code went wrong after wards. Once I get a response even just one file name from the directory then will start to write my own program including the file browsing.Code:DEFINE OSC 20
INCLUDE "modedefs.bas"
DEFINE LCD_DREG PORTC
DEFINE LCD_DBIT 0
DEFINE LCD_RSREG PORTD
DEFINE LCD_RSBIT 1
DEFINE LCD_EREG PORTD
DEFINE LCD_EBIT 3
DEFINE LCD_RWREG PORTD
DEFINE LCD_RWBIT 2
DEFINE LCD_BITS 8
DEFINE LCD_LINES 4
Define LCD_CHARS 20
DEFINE LCD_COMMANDUS 2000
DEFINE LCD_DATAUS 50
VTXD VAR PORTB.0
VRXD VAR PORTB.1
Flowin VAR PORTB.2
Pause 500
Lcdout $fe,$C0, " Please Insert Your "
Lcdout $fe,$94, " Flash Drive "
Pause 100
RESP VAR BYTE[16]
X1 VAR BYTE
X2 VAR BYTE
X3 VAR BYTE
X4 VAR BYTE
X5 VAR BYTE
X6 VAR BYTE
X7 VAR BYTE
X8 VAR BYTE
checkvin:
SEROUT2 VRXD,8588,["ECS",13]
HIGH VRXD
PAUSEUS 10
SEROUT2 VRXD,8588,["IPA",13]
HIGH VRXD
PAUSEUS 10
WAIT1
IF Flowin = 1 THEN WAIT1
SEROUT2 VRXD,8588,["DIR",13]
PAUSE 100
SERIN2 VTXD,8588,[STR RESP\8]
X1 = RESP[0]
X2 = RESP[1]
X3 = RESP[2]
X4 = RESP[3]
X5 = RESP[4]
X6 = RESP[5]
X7 = RESP[6]
X8 = RESP[7]
X9 = RESP[8]
X10 = RESP[9]
X11 = RESP[10]
X12 = RESP[11]
PAUSE 100
LCDOUT $FE,1,X1,X2,X3,X4,X5,X6,X7,X8,X9,X10,X11,X12
PAUSE 2000
I can now view the files in the sub directories...this is my bad.. I was entering DIR (file), this command would only list the specified file and size. I did not see until now that these was another command that will change the current directory, its CD (folder). my bad sorry. now i can go on and make a program once i get responses from the vdip with the pic controlling it.
Great!!! Progress!!!
No problem ripping the code, that is what it is there for.
Writing a little and testing is the way to do it. That is why ICSP is so handy.
Keep us posted.
are there any string manipulation commands in picbasic pro?
regarding the arrays..does it support string arrays? I haven't found any examples about string arrays in picbasic pro. I tried do something similar to your code but instead of storing characters i tried to store strings. I received errors upon compiling the code. Do you have some sample codes you can share? Also, what do you mean by serial type commands?
A string can be saved to an array and the serial type commands are.....
SERIN
SERIN2
HSERIN
This is all in the manual.
More info is here
http://www.picbasic.co.uk/forum/showthread.php?t=544
And many examples are here
http://www.melabs.com/resources/samples.htm
thanks for the quick reply... so those are the serial type commands..I already know them and their functions I just didn't know that they are called that.
Ive already visited the links..these will be big help. thank you.
:)
I do not know if anyone else calls them that.... But it works for me.
Any idea on how to do this? I was thinking to display arrays of 12 in every line so that it can support the 8.3 format set by the vinculum. the problem is, not all files follow the 8.3 format specially those with file names shorter than 8 characters. for example, i have a file named "pic.pdf" as you can see there will be 5 vacant array spaces for this line so the succeeding file's first 5 characters will occupy those vacant spaces then there will be a domino effect and the file names will be in a total disorder. do you have any idea on how i will know when it is the end of one file and the start of the next so that i can print it in a new line?Quote:
Are you wanting to display the output on a LCD? If so then you will need to break the array up to fit on the screen and maybe do "line by line" refresh using the array parts that will fit...
If I follow you . . . 10 is line feed, 13 is carriage return, 32 is a space so . . . "pic.pdf",32,32,32 would display as pic.pdf and 3 spaces, which using serout you would just put 3 spaces after pic.pdf but within the "" marks, I have not used the 10,13 codes with an lcd so I do not know if they work, and my bench is upside down right now :) so anyway you could preload your array with all 32s and then write your file name into it . . . best way to me is to tell the lcd where to print it.
does the vdip issue a line feed and a carrage return in every end of a file?
can i view it your way? how would you do it?Quote:
. . . best way to me is to tell the lcd where to print it.
I still haven't been able to get a response from the vdip when I connect it to the PIC and LCD. Still weird characters come out of the LCD. I'm using a 4Mhz xtal oscillator right now because when I tried to use a 20Mhz xtal the pic would not respond to any program..Do you think the oscillator has got something to do with it?
If you could give me a schematic of vdip connected to the pic16f877a including the extra components, that would really help...
I do not have a schematic so I will have to refer you back to the post BrianT made.
http://www.picbasic.co.uk/forum/showthread.php?t=7700
Here is a Map of the LCD Display giving the address of each cell. simply do as the book says and use that address where you want the first character to appear.
example:
LCDOUT $fe, 128, "this example uses "
LCDOUT $FE,192,"the first 2 lines"
see the numbers 128, 192, find them on the chart.
It makes no difference if you use decimal or hex representations. 128 = $80, $FE = 254
LCDOUT 254,1 will clear all characters from the screen.
After a couple of tests I still have no success in interfacing the vdip to a pic16f877a microcontroller but i have found out that the program hangs whenever it reaches a serin2 command. I checked if the flowin was high but i wasn't...it was low the whole time the program was running so i'm pretty sure it wasnt trapped in an infinite loop. have any one encountered this?
Can you post the code?
When you setup the firm ware for the VDIP, what baud rate did you give it?
You were able to communicate with the VDIP using a terminal, correct?
What baud rate did you use then?
The code i used was same as the code that i posted above...
I used the default baud rate which is i think 9600...do you think i should change it to 2400?
I also found out that it can be risky for flash drives.. it broke my disk just now..