FX3S Raid1 on Chip USB 3.0 Dongle version 1.0 - FX3S Raid1 Application issue

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

cross mob
asrac_1545771
Level 1
Level 1

Hi,

I am using Cypress FX3S USB Dongle Rev 1.0 Hardware.

This has Two SD card connections. one USB 3.0 host connection.

I am using EzUsb Eclipse IDE for building FX3SMassStorage Application,

When I load this fx3sMassStorage Application to FX3S using Cypress Control center,

I am getting two FAT Partitions/Drive each 1.8GB, as I am using 4GB SD card on either SD socket.

When FX3SMassStorage Application is loaded, Only Primary SD card two 1.8GB FAT partitions in detecting ,

But Secondary 4GB card's two FAT partitions is not mounted or detected in MyComputer.

When I Download the Debug/Release raid1 .img to FX3S using Cypress Control center,

I am not getting any Mass Storage Drive in My Computer and/or Storage Drives in Computer Management.

In This I connected two 4GB SD card on both SD card sockets in FX3S.

But Both cards are detecting in Transcend Card Reader.

I am facing this Raid1 Partition or Drive of FX3S is not showing in Windows 7 MyComputer and/or Storages in Computer Management.

But when I load FX3S MassStorage Application first and then do button reset on FX3S and Load FX3S Raid1 Application using cy control center,

I am getting one 1.8GB FAT Partition in My computer, But another 1.8GB Raid1 FAT partition is not detecting.

I am using below

Application: https://www.cypress.com/file/124466/download

AN89661 USB RAID 1 Disk Design Using EZ-USB FX3S.zip

Thanks & Regards

Ashok

0 Likes
1 Solution
Hemanth
Moderator
Moderator
Moderator
First like given First question asked 750 replies posted

Hi Ashok,

When you use RAID Dongle hardware to test FX3SMassStorage application, then please make the following changes:

1. Change the intfParams.voltageSwGpio of first S port to 12 and the other to 13.

2. If your card has one partition then, you need to change the macro CY_FX_SIB_PARTITIONS to 1.

2. Before intfParams and after GpioInit add the following code:

----------------------------------------------

gpio = 14;

status = CyU3PDeviceGpioOverride (gpio, CyTrue);

if (status != 0)

{

/* Error Handling */

CyU3PDebugPrint (4, "CyU3PDeviceGpioOverride failed, error code = %d\n",

status);

CyFxAppErrorHandler(status);

}

/* Configure GPIO as output */

gpioConfig.outValue = CyTrue;

gpioConfig.driveLowEn = CyTrue;

gpioConfig.driveHighEn = CyTrue;

gpioConfig.inputEn = CyFalse;

gpioConfig.intrMode = CY_U3P_GPIO_NO_INTR;

status = CyU3PGpioSetSimpleConfig(gpio, &gpioConfig);

if (status != CY_U3P_SUCCESS)

{

/* Error handling */

CyU3PDebugPrint (4, "CyU3PGpioSetSimpleConfig failed, error code = %d\n",

status);

CyFxAppErrorHandler(status);

}

gpio = 15;

status = CyU3PDeviceGpioOverride (gpio, CyTrue);

if (status != 0)

{

/* Error Handling */

CyU3PDebugPrint (4, "CyU3PDeviceGpioOverride failed, error code = %d\n",

status);

CyFxAppErrorHandler(status);

}

status = CyU3PGpioSetSimpleConfig(gpio, &gpioConfig);

if (status != CY_U3P_SUCCESS)

{

/* Error handling */

CyU3PDebugPrint (4, "CyU3PGpioSetSimpleConfig failed, error code = %d\n",

status);

CyFxAppErrorHandler(status);

}

gpio = 12;

status = CyU3PDeviceGpioOverride (gpio, CyTrue);

if (status != 0)

{

/* Error Handling */

CyU3PDebugPrint (4, "CyU3PDeviceGpioOverride failed, error code = %d\n",

status);

CyFxAppErrorHandler(status);

}

gpioConfig.outValue = CyTrue;

status = CyU3PGpioSetSimpleConfig(gpio, &gpioConfig);

if (status != CY_U3P_SUCCESS)

{

/* Error handling */

CyU3PDebugPrint (4, "CyU3PGpioSetSimpleConfig failed, error code = %d\n",

status);

CyFxAppErrorHandler(status);

}

gpio = 13;

status = CyU3PDeviceGpioOverride (gpio, CyTrue);

if (status != 0)

{

/* Error Handling */

CyU3PDebugPrint (4, "CyU3PDeviceGpioOverride failed, error code = %d\n",

status);

CyFxAppErrorHandler(status);

}

gpioConfig.outValue = CyTrue;

status = CyU3PGpioSetSimpleConfig(gpio, &gpioConfig);

if (status != CY_U3P_SUCCESS)

{

        /* Error handling */

        CyU3PDebugPrint (4, "CyU3PGpioSetSimpleConfig failed, error code = %d\n",

        status);

        CyFxAppErrorHandler(status);

}

----------------------------------------------------------------------------

3. Regarding the RAID1 application note firmware: Kindly format both the cards with only one partition in each card and then load the application note firmware. Then it is expected that you see one card coming up.

Regards,

Hemanth

Hemanth

View solution in original post

0 Likes
1 Reply
Hemanth
Moderator
Moderator
Moderator
First like given First question asked 750 replies posted

Hi Ashok,

When you use RAID Dongle hardware to test FX3SMassStorage application, then please make the following changes:

1. Change the intfParams.voltageSwGpio of first S port to 12 and the other to 13.

2. If your card has one partition then, you need to change the macro CY_FX_SIB_PARTITIONS to 1.

2. Before intfParams and after GpioInit add the following code:

----------------------------------------------

gpio = 14;

status = CyU3PDeviceGpioOverride (gpio, CyTrue);

if (status != 0)

{

/* Error Handling */

CyU3PDebugPrint (4, "CyU3PDeviceGpioOverride failed, error code = %d\n",

status);

CyFxAppErrorHandler(status);

}

/* Configure GPIO as output */

gpioConfig.outValue = CyTrue;

gpioConfig.driveLowEn = CyTrue;

gpioConfig.driveHighEn = CyTrue;

gpioConfig.inputEn = CyFalse;

gpioConfig.intrMode = CY_U3P_GPIO_NO_INTR;

status = CyU3PGpioSetSimpleConfig(gpio, &gpioConfig);

if (status != CY_U3P_SUCCESS)

{

/* Error handling */

CyU3PDebugPrint (4, "CyU3PGpioSetSimpleConfig failed, error code = %d\n",

status);

CyFxAppErrorHandler(status);

}

gpio = 15;

status = CyU3PDeviceGpioOverride (gpio, CyTrue);

if (status != 0)

{

/* Error Handling */

CyU3PDebugPrint (4, "CyU3PDeviceGpioOverride failed, error code = %d\n",

status);

CyFxAppErrorHandler(status);

}

status = CyU3PGpioSetSimpleConfig(gpio, &gpioConfig);

if (status != CY_U3P_SUCCESS)

{

/* Error handling */

CyU3PDebugPrint (4, "CyU3PGpioSetSimpleConfig failed, error code = %d\n",

status);

CyFxAppErrorHandler(status);

}

gpio = 12;

status = CyU3PDeviceGpioOverride (gpio, CyTrue);

if (status != 0)

{

/* Error Handling */

CyU3PDebugPrint (4, "CyU3PDeviceGpioOverride failed, error code = %d\n",

status);

CyFxAppErrorHandler(status);

}

gpioConfig.outValue = CyTrue;

status = CyU3PGpioSetSimpleConfig(gpio, &gpioConfig);

if (status != CY_U3P_SUCCESS)

{

/* Error handling */

CyU3PDebugPrint (4, "CyU3PGpioSetSimpleConfig failed, error code = %d\n",

status);

CyFxAppErrorHandler(status);

}

gpio = 13;

status = CyU3PDeviceGpioOverride (gpio, CyTrue);

if (status != 0)

{

/* Error Handling */

CyU3PDebugPrint (4, "CyU3PDeviceGpioOverride failed, error code = %d\n",

status);

CyFxAppErrorHandler(status);

}

gpioConfig.outValue = CyTrue;

status = CyU3PGpioSetSimpleConfig(gpio, &gpioConfig);

if (status != CY_U3P_SUCCESS)

{

        /* Error handling */

        CyU3PDebugPrint (4, "CyU3PGpioSetSimpleConfig failed, error code = %d\n",

        status);

        CyFxAppErrorHandler(status);

}

----------------------------------------------------------------------------

3. Regarding the RAID1 application note firmware: Kindly format both the cards with only one partition in each card and then load the application note firmware. Then it is expected that you see one card coming up.

Regards,

Hemanth

Hemanth
0 Likes