Vinculum VNC2
SPEED.
FLEXIBILIT Y.
PERFORMANCE.
■ PHOTO 2. Every pin
of the Vinculum-II
Expansion Board is
terminated at a header
point or the prototype
area. All of this USB
horsepower is yours
for about 100 bucks!
A programmable system-on-chip
USB 2.0 Host / Slave controller
- Dual channel USB 2.0 interface,
handles all USB host and data transfer
functions in single IC.
- On-chip 16-bit Harvard architecture
MCU core with 256 Kbyte Flash and
16kbyte RAM.
- External UART, FIFO, SPI Slave, SPI
Master, GPIO and P WM interfaces.
- Vinculum-II software development
tools available for user application
development.
- Multiple package size options
including VNC1L backwards
compatible package option.
- Targeted for range of USB
applications, from portable media
devices and cell phones to industrial
and automotive applications.
support the
Vinculum-II Expansion
Board for less than
$80. So, rather
than invent the
development board
wheel yet again, it is
more cost-effective to
simply purchase the
factory-produced
FTDI Vinculum-II
Evaluation Board for
$79. Photo 2 shows
our board mounted on a Vinculum-II Evaluation Board.
usb_ctx.if_count = 2;
usbhost_init(VOS_DEV_USB_HOST1, VOS_DEV_
USB_HOST2, &usb_ctx);
Vinculum-II evaluation modules
- V2DIP1/2 - Miniature VNC2
Development Module with Single
or Dual USB Connectors
- V2-EVAL - Complete Evaluation
& Development Kit for VNC2
- VNC2 Debug Module
The following sequence of events wraps up the actions initiated inside of the
main function. The BOMS service is initialized, a UART buffer is allocated, the
UART is initialized, the GPIO port is initialized, the application thread is created,
and the scheduler is started which allows the thread code to be executed:
boms_init(VOS_DEV_BOMS);
uart_ctx.buffer_size = VOS_BUFFER_SIZE_128_BYTES;
uart_init(VOS_DEV_UART, &uart_ctx);
gpioCtx.port_identifier = GPIO_PORT_A;
gpio_init(VOS_DEV_GPIO,&gpioCtx);
tcbApplication_thread = vos_create_thread(29,
SIZEOF_FIRMWARE_TASK_MEMORY, application_thread, 0);
vos_start_scheduler();
main_loop:
goto main_loop;
}
The scheduler will continually queue the application thread for execution as
the main function turns in a very tight loop.
www.ftdichip.com
USB MADE EASY
THINGS ASSOCIATED WITH APPLICATION THREADS
Lots of device open and iocb (I/O Control Block) operations are the norm
for an application thread. For instance, here is the sequence of events to set up
the GPIO to support the LEDs:
// THIS CODE FOUND IN GPIO.h
#define VOS_IOCTL_GPIO_SET_MASK 1
// set pins to either input (0) or output (1)
// GPIO control block for use with GPIO IOCTL
20
October 2010