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.
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
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
You must be running Raspbian on your Pi and install the additional
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:
SDAto RasPi pin 3
SCLto RasPi pin 5
GNDto 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!
Copyright (C) 2015-2017, Ingo Korb email@example.com All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- 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.