使用普通I/O口和电阻分压实现高速DAC例程-可做高速波形发生器
https://www.stcaimcu.com/data/attachment/forum/202308/08/111300yjjjmauve17kzg04.png使用普通I/O口和电阻分压实现高速DAC,有完整的例程-可做高速波形发生器
功能说明:
通过P0,P2口输出16位DAC电平。串口1配置为115200bps,8,n, 1, 切换到P3.0 P3.1, 下载后就可以直接测试. 通过串口发送命令控制输出电压,格式: 55 AA ID VSH VSL VEH VELTH TL CS55 AA:起始码;ID:00~FE 为电压变化的阶段标识;FF 为结束符,表示一轮测试指令已经发送完成,可以开始测试;VSH VSL:本阶段起始电压值,H为高8位,L为低8位;VEH VEL:本阶段结束电压值,H为高8位,L为低8位;TH TL:本阶段测试时间,H为高8位,L为低8位;如果本阶段起始电压与结束电压相等,则为延时时间;CS:校验码,以上数据的累加值。
下载时, 选择时钟 22.1184MHz (用户可自行修改频率).
主要电路:
上位机软件设置:
执行效果:
Nice, but not every user has 16 pins and a lot of board space to throw at building a DAC from discrete parts.
For those who might use PWM instead, there is this techniquefor better filtering-step trade off on PWM DACs
Many STC parts have PLLs on the PWM clock, so the PWM can be fast.
https://www.ednasia.com/cancel-pwm-dac-ripple-with-analog-subtraction-revisited/
产生正弦波的几种方法,有高速的,也有硬件超级简单的 - PWM/144MHz时钟源的PWM/45路PWM+3路CCP/7组不同周期的PWM/DAC - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)
请问支持负压输出吗 ofela 发表于 2023-8-23 15:59
请问支持负压输出吗
这种方式不支持负压输出。参考使用老梁示波器的信号发生器,PWM输出脉冲经过5阶有源滤波输出1KHz正弦波的方法:
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=3593&extra=page%3D1 没有明白,这个是什么原理 英文大佬说用pmw更好,我等吃瓜群众只能是围观
本帖最后由 alex 于 2023-11-27 16:28 编辑
这是个不错的思路,从前有些没有硬件pwm,dac,adc的单片机就是用类似方法解决问题的。甚至不用单片机,只用门电路就可以实现adc,dac等功能的{:4_165:}
很久以前见过一个大佬,用一块AT89C2051芯片做过一个俄罗斯方块的游戏机,惊为天人。
那是把芯片用到了极致了。2k的空间,20个引脚,要实现vga视频输出,一路8bit音乐输出,至少5个按键输出。怎么做到的我至今没有搞明白。
👍 很不错的思路,学习。