wenyangzeng 发表于 2018-1-12 11:37:57

Nucleo-L4R5ZI评测6 DAC+OPAMP_PGA

本帖最后由 wenyangzeng 于 2018-1-12 11:46 编辑

Nucleo-L4R5ZI评测6 DAC+OPAMP_PGA

    STM32L4R5具有2通道12Bit的DAC和2通道可编程运算放大器,在STM32Cube_FW_L4_V1.10.0\Projects\STM32L4R5ZI-Nucleo-Nucleo演示包里没有DAC和OPAMP的演示代码。本次评测移植了STM32Cube_FW_L4_V1.10.0\Projects\STM32L4R9I_EVAL\Examples\OPAMP的代码到STM32L4R5ZI-Nucleo上来评测。

   移植后的例子使用了内置的PGA模式(OPAMP可编程增益)。
1、DMA为DAC提供正弦波数据。
2、在DAC_OUT2 (PA5)上产生一个正弦波信号。内部连接到由OPAMP2运放输入。
3、OPAMP2的输出在PB0上,增益为2或4。当OPAMP仍然启用时,OPAMP增益被改变。
4、OPAMP应用了正常和低功率模式(采样和保持模式)。
5、OPAMP(和DAC)的低功耗模式也可以在内核为睡眠模式停留期间使用。。
6、内核设置为睡眠模式,没有直接存储器存取中断处理。
7、配置开发板上的"USER"按键在外部中断模式,在按键中断中改变不同的运行模式:
模式0:
            DAC:   normal power mode
            OPAMP:   normal power mode - gain = 2
            DMA:   circular mode - DMA half transfer IT handled by Cortex
            Cortex:run mode
模式1:
            DAC:   normal power mode
            OPAMP:   normal power mode - gain = 4
            DMA:   circular mode - DMA half transfer IT handled by Cortex
            Cortex:run mode
模式2:
            DAC:   Low power mode
            OPAMP:   normal power mode - gain = 4
            DMA:   circular mode - DMA half transfer - no IT handled by Cortex
            Cortex:run mode
模式3:
            DAC:   Low power mode
            OPAMP:   Low power mode - gain = 4
            DMA:   circular mode - DMA half transfer - no IT handled by Cortex
            Cortex:sleep mode
模式4:
            DAC:   Low power mode
            OPAMP:   Low power mode - gain = 2
            DMA:   circular mode - DMA half transfer - no IT handled by Cortex
            Cortex:sleep mode

    评测中发现官方代码中的正弦波数据有误,不能生成正确的正弦波波形,修改后工作正常。
   从评测结果可知,由于采用DMA传送正弦波数据,运行中没有消耗MCU系统资源,充分发挥了STM32L4+的低功耗特性。

运行结果,测试点在PA5(DAC)和PB0(OPAMG_PGA),从图中可以看出正弦波的波形底部有点压缩,判断应该是DAC输出数据0x00的时候输出端无法达到真正0V的缘故,这通过修改正弦波数据应该可以得到改善。


2倍增益


4倍增益


错误的正弦波数据的波形


源代码解压到:STM32Cube_FW_L4_V1.10.0\Projects\STM32L4R5ZI-Nucleo\Exampl文件夹中

HEX文件:


kylongmu 发表于 2018-1-12 17:31:37

你频率这么低,输出的阶梯居然这么明显,增加DAC速度并增加插值。输出加RC低通。

wenyangzeng 发表于 2018-1-12 18:01:30

本帖最后由 wenyangzeng 于 2018-1-12 18:02 编辑

kylongmu 发表于 2018-1-12 17:31
你频率这么低,输出的阶梯居然这么明显,增加DAC速度并增加插值。输出加RC低通。 ...
ST的这个演示中正弦波只使用32个数据,我们完全可以自己增加数据位数得到圆滑的波形的,比如用的1024个数据。由于是DMA在搬运数据,只要DMA够快,输出频率可以高不少的。

zero99 发表于 2018-1-15 09:35:27

谢谢分享,帖子已经汇总到
https://www.stmcu.org.cn/module/forum/thread-614299-1-1.html
页: [1]
查看完整版本: Nucleo-L4R5ZI评测6 DAC+OPAMP_PGA