热度 14
2012-2-21 08:57
1005 次阅读|
0 个评论
W7100没有内置的ADC。这篇文章将简单介绍一下,如何用W7100控制一个串行接口的12-bit分辨率的ADC (MCP3202). (一)电路图: 这里贴出了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;i12;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. 引脚分布: 2. 控制信号与数据输出 如果您有什么疑问请直接留言也可以登录我们的官网: http://www.wiznet.co.kr/ 或者来信: wiznetbj@wiznettechnology.com ,Tel: 86-10-84539974(转166)谢谢!