<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.element14.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Programmable Electronic Load - Temperature Protection</title><link>https://community.element14.com/technologies/test-and-measurement/w/documents/3316/programmable-electronic-load---temperature-protection</link><description /><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>Programmable Electronic Load - Temperature Protection</title><link>https://community.element14.com/technologies/test-and-measurement/w/documents/3316/programmable-electronic-load---temperature-protection</link><pubDate>Wed, 27 Dec 2017 12:30:24 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:964ee89e-24af-4526-b852-69248d1e3854</guid><dc:creator>Jan Cumps</dc:creator><comments>https://community.element14.com/technologies/test-and-measurement/w/documents/3316/programmable-electronic-load---temperature-protection#comments</comments><description>Current Revision posted to Documents by Jan Cumps on 12/27/2017 12:30:24 PM&lt;br /&gt;
&lt;table border="1" class="jiveBorder mce-item-table" height="454" style="border:1px solid #c6c6c6;width:666px;height:323px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;background-color:#ffffdb;padding:6px;"&gt;&lt;p style="margin:0;"&gt;&lt;span style="background-color:#ffffdb;"&gt;This blog documents focuses on the temperature protection of the &lt;/span&gt;&lt;a class="jive-link-wiki-small" href="/technologies/test-and-measurement/w/documents/1896/programmable-electronic-load"&gt;electronic load&lt;/a&gt;&lt;span style="background-color:#ffffdb;"&gt; that &lt;/span&gt;&lt;span&gt;&lt;a href="/members/peteroakes"&gt;Robert Peter Oakes&lt;/a&gt;&lt;/span&gt;&lt;span style="background-color:#ffffdb;"&gt;, &lt;/span&gt;&lt;span&gt;&lt;a href="/members/jc2048"&gt;jc2048&lt;/a&gt;&lt;/span&gt;&lt;span style="background-color:#ffffdb;"&gt; and &lt;/span&gt;&lt;span&gt;&lt;a href="/members/jancumps"&gt;Jan Cumps&lt;/a&gt;&lt;/span&gt;&lt;span style="background-color:#ffffdb;"&gt; are designing.&lt;/span&gt;&lt;/p&gt;&lt;table border="0px" class="jiveBorder mce-item-table" height="357" style="border:0px solid #c6c6c6;width:656px;height:114px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="border:0pxpx solid black;border:0px solid #c6c6c6;padding:6px;"&gt;&lt;p style="margin:0;"&gt;&lt;span&gt;&lt;a href="https://community.element14.com/resized-image/__size/674x900/__key/communityserver-wikis-components-files/00-00-00-00-21/6253.contentimage_5F00_90040.jpg"&gt;&lt;img alt="image" src="https://community-storage.element14.com/communityserver-components-secureimagefileviewer/communityserver/wikis/components/files/00/00/00/00/21/6253.contentimage_90040.jpg-620x827.jpg?sv=2016-05-31&amp;amp;sr=b&amp;amp;sig=avn7OHj36XjYzsV3BY5TEX%2BvVseqe4aC8wge81gLJu4%3D&amp;amp;se=2026-04-20T23%3A59%3A59Z&amp;amp;sp=r&amp;amp;_=09ivK4xqcYeUPQdphGVq9A==" style="max-height: 827px;max-width: 620px;" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;This post will be firmware heavy. It explains how the temperature of the power FET is measured and what happens when it exceeds the operational range..&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;The first exercise is to find the right Temperature vs Resistance table for the NTC I&amp;#39;m using.&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;em&gt;In this article I use a Vishay NTCLE100E3103J. That&amp;#39;s a different component than the one in the final design.&lt;/em&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;em&gt;There are two reasons: &lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;I have this one available for testing and it&amp;#39;s through-hole. That makes prototyping easier&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;Our final design doesn&amp;#39;t prescribe the NTC to be used. The characteristics can be programmed and saved in FLASH (if all works out).&lt;br /&gt;It&amp;#39;s good to have two different components to validate that this flexibility works.&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h4&gt;Temperature Sensor and How To Get Resistance vs Temperature&lt;/h4&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;The component we&amp;#39;re using for testing is a Vishay &lt;span&gt;&lt;span class="e14-init-shown" id="addProduct-XIffyK8w-linked" style="white-space:nowrap;"&gt;&lt;a class="jive-link-product-addtolist" href="https://www.element14.com/community/view-product.jspa?fsku=2492883&amp;amp;nsku=NULL&amp;amp;COM=noscript" target="_blank"&gt;&lt;span class="pf-widget-map pf-productlink-cart-icon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;a class="jive-link-product pf-embedded-product-link" href="https://www.element14.com/community/view-product.jspa?fsku=2492883&amp;amp;nsku=NULL&amp;amp;COM=noscript" target="_blank"&gt;NTCLE100E3103&lt;/a&gt;&lt;/span&gt;&lt;span class="e14-init-hidden" id="addProduct-XIffyK8w-unlinked"&gt;NTCLE100E3103&lt;/span&gt;&lt;/span&gt;. If you want to follow along, click on the product link to get the datasheet.&lt;/p&gt;&lt;p style="margin:0;"&gt;It&amp;#39;s a 10K thermistor with a negative temperature coefficient, 5% tolerance, Beta 3977 K.&lt;/p&gt;&lt;p style="margin:0;"&gt;The datasheet specifies the calculations that can be used to calculate resistance for a certain temperature. I can use them in the firmware - they apply for many NTCs of the same make.&lt;/p&gt;&lt;p style="margin:0;"&gt;In that case, the configuration would require a few parameters and temperature can be derived from that.&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;In this design I&amp;#39;m implementing something simpler, based on lookup values. Most datasheets contain a table that lays out resistance vs temperature.&lt;/p&gt;&lt;p style="margin:0;"&gt;Here is the one for the device I&amp;#39;m using in this blog (again: different than the final design (from the datasheet linked above, page 10).&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span&gt;&lt;a href="https://community.element14.com/resized-image/__size/189x787/__key/communityserver-wikis-components-files/00-00-00-00-21/5657.contentimage_5F00_90041.png"&gt;&lt;img loading="lazy" alt="image" src="https://community-storage.element14.com/communityserver-components-secureimagefileviewer/communityserver/wikis/components/files/00/00/00/00/21/5657.contentimage_90041.png-189x787.png?sv=2016-05-31&amp;amp;sr=b&amp;amp;sig=qBSaG3jIybORv0jN6PCJMxrsUDk0MrKwu14MT0kbdUM%3D&amp;amp;se=2026-04-20T23%3A59%3A59Z&amp;amp;sp=r&amp;amp;_=yqSBoObmAiihM7RApw/8zg==" style="max-height: 787px;max-width: 189px;" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;We&amp;#39;re not building a thermometer. We&amp;#39;re not interested in how warm the FET exactly is (ok, maybe you are. In that case you can use a SCPI command to get the voltage at the NTC and derive the exact temperature &lt;span&gt;&lt;a href="https://community.element14.com/resized-image/__size/16x16/__key/communityserver-wikis-components-files/00-00-00-00-21/4604.contentimage_5F00_1.png"&gt;&lt;img loading="lazy" alt="image" src="https://community-storage.element14.com/communityserver-components-secureimagefileviewer/communityserver/wikis/components/files/00/00/00/00/21/4604.contentimage_1.png-16x16.png?sv=2016-05-31&amp;amp;sr=b&amp;amp;sig=D3MET6fExJ2ofEO3wzq5SzrIcU1%2FlX%2BXlrEi0sBMv94%3D&amp;amp;se=2026-04-20T23%3A59%3A59Z&amp;amp;sp=r&amp;amp;_=zGEM7pHL10Vt71gae75OdA==" style="max-height: 16px;max-width: 16px;" /&gt;&lt;/a&gt;&lt;/span&gt; ).&lt;/p&gt;&lt;p style="margin:0;"&gt;What we want to know is if we&amp;#39;re operating in &lt;span style="text-decoration:line-through;"&gt;the FET&amp;#39;s comfort zone, if it&amp;#39;s still safe to touch, if we&amp;#39;re running hot, near critical and&lt;/span&gt; over-temperature.&lt;/p&gt;&lt;p style="margin:0;"&gt;Check here for the calculations used: &lt;a class="jive-link-external-small" href="https://en.wikipedia.org/wiki/Voltage_divider" rel="nofollow ugc noopener" target="_blank" title="https://en.wikipedia.org/wiki/Voltage_divider"&gt;https://en.wikipedia.org/wiki/Voltage_divider&lt;/a&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="text-decoration:line-through;"&gt;Somewhat &lt;a class="jive-link-external-small" href="https://www.startpagina.nl/v/wetenschap/natuurkunde-scheikunde/vraag/153425/temperatuur-metaal-langdurig-vasthouden-zeer" rel="nofollow ugc noopener" target="_blank"&gt;random&lt;/a&gt;, I&amp;#39;ve defined these as following:&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;table border="1" class="jiveBorder mce-item-table" height="203" style="border:1px solid #c6c6c6;height:204px;width:262px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;color:#505050;background-color:#f2f2f2;text-align:left;" valign="middle"&gt;&lt;span style="text-decoration:line-through;"&gt;&lt;strong&gt;Status&lt;/strong&gt;&lt;/span&gt;&lt;/th&gt;&lt;th style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;color:#505050;background-color:#f2f2f2;text-align:left;" valign="middle"&gt;&lt;span style="text-decoration:line-through;"&gt;&lt;strong&gt;Temperature (C)&lt;/strong&gt;&lt;/span&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;span style="text-decoration:line-through;"&gt;normal&lt;/span&gt;&lt;/td&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;span style="text-decoration:line-through;"&gt;&amp;lt; 45°&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;span style="text-decoration:line-through;"&gt;warm&lt;/span&gt;&lt;/td&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;span style="text-decoration:line-through;"&gt;&amp;lt; 75°&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;span style="text-decoration:line-through;"&gt;hot&lt;/span&gt;&lt;/td&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;span style="text-decoration:line-through;"&gt;&amp;gt;= 75°&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;span style="text-decoration:line-through;"&gt;warning&lt;/span&gt;&lt;/td&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;span style="text-decoration:line-through;"&gt;&amp;gt;= 100°&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;span style="text-decoration:line-through;"&gt;over temperature&lt;/span&gt;&lt;/td&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;span style="text-decoration:line-through;"&gt;&amp;gt;= 125°&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;The firmware will not know the exact temperature. &lt;span style="text-decoration:line-through;"&gt;It only defines these 5 buckets&lt;/span&gt;. It&amp;#39;s up to the user to define the resistance at the tipping points.&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="text-decoration:line-through;"&gt;Also, because these levels are chosen based on no science or regulations - and because I want to keep the temperature of the FET and thermistor I&amp;#39;m using under 125°, these may not apply to you.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;Feel free to propose different temperatures or a different approach.&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h4&gt;Firmware&lt;/h4&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;The NTC thermistor TH1 is connected to ADC C. Once the voltage measured on the NTC drops below a certain point (because the max temperature is reached), the over-temperature protection should kick in.&lt;/p&gt;&lt;p style="margin:0;"&gt;That tipping voltage is stored in our calibration data. Check &lt;a class="jive-link-wiki-small" href="/technologies/test-and-measurement/w/documents/3318/programmable-electronic-load---calibration-steps"&gt;Programmable Electronic Load - Calibration Steps&lt;/a&gt; for the instructions to set that point.&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;typedef struct CalibrationData {
    uint32_t version;
    float temperature_threshold;  // todo convert to the ADC 16 bit value in stead of float
} CalibrationData;&lt;/pre&gt;&lt;/p&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;As a convenience for the person that performs the configuration, the firmware calculates that voltage based on the resistance of the NTC at the over-temperature point.&lt;/p&gt;&lt;p style="margin:0;"&gt;So you don&amp;#39;t have to enter a voltage during calibration. Instead, you look up the resistance of the NTC at switch-off point in the NTC&amp;#39;s data sheet (say 125°C) and enter that value, in Ohm.&lt;/p&gt;&lt;p style="margin:0;"&gt;The firmware will use the &lt;a class="jive-link-external-small" href="https://en.wikipedia.org/wiki/Voltage_divider" rel="nofollow ugc noopener" target="_blank"&gt;voltage divider formulas&lt;/a&gt; to derive the voltage at that tipping point (and also back to resistance in the case the user queries the set point).&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;The calibration API has two functions to get and set that resistance at tipping point, and some helpers.&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;/**
 * this function expects the resistance of the NTC thermistor at the point where the electronic load is overheated.
 * It then calculates, based on the fact that the voltage is 5V and that the NTC is the lower part of a voltage divider
 * where the other resistor is 10K, the voltage that appears on ADC C if the maximum temperature is reached
 */
bool calibrationSetTemperatureMaxResistance(uint32_t value) {
    if(_bCalibrationActive) {
        // formula: Vout = Vin*Rt/(R1+Rt)
        // https://en.wikipedia.org/wiki/Voltage_divider
        _CalibrationData.temperature_threshold = ((5.0*value)/(10000.0+value)); // todo convert to the ADC 16 bit value in stead of float
    }
    return _bCalibrationActive;
}

/**
 * this function returns the resistance of the NTC thyristor at the point where the electronic load is overheated.
 *
 */
uint32_t calibrationGetTemperatureMaxResistance() {
    uint32_t uRetVal = 0U;
    // formula: Rt = R1.(1/((Vin/Vout)-1))
    // https://en.wikipedia.org/wiki/Voltage_divider
    uRetVal = 10000.0 * (1.0/((5.0/_CalibrationData.temperature_threshold)-1.0)); // todo convert to the ADC 16 bit value in stead of float
    return uRetVal;
}

float calibrationGetTemperatureMaxFloat() { // todo: remove when we turned all overload functionality to uint
    return _CalibrationData.temperature_threshold;
}&lt;/pre&gt;&lt;/p&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;The over-temperature watchdog is an RTOS task. It runs every second and checks if the value sampled by ADC C drops below the value in the calibration data.&lt;/p&gt;&lt;p style="margin:0;"&gt;If that&amp;#39;s the case, it disables the input of the electronic load.&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;*
 *  ======== fnTaskTemperatureOverProtection ========
 *  Task for this function is created statically. See the project&amp;#39;s .cfg file.
 */
Void fnTaskTemperatureOverProtection(UArg arg0, UArg arg1)
{
    float fSample;
    while (1)
    {
        if (calibrationGetTemperatureMaxResistance()) { // if enabled
            fSample = eLoadDevelopGetAdcVolt(2);
            if (fSample &amp;gt; 0.0) { // ignore if no samples been taken yet
                if ( fSample &amp;lt; calibrationGetTemperatureMaxFloat()) { // todo this should be a uint calculation
                    eloadInputEnable(false);
                }
            }
        }
        Task_sleep(arg0);
    }
}&lt;/pre&gt;&lt;/p&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h4&gt;Timings&lt;/h4&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;A warning about the time between the FET heating up and the protection kicking in. There are a series of delays:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;it takes a little time for the thermistor to get to the same temperature as the FET.&lt;/li&gt;&lt;li&gt;the ADC is sampled every second then cached, so the data may be 1 second old&lt;/li&gt;&lt;li&gt;the temperature overload watchdog runs every second. So worst case it takes 2 seconds before the firmware detects the over temperature.&lt;/li&gt;&lt;li&gt;switching off the output is done via an RTOS message and&amp;nbsp; i²c communication to an I/O chip. This also takes (at the moment unknown because not measured) time.&lt;/li&gt;&lt;/ul&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h4&gt;Change Over-temperature Protection, Temporary or Permanent&lt;/h4&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;The instrument has SCPI functions to query and change the protection setting. Check here for the documentation: &lt;a class="jive-link-wiki-small" href="/technologies/test-and-measurement/w/documents/3318/programmable-electronic-load---calibration-steps"&gt;Programmable Electronic Load - Calibration Steps&lt;/a&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;To query the current setting, execute the following SCPI command:&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;CALibration:TEMPERATUREMAXResistance?&lt;/pre&gt;&lt;/p&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;You&amp;#39;ll get the value that&amp;#39;s currently active.&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;To change or disable the over-temperature protection, there&amp;#39;s another SCPI command.&lt;/p&gt;&lt;p style="margin:0;"&gt;Because this is a command that alters calibration settings, you first have to activate a calibration session.&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;CALibration:STArt 
CALibration:TEMPERATUREMAXResistance 0&lt;/pre&gt;&lt;/p&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;The value 0 will deactivate over-protection. Any other value will make the watchdog trip as soon as the thermistor drops below the entered resistance.&lt;/p&gt;&lt;p style="margin:0;"&gt;With the example of the NTC data sheet table above, to make the device switch off at 125° C, you&amp;#39;d enter:&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;CALibration:TEMPERATUREMAXResistance 339&lt;/pre&gt;&lt;/p&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;For the &lt;a class="jive-link-wiki-small" href="/technologies/test-and-measurement/w/documents/3314/programmable-electronic-load---power-stage"&gt;NTC that&amp;#39;s suggested in this build&lt;/a&gt;, the command to switch off at 125° C is:&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;CALibration:TEMPERATUREMAXResistance 518&lt;/pre&gt;&lt;/p&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;The settings are active immediately, but not stored in the permanent calibration memory.&lt;/p&gt;&lt;p style="margin:0;"&gt;If you power-cycle the instrument or reset it, the original calibration point is restored. (note: the &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;*RST&lt;/span&gt; SCPI command does &lt;strong&gt;not&lt;/strong&gt; restore calibration data)&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;If you want to make your changes permanent, run the following SCPI command to close the calibration session and write the value to Flash:&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;CALibration:END&lt;/pre&gt;&lt;/p&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;As long as you haven&amp;#39;t executed the &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;CALibration:END&lt;/span&gt; command, every change is temporary and you can revert back to the previous calibration state. &lt;br /&gt;&lt;span style="color:#e23d39;"&gt;Once you&amp;#39;ve executed it, the current calibration state will be the new active state, also after power-cycle or reset.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h4&gt;Initial Setting when you Program the Firmware the 1st Time&lt;/h4&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;Initially, over-temperature protection is undefined. The calibration value is stored in Flash and the Code Composer Studio project is configured to not touch this memory area.&lt;/p&gt;&lt;p style="margin:0;"&gt;Depending on what you&amp;#39;ve done before with the MSP432, this area may be filled with 0xFFFFFFFF values or something else (e.g. if you&amp;#39;ve ever ran the MSP432 DriverLib Flash Controller example, the area may contain 0xA5A5A5A5).&lt;/p&gt;&lt;p style="margin:0;"&gt;It&amp;#39;s part of the initial setup to define the proper setting for over-temperature when initialising and configuring the instrument before first use.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: ntc, rtos, over_temperature, thermistor, msp432, watchdog, ti_rtos, protection, adc&lt;/div&gt;
</description></item></channel></rss>