<?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>S12 / MagniV MicrocontrollersのトピックRe: PWM prescale</title>
    <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/PWM-prescale/m-p/202847#M8217</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;I haven't checked your code but&amp;nbsp;it sounds like you're about 256 times slower than expected.&lt;/DIV&gt;&lt;DIV&gt;Each PWM&amp;nbsp;period&amp;nbsp;is 256 counts (PWMPERx) so the total repetition period is 256 clock ticks. You don't mention the value of the duty registers.&lt;/DIV&gt;&lt;DIV&gt;The PWM clock period is one count on the PWM counter, so you need to reduce the PWM period or increase the clock frequency.&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 14 Mar 2008 22:22:37 GMT</pubDate>
    <dc:creator>Steve</dc:creator>
    <dc:date>2008-03-14T22:22:37Z</dc:date>
    <item>
      <title>PWM prescale</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/PWM-prescale/m-p/202846#M8216</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hello, I'm using an MCS12C32 and I want to generate a 60Hz PWM signal. On paper every thing is ok, but not in the real world. I'm using a LED to test, and it blinks every 4-5 sec. Can anyobody help me? The qurtz works at 16Mhz, this means a 8Mhz bus clock(right?).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;SA=BUS clk/2*PSCLA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;BUS clk=8Mhz/128=62.5Khz&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SA=62.5Khz/2*512=61Hz&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;here is the init():&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;void init_pwm(void)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;PWMPOL_PPOL0=1; //start pol&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;PWMPOL_PPOL1=1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;PWMPOL_PPOL2=1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;PWMPOL_PPOL3=1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;PWMCLK_PCLK0=1;//ch1- SA&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;PWMCLK_PCLK1=1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;PWMCLK_PCLK2=1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;PWMCLK_PCLK3=1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;PWMPRCLK_PCKA0=1;//prescale bus clk&amp;nbsp; with 128&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8Mhz/128=62.5Khz&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;PWMPRCLK_PCKA1=1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;PWMPRCLK_PCKA2=1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;PWMPRCLK_PCKB0=1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;PWMPRCLK_PCKB1=1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;PWMPRCLK_PCKB2=1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;PWMSCLA=0xFFFF;&amp;nbsp; //prescale SA with 512&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;PWMSCLB=0xFFFF;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;PWMPER0=255;//perioada&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;PWMPER1=255;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;PWMPER2=255;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;PWMPER3=255;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 14 Mar 2008 22:00:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/PWM-prescale/m-p/202846#M8216</guid>
      <dc:creator>StefX</dc:creator>
      <dc:date>2008-03-14T22:00:20Z</dc:date>
    </item>
    <item>
      <title>Re: PWM prescale</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/PWM-prescale/m-p/202847#M8217</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;I haven't checked your code but&amp;nbsp;it sounds like you're about 256 times slower than expected.&lt;/DIV&gt;&lt;DIV&gt;Each PWM&amp;nbsp;period&amp;nbsp;is 256 counts (PWMPERx) so the total repetition period is 256 clock ticks. You don't mention the value of the duty registers.&lt;/DIV&gt;&lt;DIV&gt;The PWM clock period is one count on the PWM counter, so you need to reduce the PWM period or increase the clock frequency.&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 14 Mar 2008 22:22:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/PWM-prescale/m-p/202847#M8217</guid>
      <dc:creator>Steve</dc:creator>
      <dc:date>2008-03-14T22:22:37Z</dc:date>
    </item>
    <item>
      <title>Re: PWM prescale</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/PWM-prescale/m-p/202848#M8218</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&lt;/DIV&gt;&lt;BLOCKQUOTE&gt;&lt;DIV&gt;&lt;HR /&gt;StefX wrote:&lt;BR /&gt;SA=BUS clk/2*PSCLA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;BUS clk=8Mhz/128=62.5Khz&lt;BR /&gt;SA=62.5Khz/2*512=61Hz&lt;BR /&gt;&lt;HR /&gt;&lt;/DIV&gt;&lt;/BLOCKQUOTE&gt;&lt;DIV&gt;This is the wrong way to calculate the PWM frequency.&amp;nbsp; Also, the maximum prescale by the SA clock is 512 (256 * 2).&amp;nbsp; Here is how the PWM frequency should be calculated.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;A Clk = Bus&amp;nbsp;Clk / Prescale A (Set by PWMPRCLK_PCLKA[2:0])&lt;/DIV&gt;&lt;DIV&gt;SA Clk&amp;nbsp;=&amp;nbsp;A&amp;nbsp;Clk / Prescale SA (Set by PWMSCLA)&lt;/DIV&gt;&lt;DIV&gt;PWM&amp;nbsp;Freq = SA Clk / PWM Period (Set by PWMPERx)&amp;nbsp;&lt;BR /&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 14 Mar 2008 23:27:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/PWM-prescale/m-p/202848#M8218</guid>
      <dc:creator>allawtterb</dc:creator>
      <dc:date>2008-03-14T23:27:49Z</dc:date>
    </item>
    <item>
      <title>Re: PWM prescale</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/PWM-prescale/m-p/202849#M8219</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Yes....you are right.&lt;BR /&gt;&lt;BR /&gt;Thank you all for your answers!&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 16 Mar 2008 01:34:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/PWM-prescale/m-p/202849#M8219</guid>
      <dc:creator>StefX</dc:creator>
      <dc:date>2008-03-16T01:34:51Z</dc:date>
    </item>
  </channel>
</rss>

