AN87216: How to increse buffer size

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

cross mob
WGT_4383351
Level 5
Level 5
First like received

With the Master/Slave example in AN87216, after incresing CY_FX_EP_BURST_LENGTH from 1 to 4 or 8 and loading the firmware to RAM, CYUSB3KIT-003 enumerate successfully but won't show up in Control center. Modify CY_FX_DMA_BUF_COUNT from 16 to 32 or 64 at the same time have the same problem.

How to modify CY_FX_EP_BURST_LENGTH / CY_FX_DMA_SIZE_MULTIPLIER / CY_FX_DMA_BUF_COUNT at the same time to increase the bandwidth of Master/Slave example? GPIF designed may need to be modified too according to a former post - quote

"On changing the DMA buffer size, the Data counter and Addr counter values also need to be modified in the state machine as well as in the firmware. The counter value is calculated  (counter value ) = (DMA buffersize)/ (GPIF bus width in bytes) + 1"

0 Likes
1 Solution

Hello,

The maximum DMA buffer size allocated for 512 KB system memory is 224 KB. Please refer to this KBA DMA Buffer Count - KBA218339

In AN 87216 firmware, there are two channels created with same buffer count and buffer size.

i.e. glChHandleBulkLpUtoP and &glChHandleBulkLpPtoU

dmaCfg.size  = (size * CY_FX_EP_BURST_LENGTH * CY_FX_DMA_SIZE_MULTIPLIER);

For USB 3.0 by default settings are

dma buffer size = 1024 * 1* 2 = 2 KB

DMA buffer count is 16

For two channels = 2 * 2 *16 = 64 KB

So when you change the DMA buffer size, you need to reduce the DMA buffer count

For eg:

dma buffer size = 1024 * 8 *2 = 16 KB

DMA buffer count = 4

For two channels it will be 2 * 16 * 4 = 128 KB

The CYUSB3KIT-003 does not enumerate as the DMA channel creation fails. Please confirm that CyU3PDmaChannelCreate API is failing. You can call CYU3PDeviceReset(CyFalse) when return is not success.

Apologies for the mistake. The counter values need to be modified as per (DMA buffersize)/ (GPIF bus width in bytes) - 1.

The response in the thread is edited

Regards,

Rashi

Regards,
Rashi

View solution in original post

8 Replies
WGT_4383351
Level 5
Level 5
First like received

The above "counter value" seems to be "LD_DATA_COUNT" and "LD_ADDR_COUNT" in GPIF designer. But  the default value is 0~511? Then why "(DMA buffersize)/ (GPIF bus width in bytes) + 1"? For example, if DMA buffer size is changed to

size * CY_FX_EP_BURST_LENGTH * CY_FX_DMA_SIZE_MULTIPLIER=1024*8*2=16KB,

then the value in GPIF designer shoulde be changed to 0-16383 right?

0 Likes

Hello,

The maximum DMA buffer size allocated for 512 KB system memory is 224 KB. Please refer to this KBA DMA Buffer Count - KBA218339

In AN 87216 firmware, there are two channels created with same buffer count and buffer size.

i.e. glChHandleBulkLpUtoP and &glChHandleBulkLpPtoU

dmaCfg.size  = (size * CY_FX_EP_BURST_LENGTH * CY_FX_DMA_SIZE_MULTIPLIER);

For USB 3.0 by default settings are

dma buffer size = 1024 * 1* 2 = 2 KB

DMA buffer count is 16

For two channels = 2 * 2 *16 = 64 KB

So when you change the DMA buffer size, you need to reduce the DMA buffer count

For eg:

dma buffer size = 1024 * 8 *2 = 16 KB

DMA buffer count = 4

For two channels it will be 2 * 16 * 4 = 128 KB

The CYUSB3KIT-003 does not enumerate as the DMA channel creation fails. Please confirm that CyU3PDmaChannelCreate API is failing. You can call CYU3PDeviceReset(CyFalse) when return is not success.

Apologies for the mistake. The counter values need to be modified as per (DMA buffersize)/ (GPIF bus width in bytes) - 1.

The response in the thread is edited

Regards,

Rashi

Regards,
Rashi
WGT_4383351
Level 5
Level 5
First like received

CYUSB3KIT-003 enumerates, but Control center won't list it.

0 Likes

Hello,

Please let me know device strings when the device enumerating in the device manager.

Regards,

Rashi

Regards,
Rashi
0 Likes
WGT_4383351
Level 5
Level 5
First like received

What is the exact name of "device strings" do you need in device property dialog? Device instance path?

0 Likes

Hello,

Please let me know the with what name is the device enumerating

Regards,

Rashi

Regards,
Rashi
0 Likes
WGT_4383351
Level 5
Level 5
First like received

The original name as before which contains "slave"

0 Likes

Hello,

Please let me know if you made any changes to code of Control Center application.

If not try restarting the system (PC) and then plugin the programmed FX3.

If you are having another PC with SDK installed you can try with that PC and let me know the results

Regards,

Rashi

Regards,
Rashi
0 Likes