<?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: QN9080 - PWM problem in Wireless MCU</title>
    <link>https://community.nxp.com/t5/Wireless-MCU/QN9080-PWM-problem/m-p/976594#M8152</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-size: 12.0pt;"&gt;Hi &lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Sebastian&lt;/SPAN&gt;,&lt;BR /&gt;thank you for replying back, please find Attached the waveforms.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-size: 12.0pt;"&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="qn9080_1.jpg"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/103261i944C482B9BEF9AFD/image-size/large?v=v2&amp;amp;px=999" role="button" title="qn9080_1.jpg" alt="qn9080_1.jpg" /&gt;&lt;/span&gt;&lt;BR /&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-size: 12.0pt;"&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="qn9080_2.jpg"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/103309i2AA4DFA146293CE7/image-size/large?v=v2&amp;amp;px=999" role="button" title="qn9080_2.jpg" alt="qn9080_2.jpg" /&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-size: 12.0pt;"&gt;Figure 1 is the direct output of the PWM port and Figure 2 is the output of the &amp;nbsp;1st order RC low pass filter consists of a resistor of 22Okhm and a capacitor of 10nF.&lt;BR /&gt; It can be seen that the output rate is 8uSec (as designed) &amp;nbsp;and the pulse width is changing. However, after the LPF we get very low frequency which means that the PWM in not responds fast according to the required pulse width.&lt;BR /&gt; The output of the PWM is generated from the Sine wave lookup table which is derived through the DDS algorithm.&lt;BR /&gt; &lt;BR /&gt; Please advise back, thanks in advance&lt;BR /&gt; &lt;BR /&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-size: 12.0pt;"&gt;BR,&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-size: 12.0pt;"&gt;Shai&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sun, 09 Feb 2020 16:48:15 GMT</pubDate>
    <dc:creator>shai_b</dc:creator>
    <dc:date>2020-02-09T16:48:15Z</dc:date>
    <item>
      <title>QN9080 - PWM problem</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/QN9080-PWM-problem/m-p/976592#M8150</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P style="direction: ltr;"&gt;Hello Team,&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;my customer has the following issue, could you please advise the below:&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P style="direction: rtl; text-align: left;"&gt;I am having a problem with using the SCTimer module on QN9080.&lt;/P&gt;&lt;P style="direction: rtl; text-align: left;"&gt;The interrupts do not seem to work properly, the interrupts seem to take way too much time.&lt;/P&gt;&lt;P style="direction: rtl; text-align: left;"&gt;I am attaching sample code and follows more details.&lt;/P&gt;&lt;P style="direction: rtl; text-align: left;"&gt;To use the code add the file to a new project include fsl_sctimer.h and comment out "SCTIMER_EventHandleIRQ","SCT0_IRQHandler" and finally run init on main.&lt;/P&gt;&lt;P style="direction: rtl; text-align: left;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="direction: rtl; text-align: left;"&gt;Details:&lt;/P&gt;&lt;P style="direction: rtl; text-align: left;"&gt;&lt;EM&gt;needed output:&lt;/EM&gt;&lt;/P&gt;&lt;UL style="text-align: left;"&gt;&lt;LI style="direction: rtl;"&gt;PWM output of sine wave in&amp;nbsp; 488Hz with over sampling of 256&lt;/LI&gt;&lt;/UL&gt;&lt;P style="direction: rtl; text-align: left;"&gt;&lt;EM&gt;What was done:&lt;/EM&gt;&lt;/P&gt;&lt;UL style="text-align: left;"&gt;&lt;LI style="direction: rtl;"&gt;Using a 32MHz clock, the needed PWM frequency is 125kHz (=clock/oversampling)&lt;/LI&gt;&lt;LI style="direction: rtl;"&gt;On SCTimer, set the limit counter to 255 (clock/desired frequency -1)&lt;/LI&gt;&lt;LI style="direction: rtl;"&gt;Set match event (SCTimer) to a value taken from lookup table at index i.&lt;/LI&gt;&lt;LI style="direction: rtl;"&gt;Set actions to clear output limit event and set the output for match event.&lt;/LI&gt;&lt;LI style="direction: rtl;"&gt;Then I set an interrupt for limit event&lt;UL&gt;&lt;LI style="direction: rtl;"&gt;On the callback, update lookup index and load a new lookup value to the corresponding MATCHREL register&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P style="direction: rtl; text-align: left;"&gt;&lt;EM&gt;The problem&lt;/EM&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI style="direction: rtl; text-align: left;"&gt;The resulting PWM output with a low pass (22kOhm and 10nF) was supposed to be 488Hz but was much lower.&lt;/LI&gt;&lt;LI style="direction: rtl; text-align: left;"&gt;I assumed the interrupts were handled slowly and so I commented out the driver ISR and rewrote it. In the end I managed to get 13Hz output.&lt;/LI&gt;&lt;/UL&gt;&lt;/BLOCKQUOTE&gt;&lt;P style="direction: ltr;"&gt;// some how i did not managed to upload .C file so I have copy paste it here for you to review:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P style="text-align: left;"&gt;#include "stdint.h"&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;#include "fsl_sctimer.h"&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;#include "fsl_debug_console.h"&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;#include "pin_mux.h"&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;#include "fsl_gpio.h"&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;static const uint8_t lookupTable[LENGTH]={128, 131, 134, 137, 140, 143, 146, 149, 152, 156, 159, 162, 165, 168, 171, 174, 176, 179, 182, 185, 188, 191, 193, 196, 199, 201, 204, 206, 209, 211, 213, 216, 218, 220, 222, 224, 226, 228, 230, 232, 234, 235, 237, 239, 240, 242, 243, 244, 246, 247, 248, 249, 250, 251, 251, 252, 253, 253, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 254, 254, 253, 253, 252, 252, 251, 250, 249, 248, 247, 246, 245, 244, 242, 241, 239, 238, 236, 235, 233, 231, 229, 227, 225, 223, 221, 219, 217, 215, 212, 210, 207, 205, 202, 200, 197, 195, 192, 189, 186, 184, 181, 178, 175, 172, 169, 166, 163, 160, 157, 154, 151, 148, 145, 142, 138, 135, 132, 129, 126, 123, 120, 117, 113, 110, 107, 104, 101, 98, 95, 92, 89, 86, 83, 80, 77, 74, 71, 69, 66, 63, 60, 58, 55, 53, 50, 48, 45, 43, 40, 38, 36, 34, 32, 30, 28, 26, 24, 22, 20, 19, 17, 16, 14, 13, 11, 10, 9, 8, 7, 6, 5, 4, 3, 3, 2, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 2, 2, 3, 4, 4, 5, 6, 7, 8, 9, 11, 12, 13, 15, 16, 18, 20, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 42, 44, 46, 49, 51, 54, 56, 59, 62, 64, 67, 70, 73, 76, 79, 81, 84, 87, 90, 93, 96, 99, 103, 106, 109, 112, 115, 118, 121, 124, 128};&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;static volatile uint8_t increment=1;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;static volatile uint8_t oversamplingCounter=0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;static volatile uint8_t lookupIndex=0,pulsePeriod;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;static volatile uint32_t periodEvent,pulseMatchReg;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;void SCTIMER_EventHandleIRQ(SCT_Type *base){}&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;void SCT0_IRQHandler(){&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;if(++oversamplingCounter==0){&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;SCT0-&amp;gt;SCTMATCHREL[pulseMatchReg] = (uint32_t)pulsePeriod;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;pulsePeriod=lookupTable[++lookupIndex];&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;void init(){&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;sctimer_config_t sctimerInfo;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;uint32_t sctimerClock = CLOCK_GetFreq(kCLOCK_BusClk);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;SCTIMER_GetDefaultConfig(&amp;amp;sctimerInfo);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;SCTIMER_Init(SCT, &amp;amp;sctimerInfo);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;uint32_t period;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;uint32_t pwmFreq_Hz=125000U;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;uint32_t pulseEvent;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;/* Set unify bit to operate in 32-bit counter mode */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;SCT0-&amp;gt;CONFIG |= SCT_CONFIG_UNIFY_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;/* Calculate PWM period match value */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;period = (sctimerClock / pwmFreq_Hz) - 1;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;/* Calculate pulse width match value */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;pulsePeriod = (uint32_t)lookupTable[0];&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;/* Schedule an event when we reach the PWM period */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;SCTIMER_CreateAndScheduleEvent(SCT, kSCTIMER_MatchEventOnly, period, 0, kSCTIMER_Counter_L, &amp;amp;periodEvent);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;/* Schedule an event when we reach the pulse width */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;SCTIMER_CreateAndScheduleEvent(SCT, kSCTIMER_MatchEventOnly, pulsePeriod, 0, kSCTIMER_Counter_L, &amp;amp;pulseEvent);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;/* Retrieve the match register number for the PWM pulse period */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;pulseMatchReg = SCT-&amp;gt;EVENT[pulseEvent].CTRL &amp;amp; SCT_EVENT_CTRL_MATCHSEL_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;/* Reset the counter when we reach the PWM period */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;SCTIMER_SetupCounterLimitAction(SCT, kSCTIMER_Counter_L, periodEvent);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;/* For high-true level */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;/* Set the initial output level to low which is the inactive state */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;SCT0-&amp;gt;OUTPUT &amp;amp;= ~(1U &amp;lt;&amp;lt; kSCTIMER_Out_0);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;/* Set the output when we reach the PWM period */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;SCTIMER_SetupOutputSetAction(SCT, kSCTIMER_Out_0, periodEvent);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;/* Clear the output when we reach the PWM pulse value */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;SCTIMER_SetupOutputClearAction(SCT, kSCTIMER_Out_0, pulseEvent);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;SCTIMER_EnableInterrupts(SCT,1&amp;lt;&amp;lt;pulseEvent);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;PRINTF("%d",SCT-&amp;gt;EVEN);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;NVIC_SetPriority(SCT0_IRQn, 4);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;NVIC_EnableIRQ(SCT0_IRQn);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;SCTIMER_StartTimer(SCT, kSCTIMER_Counter_L);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;PRINTF("PWM started.\r\n");&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-family: inherit;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P style="direction: ltr;"&gt;Thanks in advance&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;Best regards,&lt;/P&gt;&lt;P style="direction: ltr;"&gt;Shai Berman&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Feb 2020 15:59:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/QN9080-PWM-problem/m-p/976592#M8150</guid>
      <dc:creator>shai_b</dc:creator>
      <dc:date>2020-02-03T15:59:41Z</dc:date>
    </item>
    <item>
      <title>Re: QN9080 - PWM problem</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/QN9080-PWM-problem/m-p/976593#M8151</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Shai, I hope you're doing well!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Could you please provide a screen capture of the generated waveform?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Could you please clarify what you mean by "PWM output of sine wave in&amp;nbsp; 488Hz with over sampling of 256?"? Do you want to generate a sine or a square PWM wave?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Sebastian&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 05 Feb 2020 15:46:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/QN9080-PWM-problem/m-p/976593#M8151</guid>
      <dc:creator>Sebastian_Del_Rio</dc:creator>
      <dc:date>2020-02-05T15:46:47Z</dc:date>
    </item>
    <item>
      <title>Re: QN9080 - PWM problem</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/QN9080-PWM-problem/m-p/976594#M8152</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-size: 12.0pt;"&gt;Hi &lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Sebastian&lt;/SPAN&gt;,&lt;BR /&gt;thank you for replying back, please find Attached the waveforms.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-size: 12.0pt;"&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="qn9080_1.jpg"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/103261i944C482B9BEF9AFD/image-size/large?v=v2&amp;amp;px=999" role="button" title="qn9080_1.jpg" alt="qn9080_1.jpg" /&gt;&lt;/span&gt;&lt;BR /&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-size: 12.0pt;"&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="qn9080_2.jpg"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/103309i2AA4DFA146293CE7/image-size/large?v=v2&amp;amp;px=999" role="button" title="qn9080_2.jpg" alt="qn9080_2.jpg" /&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-size: 12.0pt;"&gt;Figure 1 is the direct output of the PWM port and Figure 2 is the output of the &amp;nbsp;1st order RC low pass filter consists of a resistor of 22Okhm and a capacitor of 10nF.&lt;BR /&gt; It can be seen that the output rate is 8uSec (as designed) &amp;nbsp;and the pulse width is changing. However, after the LPF we get very low frequency which means that the PWM in not responds fast according to the required pulse width.&lt;BR /&gt; The output of the PWM is generated from the Sine wave lookup table which is derived through the DDS algorithm.&lt;BR /&gt; &lt;BR /&gt; Please advise back, thanks in advance&lt;BR /&gt; &lt;BR /&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-size: 12.0pt;"&gt;BR,&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;SPAN style="font-size: 12.0pt;"&gt;Shai&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="direction: ltr;"&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 09 Feb 2020 16:48:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/QN9080-PWM-problem/m-p/976594#M8152</guid>
      <dc:creator>shai_b</dc:creator>
      <dc:date>2020-02-09T16:48:15Z</dc:date>
    </item>
    <item>
      <title>Re: QN9080 - PWM problem</title>
      <link>https://community.nxp.com/t5/Wireless-MCU/QN9080-PWM-problem/m-p/976595#M8153</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Shai,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm sorry, but could you please clarify what the issue is a bit more?&lt;/P&gt;&lt;P&gt;I see that on the QN9080's side the PWM wave is being generated as it should, and, if I'm understanding correctly, the duty cycle can be changed without issue.&lt;/P&gt;&lt;P&gt;I believe that the problem could either be with the algorithm used, or with the hardware for the Low-Pass Filter.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Sebastian&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 10 Feb 2020 16:22:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Wireless-MCU/QN9080-PWM-problem/m-p/976595#M8153</guid>
      <dc:creator>Sebastian_Del_Rio</dc:creator>
      <dc:date>2020-02-10T16:22:37Z</dc:date>
    </item>
  </channel>
</rss>

