Last week I saw an announcement that PYNQ v2.6 is available for the Ultra96v1 and Ultra96v2 https://discuss.pynq.io/t/pynq-v2-6-is-avialable-for-ultra96-v1-and-v2/1951 .
PYNQ v2.6 is compatible with Xilinx tools version 2020.1. DPU-PYNQ for v2.6 isn't available yet but because a pre-built image for the Ultra96v2 is available for PYNQ v2.6, I thought that I'd see what has changed from v2.5.
The first thing that I noticed is that there are 3 new notebooks in the Common directory
- display_port_introduction.ipynb
- programming_pybind11.ipynb
- ultra96_pmbus.ipynb
The pmbus notebook caught my eye because I had attended the PMBus webinar that Chris Ammann ctammann had presented back in July PMBus and Power Supply Telemetry .
Chris had mentioned to me that the next BSP release will include the capability to update the PMICs on the Ultra96v2 and the UltraZed-EV and I expect will also include the sensors program that will display the PMIC settings.
I hoped that this pmbus notebook might provide the same information as that sensors program provided, i.e. the voltage and current measurements and settings for the all the PMICs.
The slide from the webinar shows the 3 PMICs and the 11 voltages that they control on the Ultra96v2 (I am not sure about the configuration of the Ultra96v1).
Running the pynq.get_rails() function almost works. It provides the voltage, current and power information for the 2 IRPS5401 parts. Unfortunately it lists the 10 voltages in alphabetical order by name rather than by IC position. I can fix that easily enough but I don't understand why IR38060 (5V) isn't listed. I also don't understand all the garbled stuff at the end.
I looked at the ultra96.conf file in /etc/sensors.d/ directory and the entry for the IR38060 at the end looks incorrect but I'm not quite sure what it should be.
I think it should be :
chip "*-i2c-6-45"
label in1 "5V"
label curr1 "5V"
label power1 "5V"
I'll try that tomorrow.
ultra96.conf
bus "i2c-6" "i2c-0-mux (chan_id 4)" chip "*-i2c-6-43" ignore in1 ignore power1 ignore curr1 label in2 "AUX" label in3 "1V2" label in4 "PSDDR" label in5 "INT" label in6 "3V3_D" label power2 "AUX" label power3 "1V2" label power4 "PSDDR" label power5 "INT" label power6 "3V3_D" label curr2 "AUX" label curr3 "1V2" label curr4 "PSDDR" label curr5 "INT" label curr6 "3V3_D" chip "*-i2c-6-44" ignore in1 ignore power1 ignore curr1 label in2 "PSAUX" label in3 "PSINT_LP" label in4 "3V3" label in5 "PSINT_FP" label in6 "PSPLL" label power2 "PSAUX" label power3 "PSINT_LP" label power4 "3V3" label power5 "PSINT_FP" label power6 "PSPLL" label curr2 "PSAUX" label curr3 "PSINT_LP" label curr4 "3V3" label curr5 "PSINT_FP" label curr6 "PSPLL" chip "*-i2c-6-45" #ignore power1 label in1 "VIN" label curr1 "5V" label power1 "5V" label in2 "5V" compute in2 @/256,@*256
Anyway, I'll play with this some more. The notebook also includes a DataRecorder class that allows you to record/plot the sensor measurements while running tests. Here's a link to the PYNQ library documentation https://pynq.readthedocs.io/en/v2.6.1/pynq_libraries/pmbus.html .
Hope the updated DPU-PYNQ is available soon and also the new BSP release so I can update the current limit for running the DPU.
Top Comments