Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: запуск rtc DS1307
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Отладочные платы > Rainbow
COMA
Добрый день,
кто-нибудь запустил DS1307 на плате RainBow?
zuy
Цитата(COMA @ Apr 12 2007, 13:33) *
Добрый день,
кто-нибудь запустил DS1307 на плате RainBow?


У меня не поперло.
Программил от другой платы где DS1307 работает, просто проводки перекинул. Симптомы такие были:
Шью конфигурацию, где на OUT должно выдаваться 32768. Пальчиком по ножкам кварца вожу, вижу на OUT изменения.
Шью конфиг, где на OUT ничего не выдается, вожу пальчиком ничего нет. Похоже конфиг воспринимается и как-то чип на него реагирует.
Но ни с каким конфигом кварц так генерить и не стал. Менял кварц, без успеха.
Решил, что перегрел может чип, жду пока новые приедут.
Odiemus
Цитата(COMA @ Apr 12 2007, 17:33) *
Добрый день,
кто-нибудь запустил DS1307 на плате RainBow?

Смотря под чем запустить wink.gif
Под u-boot часики запустились.
по команде date первый раз ругнулось что "RTC oscillator has stopped" и с этого момента начало тикать (как я понял).
потом я уже выставил в них правильно дату, и сейчас тикают от батарейки, даже если питало с платы снять время не теряют.
вот как они будут под linux'ом работать пока не знаю... но линуксовый драйвер их пока не нашел.
Odiemus
Цитата(COMA @ Apr 12 2007, 17:33) *
Добрый день,
кто-нибудь запустил DS1307 на плате RainBow?

Работает!
в ядре 2.6.21.1 есть даже родная поддержка!
Код
........
at91_rtc at91_rtc: rtc core: registered at91_rtc as rtc0
AT91 Real Time Clock driver.
i2c /dev entries driver
ds1307 0-0068: rtc core: registered ds1307 as rtc1
at91_i2c at91_i2c: AT91 i2c bus driver.
........
ds1307 0-0068: setting the system clock to 2007-05-14 21:53:52 (1179179632)
.........

как видно даже время из часов прочиталось!
COMA
Можно Ваш конфиг? Интересует что включали в поддержке RTC.
PrSt
Цитата(COMA @ May 15 2007, 04:11) *
Можно Ваш конфиг? Интересует что включали в поддержке RTC.

у меня поднялись на моей плате нормально... щяс он тикают
ядро 2.6.19
что б поднялись нада включить I2C и в RTC саму 1307
Главное не ставить галочку - "тестировать часы"
и на ФС сделать
mknod -m 777 /dev/rtc c 254 0
а потом через date зарядить время и
hwclock -w (важно: busybox должен дыть с поддержкой этой команды) и
Odiemus
Цитата(PrSt @ May 15 2007, 17:13) *
у меня поднялись на моей плате нормально... щяс он тикают
ядро 2.6.19
что б поднялись нада включить I2C и в RTC саму 1307
Главное не ставить галочку - "тестировать часы"
и на ФС сделать
mknod -m 777 /dev/rtc c 254 0
а потом через date зарядить время и
hwclock -w (важно: busybox должен дыть с поддержкой этой команды) и

а вот мне пока так и не удалось заставить ядро увидеть ramdisk sad.gif
вот ужо которую ночь бъюсь.. sad.gif

2COMA: конфиг ядра пока здесь
PrSt
Цитата(Odiemus @ May 15 2007, 22:17) *
а вот мне пока так и не удалось заставить ядро увидеть ramdisk sad.gif
вот ужо которую ночь бъюсь.. sad.gif

ознакомся с следующими топиками (в них мы рассматривали момент присеоединения ramdisk ) :
http://electronix.ru/forum/index.php?showtopic=25634
http://electronix.ru/forum/index.php?showtopic=29261

+ к всему в ядре нада включить поддержку initrd обязательно, или при помощи initramfs
Odiemus
Цитата(PrSt @ May 16 2007, 14:17) *
ознакомся с следующими топиками (в них мы рассматривали момент присеоединения ramdisk ) :
http://electronix.ru/forum/index.php?showtopic=25634
http://electronix.ru/forum/index.php?showtopic=29261


это я уже чуть ли не наизусть изучил... вдоль и поперек перечитывал... до дыр в мониторе...

Цитата
+ к всему в ядре нада включить поддержку initrd обязательно, или при помощи initramfs

ессно поддержки всяких initrd и initramfs включены! иначе стал бы я спрашивать в чем засада?
похоже собака порылась в двух местах:
1. параметры mkfs при создании в образе ext2fs. похоже всякие закручивания гаек типа минимума размера секторов и прочей служебной инфы (чтоб высвободить побольше места на самом образе диска) возимели действие и, похоже, это было тоже составляющей невидимости образа диска в памяти.
2. изначально я сделал размер образа диска initrd около 1 метра, похоже что ядру этого было слишком-мало, что ли?... увеличил до 2 Мб вроде как что-то стало работать.

что именно, п.1 или п.2 виноват, я точно сказать не могу, так как после какого-то момента стало выдавать не сообщение о том что не может обнаружить образ рамдиска, а то что:
"RAMDISK: Loading 1024KiB [1 disk] into ram disk..." не прокатывает.
после того как я очутился на этом этапе я выполнил п.2 и у меня образ диска увиделся. теперь всё умирает на невидимости linuxrc и busybox вообще:

Код
......
ds1307 0-0068: setting the system clock to 2007-05-25 03:39:09 (1180064349)
RAMDISK: ext2 filesystem found at block 0
RAMDISK: Loading 2048KiB [1 disk] into ram disk... done.
VFS: Mounted root (ext2 filesystem).
Freeing init memory: 108K
Failed to execute /linuxrc.  Attempting defaults...
Kernel panic - not syncing: No init found.  Try passing init= option to kernel.


хотя я кернелу честно передал все параметры и '/linuxrc' - это как раз и есть значение переданое в переменной 'init':

Код
U-Boot> printenv
......
bootargs=mem=16M initrd=0x20800000,0x500000 root=/dev/ram init=/linuxrc rw
.......
U-Boot>


если смонтировать образ initrd то всё честно лежит на местах:

Код
root@usbr:/usr/src/arm/busybox# mount -o loop ./initrd2.img /mnt/initrd/
root@usbr:/usr/src/arm/busybox# ls -l /mnt/initrd/
total 17
drwxr-xr-x    2 root     root         2048 May 25 03:20 bin
drwxr-xr-x    3 root     root         1024 May 25 03:39 dev
lrwxrwxrwx    1 root     root           11 May 25 03:39 linuxrc -> bin/busybox
drwx------    2 root     root        12288 May 25 03:39 lost+found
drwxr-xr-x    2 root     root         1024 May 25 03:20 sbin
drwxr-xr-x    4 root     root         1024 May 25 03:20 usr
root@usbr:/usr/src/arm/busybox# ls -l /mnt/initrd/bin/busybox
-rwxr-xr-x    1 root     root       581684 May 25 03:20 /mnt/initrd/bin/busybox
root@usbr:/usr/src/arm/busybox# file /mnt/initrd/bin/busybox
/mnt/initrd/bin/busybox: ELF 32-bit LSB executable, ARM, version 1 (ARM), dynamically linked (uses shared libs), stripped
root@usbr:/usr/src/arm/busybox#


да, еще кернел ругался что не может открыть initial console, но я ему помог её открыть уже не ругается...
буду далее разбираться что за фигня о5 происходит... :-/
получается что ramdisk ядро смонтировало, видит, но вот linuxrc или что-то еще выполнить ну никак не может sad.gif
astro
А пробовали повторить инструкцию с heavy? Грузиться с флешки, использовать готовый образ? Ещё пожелание - пишите в соответствующих темах, а то потом без пива не разберёшься.
slava2005
Не могу побороть DS1307. Часы тикают. при загрузке честно синхронизируются:
Код
i2c /dev entries driver
ds1307 0-0068: rtc core: registered ds1307 as rtc0
at91_i2c at91_i2c: AT91 i2c bus driver.
AT91 MMC: 4 wire bus mode not supported by this driver - using 1 wire
TCP cubic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
ds1307 0-0068: setting the system clock to 2007-06-30 14:34:46 (1183214086)


Но при попытке hwclock -w вылетает ошибка:
ds1307 0-0068: write error 7

и соответственно hwclock :
ds1307 0-0068: read error -110

Что то непонятное ...
slava2005
Цитата(slava2005 @ Jun 30 2007, 14:53) *
Но при попытке hwclock -w вылетает ошибка:
ds1307 0-0068: write error 7


Опытным путем установлено, что данная проблема возникает только, если ядро проинициализировало MMC карточку. Если загрузка произошла без карты - то все работает на ура. wacko.gif
PrSt
Цитата(slava2005 @ Jul 1 2007, 16:14) *
Опытным путем установлено, что данная проблема возникает только, если ядро проинициализировало MMC карточку. Если загрузка произошла без карты - то все работает на ура. wacko.gif

от блин - поздно прочитал, сам на это пол часа потратил, 2 месяца назад... причину нашел но не фиксил...
там проблемма связанна с тем что у обоейих девайсов мажоры с номером 254, нужно когото подвигать в нумерации...
slava2005
Цитата(PrSt @ Jul 14 2007, 21:46) *
от блин - поздно прочитал, сам на это пол часа потратил, 2 месяца назад... причину нашел но не фиксил...
там проблемма связанна с тем что у обоейих девайсов мажоры с номером 254, нужно когото подвигать в нумерации...


А намекните плиз, как подвинуть 1307 ? Что-то с ходу не могу найти.
THK
Цитата(slava2005 @ Feb 16 2008, 10:27) *
А намекните плиз, как подвинуть 1307 ? Что-то с ходу не могу найти.

Зачем что-то двигать? DS1307 - символьное устройство, а ММС - блочное. Если я правильно понял работу с устройствами в Linux для них используются разные таблици для вызова экзэмпляра драйвера... Надеюсь я правильно передал свою мысль.

У меня часы работают. Образ ядра и файловая система от slava2005 за что ему (то-есть Вам) большое спасибо! Файловая система располагается на ММС. Запустил часы следующим образом:

hwclock --date 08-02-25 --set Установить дату
hwclock --date 22:02:30 --set Установить время
hwclock –show Посмотреть результат записи в RTC
hwclock --hctosys Установить системное время = RTC
date Посмотреть окончательный результат

Часы идут и при выключеном питании - все ОК. С ММС проблем нет пишется, читается - все тоже ОК.

ЗЫ Просьба ко всем: Если Вы знаете решение проблемы, описаной кем-то, пожалуйсто не ленитесь описать ее решение, даже если проблемма кажется Вам элементарной! Заранее спасибо.
Alexandro
По поводу подключения DS1307. Не подскажите куда подтянуть сигнальные линии на +5 В или на +3.3 В. В доке на AT91RM9200 вроде бы не сказано, что допустимы 5-и вольтовых уровни. Для DS1307 3-х вольтовых уровней вроде как достаточно.
THK
Цитата(Alexandro @ Apr 8 2008, 15:09) *
... Не подскажите куда подтянуть сигнальные линии на +5 В или на +3.3 В...

на +3.3 В

PS Посмотрите схему Rainbow smile.gif
arttab
Напишите как она у Вас заработала. Я немного с ней возился и для меня остались непонятно почему нужно делать паузы после выставления флага чтобы нормально с ней работать. паузы серьезные сотно тактов при кварце 8 МГц.
работал по флагу, а прерывания были от таймера. будет время - еще с ней повожусь.
MTh
Здравствуйте, пытаюсь поднять RTC M41T56 (вроде как аналог DS1307) на SAM9260+Linux 6.22.10. В ядре включил поддержку I2C и DS1307 (кстати в той же строчке стоит M41T00)... при запуске вижу следующее:
Код
atmel_spi atmel_spi.0: Atmel SPI Controller at 0xfffc8000 (irq 12)
mtd_dataflash spi0.1: AT45DB642x (8448 KBytes)
ohci_hcd: 2006 August 04 USB 1.1 'Open' Host Controller (OHCI) Driver
at91_ohci at91_ohci: AT91 OHCI
at91_ohci at91_ohci: new USB bus registered, assigned bus number 1
at91_ohci at91_ohci: irq 20, io mem 0x00500000
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
mice: PS/2 mouse device common for all mice
i2c-core: driver [ds1307] registered
i2c /dev entries driver
i2c-core: driver [dev_driver] registered
i2c-adapter i2c-0: adapter [AT91] registered
i2c-adapter i2c-0: found normal entry for adapter 0, addr 0x68
i2c-adapter i2c-0: master_xfer[0] W, addr=0x68, len=0
i2c-adapter i2c-0: at91_xfer: processing 1 messages:
i2c-adapter i2c-0:  #0: writing 0 byte to 0x68
i2c-adapter i2c-0: transfer complete
i2c-adapter i2c-0: master_xfer[0] W, addr=0x68, len=1
i2c-adapter i2c-0: master_xfer[1] R, addr=0x68, len=8
i2c-adapter i2c-0: at91_xfer: processing 2 messages:
i2c-adapter i2c-0:  #0: writing 1 byte to 0x68
i2c-adapter i2c-0: transfer complete
i2c-adapter i2c-0:  #1: reading 8 bytes from 0x68
i2c-adapter i2c-0: transfer complete
i2c-dev: adapter [AT91] registered as minor 0
at91_i2c at91_i2c: AT91 i2c bus driver.
TCP cubic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
drivers/rtc/hctosys.c: unable to open rtc device (rtc0)

Причем в /dev не создается устройств rtcN... Где я не прав?
dmitry-rf
В ядре 2.6.17 я включал в 2-х местах: в Device drivers -> I2C support и в Device drivers -> Real Time Clock. Причём для последнего пришлось взять драйвер из 2.6.20 и соответствующим образом поправить Kconfig.
И еще, я не уверен, что M41T56 - аналог DS1307. Даже M41T00 - совсем не полный аналог, хотя есть только читать/писать время, то они одинаковы.
svkostik
Здравствуйте! Пытаюсь запустить ds1307 на ядре 2.6.25 на rm9200. На ядре 2.6.20 работает без проблем. В новом ядре - каждый раз при загрузке системы время сбивается. Не могу найти в новом ядре опцию CONFIG_I2C_AT91. Может в этом проблема? Возможно, есть какая-то опция вместо нее.
slava2005
Цитата(svkostik @ May 20 2008, 18:45) *
Здравствуйте! Пытаюсь запустить ds1307 на ядре 2.6.25 на rm9200. На ядре 2.6.20 работает без проблем. В новом ядре - каждый раз при загрузке системы время сбивается. Не могу найти в новом ядре опцию CONFIG_I2C_AT91. Может в этом проблема? Возможно, есть какая-то опция вместо нее.



Челябинские программисты напрямую редактируют .config (я делаю так).

PS Без шуток - выложите Ваш конфиг, тогда сможем помочь.
svkostik
Цитата(slava2005 @ May 24 2008, 18:48) *
Челябинские программисты напрямую редактируют .config (я делаю так).

PS Без шуток - выложите Ваш конфиг, тогда сможем помочь.


Спасибо, проблема решилась. В новом ядре данная опция не используется, при загрузке не заметил каким девайсом инициализируется rtc (rtc1).
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.