Ник:
Пароль:

Контакты

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

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

User Info


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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:6
Форум » starterkit.ru » Отладочные платы » SK-AT91SAM9G45(M10)-XC6SLX
Внешний RTC
alexvm
Добавлено 22.11.2011 16:57
0
Сообщение: 1
alexvm
0

Пункты: 2274
Регистрация: 22.05.2009
Добрый день.

Необходимо подключить по I2C внешний RTC. Подскажите, пожалуйста, как в /arch/arm/mach-at91/at91sam9g45_devices.c сконфигурировать необходимые пины?

Алексей.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 22.11.2011 22:32 Сообщение: 2
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Необходимо подключить по I2C внешний RTC. Подскажите, пожалуйста, как в /arch/arm/mach-at91/at91sam9g45_devices.c сконфигурировать необходимые пины?

если у вас выход шины i2c сделан согласно даташиту, то ничего в указанном файле трогать не надо, необходимо проверить правильность пинов..
достаточно в файле борды прописать необходимые структуры для шины и устройства(часов) на ней и сделать вызов из файла инита борды.. все тривиально и можно подглядеть в соседних файлах..
и не забыть в ядре включить опции - поддержки шины и часов..
как прописать устройство для i2c тут писалось неоднократно..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
alexvm
Добавлено 23.11.2011 10:32 Сообщение: 3
alexvm
0

Пункты: 2274
Регистрация: 22.05.2009
Спасибо за помощь, всё работает. Подключал часы DS32B35, использовал драйвер DS3232. Единственно напрягает то, что без опции I2C_GPIO не работает, то есть сейчас используется программная эмуляция I2C вместо того, чтобы задействовать имеющееся железо в AT91SAM9G.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 23.11.2011 11:46 Сообщение: 4
sasamy
4.71

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

сейчас используется программная эмуляция I2C вместо того, чтобы задействовать имеющееся железо в AT91SAM9G.


Это специфика атмеловского железа - в некоторых случаях его проще не использовать и делать програмно.
http://electronix.ru/redirect.php?http://lxr.free-electrons.com/source/drivers/i2c/busses/Kconfig#L287
Спуститься к концу Подняться к началу
Персональная информация
alexvm
Добавлено 23.11.2011 12:08 Редактировалось 23.11.2011 12:12 Сообщение: 5
alexvm
0

Пункты: 2274
Регистрация: 22.05.2009
Насколько я понял, эта проблема тянется с 9260, странно, что Atmel её не пофиксил... В еррате на AT91SAM9G45 о проблеме с i2c/twi, кстати, ни слова... Получается, не "проще не использовать", а это железо вообще не работает с I2C_GPIO = no.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 23.11.2011 12:13 Сообщение: 6
sasamy
4.71

Пункты: 83540
Регистрация: 14.08.2009
Многие считают что это и не проблема вовсе :)
http://electronix.ru/forum/index.php?showtopic=95900&view=findpost&p=991073
хотя есть и здравомыслящие
http://electronix.ru/forum/index.php?showtopic=95900&view=findpost&p=991151
и далее по треду.
Спуститься к концу Подняться к началу
Персональная информация
alexvm
Добавлено 23.11.2011 12:30 Сообщение: 7
alexvm
0

Пункты: 2274
Регистрация: 22.05.2009
Цитата
Многие считают что это и не проблема вовсе :)
http://electronix.ru/forum/index.php?showtopic=95900&view=findpost&p=991073
хотя есть и здравомыслящие
http://electronix.ru/forum/index.php?showtopic=95900&view=findpost&p=991151
и далее по треду.


За ссылки спасибо!

Сами же пишете :)

Цитата
Проблема там - у TWI нет FIFO и он почти у всей линейки не подключен к PDC (только начиная с at91sam9g.. они догадались сделать это), любая незначительная задержка записи в регистр для передачи - контроллер автоматом отпраляет STOP и завершает ее.


то есть на AT91SAM9G45 всё должно быть ок :). Кроме того, у народа проблемы с конкретными чипами - SAA7113 и AD9887.

Попробую достучаться до RTC с использованием TWI железа - программная эмуляция такой медленной шины, как i2c, съест достаточно много временных ресурсов, а в данной разработке мне важно время реакции системы на внешние прерывания.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 23.11.2011 13:08 Сообщение: 8
sasamy
4.71

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

то есть на AT91SAM9G45 всё должно быть ок :).


Надо смотреть - я почему-то думаю что для контроллеров с PDC на TWI никто ничего в ядре не переписывал - програмной эмуляции более чем достаточно, к тому же атмеловцы "улучшили" в своем стиле :)
http://electronix.ru/forum/index.php?showtopic=95900&view=findpost&p=991175
Спуститься к концу Подняться к началу
Персональная информация
alexvm
Добавлено 23.11.2011 17:44 Сообщение: 9
alexvm
0

Пункты: 2274
Регистрация: 22.05.2009
Возник ещё вопрос - хочу выход RTC 1PPS завести на прерывание AT91. Как этот момент описать в файле борды?
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 27.11.2011 15:04 Сообщение: 10
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Возник ещё вопрос - хочу выход RTC 1PPS завести на прерывание AT91. Как этот момент описать в файле борды?

все зависит от того, кто будет заниматься этим прерыванием..

если драйвер часов, то надо оформить в теле драйвера необходимые подпрограммы инита и обработчика прерывания. номер пина можно передавать через структуру часов в файле борды - поищите в соседних файлах, уверен, что уже кто-то эту задачу решал и решил (не обязательно для ваших rtc)

вариант попроще - проводок от часов завести на любой пин АРМа и описать подключение, например, как кнопку в классе event.. ну и дальше навешивать демона на обработку события..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Отладочные платы » SK-AT91SAM9G45(M10)-XC6SLX