查看: 2090  |  回复: 1
M0+MAC+TCP/IP 以太网单芯片方案 W7500EVB用户手册连载(14)--实战...
WSGustin
29
主题
48
回复
发表于2018-03-13 17:48:46 | 显示全部楼层
1# 电梯直达
W7500(W7500P)芯片简介: 
W7500 芯片为工业级以太网单芯片解决方案, 集成 ARM Cortex-M0,128KB Flash 及全硬件TCP/IP 核(和W5500、W5100内核一致),特别适用于物联网领域。 使用 W7500EVB, 让您轻松完成原型开发。

本章将向大家介绍 W7500 ADC 功能。本章,将利用 W7500 ADC的通道 1 来采样,并在 OLED 模块上显示出来。

想了解更多关于WIZnet W7500更多信息,或者有技术问题请联系我们:gustin@wisioe.com
深圳炜世科技—WIZnet官方代理商,全程技术支持,价格绝对优势!
电话:0755-86568556
邮箱:support@wisioe.com
WSGustin
29
主题
48
回复
发表于2018-03-13 18:01:26   |  显示全部楼层
2#

第十五章 ADC试验

本章将向大家介绍 W7500 ADC 功能。本章,将利用 W7500 ADC的通道 1 来采样,并在 OLED 模块上显示出来。
本章将分为如下几个部分:
15.1 W7500 ADC
简介
15.2
硬件设计
15.3
软件设计
15.4
下载验证


15.1 W7500 ADC 简介

W7500 拥有1 ADC,这个 ADC 可以独立使用,也可以使用双重模式(提高采样率)。W7500 ADC 12 位逐次逼近型的模拟数字转换器。它有8个通道。各通道的 A/D 转换可以单次、连续、扫描或间断模式执行。 ADC 的结果可以左对齐或右对齐方式存储在 16 位数据寄存器中。 模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。

W7500的 ADC 最大的转换速率为 1Mhz,也就是转换时间为 1us(在 ADCCLK=14M,采样周期为1.5 ADC 时钟下得到),不要让 ADC 的时钟超过 14M,否则将导致结果准确度下降。

特点

u  12 位配置分辨率

u  转换时间 : 最大 10MHz (采样时间可编译)

u  8 通道模拟输入
    CH0 : PC_15
    CH1 : PC_14
    CH2 : PC_13
    CH3 : PC_12
    CH4 : PC_11
    CH5 : PC_10
    CH6 : PC_09
    CH7 : PC_08
1
通道内部 LDO(1.5v) 电压
   CH15 :
内部电压

u  模数转换可以由软件启用,每次触发都会对选定的输入进行转换,模数转换结束后会产生中断。

ADC的操作

1、 ADC 在运行前需要进行初始化,初始化ADC,需先清除 PWD 位。
2
、 可选 ADC 通道为 0-7 15 (初始内核电压)
3
、 检查 INT 位了解模数转换完成情况。
4
、 如果 INT 位置高 (1), ADC 转换数据。
5
、 最后, ADC 操作通过设置 PWD 位结束。

 


15.1.1 W7500 无中断ADC初始化流程

15.2 硬件设计

本实验用到的硬件资源有:

1)      OLED 屏幕

2)      ADC

3)      MH Sensor Senies模块

ADC 属于 W7500 内部资源,实际上只需要软件设置就可以正常工作,不过需要在外部连接其端口到被测电压上面。本章,通过ADC的通道1P14)来读取MH Sensor Senies模块采集到的数据通过OLED屏来显示。

15.3 软件设计

打开 ADC 转换实验,可以看到main.c中多了一个ADC_Init函数。相关的库函数是在 W7500x_adc.c 文件和W7500x_adc.h 文件中。

打开main.c, 可以看到代码如下:

int main()
{
   /* 炜世科技—WIZnet W7500官方代理商,全程技术支持,价格绝对优势! */  
  double data;
  uint8_t tmp,luminance[6] = "\0";
  SystemInit();                      /* 系统内部时钟初始化 */
  delay_init();                      /* 系统滴答时钟配置*/
  GPIO_Configuration();              /* DHT11管脚初始化 */
  SSP_Configuration();               /* SPI0配置初始化 */
  OLED_Init();                       /* OLED屏配置初始化 */
  ADC_Init(ADC_CH1);                 /* 初始化ADC通道1 */            
  OLED_Show_Hybrid(0, 0, (uint8_t*)"炜世科技W7500EVB");

  while(1)
  {
    ADC_Start();
    data = ADC_ReadData();
    data = (double)((data/4095)*100);
    tmp = 100 - data;
    luminance[0] = 'L';
    luminance[1] = ':';
    luminance[2] = tmp/10 + '0';
    luminance[3] = tmp%10 + '0';
    luminance[4] = '%';
    luminance[5] = '\0';
    OLED_Show_Hybrid(5, 40, (uint8_t*)luminance);           
  }
}


15.4 下载试验

在代码编译成功之后,下载代码到 W7500EVB 开发板上,可以看到OLED 显示,如图15.4.1所示:

 

15.4.1 W7500EVB ADC试验结果

ADC 通道1MH Sensor Senies模块连接在一起,可以看到MH Sensor Senies模块采集到周围的光照程度。


主题

回复
  • 温馨提示: 标题不合格、重复发帖、发布广告贴,将会被删除帖子或禁止发言。 详情请参考: 社区发帖规则
  • 您当前输入了 0 个文字。还可以输入 8000 个文字。 已添加复制上传图片功能,该功能目前仅支持chrome和火狐

禁言/删除

X
请选择禁言时长:
是否清除头像:
禁言/删除备注:
昵 称:
 
温馨提示:昵称只能设置一次,设置后无法修改。
只支持中文、英文和数字。

举报

X
请选择举报类型:
请输入详细内容:

顶部