<?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: Question about MPC5744P ADC Calibration? in MPC5xxx</title>
    <link>https://community.nxp.com/t5/MPC5xxx/Question-about-MPC5744P-ADC-Calibration/m-p/770936#M11071</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, probably yes, because calibration uses internal channels thus there in no need to have configured input pads.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 07 Dec 2017 10:14:49 GMT</pubDate>
    <dc:creator>davidtosenovjan</dc:creator>
    <dc:date>2017-12-07T10:14:49Z</dc:date>
    <item>
      <title>Question about MPC5744P ADC Calibration?</title>
      <link>https://community.nxp.com/t5/MPC5xxx/Question-about-MPC5744P-ADC-Calibration/m-p/770935#M11070</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;NXP Expert,&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;The below code is from NXP DEVKIT- MPC5744P example S32DS project ADC_MPC5744P.&lt;/DIV&gt;&lt;DIV&gt;My question is inside the main() Can I switch the two function calls below:&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="display: inline !important; float: none; background-color: transparent; color: #3d3d3d; font-family: Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 25.95px; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"&gt;&amp;nbsp;ADC1_PadConfig_ChanSelect();&amp;nbsp; /* Configure ADC pads &amp;amp; select scan channels */&lt;/SPAN&gt;&lt;BR style="background-attachment: scroll; background-clip: border-box; background-color: transparent; background-image: none; background-origin: padding-box; background-position-x: 0%; background-position-y: 0%; background-repeat: repeat; background-size: auto; color: #3d3d3d; font-family: Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 25.95px; min-height: 0px; orphans: 2; overflow: visible; overflow-x: visible; position: static; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px; padding: 0px; margin: 0px;" /&gt;&lt;SPAN style="display: inline !important; float: none; background-color: transparent; color: #3d3d3d; font-family: Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 25.95px; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"&gt;&amp;nbsp;ADC1_Calibration();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Calibrate to compensate for variations */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="display: inline !important; float: none; background-color: transparent; color: #3d3d3d; font-family: Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 25.95px; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"&gt;to make it:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="display: inline !important; float: none; background-color: transparent; color: #3d3d3d; font-family: Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 25.95px; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"&gt;&amp;nbsp;&lt;SPAN style="display: inline !important; float: none; background-color: transparent; color: #3d3d3d; font-family: Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 25.95px; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"&gt;ADC1_Calibration();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Calibrate to compensate for variations */&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="display: inline !important; float: none; background-color: transparent; color: #3d3d3d; font-family: Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 25.95px; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"&gt;&lt;SPAN style="display: inline !important; float: none; background-color: transparent; color: #3d3d3d; font-family: Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 25.95px; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"&gt;ADC1_PadConfig_ChanSelect();&amp;nbsp; /* Configure ADC pads &amp;amp; select scan channels */&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;?&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;\..\MPC574xP Quick Start Package Rev6\Code Project Examples for MPC574xP\ADC_MPC5744P&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;int main(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;int counter = 0;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;xcptn_xmpl ();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Configure and Enable Interrupts */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;peri_clock_gating();&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Configure gating/enabling peri. clocks for modes*/&lt;BR /&gt;&amp;nbsp;system160mhz();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* sysclk=160MHz, dividers configured, mode trans*/&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;LED_Config();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Assign LED ports on Freescale LED as GPIO outputs*/&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;MC_CGM.AC0_SC.B.SELCTL = 0b10; //Select PLL0_PHI as source of ADC analog clock&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;MC_CGM.AC0_DC2.R = 0x80040000; //Enable ADC_CLK and divide PLL0_PHI source by 5 (i.e. 4+1)&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;&amp;nbsp;ADC1_PadConfig_ChanSelect();&amp;nbsp; /* Configure ADC pads &amp;amp; select scan channels */&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&amp;nbsp;ADC1_Calibration();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Calibrate to compensate for variations */&lt;/STRONG&gt;&lt;BR /&gt;&amp;nbsp;ADC1_Init();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Initialize ADC1 module &amp;amp; start normal scan mode */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;for(;;) {&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;counter++;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;if (ADC_1.ISR.B.ECH) { /* If normal scan channels finished converting */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ADC1_Read_Chan();&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Read conversion results */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; update_LEDs();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Update LEDs with scaled chan 1 result */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ADC_1.ISR.R = 0x00000001; /* Clear End of CHain (ECH) status bit */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;return 0;&lt;BR /&gt;}&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;void &lt;STRONG&gt;ADC1_PadConfig_ChanSelect&lt;/STRONG&gt;(void) { /* Config ADC pads &amp;amp; select scan chans */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Note:&amp;nbsp; MSCR.SSS configuration&amp;nbsp; is not needed for inputs if there is&amp;nbsp; */&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; no SSS value is in signal spreadsheet */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Note:&amp;nbsp; ADC1 Channel 6 on PE12 is connected to XDEVKIT-MPC5744P potentiometer. */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;SIUL2.MSCR[PE12].B.APC = 1; //Configure ADC1_AN6 to analog pad control function. Analog is default function so SSS says 0&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;ADC_1.NCMR0.B.CH6 = 1; //Enable channel 6 for normal conversion on ADC1&lt;BR /&gt;}&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;void &lt;STRONG&gt;ADC1_Calibration(void&lt;/STRONG&gt;&lt;EM&gt;)&lt;/EM&gt; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Steps below are from reference manual */&lt;BR /&gt;&amp;nbsp; uint32_t ADC1_Calibration_Failed = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Calibration has not passed yet */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; ADC_1.MCR.B.PWDN = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Power down for starting calibration process */&lt;BR /&gt;&amp;nbsp; ADC_1.MCR.B.ADCLKSEL = 0; /* ADC clock = bus clock/2 (80/2 MHz FS80) */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Note: Calibration requires it to be set at max 40MHz for best results */&lt;BR /&gt;&amp;nbsp; ADC_1.CALBISTREG.B.TEST_EN = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Enable calibration test */&lt;BR /&gt;&amp;nbsp; ADC_1.MCR.B.PWDN = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Power back up for calibration test to start */&lt;BR /&gt;&amp;nbsp; while(ADC_1.CALBISTREG.B.C_T_BUSY);&amp;nbsp; /* Wait for calibration to finish */&lt;BR /&gt;&amp;nbsp; if(ADC_1.MSR.B.CALIBRTD) {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* If calibration ran successfully */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ADC1_Calibration_Failed = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Calibration was successful */&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; else&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ADC1_Calibration_Failed = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Calibration was not successful */&lt;BR /&gt;&amp;nbsp; }&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; if(ADC1_Calibration_Failed){} //Functionally useless statement to make compiler happy&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;Another information in your AN4881:&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;6. SAR ADC initialization example&lt;/STRONG&gt;&lt;BR /&gt;To initialize the SAR ADC, the following steps must be completed as a minimum:&lt;/DIV&gt;&lt;DIV&gt;&lt;STRONG&gt;1. Configure input pads and ADC normal conversion registers&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;2. Calibrate the ADC&lt;/STRONG&gt;&lt;BR /&gt;3. Initialize SAR ADC modes and clock&lt;BR /&gt;4. Power on the ADC and start conversions&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;My similar question is Can switch order of 1. and 2. above?&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;Thank you.&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;Susan Li&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 07 Dec 2017 02:09:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/Question-about-MPC5744P-ADC-Calibration/m-p/770935#M11070</guid>
      <dc:creator>liwuquan</dc:creator>
      <dc:date>2017-12-07T02:09:32Z</dc:date>
    </item>
    <item>
      <title>Re: Question about MPC5744P ADC Calibration?</title>
      <link>https://community.nxp.com/t5/MPC5xxx/Question-about-MPC5744P-ADC-Calibration/m-p/770936#M11071</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, probably yes, because calibration uses internal channels thus there in no need to have configured input pads.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 07 Dec 2017 10:14:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/Question-about-MPC5744P-ADC-Calibration/m-p/770936#M11071</guid>
      <dc:creator>davidtosenovjan</dc:creator>
      <dc:date>2017-12-07T10:14:49Z</dc:date>
    </item>
  </channel>
</rss>

