{"id":27847,"date":"2020-04-17T10:36:06","date_gmt":"2020-04-17T17:36:06","guid":{"rendered":"https:\/\/blog.digilentinc.com\/?p=27847"},"modified":"2020-12-21T11:13:52","modified_gmt":"2020-12-21T19:13:52","slug":"how-are-digilents-engineers-making-the-most-of-working-from-home","status":"publish","type":"post","link":"https:\/\/digilent.com\/blog\/how-are-digilents-engineers-making-the-most-of-working-from-home\/","title":{"rendered":"How Are Digilent&#8217;s Engineers Making the Most of Working From Home?"},"content":{"rendered":"<div>Engineers across the globe have been forced out of their labs and into their living rooms, asked to continue working on whatever projects they were prior to being self-quarantined. The engineers at Digilent are no exception &#8211; we still have our own initiatives to work on as well. To that end, just how are the employees of a technology company that is specially suited for working from home doing it? Surprise! They&#8217;re using the products they helped to create. We caught up with Ioan, one of our hardware engineers in Romania, and talked to him about how he is keeping up with work while being away from the lab. Ioan even provided the script in case anyone is interested in checking it out themselves.<\/div>\n<div><\/div>\n<div>&#8220;Lately, I have been steadily working on finishing the newest version of the <a href=\"https:\/\/digilent.com\/shop\/genesys-zu-zynq-ultrascale-mpsoc-development-board\/\">Genesys ZU<\/a>, the 5EV variant. It&#8217;s set to come out later this year, so having to work from home is changing my work dynamic. Luckily, I had a Digital Discovery on my desk, and that&#8217;s made doing temperature compensation tests much easier.&#8221;<\/div>\n<h2>Want to run a power drift test at home?<\/h2>\n<p>&#8220;Any time you&#8217;re doing computing with something similar to a board like the Genesys ZU, it generates heat. That heat affects how efficiently power flows through wires or power rails. A computer&#8217;s designer needs to make sure that the power stays within specifications when the board you&#8217;re working with gets hot, so that it can continue managing the power and deploy the active heat dissipation it uses (fans etc.). So, I wanted to \u00a0monitor the current measurement drift with temperature on one of the power management units (IC81, IRPS5401) on a powerful computing board. In this case, I used our new <a href=\"https:\/\/digilent.com\/shop\/genesys-zu-zynq-ultrascale-mpsoc-development-board\/\">Genesys ZU<\/a>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-27848\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2020\/04\/measurement-drift-1-scaled.jpg\" alt=\"\" width=\"2560\" height=\"1920\" data-wp-pid=\"27848\" srcset=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2020\/04\/measurement-drift-1-scaled.jpg 2560w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2020\/04\/measurement-drift-1-600x450.jpg 600w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2020\/04\/measurement-drift-1-1024x768.jpg 1024w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2020\/04\/measurement-drift-1-768x576.jpg 768w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2020\/04\/measurement-drift-1-1536x1152.jpg 1536w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2020\/04\/measurement-drift-1-2048x1536.jpg 2048w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2020\/04\/measurement-drift-1-800x600.jpg 800w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2020\/04\/measurement-drift-1-1200x900.jpg 1200w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><\/p>\n<ul>\n<li>To monitor the current drift, I had to draw power using something external to the Genesys ZU board, so I used a small value power resistor with heatsink (shown in the lower-right side of the picture above) with a known large current (I used 10 Amps in my test) from VCC0V85_INT.<\/li>\n<li>While doing this, I also had to measure the actual current draw, using a digital multimeter in series with the power resistor (upper-right side of the picture);<\/li>\n<li>I used the same multimeter together with a thermocouple to monitor the temperature of the inductor on the VCC0V85_INT rail as it grew (white wire with blue stripes in the center of the picture<\/li>\n<\/ul>\n<figure id=\"attachment_27849\" aria-describedby=\"caption-attachment-27849\" style=\"width: 2560px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-27849 size-full\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2020\/04\/measurement-drift-2-scaled.jpg\" alt=\"Genesys ZU and Digital Discovery\" width=\"2560\" height=\"1920\" data-wp-pid=\"27849\" srcset=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2020\/04\/measurement-drift-2-scaled.jpg 2560w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2020\/04\/measurement-drift-2-600x450.jpg 600w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2020\/04\/measurement-drift-2-1024x768.jpg 1024w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2020\/04\/measurement-drift-2-768x576.jpg 768w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2020\/04\/measurement-drift-2-1536x1152.jpg 1536w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2020\/04\/measurement-drift-2-2048x1536.jpg 2048w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2020\/04\/measurement-drift-2-800x600.jpg 800w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2020\/04\/measurement-drift-2-scaled-1200x900-cropped.jpg 1200w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><figcaption id=\"caption-attachment-27849\" class=\"wp-caption-text\">Note the picture shows the multimeter set to thermometer instead of ammeter<\/figcaption><\/figure>\n<p>Also while doing this, I had to read back the current measured by IC81 itself. For this, I used a <a href=\"https:\/\/digilent.com\/shop\/digital-discovery-portable-logic-analyzer-and-digital-pattern-generator\/\">Digital Discovery<\/a> connected to the I2C interface header on the Genesys ZU (J36): DIO24 to SCL, DIO25 to SDA, and a GND pin to the J36 GND pin.<\/p>\n<p>To send the necessary commands to the IRPS5401 via I2C (actually PMBus, but it uses the same I2C lines) and to read back the current, initially I tried to use <a href=\"https:\/\/digilent.com\/shop\/waveforms-download-only\/\">Waveforms<\/a> in Protocol mode, but the I2C Master does not seem to have the \u201cRepeated Start\u201d functionality between Write and Read implemented. Therefore, I took a Python script example from the Waveforms SDK folder and modified it to suit my test (see below).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-27850\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2020\/04\/measurement-drift-3.png\" alt=\"WaveForms SDK and Python\" width=\"1101\" height=\"637\" data-wp-pid=\"27850\" srcset=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2020\/04\/measurement-drift-3.png 1101w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2020\/04\/measurement-drift-3-600x347.png 600w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2020\/04\/measurement-drift-3-1024x592.png 1024w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2020\/04\/measurement-drift-3-768x444.png 768w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2020\/04\/measurement-drift-3-800x463.png 800w\" sizes=\"auto, (max-width: 1101px) 100vw, 1101px\" \/><\/p>\n<p>To run the Python script, you would need to follow these steps:<\/p>\n<ol>\n<li>Make sure the above described hardware setup is done;<\/li>\n<li>Make sure you have Python installed (I used <a href=\"https:\/\/www.python.org\/downloads\/release\/python-380\/\">Python 3.8<\/a>);<\/li>\n<li>Make sure you have a UART Terminal software installed (TeraTerm, Termite etc.);<\/li>\n<li>Connect the <a href=\"https:\/\/digilent.com\/shop\/genesys-zu-zynq-ultrascale-mpsoc-development-board\/\">Genesys ZU<\/a> board to the computer via a Micro USB cable tied to J8 on the board;<\/li>\n<li>Power on the board;<\/li>\n<li>Open a UART terminal to the Platform MCU UART port (it is the largest numbered port of the two UARTs on Genesys ZU);<\/li>\n<li>Set the terminal to 115200 baud, 8 data bits, even parity, 1 stop bit;<\/li>\n<li>Disable I2C Communication between Platform MCU and PMUs, by sending the \u201c1E0101\u201d command (no \u201c\u201d signs) to the board using the UART terminal. As a check, you can then write \u201c1F01\u201d in the terminal and you should receive \u201c01\u201d.<\/li>\n<li>Open a command prompt at the location where you downloaded the Python script. Type in \u201cpy irps5401_read_swa_output_current.py\u201d and then Enter, to run the script.<\/li>\n<li>You should then see something like in the attached python_script_running.png. The script will run until you close the command prompt.<\/li>\n<\/ol>\n<p>Users who have the Genesys ZU don\u2019t necessarily have to draw current from the board using external means; therefore, they don\u2019t necessarily need a multimeter, a power resistor or a thermocouple. If they have a Genesys ZU and a <a href=\"https:\/\/digilent.com\/shop\/digital-discovery-portable-logic-analyzer-and-digital-pattern-generator\/\">Digital Discovery<\/a>\/<a href=\"https:\/\/digilent.com\/shop\/analog-discovery-2-100msps-usb-oscilloscope-logic-analyzer-and-variable-power-supply\/\">Analog Discovery 2<\/a>, they can monitor the current drawn from the three IRPS5041 ICs on the board, one rail at a time, while running their own project on the board. I put some comments in the script so they can change the rail they monitor on the IRPS5401 (\u201cthe switcher\u201d) and also to change the IRPS5401 they talk to.<\/p>\n<p>Of course, you could also change the script to monitor all the rails on all the IRPS5401 ICs if you&#8217;d like to.&#8221;<\/p>\n<p>To download the script for this test at home click here: <a href=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2020\/04\/irps5401_read_swa_output_current.zip\">irps5401_read_swa_output_current<\/a><\/p>\n<div class='watch-action'><div class='watch-position align-left'><div class='action-like'><a class='lbg-style6 like-27847 jlk' data-task='like' data-post_id='27847' data-nonce='758349f32d' rel='nofollow'><img src='https:\/\/digilent.com\/blog\/wp-content\/plugins\/wti-like-post-pro\/images\/pixel.gif' title='Like' \/><span class='lc-27847 lc'>+2<\/span><\/a><\/div><div class='action-unlike'><a class='unlbg-style6 unlike-27847 jlk' data-task='unlike' data-post_id='27847' data-nonce='758349f32d' rel='nofollow'><img src='https:\/\/digilent.com\/blog\/wp-content\/plugins\/wti-like-post-pro\/images\/pixel.gif' title='Unlike' \/><span class='unlc-27847 unlc'>0<\/span><\/a><\/div><\/div> <div class='status-27847 status align-left'><\/div><\/div><div class='wti-clear'><\/div>","protected":false},"excerpt":{"rendered":"<p>Engineers across the globe have been forced out of their labs and into their living rooms, asked to continue working on whatever projects they were prior to being self-quarantined. The &hellip; <\/p>\n","protected":false},"author":50,"featured_media":27849,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1553,4267,35],"tags":[],"ppma_author":[4502],"class_list":["post-27847","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-around-digilent","category-featured","category-fpga"],"jetpack_featured_media_url":"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2020\/04\/measurement-drift-2-scaled.jpg","authors":[{"term_id":4502,"user_id":50,"is_guest":0,"slug":"davidh","display_name":"David Horn","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/44030532fc8d2bc9aa1d05f87c27d6f9?s=96&d=mm&r=g","author_category":"","user_url":"","last_name":"Horn","last_name_2":"","first_name":"David","first_name_2":"","job_title":"","description":""}],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/posts\/27847","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/users\/50"}],"replies":[{"embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/comments?post=27847"}],"version-history":[{"count":0,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/posts\/27847\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/media\/27849"}],"wp:attachment":[{"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/media?parent=27847"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/categories?post=27847"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/tags?post=27847"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=27847"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}