pwm

发现一款线性恒流芯片

痞子三分冷 提交于 2020-12-12 13:10:54
昨天在展会上的一个灯具展买一个台灯回去,东西非常不错,于是拆了看看里面的电源用的是什么IC,外围很简单,低压线性降压恒流的IC,2.5-85V输入的,内置MOS的,还可以支持PWM调光,居然可以支持输出2A的电流,静态电流也非常的低,IC上面的丝印写的是H7130,后来测试了这个电源确实不错,成本看起来也低! 去百度下载了这个IC的规格书看了下,打算用H7130来开案子来做台灯的调光应用,大家来看看怎样,给点建议,电路图及简单的介绍如下: 来源: oschina 链接: https://my.oschina.net/u/4314113/blog/4793930

迅为-4418开发板-驱动-PWM输出实验

大城市里の小女人 提交于 2020-12-09 07:44:18
本文档介绍了在 iTOP-4418 开发板上用 PWM 控制蜂鸣器输出的测试历程,基于 QtE 系统。4418 MCU 共提供了 5 路 PWM 输出,其中一路未引出,所以共有 4 路可用的 PWM 输出。 注意:本文档中提供的例程,没有注册设备和驱动,只是在驱动入口和出口函数中进行了配置。如果用户需要生成设备节点,则需要自行添加剩余部分,这部分可以参考 GPIO 操作的文档。 1 配置 IO 打开底板 电路图 ,搜索“beep”,可以看到 beep 的网络名为“MCU_ISO7816_CLK”,如下图所示。 在核心板原理图,搜索该关键词“MCU_ISO7816_CLK”,可见其对应 PWM2,如下图所示。 所以,接下来我们便对 PWM2 进行操作。在下面的操作之前,我们需要配置内核,取消内核中 buzzer 的驱动,解除该驱动对蜂鸣器的占用,其目录如下图所示。 将该选项改为未选中状态,如下图所示。 接下来,编译烧写该内核镜像(boot.img)到开发板。再进行下面的操作即可。 2 编写驱动程序 在 linux 内核中有一个规律, Linux 内核开发者把通用的东西都总结出来,个性化的东西就留出接口,和 GPIO 驱动类似,PWM 驱动在内核中也提供了对应的接口函数,内核提供的接口函数声明在 include/linux/pwm.h 中。 //申请一个 PWM 资源 struct

Proper implementation of Timer1 for PWM generation

我的梦境 提交于 2020-12-06 12:22:35
问题 On the Atmel ATmega328P (datasheet), there are three timers available for PWM generation (timer0, timer1, and timer2). I already have what I need using the 8-bit timer2, I am just concerned with using different timer instad of timer2, because timer2 is used in various libraries, and I'd like to have more granularity. Thus I'd like to use the 16-bit timer1. Here is what I am using to generate a 25 kHz, variable duty cycle using timer2. For this example, lets consider a 35% duty cycle: void

ESP32 开发笔记(三)源码示例 3_LEDC_PWM 使用LEDC实现LED呼吸灯

南笙酒味 提交于 2020-12-05 19:52:16
开发板购买链接 https://item.taobao.com/item.htm?spm=a2oq0.12575281.0.0.50111deb2Ij1As&ft=t&id=626366733674 开发板简介 开发环境搭建 windows 源码示例: 0_Hello Bug (ESP_LOGX与printf) 工程模板/打印调试输出 1_LED LED亮灭控制 2_LED_Task 使用任务方式控制LED 3_LEDC_PWM 使用LEDC来控制LED实现呼吸灯效果 4_ADC_LightR 使用ADC读取光敏电阻实现光照传感 5_KEY_Short_Long 按钮长按短按实现 6_TouchPad_Interrupt 电容触摸中断实现 7_WS2812_RMT RGB_LED彩虹变色示例 8_DHT11_RMT 使用RMT实现读取DHT11温湿度传感器 9_SPI_SDCard 使用SPI总线实现TF卡文件系统示例 10_IIC_ADXL345 使用IIC总线实现读取ADXL345角度加速度传感器 11_IIC_AT24C02 使用IIC总线实现小容量数据储存测试 12_IR_Rev_RMT 使用RMT实现红外遥控接收扫码(NEC) 13_IR_Send_RMT 使用RMT实现红外数据发送(NEC) 14_WIFI_Scan 附近WIFI信号扫描示例 15_WIFI_AP

STM32 | 精确控制PWM脉冲个数

三世轮回 提交于 2020-11-28 23:56:19
(图片与文章内容无关,来源于网络) 精确控制PWM个数采用的是主从方案, TIM3产生PWM,为TIM2提供时钟,然后TIM2计数 测试代码如下(待完善),仅供参考 主要的文件就是time.c文件 main.c文件 # include "stm32f10x.h" # include "time.h" # include "usart.h" void Delay ( unsigned int Time) { if (Time == 0 ) return ; while (Time--); } int main () { //NVIC_ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); TIM2_init( 7199 , 999 ); /// 1/10=0.01 TIM3_init( 7199 , 99 ); /// 1/100=0.1 //99 usart1_init( 115200 ); //SetPWMValue(TIM2,1,500); SetPWMValue(TIM3, 1 , 50 ); UartPutChar(USART1, 0X56 ); while ( 1 ) { // UartPutChar(USART1,0X56); Delay( 100 ); if (flag== 1 ) { TIM3_init( 7199 ,(

轻应用介绍

淺唱寂寞╮ 提交于 2020-11-28 13:53:00
简介 轻应用 :可运行在 轻量级 嵌入式设备上的 JavaScript应用 (左图) 轻应用框架 :封装了JavaScript引擎和API接口,用于支持轻应用开发的 软件框架 (右图) 特点 轻巧 :基于事件驱动的JavaScript轻应用短小精悍,免编译、免烧录 快速 :结合阿里云物联网平台,一键完成应用代码热更新 简单 :JavaScript API 简洁易懂,大幅降低IoT嵌入式设备应用开发门槛 兼容 :轻松移植JavaScript生态软件包,与各类云端业务浑然一体 运行原理 丰富的组件支持 基础组件 文件系统 FS 系统信息 SYS 键值对存储 KV 电源管理 LPM 硬件I/O UART/GPIO/I2C/SPI 模数/数模转换 ADC/DAC 脉宽调制 PWM 定时器 TIMER 实时时钟 RTC 看门狗 WDG 网络协议 UDP/TCP/HTTP/MQTT 高级组件 物联网平台 连接组件 支付组件 语音组件 传感器服务组件 定位服务组件 外设驱动库 编码电机/步进电机/伺服电机/继电器 麦克风/语音录放模块/扬声器 PS2摇杆/电容触摸/按键 TFT彩屏/数码管/三色灯 加速度计/陀螺仪/电子罗盘/气压计/磁力计 温湿度/颜色/光照强度 更多 文件结构 一个最精简的轻应用包由最少两个文件组成,必须放在项目文件夹的根目录 app/ ├── app.js # 业务逻辑入口

关于PWM脉冲宽度调制的点滴总结

流过昼夜 提交于 2020-11-28 12:57:23
文章目录 基本原理 PWM是如何实现? 分类 程序实现 总结 基本原理 PWM 的全称是 脉冲宽度调制 ( Pulse-width modulation ),是通过将有效的电信号分散成离散形式从而来降低电信号所传递的平均功率的一种方式; 所以根据 面积等效 法则,可以通过对改变脉冲的时间宽度,来等效的获得所需要合成的相应 幅值 和 频率 的波形; 具体如下图所示; 由上图可知, 脉冲宽度调制 使用一个脉冲宽度会被调制的方波,并且波型的平均值会有所变化。 如果我们考虑一个周期为 T {\displaystyle T} T 的脉冲波 f ( t ) {\displaystyle f(t)} f ( t ) ,低值 y min {\displaystyle y_{\text{min}}} y min ​ ,高值为 y max {\displaystyle y_{\text{max}}} y max ​ ,跟占空比 D D D (duty cycle),此波的平均值为: y ˉ = 1 T ∫ 0 T f ( t )   d t {\displaystyle {\bar {y}}={\frac {1}{T}}\int _{0}^{T}f(t)\,dt} y ˉ ​ = T 1 ​ ∫ 0 T ​ f ( t ) d t 当 f ( t ) {\displaystyle f(t)} f (

stm32学习之基本定时器--TIM

爷,独闯天下 提交于 2020-11-21 04:23:16
  stm32f1系列,有基本定时器、通用定时器、高级定时器三类TIM定时器。其中,TIM6/7是本文要讲的基本定时器。   基本定时器TIM6/7是16位的只能向上计数的定时器,只能用于定时。而通用定时器和高级定时器有更多的功能,如还可以进行输出比较、输入捕捉等功能,相关的介绍会写在后面的文章,这里只讲基本定时器。   先看看基本定时器的框图,如图24-1。      图24-1   时钟源   我们查阅参考手册RCC章节的时钟树可以知道,RCC的定时器时钟TIMxCLK,即内部时钟CK_INT是由APB1预分频器分频后提供。如图24-2所示,如果APB1预分频系数为1,,则频率不变,否则频率为2倍。即此时用于分频的APB1的预分频系数为2,所以TIMxCLK = 36 * 2 = 72MHz。      图24-2   计数器时钟   如图24-1的框图,计数器时钟由内部时钟CK_INT提供,经过PSC预分频器后得到CK_CNT。PSC是一个16位的预分频器,可以对定时器时钟TIMxCLK进行1~65536之间的任何一个数进行分频。分频后的CK_CNT值的计算在参考手册TIMx_PSC寄存器描述里有提到,如图24-3。      图24-3   即CK_CNT = CK_PSC/(PSC[15:0]+1)。   计数器   计数器CNT是一个16位的计数器,只能往上计数

RT-Thread Studio 输出PWM详细教程

为君一笑 提交于 2020-11-11 10:23:48
/** if you want to use pwm you can use the following instructions. * * STEP 1, open pwm driver framework support in the RT-Thread Settings file * * STEP 2, define macro related to the pwm * such as #define BSP_USING_PWM1 * * STEP 3, copy your pwm timer init function from stm32xxxx_hal_msp.c generated by stm32cubemx to the end if board.c file * such as void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base) and * void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim) * * STEP 4, modify your stm32xxxx_hal_config.h file to support pwm peripherals. define macro related to the peripherals * such as

用鸿蒙OS在蜂鸣器上放一曲《两只老虎》

妖精的绣舞 提交于 2020-10-31 08:21:18
本文介绍如何在HiSpark Wi-Fi IoT套件上,使用Harmony OS IoT硬件子系统的PWM接口 驱动蜂鸣器 播放音乐。 用PWM输出方波 PWM输出的方波频率 通过 PwmStart 接口的注释,可以知道freq参数是分频倍数,PWM实际输出的方波频率等于 PWM时钟源频率 除以 分频倍数,即 f = Fcs / freq 其中,Fcs是PWM时钟源频率; PWM输出方波的占空比 通过 PwmStart 接口的 duty 参数可以控制输出方波的占空比,占空比是指PWM输出的方波波形的高电平时间占整个方波周期的比例,具体占空比值是 duty 和 freq的比值,例如想要输出占空比 50%的方波信号,那么duty填的值就要是 freq/2; 音符-频率对应关系 参考: https://liam.page/2018/04/09/pitch-interval-and-harmonic/ 开发板可以输出的最低频率 通过前面的公式,我们知道: PWM输出的方波频率和freq成反比,freq越大,输出的方波频率越小; freq是 unsinged short 类型,最大值为65535; 因此,输出频率的最小值取决于时钟源,PWM的默认时钟源为160M: unsigned int HalPwmInit(HalWifiIotPwmPort port) { if (hi_pwm_set