реклама на сайте
подробности

 
 
> Работа с i2c устройствами в Linux, Python
wolfman
сообщение Nov 19 2015, 14:27
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 529
Регистрация: 15-06-05
Из: Питер
Пользователь №: 6 032



Здравствуйте.
Необходимо отладить I2c-шные корки в ПЛИС, т.к. ничего кроме Raspbery PI 2 нет, решил использовать её как мастер, наваял простенький код на Питоне.

На этапе отладки тестового софта использую eeprom и SFP модули.

Все бы хорошо, но есть проблемы: не читает данные из eeprom(типа AT24C256), точнее читает, но только один и тот же байт данных.
При этом из всевозможных SFP модулей данные читаются нормально.
В eeprom, если я правильно понимаю, используется страничный доступ, как его задействовать?
Если можно на пальцах, т.к. я ни разу не программист.

Код
#!/usr/bin/python
import smbus
import time

DevAddr = 0x55

bus = smbus.SMBus(1)

print "I2C: Read from Device 0x%02X" % DevAddr
for DevRegAddr in range (255):
    try:
        ret = bus.read_byte_data(DevAddr, DevRegAddr)
    except IOError, err:
        print "error reading device 0x%02X" % DevAddr
        exit(-1)
    print "%X" % ret


--------------------
Россия это даже не страна.
Россия это секрет, завернутый в загадку и укрытый не проницаемой тайной...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
wolfman
сообщение Nov 19 2015, 16:09
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 529
Регистрация: 15-06-05
Из: Питер
Пользователь №: 6 032



Делал так, толку ноль. И мне нужно читать фактически массивом.


--------------------
Россия это даже не страна.
Россия это секрет, завернутый в загадку и укрытый не проницаемой тайной...
Go to the top of the page
 
+Quote Post
Ruslan1
сообщение Nov 19 2015, 16:28
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025



Цитата(wolfman @ Nov 19 2015, 18:09) *
Делал так, толку ноль. И мне нужно читать фактически массивом.

Если Вы реализовали именно ту картинку, которая в документации, а "толку ноль" -то что-то нужно менять.
Кстати, а как Вы определили что "делали так"? давайте картинку с логического анализатора, они обычно автоматом дешифрируют байтики, очень удобно смотреть. Ну или хоть осциллографом возьмите и перерисуйте ручками, там всего-ничего длина посылки.
Чудес не бывает- если диаграмма именно та, но не работает, то или микросхема плохая или адрес не тот или все-таки нужно звать программиста.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 07:23
Рейтинг@Mail.ru


Страница сгенерированна за 0.01378 секунд с 7
ELECTRONIX ©2004-2016