cancel
Showing results for 
Search instead for 
Did you mean: 

USB Superspeed Peripherals

SeungM_41
Employee

Hello

My customer has some question about drive strength for storage port (S0) with SD3 (CYUSB3025-BZXI).
Could you give me your comment for the question?

 

Question#1.
What is default drive strength for S0 port? (Half strength? or Three quarter strength?)

Question#2.
Can be the drive strength changed by USB host during system operating?

Question#3.
Can you please let us know how to change the IO drive strength in firmware?


Regards,
Jake

0 Likes
1 Solution
Rashi_Vatsa
Moderator
Moderator

Hello Jake,

1) What does it mean default value 2 in S0DS[1:0]? (Half strength? or Three quarter strength?) 

>> Apologies for the confusion. You can follow the details mentioned latest FX3 TRM (rev *F) https://www.cypress.com/file/134661/download. The default IO Drive strength will be 2 - Half strength

2) As per FX3 TRM, the S-port I/O drive strength is programmable similar to any other I/O pin as discussed in 4.1.2 I/O Drive Strength on page 53.

what is file located for IO drive strength configuration? 

>> To change the drive strength of the S port you need to write to the register GCTL_DS. The project does not contain the API for doing that. You can use CyU3PWriteDeviceRegisters/CyU3PReadDeviceRegisters APIs  to write/read to the register. The register can be written with different drive strength in firmware

You can refer to the source of this CyU3PSetGpioDriveStrength API to get more details on writing to the register.  Similarly, you can set particular bits of the GCTL_DS register according to your application

Please let me know if you have any queries on this

Regards,
Rashi

View solution in original post

0 Likes
4 Replies
Rashi_Vatsa
Moderator
Moderator

Hello Jake,

Please find the comments below

Question#1.
What is default drive strength for S0 port? (Half strength? or Three quarter strength?)

>> Please refer to section 10.4.4 of  FX3 TRM. It mentions about the GCTL_DS register. You can also refer to this thread Solved: what is the default state of CyU3PDriveStrengthSta... - Cypress Developer Community

Question#2.
Can be the drive strength changed by USB host during system operating?

>>  SD3 datasheet mentions that all I/Os can be driven at full-strength, three-quarter strength,
half-strength, or quarter-strength. These drive strengths are configured based on each interface.

Question#3.
Can you please let us know how to change the IO drive strength in firmware?

>> The drive strength can be changed by writing to the GCTL_DS register.

Regards,
Rashi
0 Likes
SeungM_41
Employee

Hi Rashi 

Thank you for your comment. 

I have additional questions. 

Question#1. the below shown image is GCTL_DS register in FX3 TRM and indicates default value of S0DS[1:0] to 2. 

1_GCTL_DS_Register_S0DS.png

 

 

 

The default value 2 indicates "Half Strength".  

2_Drive_Strength_values.png

 

 

 

 

However,  2 as the value in firmware code you mentioned seems to be Three quarter strength. 

described comment in FX3 TRM is wrong as typo? 

What does it mean default value 2 in S0DS[1:0]? (Half strength? or Three quarter strength?) 

3_Code_GCTL_DS_Setting.png

 

 

 

 

 

 

 

 

 

 

 

 

Quetion#2. 

I am looking at example code (FX3MassStorage.zip) . EZ-USB® FX3S SD/MMC Backed Mass Storage Class Example (cypress.com)

what is file located for IO drive strength configuration? 

(I am still trying to find the header file to change IO drive strength .) 

 

Regards,

Jake

0 Likes
Rashi_Vatsa
Moderator
Moderator

Hello Jake,

1) What does it mean default value 2 in S0DS[1:0]? (Half strength? or Three quarter strength?) 

>> Apologies for the confusion. You can follow the details mentioned latest FX3 TRM (rev *F) https://www.cypress.com/file/134661/download. The default IO Drive strength will be 2 - Half strength

2) As per FX3 TRM, the S-port I/O drive strength is programmable similar to any other I/O pin as discussed in 4.1.2 I/O Drive Strength on page 53.

what is file located for IO drive strength configuration? 

>> To change the drive strength of the S port you need to write to the register GCTL_DS. The project does not contain the API for doing that. You can use CyU3PWriteDeviceRegisters/CyU3PReadDeviceRegisters APIs  to write/read to the register. The register can be written with different drive strength in firmware

You can refer to the source of this CyU3PSetGpioDriveStrength API to get more details on writing to the register.  Similarly, you can set particular bits of the GCTL_DS register according to your application

Please let me know if you have any queries on this

Regards,
Rashi

View solution in original post

0 Likes
SeungM_41
Employee

Rashi 

Thank you so much for your prompt reply and supporting. 

 understood. I will try to do it. 

Regards,

Jake

0 Likes