Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

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

User Info


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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:8
Форум » starterkit.ru » Embedded Linux
Часы FM3130
Vladmir
Добавлено 05.05.2011 10:28
0
Сообщение: 1
Vladmir
0

Пункты: 2090
Регистрация: 12.05.2010
Пол: Мужчина
При компиляции ядра установил в
конфиге следующие:
Set system time from RTC on startup and resume
(RTC_HCTOSYS)
Интерфейс часов
RTC interfaces
/sys/class/rtc/rtcN (sysfs) (RTC_INTF_SYSFS)
/proc/driver/rtc (procfs for rtc0) (RTC_INTF_PROC)
/dev/rtcN (character devices) (RTC_INTF_DEV)
RTC UIE emulation on dev interface
(RTC_INTF_DEV_UIE_EMUL)
и драйвер устройства I2C
Ramtron FM3130 (RTC_DRV_FM3130)

Но устройств /sys/class/rtc/rtcN, /dev/rtcN в файловой
системе не обнаружил.

Как мне думается в исходниках ядра, а именно в файле
/linux-2.6.36/arch/arm/mach-at91/board-sam9263ek.c

в месте, где инициализируются структуры устройств I2C
/*
* I2C devices
*/
static struct at24_platform_data at24c512 = {
.byte_len = SZ_512K / 8,
.page_size = 128,
.flags = AT24_FLAG_ADDR16,
};


static struct i2c_board_info __initdata ek_i2c_devices[] =
{
{
I2C_BOARD_INFO("24c512", 0x50),
.platform_data = &at24c512,
},
/* more devices can be added using expansion connectors */
};

вместо at24c512 (у нас этой микросхемы нет) надо прописать
структуру для rtc FM3130 и для памяти FM3130, но что там
надо писать не знаю и где почитать по этому поводу, так же
не нашел.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 05.05.2011 10:50 Редактировалось 05.05.2011 10:52 Сообщение: 2
sasamy
4.71

Пункты: 83542
Регистрация: 14.08.2009
Скорей всего достаточно дописать в структуру
static struct i2c_board_info __initdata ek_i2c_devices[] =
еще одно устройство
{
I2C_BOARD_INFO("fm3130", 0x68),
},

или записать вместо этой, если у вас нет такой памяти (и убрать структуру static struct at24_platform_data at24c512 )
{
I2C_BOARD_INFO("24c512", 0x50),
.platform_data = &at24c512,
},
Спуститься к концу Подняться к началу
Персональная информация
Vladmir
Добавлено 05.05.2011 11:14 Сообщение: 3
Vladmir
0

Пункты: 2090
Регистрация: 12.05.2010
Пол: Мужчина
При загрузке и в файловой системе часы обозначились
rtc-fm3130 0-0068: Low battery!
rtc-fm3130 0-0068: rtc core: registered fm3130 as rtc0
но я не понял почему адрес слейва 0х68
в даташите пишут: To access this device, bits 7-4
of the slave address should be set to 1101b
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 05.05.2011 11:43 Сообщение: 4
sasamy
4.71

Пункты: 83542
Регистрация: 14.08.2009
Честно говоря не вникал в подробности - просто нашел в ядре пример от другой платы, там был именно этот адрес.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 05.05.2011 22:21 Сообщение: 5
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
rtc-fm3130 0-0068: rtc core: registered fm3130 as rtc0
но я не понял почему адрес слейва 0х68
в даташите пишут: To access this device, bits 7-4
of the slave address should be set to 1101b


вы наверно даташит не дочитали или он у вас неправильный..

title

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Vladmir
Добавлено 06.05.2011 12:29 Сообщение: 6
Vladmir
0

Пункты: 2090
Регистрация: 12.05.2010
Пол: Мужчина
Даташит до конца не читал, это верно. Я же не драйвер пишу. Он уже есть. На картинке я вижу 0xd0. Почему при инициализации это число надо сдвинуть на 1 вправо тогда и будет 0x68. В даташите ни про какие сдвиги не вижу.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 06.05.2011 15:37 Сообщение: 7
sasamy
4.71

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

это число надо сдвинуть на 1 вправо тогда и будет 0x68. В даташите ни про какие сдвиги не вижу.


Ну если учесть что младший бит - это флаг чтение/запись а не часть адреса то адрес как раз получается 0х68.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux