I’m trying to use I2C from GPIO header to connect my sensors directly to Omnia (now they’re connected via usb).
I maganed to expose /dev/i2c-7 to Debian in LXC, i2cdetect shows most of the devices, but communication hangs.
I’m guessing that this may be caused by high I2C frequency (most of them can manage at most 400kHz), but I do not not how to check it, and if it is higher than 400kHz - how to change it.
Another problem is that when it hangs - it breaks also other devices connected via I2C (in this case - leds, maybe some other things).
Is there any way to reset driver?
Do not use I2C pins.
It is not separate I2C bus, so any hang on it will cause some problems on router (from my experience, maybe I did something wrong).
After this experiment I’ve tried software I2C (on ordinary GPIO), but this also does not behave well with my extensive I2C network.
Now I’m still using old atmega connected via usb, but I want to connect I2C network via atmega connected to uart on gpio header.
If You still want to use it: yes, it requires pull-ups, but check if they are already installed on modules You want to connect.
I have no idea about frequency.
Don`t have any.
But now it works quite good. And with new version (uart -> atmega -> i2c) should work as well.
The advantage of uart way is that it can be easily optoisolated.