Konfigurieren von Linux I2C Geschwindigkeit
Bin ich per I2C auf den Schneeball-board, läuft mit 400KHz standardmäßig und möchte reduzieren diese bis 100KHz.
Benutze ich die api definiert und konfigurieren Sie wie folgt
m_fd = open(m_filename.c_str(), O_RDWR);
if (ioctl(m_fd, I2C_SLAVE_FORCE, m_addr) < 0)
{
throw I2cError(DeviceConfigFail);
}
Weiß jemand, wie ich gehen würde, über eine änderung der Geschwindigkeit auf die standard-Modus.
Dank
Ich glaube nicht, dass Sie können dies tun, aus dem user-Modus. Das Problem ist, dass alle Peripheriegeräte auf der
i2c
bus verwenden Sie die gleiche Uhr. Finden Sie Ihre Maschine Datei (oder Gerät-Tabellen) und ändern Sie die Uhr dort. Hier ist die i2c
user-docs git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/...InformationsquelleAutor user1400716 | 2013-03-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ändern Sie können die I2C-SCL-Frequenz des Treibers 'struct i2c_gpio_platform_data'.
Verändert "udelay" verändert deine 'xyz' i2c-device clock-Frequenz.
InformationsquelleAutor Narain
Sollten Sie die
I2C Frequency
im Treiber-source-Datei des entsprechenden Geräts (ie:Slave device
zu dem Sie kommunizieren über I2C. Beispiel:EEPROM
/Camera
etc.)Finden Sie einige Makros definiert, driver source code... wie:
Ändern:
Nur für die entsprechenden Treiber, I2C-Frequenz/Drehzahl geändert werden.
Es kommt auf den Fahrer. Im linux Treiber /drivers/YourDriver Ordner. Eg: EEPROM Treiber /drivers/EEPROM-Ordner!
InformationsquelleAutor Keshava GN