Skip to content
Programming tool for a CDCE925 PLL
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
README.md
cdceprog.py

README.md

cdceprog

This is a very quick hack for programming a TI CDCE913/925 PLL chip with settings generated by TI's ClockPro software on a Linux system.

Usage

cdceprog.py settings.hex

The settings.hex file must be generated using the File->Save Intel Hex File menu entry of ClockPro. The script assumes that the PLL is connected to I2C bus 1 and uses its default address. An attempt to change the I2C address of the PLL will be overriden by the script because that was easier to implement. After programming, the settings are committed to the chip's EEPROM.

You do not need to specify if the file is meant for a CDCE913 or 925, the script will automatically determine this based on the size of the data found in the .hex file.

Raspberry Pi notes

This script was written to program a Dual Frequency Oscillator connected to a Raspberry Pi. It assumes that you do not have one of the extremely ancient Raspberry Pi boards that had I2C bus 0 on the GPIO header - if you do, change the line bus = smbus.SMBus(1) to bus = smbus.SMBus(0) in cdceprog.py.

You must be running Raspbian on your Pi and install the additional package python-smbus for the script to work. Since accessing the I2C bus directly usually requires root privileges, you will likely want to run the script with sudo, e.g. sudo ./cdceprog.py settings.hex.

To connect the DFO to the Raspberry Pi, check the nice overview of the GPIO connector here. The programming pins on the side of the DFO must be connected as follows:

  • DFO SDA to RasPi pin 3
  • DFO SCL to RasPi pin 5
  • DFO GND to RasPi pin 6

Additionally, you need to decide how to power the DFO board while it is being programmed. If the board has already been installed in the target system, just turn on the target system.

If the DFO has not been installed in the target system yet, you can power it from the Raspberry Pi. To do this, you must first determine if your DFO is a 5V or 3.3V version. If it is a 5V version, connect the DFO pin +5V to pin 2 of the Raspberry Pi pin 2. If your DFO is a 3.3V version, connect the pin marked 3.3V to Raspberry Pi pin 1 instead. In either case, DO NOT make this connection if the DFO is powered from a target system!

License

2-clause BSD:

Copyright (C) 2015-2017, Ingo Korb ingo@akana.de All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

You can’t perform that action at this time.