Adafruit: RTC DS1307

From eLinux.org
Revision as of 02:52, 11 December 2013 by Alvareap (Talk | contribs) (Created page with "Category:ECE497 Category:Adafruit //16x24 LED Matrix Display == Overview == Adafruit's [http://www.adafruit.com/products/264 DS1...")

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


//16x24 LED Matrix Display

Overview

Adafruit's DS1307 Real-Time Clock Breakout Kit uses a Maxim Integrated DS1307. The DS1307 can be used to store a the date and time. It may lose or gain 2 seconds a day.


Inputs and Outputs

The RTC must be powered from the BeagleBone's 5V supply (note it must be powered from the DC adapter, or else I2C bus will hang, as there is not enough current provided by the usb bus to power the RTC). The RTC uses an I2C interface to communicate with the BBB.

Bone Usage

On boot BBB is connected power from the DC power adapter, therefore it loads the correct /dev/rtc modules.

P9 Connector Pinout
Pinout for the P9 header on the BeagleBone

Pin mappings:

P9 pin # (BeagleBone pin) -> Panel pin (wire color)

1 (GND) -> GND

5 (VDD_5V) -> VCC 5 (VDD_5V) -> SQW (through 10k pullup resistor)

19 (I2C2_SCL) -> SCL

20 (I2C2_SCL) -> SDA


Clock_init.sh

This code was adapted from adafruit's sample code, and can be found at Alex Alvarez's github repository].


#!/bin/bash
a=$(date +%Y)

if [[ $a < 2013 ]]; then
	
	echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
	echo "Retrieving time from rtc"
	hwclock -s -f /dev/rtc1
	hwclock -w

	echo "Date has been read from RTC, and copied to system clock"
else
   # Assumes if date is correct on reboot, that you are connected to network
   echo "Fetching time from ntp server"
   $(/usr/bin/ntpdate -b -s u pool.ntp.org)  

   if [ -e /dev/rtc1 ]; then
     echo "Writing system clock to RTC"
     hwclock -w -f /dev/rtc1
   else
    echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
     echo "Writing system clock to RTC"
     hwclock -w -f /dev/rtc1
   fi
fi

# Sets time zone to Eastern (GMT -5)
$( ln -sf /usr/share/zoneinfo/America/New_York /etc/localtime )
echo "The new date is:" $(date)