Forum Discussion
Help: HSMC and I2C
I am having a hell of a time trying to interface a camera through an HSMC - Santa Cruz adapter board (THDB-H2S - http://www.terasic.com.tw/cgi-bin/page/archive.pl?language=english&categoryno=39&no=219)
On a typical HSMC connector, are the I2C pins electrically different than PIO pins? If so this would indicate that my problem has been a failure in sending I2C reliably through PIO pins. If not, could the level shifter on this adapter be causing my problems? The THDB-H2S uses the regular HSMC I2C pins for accessing EEPROM storage on the adapter. Any help with this would be greatly appreciated.17 Replies
- Altera_Forum
Honored Contributor
See a screenshot of the i2c in action below. I am writing on SCL_CAM and SDA_CAM.
As you can see there is a lot of mess. http://img222.imageshack.us/img222/6883/tempar1.png - Altera_Forum
Honored Contributor
I've recently resurrected this project after taking a needed break. Unfortunately my situation is similar.
I've been able to view the clock and data signals using a logic analyzer and their appears to be interference on the lines. For example, the data line will blip low at random intervals. This translates into incorrect bits being received on either end. Could this be a problem with the pull up resistor not being large enough? Anyone had similar problems? Thanks - Altera_Forum
Honored Contributor
--- Quote Start --- SCL could also use a push-pull driver, if no clock stretching is implemented by the slave. (Most likely it is neither used by the slave nor supported by the master). --- Quote End --- I would definitely try using push-pull for the I2C clock. - Altera_Forum
Honored Contributor
With weak pull-up, SDA and SCL rise time may be too slow. You can slow down the I2C master timing in this case or use external strong pull-ups. They should me connected to 3.3V VCC to achieve a higher level without level translation. SCL could also use a push-pull driver, if no clock stretching is implemented by the slave. (Most likely it is neither used by the slave nor supported by the master).
- Altera_Forum
Honored Contributor
Now I'am sure the key is not about the HSMC, I interfaced an I2C component through an HSMC successfully. Did you use pull-up resistance on the SDA and SCL on the board? And you can try to define the SDA and scl pins as "weak pull up resistor " in the assignment edit.
Wish this help - Altera_Forum
Honored Contributor
I am still having problems with this. Anyone?
- Altera_Forum
Honored Contributor
I also got problem when I configing the I2C device through the HSMC connector.