<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: BLDC_Sensorless Control(single shunt) running in low speed by open loop in S12 / MagniV Microcontrollers</title>
    <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/BLDC-Sensorless-Control-single-shunt-running-in-low-speed-by/m-p/712556#M14738</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear&amp;nbsp;&lt;A _jive_internal="true" data-content-finding="Community" data-userid="291156" data-username="sohyunjang" href="https://community.nxp.com/people/sohyunjang" style="color: #5e89c1; background-color: #ffffff; border: 0px; font-weight: 600; text-decoration: none; font-size: 11.9994px;"&gt;Sohyun Jang&lt;/A&gt;,&lt;/P&gt;&lt;P&gt;your question is correct and&amp;nbsp;basically you have answered it already. If the motor has problems to run at low speeds in sensorless mode due to low backEMF signal, the classical approach of commutation will not work. Running the motor in open loop is good for a fan or blower application (non-automotive), where the load is very low and you can make some assumptions. Anyway, if the application requires some level of reliability, classical open-loop mode is useless.&lt;/P&gt;&lt;P&gt;In case you would like to create mid- or high-end motor control (e.g. for automotive), there are some scientific and technical papers on low speed sensorless control of BLDC at IEEE Xplore which you may find helpful (e.g. &lt;A class="link-titled" href="http://ieeexplore.ieee.org/abstract/document/6940933/" title="http://ieeexplore.ieee.org/abstract/document/6940933/"&gt;http://ieeexplore.ieee.org/abstract/document/6940933/&lt;/A&gt;&amp;nbsp;).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you just want to play with the open-loop code of the AppNote software, you can disable the "&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;startCMTcounter" logic by commenting out the decrement &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;//&lt;SPAN&gt;startCMTcounter--;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;and also commenting out the next commutation period value&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;//&amp;nbsp;&lt;SPAN style="background-color: #ffffff;"&gt;NextCmtPeriod = MLIB_Mul(NextCmtPeriod,START_CMT_ACCELERATION,F16);&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN style="background-color: #ffffff;"&gt;Then you can just change the&amp;nbsp;NextCmtPeriod according to your needs and when the motor reaches sufficient backEMF levels, set the&amp;nbsp;startCMTcounter to zero - the state machine will be driven into the "run" state.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN style="background-color: #ffffff;"&gt;Best regards,&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN style="background-color: #ffffff;"&gt;Matej&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 26 Sep 2017 06:47:20 GMT</pubDate>
    <dc:creator>pachamatej</dc:creator>
    <dc:date>2017-09-26T06:47:20Z</dc:date>
    <item>
      <title>BLDC_Sensorless Control(single shunt) running in low speed by open loop</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/BLDC-Sensorless-Control-single-shunt-running-in-low-speed-by/m-p/712555#M14737</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I use MC9S12ZVML128_BLDC_Sensorless(sing shunt) application.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But, I have a problem running at low speed. (Because of&amp;nbsp;BackEMF sensing)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;At low speed,&amp;nbsp;I want to run motor by open loop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="en"&gt;&lt;SPAN&gt;Is this the right solution?&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;bleow code is open loop running.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;void AppStart(void){&lt;BR /&gt;&amp;nbsp; if (driveStatus.bit.AfterCMT == 1) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; timeZC = TIM0TCNT - (NextCmtPeriod &amp;gt;&amp;gt; 1);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; startCMTcounter--;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (startCMTcounter &amp;gt; 0) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; driveStatus.bit.AfterCMT = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NextCmtPeriod = MLIB_Mul(NextCmtPeriod,START_CMT_ACCELERATION,F16);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; if (startCMTcounter == 0) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; AppStartToRun();&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks you.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 25 Sep 2017 08:27:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/BLDC-Sensorless-Control-single-shunt-running-in-low-speed-by/m-p/712555#M14737</guid>
      <dc:creator>sohyunjang</dc:creator>
      <dc:date>2017-09-25T08:27:25Z</dc:date>
    </item>
    <item>
      <title>Re: BLDC_Sensorless Control(single shunt) running in low speed by open loop</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/BLDC-Sensorless-Control-single-shunt-running-in-low-speed-by/m-p/712556#M14738</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear&amp;nbsp;&lt;A _jive_internal="true" data-content-finding="Community" data-userid="291156" data-username="sohyunjang" href="https://community.nxp.com/people/sohyunjang" style="color: #5e89c1; background-color: #ffffff; border: 0px; font-weight: 600; text-decoration: none; font-size: 11.9994px;"&gt;Sohyun Jang&lt;/A&gt;,&lt;/P&gt;&lt;P&gt;your question is correct and&amp;nbsp;basically you have answered it already. If the motor has problems to run at low speeds in sensorless mode due to low backEMF signal, the classical approach of commutation will not work. Running the motor in open loop is good for a fan or blower application (non-automotive), where the load is very low and you can make some assumptions. Anyway, if the application requires some level of reliability, classical open-loop mode is useless.&lt;/P&gt;&lt;P&gt;In case you would like to create mid- or high-end motor control (e.g. for automotive), there are some scientific and technical papers on low speed sensorless control of BLDC at IEEE Xplore which you may find helpful (e.g. &lt;A class="link-titled" href="http://ieeexplore.ieee.org/abstract/document/6940933/" title="http://ieeexplore.ieee.org/abstract/document/6940933/"&gt;http://ieeexplore.ieee.org/abstract/document/6940933/&lt;/A&gt;&amp;nbsp;).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you just want to play with the open-loop code of the AppNote software, you can disable the "&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;startCMTcounter" logic by commenting out the decrement &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;//&lt;SPAN&gt;startCMTcounter--;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;and also commenting out the next commutation period value&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;//&amp;nbsp;&lt;SPAN style="background-color: #ffffff;"&gt;NextCmtPeriod = MLIB_Mul(NextCmtPeriod,START_CMT_ACCELERATION,F16);&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN style="background-color: #ffffff;"&gt;Then you can just change the&amp;nbsp;NextCmtPeriod according to your needs and when the motor reaches sufficient backEMF levels, set the&amp;nbsp;startCMTcounter to zero - the state machine will be driven into the "run" state.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN style="background-color: #ffffff;"&gt;Best regards,&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN style="background-color: #ffffff;"&gt;Matej&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 26 Sep 2017 06:47:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/BLDC-Sensorless-Control-single-shunt-running-in-low-speed-by/m-p/712556#M14738</guid>
      <dc:creator>pachamatej</dc:creator>
      <dc:date>2017-09-26T06:47:20Z</dc:date>
    </item>
  </channel>
</rss>

