<?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 ADC using FIRC as system clock in S32K</title>
    <link>https://community.nxp.com/t5/S32K/ADC-using-FIRC-as-system-clock/m-p/849167#M3508</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am trying to perform ADC Conversion with out using Processor Expert.&lt;/P&gt;&lt;P&gt;Below is the program which I have used.&lt;/P&gt;&lt;P&gt;When I execute the code, the program counter gets struck at the while(adc_complete()==0) check.&lt;/P&gt;&lt;P&gt;Which means, conversion is not happening.&lt;/P&gt;&lt;P&gt;Can anyone help me with a solution for this.&lt;/P&gt;&lt;P&gt;I guess, I am doing some mistake in the Clock initialization for ADC.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void &lt;STRONG&gt;main&lt;/STRONG&gt;(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;SlowRUNmode_FIRC_48MHz();&lt;/STRONG&gt;&lt;BR /&gt; PORT_init(); /* Init ports */&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;ADC_init();&lt;/STRONG&gt; /* Init ADC resolution 12 bit*/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;for(;;)&lt;/P&gt;&lt;P&gt;{&lt;BR /&gt;&lt;STRONG&gt;convertAdcChan(11);&lt;/STRONG&gt; /* Convert Channel AD12 to pot on EVB */&lt;BR /&gt; &lt;STRONG&gt;while&lt;/STRONG&gt;(adc_complete()==0){} /* Wait for conversion complete flag */&lt;BR /&gt; adcResultInMv_pot = read_adc_chx(); /* Get channel's conversion results in mv */&lt;/P&gt;&lt;P&gt;if ((adcResultInMv_pot &amp;gt;= 4650)&amp;amp;&amp;amp;(prechargedone == 0))&lt;BR /&gt; {PTE-&amp;gt;PSOR |= 1&amp;lt;&amp;lt;PTE9;&lt;BR /&gt;}&lt;BR /&gt; convertAdcChan(29); /* Convert chan 29, Vrefsh */&lt;BR /&gt; while(adc_complete()==0){} /* Wait for conversion complete flag */&lt;BR /&gt; adcResultInMv_Vrefsh = read_adc_chx(); /* Get channel's conversion results in mv */&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void &lt;STRONG&gt;SlowRUNmode_FIRC_48MHz&lt;/STRONG&gt;(void)&lt;/P&gt;&lt;P&gt;{&lt;BR /&gt; SCG-&amp;gt;RCCR=SCG_RCCR_SCS(3) /* FIRC as clock source*/&lt;BR /&gt; |SCG_RCCR_DIVCORE(0b00) /* DIVCORE=0, div. by 1: Core clock = 48/1 MHz = 48 MHz*/&lt;BR /&gt; |SCG_RCCR_DIVBUS(0b00) /* DIVBUS=0, div. by 1: bus clock = 24 MHz*/&lt;BR /&gt; |SCG_RCCR_DIVSLOW(0b01); /* DIVSLOW=1, div. by 2: SCG slow, flash clock= 26 2/3 MHz*/&lt;BR /&gt; while (((SCG-&amp;gt;CSR &amp;amp; SCG_CSR_SCS_MASK) &amp;gt;&amp;gt; SCG_CSR_SCS_SHIFT ) != 3) {}&lt;BR /&gt; /* Wait for sys clk src = FIRC */&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;void ADC_init(void)&lt;/STRONG&gt; {&lt;BR /&gt; PCC-&amp;gt;PCCn[PCC_ADC0_INDEX] &amp;amp;=~ PCC_PCCn_CGC_MASK; /* Disable clock to change PCS */&lt;BR /&gt;PCC-&amp;gt;PCCn[PCC_ADC0_INDEX] |= PCC_PCCn_PCS(0b011); /* PCS=0b11: Select FIRC */&lt;BR /&gt; PCC-&amp;gt;PCCn[PCC_ADC0_INDEX] |= PCC_PCCn_CGC_MASK; /* Enable bus clock in ADC */&lt;/P&gt;&lt;P&gt;ADC0-&amp;gt;SC1[0] =0x00001F; /* ADCH=1F: Module is disabled for conversions*/&lt;BR /&gt; &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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* AIEN=0: Interrupts are disabled */&lt;BR /&gt;ADC0-&amp;gt;CFG1 = 0x000000044;&lt;/P&gt;&lt;P&gt;ADC0-&amp;gt;CFG2 = 0x0000000EF;&amp;nbsp;&lt;/P&gt;&lt;P&gt;ADC0-&amp;gt;SC2 = 0x00000000; /* ADTRG=0: SW trigger */&lt;BR /&gt; &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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* ACFE,ACFGT,ACREN=0: Compare func disabled */&lt;BR /&gt; &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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* DMAEN=0: DMA disabled */&lt;BR /&gt; &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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* REFSEL=0: Voltage reference pins= VREFH, VREEFL */&lt;BR /&gt; ADC0-&amp;gt;SC3 = 0x00000000; /* CAL=0: Do not start calibration sequence */&lt;BR /&gt; &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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* ADCO=0: One conversion performed */&lt;BR /&gt; &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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* AVGE,AVGS=0: HW average function disabled */&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void convertAdcChan(uint16_t adcChan)&lt;/P&gt;&lt;P&gt;{ /* For SW trigger mode, SC1[0] is used */&lt;BR /&gt; ADC0-&amp;gt;SC1[0]&amp;amp;=~ADC_SC1_ADCH_MASK; /* Clear prior ADCH bits */&lt;BR /&gt; ADC0-&amp;gt;SC1[0] = ADC_SC1_ADCH(adcChan); /* Initiate Conversion*/&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;uint8_t adc_complete(void)&lt;/P&gt;&lt;P&gt;{&lt;BR /&gt; return ((ADC0-&amp;gt;SC1[0] &amp;amp; ADC_SC1_COCO_MASK)&amp;gt;&amp;gt;ADC_SC1_COCO_SHIFT); /* Wait for completion */&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;uint32_t read_adc_chx(void)&lt;/P&gt;&lt;P&gt;{&lt;BR /&gt; uint16_t adc_result=0;&lt;BR /&gt; adc_result=ADC0-&amp;gt;R[0]; /* For SW trigger mode, R[0] is used */&lt;BR /&gt; return (uint32_t) ((5000*adc_result)/0xFFF); /* Convert result to mv for 0-5V range */&lt;BR /&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 11 Oct 2018 08:59:00 GMT</pubDate>
    <dc:creator>sunilkumarc</dc:creator>
    <dc:date>2018-10-11T08:59:00Z</dc:date>
    <item>
      <title>ADC using FIRC as system clock</title>
      <link>https://community.nxp.com/t5/S32K/ADC-using-FIRC-as-system-clock/m-p/849167#M3508</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am trying to perform ADC Conversion with out using Processor Expert.&lt;/P&gt;&lt;P&gt;Below is the program which I have used.&lt;/P&gt;&lt;P&gt;When I execute the code, the program counter gets struck at the while(adc_complete()==0) check.&lt;/P&gt;&lt;P&gt;Which means, conversion is not happening.&lt;/P&gt;&lt;P&gt;Can anyone help me with a solution for this.&lt;/P&gt;&lt;P&gt;I guess, I am doing some mistake in the Clock initialization for ADC.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void &lt;STRONG&gt;main&lt;/STRONG&gt;(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;SlowRUNmode_FIRC_48MHz();&lt;/STRONG&gt;&lt;BR /&gt; PORT_init(); /* Init ports */&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;ADC_init();&lt;/STRONG&gt; /* Init ADC resolution 12 bit*/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;for(;;)&lt;/P&gt;&lt;P&gt;{&lt;BR /&gt;&lt;STRONG&gt;convertAdcChan(11);&lt;/STRONG&gt; /* Convert Channel AD12 to pot on EVB */&lt;BR /&gt; &lt;STRONG&gt;while&lt;/STRONG&gt;(adc_complete()==0){} /* Wait for conversion complete flag */&lt;BR /&gt; adcResultInMv_pot = read_adc_chx(); /* Get channel's conversion results in mv */&lt;/P&gt;&lt;P&gt;if ((adcResultInMv_pot &amp;gt;= 4650)&amp;amp;&amp;amp;(prechargedone == 0))&lt;BR /&gt; {PTE-&amp;gt;PSOR |= 1&amp;lt;&amp;lt;PTE9;&lt;BR /&gt;}&lt;BR /&gt; convertAdcChan(29); /* Convert chan 29, Vrefsh */&lt;BR /&gt; while(adc_complete()==0){} /* Wait for conversion complete flag */&lt;BR /&gt; adcResultInMv_Vrefsh = read_adc_chx(); /* Get channel's conversion results in mv */&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void &lt;STRONG&gt;SlowRUNmode_FIRC_48MHz&lt;/STRONG&gt;(void)&lt;/P&gt;&lt;P&gt;{&lt;BR /&gt; SCG-&amp;gt;RCCR=SCG_RCCR_SCS(3) /* FIRC as clock source*/&lt;BR /&gt; |SCG_RCCR_DIVCORE(0b00) /* DIVCORE=0, div. by 1: Core clock = 48/1 MHz = 48 MHz*/&lt;BR /&gt; |SCG_RCCR_DIVBUS(0b00) /* DIVBUS=0, div. by 1: bus clock = 24 MHz*/&lt;BR /&gt; |SCG_RCCR_DIVSLOW(0b01); /* DIVSLOW=1, div. by 2: SCG slow, flash clock= 26 2/3 MHz*/&lt;BR /&gt; while (((SCG-&amp;gt;CSR &amp;amp; SCG_CSR_SCS_MASK) &amp;gt;&amp;gt; SCG_CSR_SCS_SHIFT ) != 3) {}&lt;BR /&gt; /* Wait for sys clk src = FIRC */&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;void ADC_init(void)&lt;/STRONG&gt; {&lt;BR /&gt; PCC-&amp;gt;PCCn[PCC_ADC0_INDEX] &amp;amp;=~ PCC_PCCn_CGC_MASK; /* Disable clock to change PCS */&lt;BR /&gt;PCC-&amp;gt;PCCn[PCC_ADC0_INDEX] |= PCC_PCCn_PCS(0b011); /* PCS=0b11: Select FIRC */&lt;BR /&gt; PCC-&amp;gt;PCCn[PCC_ADC0_INDEX] |= PCC_PCCn_CGC_MASK; /* Enable bus clock in ADC */&lt;/P&gt;&lt;P&gt;ADC0-&amp;gt;SC1[0] =0x00001F; /* ADCH=1F: Module is disabled for conversions*/&lt;BR /&gt; &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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* AIEN=0: Interrupts are disabled */&lt;BR /&gt;ADC0-&amp;gt;CFG1 = 0x000000044;&lt;/P&gt;&lt;P&gt;ADC0-&amp;gt;CFG2 = 0x0000000EF;&amp;nbsp;&lt;/P&gt;&lt;P&gt;ADC0-&amp;gt;SC2 = 0x00000000; /* ADTRG=0: SW trigger */&lt;BR /&gt; &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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* ACFE,ACFGT,ACREN=0: Compare func disabled */&lt;BR /&gt; &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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* DMAEN=0: DMA disabled */&lt;BR /&gt; &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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* REFSEL=0: Voltage reference pins= VREFH, VREEFL */&lt;BR /&gt; ADC0-&amp;gt;SC3 = 0x00000000; /* CAL=0: Do not start calibration sequence */&lt;BR /&gt; &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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* ADCO=0: One conversion performed */&lt;BR /&gt; &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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/* AVGE,AVGS=0: HW average function disabled */&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void convertAdcChan(uint16_t adcChan)&lt;/P&gt;&lt;P&gt;{ /* For SW trigger mode, SC1[0] is used */&lt;BR /&gt; ADC0-&amp;gt;SC1[0]&amp;amp;=~ADC_SC1_ADCH_MASK; /* Clear prior ADCH bits */&lt;BR /&gt; ADC0-&amp;gt;SC1[0] = ADC_SC1_ADCH(adcChan); /* Initiate Conversion*/&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;uint8_t adc_complete(void)&lt;/P&gt;&lt;P&gt;{&lt;BR /&gt; return ((ADC0-&amp;gt;SC1[0] &amp;amp; ADC_SC1_COCO_MASK)&amp;gt;&amp;gt;ADC_SC1_COCO_SHIFT); /* Wait for completion */&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;uint32_t read_adc_chx(void)&lt;/P&gt;&lt;P&gt;{&lt;BR /&gt; uint16_t adc_result=0;&lt;BR /&gt; adc_result=ADC0-&amp;gt;R[0]; /* For SW trigger mode, R[0] is used */&lt;BR /&gt; return (uint32_t) ((5000*adc_result)/0xFFF); /* Convert result to mv for 0-5V range */&lt;BR /&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 11 Oct 2018 08:59:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/ADC-using-FIRC-as-system-clock/m-p/849167#M3508</guid>
      <dc:creator>sunilkumarc</dc:creator>
      <dc:date>2018-10-11T08:59:00Z</dc:date>
    </item>
    <item>
      <title>Re: ADC using FIRC as system clock</title>
      <link>https://community.nxp.com/t5/S32K/ADC-using-FIRC-as-system-clock/m-p/849168#M3509</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Sunil,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You are right, in your code is missing FIRC initialization. Just&amp;nbsp;call below function&amp;nbsp;above&amp;nbsp;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;SlowRUNmode_FIRC_48MHz();&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void FIRC_init_48MHz(void)&lt;BR /&gt;{&lt;BR /&gt;SCG-&amp;gt;FIRCCSR = 0x00000000; //FIRCCEN=0: SIRC is disabled (default) for write&lt;BR /&gt;SCG-&amp;gt;FIRCDIV = 0x00000101; //FIRCDIV1 &amp;amp; FIRCDIV2 divide by 1, max in HSRUN/RUN is 48MHz&lt;BR /&gt;SCG-&amp;gt;FIRCCFG = 0x00000000; //Range 48MHz&lt;BR /&gt;SCG-&amp;gt;FIRCCSR = 0x00000001; //LK=0: FIRCCSR can be written&lt;BR /&gt;//FIRCCEN=1: Enable SIRC&lt;BR /&gt;while(!(SCG-&amp;gt;FIRCCSR &amp;amp; SCG_FIRCCSR_FIRCVLD_MASK)); // Wait for FIRC valid&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I believe it helps you.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Just the note:&lt;/P&gt;&lt;P&gt;The&amp;nbsp;comments in the&amp;nbsp;&lt;SPAN&gt;SlowRUNmode_FIRC_48MHz() function is not correct.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;According to your settings, there should be:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;DIVCORE=0, div. by 1: Core clock = 48/1 MHz = 48 MHz&lt;/P&gt;&lt;P&gt;DIVBUS=0, div. by 1: bus clock =&amp;nbsp;48 MHz&lt;BR /&gt;DIVSLOW=1, div. by 2: SCG slow, flash clock=&amp;nbsp;24 MHz&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Diana&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 16 Oct 2018 12:20:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/ADC-using-FIRC-as-system-clock/m-p/849168#M3509</guid>
      <dc:creator>dianabatrlova</dc:creator>
      <dc:date>2018-10-16T12:20:30Z</dc:date>
    </item>
    <item>
      <title>Re: ADC using FIRC as system clock</title>
      <link>https://community.nxp.com/t5/S32K/ADC-using-FIRC-as-system-clock/m-p/849169#M3510</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Diana for the reply.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 30 Nov 2018 05:23:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/ADC-using-FIRC-as-system-clock/m-p/849169#M3510</guid>
      <dc:creator>sunilkumarc</dc:creator>
      <dc:date>2018-11-30T05:23:44Z</dc:date>
    </item>
  </channel>
</rss>

