USB-RTC

From SB-Components Wiki

USB RTC

USB RTC is an open source real time clock device that comprises MCP2221, a USB-to-UART/I2C serial converter, which enables USB connectivity, in the processes that include a USB, UART(Serial), GPIO, and I2C interfaces. It runs on Hi-tech DS3231 RTC chip, an accurate I2C, runs the USB RTC with extremely high efficiency at a low cost. USB RTC for Raspberry Pi has cross platform support which makes it enable to work on different platforms like Windows, MAC, etc.

Features

  • Temperature-compensated crystal oscillator
  • DS3231 advanced processor
  • MCP2221
  • I2C/SMBus supported clock and data lines
  • User-selectable via jumper cable for 3.3V or 5V level output (up to 500 mA)
  • Four GPIO lines that are configurable for GPIO Operations
  • Pins for Serial(UART) Communication
  • Supports full-speed USB (12 Mb/s)
  • 64-byte Transmit
  • 64-byte Receive
  • USB 2.0 Compliant
  • Low-Power Consumption

  • Specifications

  • Accuracy ±2ppm from 0°C to +40°C
  • Accuracy ±3.5ppm from -40°C to +85°C
  • Battery Backup Input for Continuous Timekeeping
  • Operating Temperature Ranges Commercial: 0°C to +70°C Industrial: -40°C to +85°C
  • Low-Power Consumption
  • Real-Time Clock Counts Seconds, Minutes, Hours, Day, Date, Month, and Year with Leap Year Compensation Valid Up to 2100
  • Two Time-of-Day Alarms
  • Programmable Square-Wave Output
  • Fast (400kHz) I2C Interface
  • 3.3V Operation
  • Digital Temp Sensor Output: ±3°C Accuracy
  • Pico 1.14 LCD HAT
    Buy it From : Click Here

    Installation

    Python

    • Install MCP2221 Library by running below command on terminal:
    sudo pip3 install PyMCP2221A
    • Connect USB-RTC on USB Port of Raspberry Pi/Windows.
    • Now clone/download USB-RTC Github Repository by running below command:
    git clone https://github.com/sbcshop/USB-RTC.git
    • Now enter downloaded folder from home/pi or by rnning below command:
    cd USB-RTC
    • Now run test.py file by running below command:
    sudo python3 test.py


    Functions

    • To modify Date & Time, you have to change the last value of each line in hexadecimal form inside def SetTime(address):

    For Example :

    bus.write_byte_data(0x68, 0x00, 0x02) # set seconds and start clock , it will set second value as 02 second after executing SetTime(address) function.
    • To read time, you can call "ReadTime(address)" Function
    • To read the internal temperature of USB-RTC, uncomment below the line by removing from start and end of the line :
    Fahrenheit = 9.0/5.0 * Celsius + 32
       print (Fahrenheit, "*F /", Celsius, "*C")

    Resources

    MCP2221 Datasheet