FTDI Community

General Category => Discussion - Software => Topic started by: Rajavelu on October 18, 2018, 05:44:55 AM

Title: USB Keyboard+USB Flashdrive-in single s/w-Vinculum II
Post by: Rajavelu on October 18, 2018, 05:44:55 AM
  Good Day!!
       
      i'm using Vinculum II 32 pin package- i have working codes for 2 slaves (USB port and USB Flash drive ), but they are  2 separate codes and will work only on one  USB port.
     Our aim is to Configure USB Keyboard on one USB port and USB Flash drive on other USB port, and the next step would be connecting two slaves on either of the USB ports.

PS: Took the help of precompiled firmware for separate codes but i dont find precompiled firmware for configuring 2 ports at same time.

Regards
Rajavelu Balasubramanian


Title: Re: USB Keyboard+USB Flashdrive-in single s/w-Vinculum II
Post by: FTDI Community on October 18, 2018, 10:18:03 AM
Hello,

The V2DAP firmware can control two USB host ports from a single UART and also provides the monitor command set.

This monitor protocol is necessary so that you can direct your commands and data from the single UART to the relevant USB port, and likewise when receiving data from the USB device on each port.

You can find the V2DAP firmware and source in the samples installed with the toolchain. Please ensure to use the latest toolchain and install service pack 2.
https://www.ftdichip.com/Firmware/VNC2tools.htm

Best Regards, FTDI Community
Title: Re: USB Keyboard+USB Flashdrive-in single s/w-Vinculum II
Post by: Rajavelu on November 18, 2018, 05:09:36 PM
Kindly clarify the following

1) what does "usbhost_connect_state" returns?( thought i can use it in void main(void) to create threads which is only necessary
2)Is it possible to provide me a sample code of operating two USB host ports at a single time. Preferably Pendrive or keyboard
3) I have used the following threads
   ->for USB Memory stick(Pendrive)
        tcbSETUP = vos_create_thread_ex(25, 1024, setup, "Setup", 0);
   tcbUART = vos_create_thread_ex(24, 1024, UART, "Read", 0);
   tcbBOMS = vos_create_thread_ex(24, 1024, BOMS, "Write", 0);
   ->for USB Keyboard
   tcbFIRMWARE = vos_create_thread_ex(25, 1024, firmware, "Application", 0);   
inside void main(void)    
4) If i use both set of threads only Pendrive works on port1 but keyboard doesn't work on port2(intention is to make usb pendrive work on port1 and keyboard on port2). If i comment either set of threads the other one works fine

I also found that memory plays an issue here i think since i have used 1024 to all, it is working for only the first port. Is it so?
i have used tcbFIRMWARE = vos_create_thread_ex(31, 512, firmware, "Application", 0); alone  but  keyboard didnt work at all
 
does my priority makes the issue or the memory????
5) Under UART2DSC.h
 i have define the following
#define VOS_DEV_USBHOST_1 0
#define VOS_DEV_USBHOST_2 1
#define VOS_DEV_UART 2
#define VOS_DEV_FAT_FILE_SYSTEM 3
#define VOS_DEV_BOMS 4

#define VOS_NUMBER_DEVICES 5

( Is it correct)
Pls find the UART2DSC.C & .H files