Часовник за реално време (RTC) за
RASPBERRY PI

Една много полезна хардуерна част липсва на Raspbery PI и това е часовник за реално време.

Ако искате да използвате Raspberry PI в условия, в които то няма връзка с интернет, а е нужно да се знаете точното време тогава Ви е нужен часовник за реално време.

Един много евтин и лесен начин за добавяне на такъв е използването на DS1320. Освен този чип са нужни само още 2 елемента - батерия, и 32.768kHz кварцов резонатор. Общата сума нужна за направата на такъв часовник не повече от 5лв.

Схемата на часовника е:

Подкарва се по следният начин:

1. Променя се файла "arch/arm/mach-bcm2708/bcm2708.c" от сорсовете на кърнела, така че той да съдържа следния код:

static struct platform_device bcm2708_bsc1_device = {
 .name = "bcm2708_i2c",
 .id = 1,
 .num_resources = ARRAY_SIZE(bcm2708_bsc1_resources),
 .resource = bcm2708_bsc1_resources,
};

static struct i2c_board_info __initdata pi_i2c_devs[] = {
 {
  I2C_BOARD_INFO("ds1307", 0x68),
 },
};


......

bcm_register_device(&bcm2835_thermal_device);
i2c_register_board_info(1, pi_i2c_devs,ARRAY_SIZE(pi_i2c_devs));

2. Избира се модула
ARCH=arm CROSS_COMPILE=${CCPREFIX} make menuconfig

3. Кърнела се компилира по подобие на инструкциите описани тук

4. В директорията /etc/udev/rules.d се създава файл 10-local.rules (ако го няма) и в него се добавя ред със съдържание

SUBSYSTEM=="rtc", ATTRS{name}=="ds1307", SYMLINK+="rtc", OPTIONS+="last_rule"

5. Зарежда се модула i2c шината
modprobe i2c-bcm2708

6. Зарежда се модула за DS1307
modprobe rtc-ds1307

7. Ако всичко е наред се появяват устройствата /dev/rtc и /dev/rtc2

# ls -la /dev/rtc*
lrwxrwxrwx 1 root root 4 Jan 1 1970 /dev/rtc -> rtc2
crw------- 1 root root 254, 0 Jan 1 1970 /dev/rtc0
crw------- 1 root root 254, 1 Jan 1 1970 /dev/rtc1
crw------- 1 root root 254, 2 Jan 1 1970 /dev/rtc2

8. Във файла /etc/default/hwclock се променя частта:

HCTOSYS_DEVICE=rtc2

9. Проверява се дали всичко работи

# /etc/init.d/hwclock.sh restart
[info] Saving the system clock.
[info] Hardware Clock updated to Wed May 8 17:14:45 EEST 2013.

# hwclock -r
Wed 08 May 2013 05:14:57 PM EEST -0.438363 seconds

Коментари:

Нов коментар

Вашето име: