Warning: touch() [function.touch]: Unable to create file /home/starterkit/starterkit.ru/html/error.log because Permission denied in /home/starterkit/starterkit.ru/html/errorhandler.php on line 51
Не определяются часы ds3231 - Embedded Linux - Форум - starterkit.ru
Ник:
Пароль:

Контакты

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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:4
Форум » starterkit.ru » Embedded Linux
Не определяются часы ds3231
enji
Добавлено 05.07.2010 15:38 Редактировалось 05.07.2010 15:42
0
Сообщение: 1
enji
0

Регистрация: 09.03.2010
Ядро 2.6.32.9, плата SK-AT91SAM9260

Включил I2C, I2C чере GPIO
grep I2C < .config
CONFIG_I2C=y
CONFIG_I2C_BOARDINFO=y
CONFIG_I2C_COMPAT=y
CONFIG_I2C_CHARDEV=y
CONFIG_I2C_HELPER_AUTO=y
CONFIG_I2C_ALGOBIT=y
CONFIG_I2C_GPIO=y

Включил драйвер ds1307
grep RTC < .config
CONFIG_RTC_LIB=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_HCTOSYS=y
CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
CONFIG_RTC_INTF_SYSFS=y
CONFIG_RTC_INTF_PROC=y
CONFIG_RTC_INTF_DEV=y
CONFIG_RTC_DRV_DS1307=y

В board-sam9260ek.c прописал
static struct i2c_board_info __initdata ek_i2c_devices[] = {
{ I2C_BOARD_INFO("rtc-ds1307", 0x68) },
};

При загрузке вижу:

i2c /dev entries driver
i2c-gpio i2c-gpio: using pins 55 (SDA) and 56 (SCL)
...
drivers/rtc/hctosys.c: unable to open rtc device (rtc0)


Попробовал вставить отладочный вывод в ds1307_probe; при загрузке я его не увидел. Т.е. по ходу эта функция вообще почему-то не дергается...

Осциллограф на SDA\SCL никаких движений при загрузке не видит
Спуститься к концу Подняться к началу
Персональная информация
Strijar
Добавлено 05.07.2010 20:19 Сообщение: 2
Strijar
Ранг
5

Группа: Клиенты
Пункты: 1618
Регистрация: 21.04.2009
Пол: Мужчина
Попробуйте не прописывать в board-sam9260ek.c и пошевелить его через i2ctools
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 05.07.2010 21:44 Редактировалось 05.07.2010 22:43 Сообщение: 3
sasamy
4.70

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

В board-sam9260ek.c прописал
static struct i2c_board_info __initdata ek_i2c_devices[] = {
{ I2C_BOARD_INFO("rtc-ds1307", 0x68) },
};



Попробуйте так:
Код

static struct i2c_board_info __initdata ek_i2c_devices[] = {
{
I2C_BOARD_INFO("rtc-ds1307", 0x68),
.type = "ds3231",
},
};


И проверьте что устройства регистрируются - в конце файла приутствует
Код

static void __init ek_board_init(void)
{
....................
/* I2C */
at91_add_device_i2c(ek_i2c_devices, ARRAY_SIZE(ek_i2c_devices));
.....................


Если все равно все глухо - включите отладочную информацию для i2c в ядре:
Цитата

[ ] I2C Core debugging messages
[ ] I2C Algorithm debugging messages
[ ] I2C Bus debugging messages
[ ] I2C Chip debugging messages
Спуститься к концу Подняться к началу
Персональная информация
enji
Добавлено 06.07.2010 08:11 Сообщение: 4
enji
0

Регистрация: 09.03.2010
[quote]

Попробуйте так:
Код

static struct i2c_board_info __initdata ek_i2c_devices[] = {
{
I2C_BOARD_INFO("rtc-ds1307", 0x68),
.type = "ds3231",
},
};

[/quote]

Код

#define I2C_BOARD_INFO(dev_type, dev_addr) .type = dev_type, .addr = (dev_addr)


Цитата

И проверьте что устройства регистрируются - в конце файла приутствует

Да, вызов at91_add_device_i2c есть
Спуститься к концу Подняться к началу
Персональная информация
enji
Добавлено 06.07.2010 08:16 Сообщение: 5
enji
0

Регистрация: 09.03.2010
Включил отладочную инфу:
# dmesg | grep i2c
i2c-core: driver [dummy] registered
add i2c
i2c-core: driver [rtc-ds1307] registered
i2c /dev entries driver
i2c-core: driver [dev_driver] registered
i2c i2c-0: adapter [i2c-gpio-1] registered
i2c 0-0068: uevent
i2c i2c-0: client [rtc-ds1307] registered with bus id 0-0068
i2c-dev: adapter [i2c-gpio-1] registered as minor 0
i2c-gpio i2c-gpio: using pins 55 (SDA) and 56 (SCL)
Спуститься к концу Подняться к началу
Персональная информация
enji
Добавлено 06.07.2010 08:37 Редактировалось 06.07.2010 08:47 Сообщение: 6
enji
0

Регистрация: 09.03.2010
Пошло дело!

Надо было указать имя ds3231:
{ I2C_BOARD_INFO("ds3231", 0x68) }


Спасибо всем!
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux