Jump to content

    

Глюк I2C в linux.

C i2c работаю через i2c-dev драйвер linux (i2c-at91.c). Плата на базе at91rm9200.

Подключал к выводам TWI eeprom(AT24C02) и самодельный девайс.

 

Я пытаюсь записывать в eeprom. Через некоторое время(может несколько секунд проработать а может и полчаса) драйвер возвращает ошибку connection timeout.

При этом линия данных падает в 0.

 

Если после этого twi в процессоре перезагрузть(записать в SWRST 1) и перенастроить, то линия данных восстанавливается и обмен можно продолжать до следующего глюка.

 

Без linux twi работает стабильно.

Никто не встречался с подобным?

Share this post


Link to post
Share on other sites

Сам хочу попробовать поработать с і2с в линуксе но немогу найти понятную доку. Не поделитесь ли примером работи с EEPROM буду очень признателен.

Share this post


Link to post
Share on other sites
C i2c работаю через i2c-dev драйвер linux (i2c-at91.c). Плата на базе at91rm9200.

Подключал к выводам TWI eeprom(AT24C02) и самодельный девайс.

 

Я пытаюсь записывать в eeprom. Через некоторое время(может несколько секунд проработать а может и полчаса) драйвер возвращает ошибку connection timeout.

При этом линия данных падает в 0.

 

Если после этого twi в процессоре перезагрузть(записать в SWRST 1) и перенастроить, то линия данных восстанавливается и обмен можно продолжать до следующего глюка.

 

Без linux twi работает стабильно.

Никто не встречался с подобным?

 

Не знаю как на 9200, а вот на 9260 встречался. Стандартный драйвер вообще отказался что-либо говорить по I2C... написал свой. Нужен был RTC, ETC, Термодатчики... ввсего было 4 устройства... проблем хватило если честно...

Причем были проблемы такого рода что даже приходилось процедуру получения времени писать полностью в друг за другом идущих пачках причем без вызова промежуточных функций... Т.е. не было send_byte/read_byte, а пришлось прямо запихать в такойто регистр то-то, тут же отправить, прочитать ответ и т.д... иначе не получилось...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this