野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6341|回复: 1

M0+MAC+TCP/IP 以太网单芯片方案 W7500EVB用户手册连载(8)--实战篇

[复制链接]
发表于 2018-3-6 18:16:28 | 显示全部楼层 |阅读模式
W7500(W7500P)芯片简介:
W7500 芯片为工业级以太网单芯片解决方案, 集成 ARM Cortex-M0,128KB Flash 及全硬件TCP/IP 核(和W5500、W5100内核一致),特别适用于物联网领域。 使用 W7500EVB, 让您轻松完成原型开发。

全硬件TCP/IP核的最大优点是他在执行联网操作时不需要占用MCU的运行资源,大大增加了MCU的工作效率。

这一章,将向大家介绍如何使用 W7500 PWM 输出。在本章中,将使用 W7500PWM 通道5,把PC5设置成PWM的通道5,产生 PWM 来控制 RGB LED 的亮度。

想了解更多关于WIZnet W7500更多信息,或者有技术问题请联系我们:gustin@wisioe.com
深圳炜世科技—WIZnet官方代理商,全程技术支持,价格绝对优势!
电话:0755-86568556
邮箱:support@wisioe.com
回复

使用道具 举报

 楼主| 发表于 2018-3-6 18:23:31 | 显示全部楼层
第九章 PWM输出试验
脉冲宽度调制(PWM),是英文“Pulse Width Modulation” 的缩写,他是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单一点,就是对脉冲宽度的控制。
PWM 有开始/停止寄存器。它控制PWM定时器的开始/停止。一旦设置了此位,定时器开始运行。如果将此位复位,定时器就立即停止。当 PWM 的定时器被停止或暂停时,才可以更新PWM的寄存器,如图9.1.1所示:
重复模式
在周期模式中,PWM的定时器到达了边界寄存器设定值时就会重新开始计数,如图9.1.3所示,可以看出这里设置的边界寄存器的值为12:
在单次触发模式中,当PWM的定时器到达边界寄存器设定值时,定时器重置为初始值并停止-计数,如图9.1.4所示:
预分频寄存器描述
图9.1.5 W7500 PWM预分频寄存器
图9.1.6 PWM定时器达到匹配寄存器时
图9.1.7 PWM定时器达到边界寄存器时
这里用PWM的定时器模式来输出。可以调用W7500固件函数库的PWM_TimerModeInit函数来进行初始化:
  1. void PWM_TimerModeInit(PWM_CHn_TypeDef* PWM_CHn, PWM_TimerModeInitTypeDef* PWM_TimerModeInitStruct);
复制代码
这里讲解一下与PWM相关的几个成员变量:
针对 PWM通道5 初始化范例代码格式:
  1. PWM_TimerModeInitStruct.PWM_CHn_PR = 50;
  2. PWM_TimerModeInitStruct.PWM_CHn_MR = 0;
  3. PWM_TimerModeInitStruct.PWM_CHn_LR = 1000;
  4. PWM_TimerModeInitStruct.PWM_CHn_UDMR = PWM_CHn_UDMR_UpCount;
  5. PWM_TimerModeInitStruct.PWM_CHn_PDMR = PWM_CHn_PDMR_Periodic;
  6. PWM_TimerModeInit(PWM_CH5, &PWM_TimerModeInitStruct);
复制代码
这个函数的第二个传参是用来选择PWM的输出模式的,有三种模式:PWM_CHn_PEEER_Disable(PWM 输出禁止及外部输入禁止);PWM_CHn_PEEER_ExtEnable(PWM 输出禁止及外部输入禁止);PWM_CHn_PEEER_PWMEnable(PWM 输出使能及外部输入禁止),这里使用PWM的输出使能及外部输入禁止模式。
  1. PWM_CHn_SetPEEER(PWM_CH5, PWM_CHn_PEEER_PWMEnable);
复制代码
可以调用PWM_CHn_Stop函数来停止PWM的定时器。
  1. void PWM_CHn_Start(PWM_CHn_TypeDef* PWM_CHn);
复制代码
前面也有讲过PWM的定时器有开始/停止寄存器,设置完了之后需要开启定时器才能让PWM的定时器跑起来。可以调用PWM_CHn_Start函数来开启定时器。
  1. void PWM_CHn_Start(PWM_CHn_TypeDef* PWM_CHn);
复制代码
9.2 硬件设计
在W7500EVB PWM output中可以看到工程中的 user 下面比以前多了pwm.c 文件和头文件pwm.h。 同时还引入了相关的固件库函数文件 W7500x_pwm.c 和头文件W7500x_pwm.h。
在完成软件设计之后,将编译好的文件下载到W7500EVB 开发板上,观看其运行结果是否与我们编写的一致。如果没有错误,将看 RGB LED 在由暗变到亮,又从亮变到暗,如图9.4.1所示:
图9.4.1 PWM输出试验结果

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-8 03:30 , Processed in 0.042498 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表