how to reset CYUSB3014 chip by iOS App?

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
GlWa_4148656
Level 2
Level 2
10 replies posted 10 sign-ins 5 replies posted

hi all, CyAPI.lib is easily used on windows platform, it help us to handle USB commnication via many black box APIs, including a system reset API which can reset whole chip and initialize FW again.

this reset API is very important to us, our CYUSB3014 is used as slave-fifo mode, data of previous transfer may stay in FIFO memory when exceptional operation happen,  thus a chip reset API is needed on our next system initialization.

now we decide to develop USB commnication between CYUSB3014 and iphone, iOS only offer us standard USB APIs without special function to reset this chip,  i want to know detail process that CyAPI.lib do the system reset and implement this function on iOS.  any one can help me?   i guess this operation have relationship with remote internal register accessing via USB cable. 

BTW,  for slave fifo mode, how long the chip will take for chip initialization? (FW reload, clear memory, internal register reset, etc.)

0 Likes
1 Solution
JayakrishnaT_76
Moderator
Moderator
Moderator
First question asked 1000 replies posted 750 replies posted

Hello,

Please let me know which function from the CyAPI.lib was used for resetting the FX3 device? Was it bool CCyUSBDevice::Reset( void)?

As per my understanding, you would like to hard reset FX3 from the host application (reset, load the FW and clear and initialize the registers again). Please let me know if my understanding is correct or not. If my understanding is correct, then you can make use of simple vendor commands to implement this. The vendor command should be sent from the host application. The FX3 firmware should parse this vendor command and reset the device by using the API CyU3PDeviceReset(CyFalse).

We do not have an estimated time for the chip initialization as this varies with the firmware used. Please try the following approach and let me know if it helps:

1. Refer to Table 31 of the following Application Note and find a GPIO that is in tristate mode for your boot mode:

https://www.cypress.com/file/201991/download

2. Pull down this GPIO externally using a resistor.

3. When the initialization sequence is complete, drive this GPIO from firmware to HIGH.

4. Measure the time for which the GPIO was LOW.

This method should give an approximate value for the initialization time.

Best Regards,
Jayakrishna

View solution in original post

0 Likes
4 Replies
JayakrishnaT_76
Moderator
Moderator
Moderator
First question asked 1000 replies posted 750 replies posted

Hello,

Please let me know which function from the CyAPI.lib was used for resetting the FX3 device? Was it bool CCyUSBDevice::Reset( void)?

As per my understanding, you would like to hard reset FX3 from the host application (reset, load the FW and clear and initialize the registers again). Please let me know if my understanding is correct or not. If my understanding is correct, then you can make use of simple vendor commands to implement this. The vendor command should be sent from the host application. The FX3 firmware should parse this vendor command and reset the device by using the API CyU3PDeviceReset(CyFalse).

We do not have an estimated time for the chip initialization as this varies with the firmware used. Please try the following approach and let me know if it helps:

1. Refer to Table 31 of the following Application Note and find a GPIO that is in tristate mode for your boot mode:

https://www.cypress.com/file/201991/download

2. Pull down this GPIO externally using a resistor.

3. When the initialization sequence is complete, drive this GPIO from firmware to HIGH.

4. Measure the time for which the GPIO was LOW.

This method should give an approximate value for the initialization time.

Best Regards,
Jayakrishna
0 Likes

Hi Jayakrishna , thanks for reply, yes you are correct about my two questions, and i`ll try your way.

BTW, both pin"RESET#" and CyU3PDeviceReset(CyFalse) do same job for resetting FX3 ,right ?   i think master can also send reset command to FPGA and RESET# pin will be pulled down by FPGA for about 1~2ms, the way is easy to me, i`m not familier with FX3.

0 Likes

Hello,

Yes, both RESET# and CyU3PDeviceReset(CyFalse) does the same job i.e resets FX3. 

Best Regards,
Jayakrishna
0 Likes

thanks for the answer,  you are very kind!

0 Likes