Hello to everybody,
can somebody help me giving some advice? I have an analog project made on a system with several PSoC5LP. The system could have up to eight continouous flow data-producer board, each up to 130KSPS (about 260Kbyte/sec, so about 8x260= 2.4MByte-say 3MByte/sec maximun) with internal buffering for about 50ms each, and one 'concentrator' board with a master PSoC5LP controlling everything and retrieving data from slaves via SPI . I have to put all these data in one or more buffers inside RAM of a host PC. I have just some experience with USB FTDI chips , but I would like to migrate to Cypress. My problem is that I am completely lost in the middle of 'type of transactions, drivers, election of the correct architecture, and development enviroment'. The system itself must be comanded for start/stopping aquiring analog signal from the host part, but once started, the data input flow to host PC must be temporized by the external PSoC based system. It appears to me that there is a fundamental difficulty in doing this because all the data transactions are started by the host PC side, while it appears to be my adquisition software who might mark the cadence to ask the host for input available data. How can I tell my MainApplication running in host PC that there is data available in my hardware? Must I be polling continuously throught the Cypress driver from the insideof a dedicated thread? Does the driver provide for the generation of a Windows event when data is available to be retrieved in the external end of the USB channel? Please excuse my poor knowledge of USB. I am trying to improve it.
I have got one CY7C68013A small dev kit that I would like to use for this matter.
Any help will be wellcomed.
As per USB 2.0 protocol, it is a host centric/ host initiated protocol. Even though the hardware has data, host must keep polling it for retrieving the data from the device. That is how the USB spec is defined. Thus as you understood, in case of CY7C68013, host must keep polling for data fro device.
Note: Asynchronous notification by the device to host is an improveent of USB 3.0 spec over USB 2.0 spec.