Hi all,
I would like to know if there is any (open) software implementation of a PMBus driver that allows me to read the IOUT and POUT measurements from the UCD9240 controller. I use Xilinx ML605 board and I need to measure the power consumption of the design. My system setup is composed of a Microblaze processor connected to an I2C controller and the Virtex-6 System Monitor. I am able to obtain the power measurements using the System Monitor but I would like to obtain the same measurements using the UCD9240 since its ADC has a higher accuracy.
Thanks in advance.
Best Regards,
Mohamed
Mohamed,
TI provides the Fusion Digital Power Designer software package, which includes several tools that are capable of communicating with the UCD92xx series of controllers from a Windows based host computer. It requires the use of a USB Interface Adapter EVM (http://focus.ti.com/docs/toolsw/folders/print/usb-to-gpio.html) to connect between the SMBus (I2C) interface of the UCD92xx controller and the USB port on the computer. The software is designed to interface to the controller only through this device. There should have been a coupon or some other documentation along with the ML605 evaluation board which allows you to purchase this EVM at a discount.
If you have another means of communicating over the SMBus(I2C) interface and it can be programmed to write the properly formatted commands then this will work. You can reference the UCD92xx PMBus Command Reference (http://focus.ti.com/general/docs/lit/getliterature.tsp?literatureNumber=sluu337&fileType=pdf) and the PMBus Specifications at http://pmbus.org/specs.html for the command codes and data formating.
Hi Brad,
Thanks a lot for your reply.
I already have the USB EVM adapter and I have used it together with the Fusion Digital Power program. I was able to monitor all the needed parameters through the software. However, in my case, this monitoring has to be done "on-chip" (i.e. within the FPGA). Last week, I was able to find a "freeware" implementation of PMBus from TI. The implementation is for a TI MSP430 USCI chip interfaced to a UCD91xx chip (http://focus.ti.com/general/docs/litabsmultiplefilelist.tsp?literatureNumber=slaa386a). I modified the implementation to adapt it to Microblaze and UCD9240. Now, I have it working fine on the FPGA.
Hi Mohamed,
Are you willing to share the Microblaze implementation as a open source?
Regards,
Ali
Hi Ali,
In theory, yes. However, I need to clean up the code and make a nice and clean example on how to use it. Do you need it urgently?
I was hoping to implement this in the coming week. Some questions...
Are you running Microblaze with the I2C core to implement the PMBus solution?
Secondly are you running Linux or just standalone c code on Microblaze?
I will greatly appreciate if you can share the code initially and then when it's clean.
I am working on a PMBus hardware monitoring driver for Linux, to be submitted into the Linux kernel. Let me know if that would help you, and I'll send you a pointer to a working copy.
Guenter
Dear Guenter,
Thanks a lot for the offer. I would be grateful if you can send a pointer to your PMBus implementation. On the other hand, I made a Xilinx Virtex-6 project which contains a functional PMBus read mechanism. The project is located on: https://github.com/mohamed/microblaze-pmbus
the latest version of the driver is at http://www.roeck-us.net/linux/drivers/pmbus/.
Hope it helps. I am still adding specific support for the ucd devices, but the basic PMbus driver should work.