<?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>i.MX ProcessorsのトピックRe: HSADC</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/HSADC/m-p/434052#M66321</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt; Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;&amp;nbsp; It is correct : to read data, please use HW_HSADC_FIFO_DATA. You may use DISCARD&amp;nbsp; &lt;BR /&gt; bit field of HW_HSADC_CTRL0 to avoid using non-proper data.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;In order to clear the (whole) FIFO, one can apply reset via SFTRST bit of HW_HSADC_CTRL0.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;But it is needed to reconfigure HSADC module after that.&lt;BR /&gt; To check operation complete, hsadc_irq interrupt event may be used. Please refer to Table 5-1 &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;(i.MX28 Interrupt Sources) of the i.MX28 Reference Manual.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;&amp;nbsp; Some data may be lost when CPU polling technique is applied. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt; Please pay attention, when working with HSADC registers bit operations may be performed :&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;clear / set / toggle bit. Please use it to provide bit field masking operations.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;&amp;nbsp; Also, please refer to section 37.4 (Programming Example) of the i.MX28 Reference Manual.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Yuri&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 13 Aug 2015 07:12:35 GMT</pubDate>
    <dc:creator>Yuri</dc:creator>
    <dc:date>2015-08-13T07:12:35Z</dc:date>
    <item>
      <title>HSADC</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/HSADC/m-p/434051#M66320</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Driver for data capture from lradc 6 or hsadc 0 pins&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have written a small driver for capturing data from LRADC6 pin using HSADC. The code for configuring the hsadc is as follows &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;int mxs_hsadc_init()&lt;BR /&gt;{&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;int i;&lt;BR /&gt;unsigned int reg;&lt;BR /&gt;// mxs_hsadc_clk_enable();&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;__raw_writel(BF_CLKCTRL_FRAC1_HSADCFRAC(0x3f), HW_CLKCTRL_BASE_ADDRESS+HW_CLKCTRL_FRAC1_CLR); /* Clear */&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;__raw_writel(BF_CLKCTRL_FRAC1_HSADCFRAC(30), HW_CLKCTRL_BASE_ADDRESS+HW_CLKCTRL_FRAC1_SET); /* Set to 288 MHz*/&lt;BR /&gt;/* Clear the clock gate*/&lt;BR /&gt;__raw_writel(BM_CLKCTRL_FRAC1_CLKGATEHSADC, HW_CLKCTRL_BASE_ADDRESS+HW_CLKCTRL_FRAC1_CLR);&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;/* Set the HSADC CLK ADC divider to ge the Operation clock of 16 MHz*/&lt;BR /&gt;__raw_writel(BM_CLKCTRL_HSADC_RESETB | BF_CLKCTRL_HSADC_FREQDIV( 1 /*CLKCTRL_HSADC_FREQDIV_18*/), HW_CLKCTRL_BASE_ADDRESS+HW_CLKCTRL_HSADC);&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;/* 1st workaround for HSADC */&lt;BR /&gt;__raw_writel(HSADC_CTRL0_RESET,hsadc_base + HSADC_CTRL0_CLR);&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;for (i = 0; i &amp;lt; 10000; i++) {&lt;BR /&gt;reg = __raw_readl(hsadc_base + HSADC_CTRL0);&lt;BR /&gt;if (!(reg &amp;amp; HSADC_CTRL0_RESET))&lt;BR /&gt;break;&lt;BR /&gt;udelay(3);&lt;BR /&gt;}&lt;BR /&gt;__raw_writel(HSADC_CTRL0_RESET &amp;amp; (~HSADC_CTRL0_CLKGATE_OFF), hsadc_base + HSADC_CTRL0_SET);&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;__raw_writel(HSADC_CTRL0_CLKGATE_OFF,hsadc_base + HSADC_CTRL0_SET);&lt;BR /&gt;__raw_writel(HSADC_CTRL0_CLKGATE_OFF,hsadc_base + HSADC_CTRL0_CLR);&lt;BR /&gt;__raw_writel(HSADC_CTRL0_CLKGATE_OFF,hsadc_base + HSADC_CTRL0_SET);&lt;BR /&gt;/* 1st workaround for HSADC */&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;// __raw_writel(HSADC_CTRL0_CLKGATE_OFF,hsadc_base + HSADC_CTRL0_CLR);&lt;BR /&gt;__raw_writel(HSADC_CTRL0_RESET,hsadc_base + HSADC_CTRL0_CLR);&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;for (i = 0; i &amp;lt; 10000; i++) {&lt;BR /&gt;reg = __raw_readl(hsadc_base + HSADC_CTRL0);&lt;BR /&gt;if (!(reg &amp;amp; HSADC_CTRL0_RESET))&lt;BR /&gt;break;&lt;BR /&gt;udelay(3);&lt;BR /&gt;}&lt;BR /&gt;__raw_writel(HSADC_CTRL0_CLKGATE_OFF,hsadc_base + HSADC_CTRL0_CLR);&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;/*Disable the interrupts*/&lt;BR /&gt;__raw_writel(HSADC_INTR_CTRL_TIMEOUT_ENB ,hsadc_base + HSADC_CTRL1_CLR);&lt;BR /&gt;__raw_writel(HSADC_INTR_CTRL_END_SEQ_ENB,hsadc_base + HSADC_CTRL1_CLR);&lt;BR /&gt;__raw_writel(HSADC_INTR_CTRL_ADC_DONE_ENB,hsadc_base + HSADC_CTRL1_CLR);&lt;BR /&gt;__raw_writel(HSADC_INTR_CTRL_FIFO_OVFW_ENB,hsadc_base + HSADC_CTRL1_CLR);&lt;BR /&gt;__raw_writel(HSADC_INTR_CLR,hsadc_base + HSADC_CTRL1_SET);&lt;BR /&gt;__raw_writel(HSADC_INTR_STATUS_CLR,hsadc_base + HSADC_CTRL1_SET);&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;/* HSADC is set to SINGLE Mode*/&lt;BR /&gt;reg = 0x1;&lt;BR /&gt;__raw_writel(reg , hsadc_base +HSADC_SEQ_NUM);&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;/*Number of samples*/&lt;BR /&gt;reg = 0x1;&lt;BR /&gt;__raw_writel(reg , hsadc_base +HSADC_SEQ_SAM_NUM);&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;/*Power Register config */&lt;BR /&gt;reg =0x84000626;&lt;BR /&gt;__raw_writel(reg , REGS_POWER_BASE + HW_POWER_ANACLKCTRL);&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;/* Wake up from power down mode */&lt;BR /&gt;__raw_writel(HSADC_CTRL2_POWER_DOWN,hsadc_base + HSADC_CTRL2_CLR);&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;/*Set PreCharge Enable */&lt;BR /&gt;__raw_writel(HSADC_CTRL2_PRECHARGE,hsadc_base + HSADC_CTRL2_SET);&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;/*Set HSADC_RUN mode*/&lt;BR /&gt;__raw_writel(HSADC_CTRL0_RUN,hsadc_base + HSADC_CTRL0_SET);&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;return 0; &lt;BR /&gt;}&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;this code is from a another post in this community only. The hsadc is configured and i am able to read the status of control and debug registers. &lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;The values that i get in case of single sample capture and total one sequence (configured in single capture mode) is as follows&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;The values posted here are in hex&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;ctrl0 reg : 40&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;ctrl1 : f0000003&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;The run bit for ctrl0 register is set in the code handling capture data. But after a number of capture of data the status of the ctrl registers change to &lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;ctrl0 reg : 41 &lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;ctrl1 reg : f000001b which implies fifo overflow. Is there any way to clear the fifo data because it is not given in the hsadc documentation. I am reading the HW_HSADC_FIFO_DATA register to read the data. IS it the correct way of reading data from the Hsadc&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;&lt;/P&gt;&lt;P style="font-family: arial, helvetica, 'helvetica neue', verdana, sans-serif; color: #51626f;"&gt;I am also clearing the interrupt status by setting the corresponding bits.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 12 Aug 2015 09:00:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/HSADC/m-p/434051#M66320</guid>
      <dc:creator>imravi</dc:creator>
      <dc:date>2015-08-12T09:00:46Z</dc:date>
    </item>
    <item>
      <title>Re: HSADC</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/HSADC/m-p/434052#M66321</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt; Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;&amp;nbsp; It is correct : to read data, please use HW_HSADC_FIFO_DATA. You may use DISCARD&amp;nbsp; &lt;BR /&gt; bit field of HW_HSADC_CTRL0 to avoid using non-proper data.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;In order to clear the (whole) FIFO, one can apply reset via SFTRST bit of HW_HSADC_CTRL0.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;But it is needed to reconfigure HSADC module after that.&lt;BR /&gt; To check operation complete, hsadc_irq interrupt event may be used. Please refer to Table 5-1 &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;(i.MX28 Interrupt Sources) of the i.MX28 Reference Manual.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;&amp;nbsp; Some data may be lost when CPU polling technique is applied. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt; Please pay attention, when working with HSADC registers bit operations may be performed :&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;clear / set / toggle bit. Please use it to provide bit field masking operations.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;&amp;nbsp; Also, please refer to section 37.4 (Programming Example) of the i.MX28 Reference Manual.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Yuri&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Aug 2015 07:12:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/HSADC/m-p/434052#M66321</guid>
      <dc:creator>Yuri</dc:creator>
      <dc:date>2015-08-13T07:12:35Z</dc:date>
    </item>
  </channel>
</rss>

