移相器的后续问题

1)讨论用DAC输出方波与普通IO通过翻转电平输出方波的延时误差

DAC延时问题

STM32的DAC转换时间是:如果输入数据变化最大,即从0x3FF变为0,或从0变为0x3FF,则最多需要4us时间;如果输入数据变化最小,即只有一个数字量的变化,则最多需要1us时间。简单计算得1KHZ方波延时误差约为1°。

引脚翻转电平速度:

最快的是
  GPIOA ->ODR = 0x1;  GPIOA ->ODR = 0x0;
和   PA0 = 0x01;PA0 = 0x00;   
和   GPIOA ->BSRR = 0x01;         GPIOA ->BRR = 0x01;
转换周期是220ns,4.55Mhz
最慢的是  *PAO0 = !*PAO0 ;  和  PA0 =!PA0;  取反操作浪费不少时间
转换周期是900ns  1.11Mhz

引自https://blog.youkuaiyun.com/silno/article/details/39636911

2)

STM32F103的输出的PWM能否任意改变相位?

回答是:能!

实现方法如下:

STM32的定时器的PWM模式使用TIMx_ARR寄存器控制PWM输出的频率,使用TIMx_CCRx寄存器控制PWM输出的占空比,如果需要移相,只需要在希望移动相位的时刻临时增加或减少TIMx_ARR寄存器的内容,过一个周期之后再恢复TIMx_ARR的内容即可。

这里的一个关键问题是,TIMx_ARR寄存器拥有影子寄存器,改变它的内容时并不会立即影响输出的信号波形,而是在输出波形的一个完整周期结束时才会把影子寄存器的内容拷贝到实际操作的寄存器,这样就可以保证输出波形的每一个周期都是完整的。如果没有影子寄存器,实现这种移相的要求是比较困难的,软件程序很难能够精确地对齐输出波形的周期边缘。

引自:https://www.veryarm.com/152855.html

没有试验过,感觉原理上可行。

另外,今天用TIMER输出1khz的PWM波,发现与信号源产生的1khz方波一同显示在示波器上时,两个的相位不断减小,不断循环,后来仔细观察,发现信号源输出的方波频率不稳定,每隔几秒会变为999hz,感觉可以侧面佐证这个观点。

3)所以IO翻转电平的方法要比TIMER实现移相好一些,因为前者可以在每个上升沿或下降沿进行校正。

 

2019.7.23.18.53

### Multisim 中移相器的使用方法 在Multisim中构建和调试移相器电路涉及多个方面,包括但不限于理解电容如何影响交流信号从而产生相移效果。当交流电流流经电容器时,由于充电和放电过程的存在,电压相对于电流会有延迟现象发生,这种特性使得电容能够对电压造成90度的相移[^1]。 对于更复杂的相位调整需求,则可以利用运算放大器配合电阻、电容元件构成特定结构来实现不同角度范围内的精确相移控制。例如,在某些应用场景里,人们会借助于专门设计好的运放移相器电路图来进行-45至+45度之间的灵活调节;这类方案不仅提供了良好的性能表现还具备较高的实用性价值[^2]。 为了更好地掌握这些概念以及具体的操作流程,建议按照以下方式探索: #### 准备工作 确保已经正确安装了Multisim 10版本以上的软件环境,并熟悉其基本界面布局与常用工具的位置。 #### 创建新工程 启动程序后新建一个空白项目作为本次实验的基础框架。 #### 构建基础电路模型 根据所需的功能选择合适的组件放置到虚拟面包板上,比如要制作简单的RC低通滤波型移相网络就需要准备一定数量的标准阻抗件(如固定数值大小的电阻R)、储能单元(像电解质材料制成的极化电容C)。接着依照理论分析得出的最佳连接模式依次连线形成完整的拓扑架构。 #### 参数设定与优化 针对选定的关键部件设置合理的属性参数值,特别是那些直接影响最终输出特性的部分——例如时间常数τ=RC决定了角频率ω下的最大可能偏转量θmax≈arctan(ωτ),进而关联着实际观测到的角度差Δφ。此外还可以考虑引入反馈机制进一步提升系统的稳定性和平滑度。 #### 运行仿真测试 激活内置仿真实验室功能模块,通过改变输入源特征参量观察响应曲线形态变化规律,验证预期目标达成情况的同时积累实践经验以便后续改进设计方案。 ```matlab % MATLAB代码用于模拟简单的一阶RC电路产生的相移效应 f = logspace(-1,3); % 频率向量 (Hz) tau = 1e-6; % 时间常数 τ=R*C (s) figure; semilogx(f,unwrap(angle(1./(1+j*2*pi*f*tau)))*180/pi,'LineWidth',2); xlabel('Frequency [Hz]'); ylabel('Phase Shift [\circ]'); title('Simple RC Circuit Phase Response'); grid on; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值