Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:2
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:6
Форум » starterkit.ru » Embedded Linux
iMX6D-SODIMM. Debian. Внешние часы DS3231SN
Jury093
Добавлено 12.05.2017 21:05 Сообщение: 11
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Прошу помочь настроить систему на работу с часами DS3231SN, подключенными через i2C2.

мнэ.. сначала разберитесь с самой шиной i2c-2
те ли контакты, что вы ожидаете, стоят ли пуллапы на шине?
если ли еще чипы на этой шине?
когда отработает правильно i2cdetect и покажет адрес часов, тогда можно навешивать драйвер..
проверяйте в настройках ядра пункты для i2c
аналогично в dts, всё что касается пинов и регистров нужного канала i2c
для тестов используйте заведомо рабочий канал i2c..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
qqqqq2
Добавлено 27.05.2017 20:54 Редактировалось 27.05.2017 21:30 Сообщение: 12
qqqqq2
0

Пункты: 5507
Регистрация: 29.04.2016
Из: Санкт-Петербург
Код
root@armets:~# i2cdetect -l
i2c-1 i2c 21a4000.i2c I2C adapter
root@armets:~# i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- UU -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root@armets:~# i2cdetect -y 2
Error: Could not open file `/dev/i2c-2' or `/dev/i2c/2': No such file or directory
root@armets:~# i2cdetect -F 1
Functionalities implemented by /dev/i2c-1:
I2C yes
SMBus Quick Command yes
SMBus Send Byte yes
SMBus Receive Byte yes
SMBus Write Byte yes
SMBus Read Byte yes
SMBus Write Word yes
SMBus Read Word yes
SMBus Process Call yes
SMBus Block Write yes
SMBus Block Read no
SMBus Block Process Call no
SMBus PEC yes
I2C Block Write yes
I2C Block Read yes


Почему i2c-1?

в dtsi же i2c2
http://www.starterkit.ru/html/index.php?name=forum&op=view&id=28071&num=1#28083

и

Код
i2c2 {
pinctrl_i2c2_sodimm: i2c2-sodimm {
fsl,pins = <
MX6QDL_PAD_EIM_EB2__I2C2_SCL 0x4001b8b1
MX6QDL_PAD_EIM_D16__I2C2_SDA 0x4001b8b1
>;
};
};

i2c3 {
pinctrl_i2c3_sodimm: i2c3-sodimm {
fsl,pins = <
MX6QDL_PAD_EIM_D17__I2C3_SCL 0x4001b8b1
MX6QDL_PAD_EIM_D18__I2C3_SDA 0x4001b8b1
>;
};
};




Загрузка
http://pastebin.ru/aXffHQu9


____
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 28.05.2017 01:28 Сообщение: 13
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Почему i2c-1?

а что дает команда:
Код
dmesg |grep i2c

?
если шины не поднимаются, то будут видны ошибки
если даже не пытаются, то вероятно у вас ошибки в dts
я с dts для imx не разбирался и толком подсказать не могу - порекомендую повнимательнее просмотреть все dts для вашей конфигурации и сделать для -2 -3 как для -1..
судя по вашему выводу i2cdetect, на шине прописано (не факт что существуют) - звуковой чип на 0x1a и видимо eeprom 0x50 (что характерно для работы с интерфейсом hdmi)

вот так выглядит рабочая шина для imx6s (Hola)
Код
root@holapc:~# i2cdetect -y 0
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- UU -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: UU -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

если выгрузить драйверы устройств, то детект покажет чипы на адресах 0x1a (aic23) и 0x68 (ds1340/ds1307)

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
qqqqq2
Добавлено 28.05.2017 09:20 Сообщение: 14
qqqqq2
0

Пункты: 5507
Регистрация: 29.04.2016
Из: Санкт-Петербург
Цитата

а что дает команда:
dmesg |grep i2c

http://pastebin.ru/qVvJMJsY
есть ошибки, но для rtc вроде всё нормально?

Цитата

сделать для -2 -3 как для -1..

Я не понимаю - у меня то сейчас как сделано?
-1? или -2?
http://www.starterkit.ru/html/index.php?name=forum&op=view&id=28071&last#28152
Где сделать -2 и -3?


Цитата

судя по вашему выводу i2cdetect, на шине прописано (не факт что существуют) - звуковой чип на 0x1a и видимо eeprom 0x50 (что характерно для работы с интерфейсом hdmi)

да, см. http://www.starterkit.ru/html/index.php?name=forum&op=view&id=28071&num=1#28083
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 28.05.2017 10:01 Сообщение: 15
sasamy
4.70

Пункты: 77045
Регистрация: 14.08.2009
Цитата

Я не понимаю - у меня то сейчас как сделано?


никак - у вас вообще не детектируется устройство на шине i2c и код тут нипричем - куда вы подключили RTC ? питание у него включено ?
Спуститься к концу Подняться к началу
Персональная информация
qqqqq2
Добавлено 28.05.2017 10:51 Редактировалось 28.05.2017 10:51 Сообщение: 16
qqqqq2
0

Пункты: 5507
Регистрация: 29.04.2016
Из: Санкт-Петербург
Цитата

никак - у вас вообще не детектируется устройство на шине i2c и код тут нипричем - куда вы подключили RTC ? питание у него включено ?

ноги 46 и 48 (i2c2_SDA, i2c2_SCL)
питание - батарейка 3V
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 28.05.2017 13:19 Редактировалось 28.05.2017 13:21 Сообщение: 17
sasamy
4.70

Пункты: 77045
Регистрация: 14.08.2009
Цитата

ноги 46 и 48 (i2c2_SDA, i2c2_SCL)


Это ноги i2c3 - EIM_D17, EIM_D18. Соответственно в DTS надо включить интерфейс i2c3 и туда прописать RTC

&i2c3 {
clock-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c3_sodimm>;
status = "okay";

rtc@68 {
compatible = "dallas,ds3231";
reg = <0x68>;
};
};

в юзерспейсе это будет 2 интерфейс - там нумерация с 0 начинается. О том что названия цепей и реальные интерфейсы на OEM/SODIMM могут не совпадать говорили много раз.
Спуститься к концу Подняться к началу
Персональная информация
qqqqq2
Добавлено 28.05.2017 15:35 Редактировалось 28.05.2017 15:37 Сообщение: 18
qqqqq2
0

Пункты: 5507
Регистрация: 29.04.2016
Из: Санкт-Петербург
Цитата


Это ноги i2c3 - EIM_D17, EIM_D18. Соответственно в DTS надо включить интерфейс i2c3 и туда прописать RTC

&i2c3 {...
};

в юзерспейсе это будет 2 интерфейс - там нумерация с 0 начинается. О том что названия цепей и реальные интерфейсы на OEM/SODIMM могут не совпадать говорили много раз.


Спасибо, заработало!
В очередной раз всё просто... после того, как Вы объяснили.
Потестирую сегодня в течении дня/ночи.
Надеюсь, батарейка не разрядится.

Завтра еще надо будет посмотреть как с NTP будет взаимодействие.
Или сейчас можете сказать - от чего будет время синхронизировано - от часов или по сети?
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux