Raspberry Pi Pico library for the DS1302 Real Time Clock chip
This project is a C library for the Pico platform. It provides a simple interface to the Maxim DS1302 timekeeping chip. It allows Pico projects to keep accurate time.
This library supports:
- Setting and retrieving the time, using the burst mode.
- Enabling and disabling the Write Protect (WP) flag.
- Setting and clearing the Clock Halt (CH) flag.
- Setting and getting the 31 bytes of static RAM, single-byte and multi-byte (burst) modes.
The header file is commented, and the directory includes an example ds1302pico_ex01.c .
Pico DS1302 Device
------------- -------------
VSYS (PIN 39) VCC
GND (PIN 38) GND
GP18 (PIN 24) CLK
GP17 (PIN 22) DAT
GP16 (PIN 21) RST
See the photo for details.
I assume you have the Pico build software installed and configured as described in the official Raspberry Pi Pico documentation. In a terminal window, on a Raspberry Pi or other linux computer:
cd MYHOME/MYDIR
mkdir ds1302pico
cd ds1302pico
Copy the files from github to this folder
ls -l
You should see something like (note that you'll need to get the .cmake file from your Pico installation):
-rw-r--r-- 1 ken ken 438 Oct 27 13:47 CMakeLists.txt
-rw-r--r-- 1 ken ken 6976 Nov 1 08:18 ds1302.c
-rw-r--r-- 1 ken ken 3756 Nov 1 08:21 ds1302.h
-rw-r--r-- 1 ken ken 3537 Nov 1 08:34 ds1302pico_ex01.c
-rw-r--r-- 1 ken ken 2763 Jan 26 2022 pico_sdk_import.cmake
-rw-rw-r-- 1 ken ken 2111 Nov 1 10:35 README.md
Then do:
mkdir build
cd build
cmake ..
make
openocd -f interface/raspberrypi-swd.cfg -f target/rp2040.cfg -c "program ds1302pico_ex01.elf verify reset exit"
in a separate terminal window, do
minicom -b 115200 -o -D /dev/serial0
or
minicom -b 115200 -o -D /dev/ttyACM0
I borrowed concepts and the Pico pinout from a Pico DS1302 Python project.
I borrowed and adapted ideas and code from these two Arduino projects: Rafa Couto Matt Sparks
DS1302 docs maxim integrated DALLAS Semiconductor