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

USB superspeed peripherals

Level 5
100 replies posted 100 sign-ins 50 replies posted
Level 5


I have a question about schematic design of SD port power domain.

Our customer's system uses the UHS-I SD memory card. I heard that the UHS-I SD memory card uses 3.3V signal voltage at initialization and then shifts to 1.8V.

How do I switch the I/O voltage in FX3S (or SD3)?

Does FX3S (or SD3) dynamically switch the I/O voltage?

Or is it necessary to switch the power supply circuit from 3.3 V to 1.8 V externally?

Please share the reference circuit diagram of FX3S (or SD3).

I accessed http://www.pactronstore.com/ but I could not access it due to a security warning.


Naoaki Morimoto

1 Solution
Moderator 100 likes received 50 likes received 25 likes received

Yes, the UHS-I SD memory card uses 3.3V signal voltage at initialization and then shifts to 1.8V.

How does it switch the I/O voltage?

We need an external regulator which shifts the voltage from 3.3 V to 1.8 V. This shifting will be controlled by the GPIO provided in the intfparams.

First, We have to set the parameters of the interface in such away that port supports the lowvoltage operation. This can be done by passing CyTrue to intfParams.lowVoltage. If it is true, next provide the GPIO which can be used for controlling the regulator. This should done in the application firmware.

And you have to connect the configured GPIO to regulator.

Looking for the card specification and asserting the GPIO, if required, is handled in the library.

In USB RAID 1 example project provided with the App Note AN89661, we have configured the port 0 parameters as follows:

intfParams.resetGpio      = 0xFF;                   /* No GPIO control on SD/MMC power. */

intfParams.rstActHigh      = CyTrue;                /* Don't care as no GPIO is selected. */

intfParams.cardDetType    = CY_U3P_SIB_DETECT_DAT_3;/* Card detect based on SD_DAT[3]. */

intfParams.writeProtEnable = CyTrue;                /* Write protect handling enabled. */

intfParams.lowVoltage      = CyTrue;       /* Low voltage operation enabled.*/

intfParams.voltageSwGpio  = VSEL_S0_GPIO;  /* Use GPIO_12 for voltage switch on S0 port.*/

intfParams.useDdr          = CyTrue;                 /* DDR clocking enabled. */

intfParams.maxFreq        = CY_U3P_SIB_FREQ_104MHZ;   /* No S port clock limitation. */

intfParams.cardInitDelay  = 5;                         /* No delay required between SD card insertion

                                                                  before initialization. */

status = CyU3PSibSetIntfParams (0, &intfParams);

Refer the attached Schematic of FX3S RAID-ON-CHIP USB DONGLE, we have connected the VSEL_VIO2 (GPIO 12) to regulator U1 in page 6. This GPIO will triggered when you insert the UHS-I card.


View solution in original post

1 Reply