原创 W7100例程学习之ADC应用

2012-2-21 08:57 1002 14 14 分类: MCU/ 嵌入式

 

 

    W7100没有内置的ADC。这篇文章将简单介绍一下,如何用W7100控制一个串行接口的12-bit分辨率的ADC (MCP3202).

    (一)电路图:

    1.jpg

 

2.jpg

 

这里贴出了W7100与ADC的电路图。电路图中的其他链接可参考iMCU7100EVB Schematic materials

(二) 代码:

//---------------------------------------
// read analog from ADC
// Single end MSB first mode(2 channel)
//---------------------------------------
unsigned int ReadADC(unsigned char channel)
{
   unsigned char i;
   unsigned int AdcResult;  // 12 bit

   AI_CS=0;   // Active chip select
   AIO_CLK=0;  // make clock low first   
  

   channel = channel? 0xF0 : 0xD0;   // It means:
                                      // if (channel==true) channel=0xF0;
           // else channel=0xD0;
 

   //--- write command 4 bit ----------
   for(i=0; i< 4;i++) 
   {
    AIO_DI = (channel & 0x80) != 0;
 wait_1us(1);
 channel<<=1;
 AIO_CLK=1;
 wait_1us(1);
    AIO_CLK=0;
   }

wait_1us(1);

   AIO_CLK=1;
wait_1us(1);

   AIO_CLK=0;

   //--- read ADC result 12 bit --------
   AdcResult=0;
   for(i=0;i<12;i++) 
   {      
      AIO_CLK=1;
 wait_1us(1);

      AdcResult<<=1;
      AdcResult=AdcResult | (AI_DO & 0x01);         
      AIO_CLK=0;
 wait_1us(1);

   }
   AI_CS=1;
   
   wait_1us(1);
   return(AdcResult); 
}

(三)MCP3202应用指导

1. 引脚分布:

 

3.jpg

 

2. 控制信号与数据输出

 

4.jpg

 

 

 

5.jpg
 
如果您有什么疑问请直接留言也可以登录我们的官网:http://www.wiznet.co.kr/
 
或者来信:wiznetbj@wiznettechnology.com ,Tel: 86-10-84539974(转166)谢谢!

 

 

文章评论0条评论)

登录后参与讨论
我要评论
0
14
关闭 站长推荐上一条 /2 下一条