打印
[STM8]

求助,STM8LC8T6的DAC输出不能为0,怎么回事

[复制链接]
2825|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lf8013|  楼主 | 2015-1-11 19:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
做一个电源,使用了STM8L152的两个DAC输出,调试的时候发现当DAC的值设为零的时候,一个DAC还输出60多mV的电压,一个输出40多mV的电压,是怎么回事,有朋友遇到这个现象吗,怎么样才可以使输出为0?大侠路过顺便帮帮忙呀。
沙发
EAMCU| | 2015-1-11 20:27 | 只看该作者
没用过stm8,用过stm32。stm8里面的dac输出有buffer吗?在stm32里面,如果开了buffer,则输出到不了0。

使用特权

评论回复
板凳
lf8013|  楼主 | 2015-1-11 20:35 | 只看该作者
谢谢,EAMCU!我关闭缓冲试试

使用特权

评论回复
地板
lf8013|  楼主 | 2015-1-11 20:40 | 只看该作者
可以了,关闭缓冲后,可以输出到0V了,再次谢谢EAMCU,谢谢

使用特权

评论回复
5
changquanhao| | 2015-7-31 10:18 | 只看该作者
你好  ,请问DAC_out2应该怎么配置。我这边总是配不出。  我用的时STM8L152C8T6,代码如下

CLK_PeripheralClockConfig(CLK_Peripheral_COMP, ENABLE);
SYSCFG_RIDeInit();
SYSCFG_RIIOSwitchConfig(RI_IOSwitch_15, ENABLE);
DMA_DeInit(DMA1_Channel1);
  DMA_Init(DMA1_Channel1,  WavesTab[3], DAC_CH2RDHRH_ADDRESS,
           130, DMA_DIR_MemoryToPeripheral, DMA_Mode_Circular,
           DMA_MemoryIncMode_Inc, DMA_Priority_VeryHigh, DMA_MemoryDataSize_HalfWord);

  /* DMA1 Channel 3 enable */
  DMA_Cmd(DMA1_Channel1, ENABLE);
  DMA_GlobalCmd(ENABLE);
  
  /* DAC Channel1 Config: 12bit right ----------------------------------------*/
  
  /* Fill DAC Init param DAC_Trigger_T4_TRGO and  DAC Channel1 Init */
  DAC_Init(DAC_Channel_2, DAC_Trigger_T4_TRGO, DAC_OutputBuffer_Enable);    //DAC_OUT1 用的也是TIM4 ,可以正常工作

  /* Enable DAC Channel1 */
  DAC_Cmd(DAC_Channel_2, ENABLE);
  
  /* Enable DMA for DAC Channel1 */
  DAC_DMACmd(DAC_Channel_2, ENABLE);

使用特权

评论回复
6
changquanhao| | 2015-7-31 11:24 | 只看该作者
本帖最后由 changquanhao 于 2015-7-31 11:26 编辑

我的问题已经解决。原因在DMA上。
DMA1_Channel1 :Memory to peripheral,只能是从0x0000 to 0x0FFF到  0x5200 to 0x53FF。
数据定义为const ,则存储在flash里面,越界。
定义为普通全局变量,解决问题。

使用特权

评论回复
7
767904101| | 2016-1-21 10:03 | 只看该作者
论坛友真好,我也遇到这个问题。先试试关闭BUFFER。

使用特权

评论回复
8
767904101| | 2016-1-21 10:24 | 只看该作者
真的可以了。为什么关闭缓冲才行,资料上哪里有说。

使用特权

评论回复
9
767904101| | 2016-1-21 10:40 | 只看该作者
The DAC integrates one output buffer (on medium-density devices) or two output buffers (on medium+ and high-density devices) that can be used to reduce the output impedance and to drive external loads directly without having to add an external operational amplifier. It can be enabled and disabled using the BOFF bit in the DAC_CHxCR1 register
DAC集成一个输出缓冲区(中密度设备)或两个输出缓冲区(中+和高密度设备),可以用来降低输出阻抗和直接驱动外部负载,而无需添加一个外部的运算放大器。它可以使用卖座的启用和禁用在DAC_CHxCR1登记

为什么缓冲会影响输出值

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

19

帖子

1

粉丝