CYUSB3304 configuration via external I2C master

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

cross mob
drko001
Level 1
Level 1
First solution authored First reply posted First question asked

Hello,

We are currently in development of a product implementing HX3 CYUSB3304 USB hub. We configured the hub as I2C slave to be configured from an external I2C master according to this article: https://community.infineon.com/t5/Knowledge-Base-Articles/EZ-USB-HX3-I2C-Slave-Mode-Operation-KBA909... We do not use any EEPROM.

We generated a suitable configuration file using HX3 Blaster configuration tool and are sending the data in 0xD4 format all in one write access.

As we write to the hub (starting with 0xC0 slave address, 0x0000 memory address, 0x4359... config data) the hub acknowledges every byte. However at the end of the transaction the hub is still not enumerating. We have to send further (between 5-10 individual write attempts) in format 0xC00000 (so no actual data being written) until at some point the hub does no longer acknowledge the byte and successfully enumerates. If we do not send these later bytes even after few minutes the hub still does not enumerate.

Is this intended behavior? Or is there anything wrong here?

Thanks!

Best Regards

0 Likes
1 Solution
drko001
Level 1
Level 1
First solution authored First reply posted First question asked

Hi,

Thank you, this hint did the trick for me.

I always generated the config file using HX3 Blaster Plus software and pressing "Generate HX3 I2C Slave Mode File". Now I tried with "Save Settings". Both files that are generated are a bin file, but the one with "Save Settings" adds 5 additional 0-bytes at the end. Using this config the hub instantly enumerates after writing the config to it and everything is working.

Thanks!

Best Regards

View solution in original post

0 Likes
4 Replies
YiZ_31
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

Hi,

HX3 should enumerate at the end of the transction. I guess it it because your I2C data for configrue is invalid. Could you upload your bin file and let me check? 

 

Regards,
Eddie

0 Likes
lock attach
Attachments are accessible only for community members.
drko001
Level 1
Level 1
First solution authored First reply posted First question asked

Hi, 

Thanks for your reply, I have attached the configuration we are using. I have verified with a protocol decode software on our oscilloscope that this data is also written exactly like this (with 0xC0 slave address and 0x0000 address before the data to follow general EEPROMM format).

BR

0 Likes
lock attach
Attachments are accessible only for community members.
YiZ_31
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

Hi,

 

I find out that the bin file I generated has few more zero bytes than yours. Could that be the problem?


Regards,
Eddie

0 Likes
drko001
Level 1
Level 1
First solution authored First reply posted First question asked

Hi,

Thank you, this hint did the trick for me.

I always generated the config file using HX3 Blaster Plus software and pressing "Generate HX3 I2C Slave Mode File". Now I tried with "Save Settings". Both files that are generated are a bin file, but the one with "Save Settings" adds 5 additional 0-bytes at the end. Using this config the hub instantly enumerates after writing the config to it and everything is working.

Thanks!

Best Regards

0 Likes