硬汉嵌入式论坛

 找回密码
 立即注册
查看: 637|回复: 1
收起左侧

[网络转载] PWM DAC输出--AT_SURF案例No.9

[复制链接]

29

主题

5

回帖

92

积分

初级会员

积分
92
发表于 2022-8-16 19:28:08 | 显示全部楼层 |阅读模式
PWM DAC输出--AT_SURF案例No.9
简介
PWM DAC即通过PWM实现DAC功能,PWM信号是一个数字信号,频率固定脉宽变化。在宏观下,PWM信号的电压也可以认为是一个模拟的信号,经过简单的滤波后,可以实现一个低精度的DAC。这对于没有ADC外设的型号比较有用,因为这样可以节省一颗DAC芯片,有效的降低成本。

资源准备
硬件环境:
对应产品型号的AT-SURF-F437 Board
软件环境:
AT32F435_437_Firmware_Library_V2.x.x\project\at_sufr_f437\examples\pwm_dac
硬件设计
本案例使用的硬件资源有TFT LCD液晶显示屏、TMR外设,对应的引脚如下:
表10. 硬件资源使用
对应的电路原理如下:
图20. PWM DAC电路原理图
软件设计
1)        PWM DAC测试
初始化TMR 的PWM 输出
每过300ms增加0.1V输出,将输出电压显示在LCD上
2)        代码介绍
main函数代码描述
  1. int main(void)
  2. {
  3. uint16_t voltage = 0;

  4. /* 初始化系统时钟 */
  5. system_clock_config();

  6. /* 初始化中断优先级分组 */
  7. nvic_priority_group_config(NVIC_PRIORITY_GROUP_4);

  8. /* 初始化延时函数 */
  9. delay_init();

  10. /* 初始化LCD */
  11. lcd_init(LCD_DISPLAY_VERTICAL);

  12. /* 初始化 PWM DAC */
  13. pwm_dac_init();

  14. /* 显示信息 */
  15. lcd_string_show(10, 20, 200, 24, 24, (uint8_t *)"PWM DAC Test");

  16. while(1)
  17. {
  18. /* 每一次输出增加0.1V */
  19. voltage += 100;

  20. if(voltage > 3300)
  21. {
  22. voltage = 0;
  23. }

  24. /* 显示标题 */
  25. lcd_string_show(10, 60, 310, 24, 24, (uint8_t *)"Output Voltage:");

  26. /* 显示输出电压 */
  27. lcd_float_num_show(200, 60, 310, 24, 24, voltage / 1000.0, 1);

  28. /* PWM DAC输出设置 */
  29. pwm_dac_output_voltage_set(voltage);

  30. delay_ms(300);
  31. }
  32. }
复制代码

void pwm_dac_init(void)函数代码描述
  1. /**
  2. * @brief pwm dac init.
  3. * @param none.
  4. * @retval none.
  5. */
  6. void pwm_dac_init(void)
复制代码

void pwm_dac_output_voltage_set(uint16_t voltage)函数代码描述
  1. /**
  2. * @brief pwm dac output voltage set.
  3. * @param voltage: output voltage
  4. * the range is 0~3300 representing 0~3.300V.
  5. * @retval none.
  6. */
  7. void pwm_dac_output_voltage_set(uint16_t voltage)
复制代码
下载验证
每过300ms 增加0.1V 输出,LCD 上显示输出电压
用万用表测量JP15 跳线处电压,可以看到测量出的电压和LCD 上显示的输出电压相对应
图21. 实验效果

回复

使用道具 举报

1

主题

11

回帖

14

积分

新手上路

积分
14
发表于 2022-11-10 16:29:01 | 显示全部楼层
做出来的精度怎么样啊
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-29 03:48 , Processed in 0.246352 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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