This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

STM32F1驱动DDC112问题

我通过stm32F1单片机的PWM功能产生两个时钟:第一个是clk时钟,频率12MHz;第二个是CONV,我用PWM输出1000ms的积分时间方波,占空比为50%,那么DDC112工作在continue模式,根据读取数据的时序图,我从Dout读取到的数据位都是0,这个是怎么回事呢。

  • 您好,
    CONV是控制积分器的哪一侧连接到输入。在连续模式下;CONV高→A侧积分,CONV LOW→B侧积分。CONV必须与CLK同步。
    您的DCLK是怎样的
    VREF实测正常吗
    TEST mode下正常吗
  • 在TEST mode下也是全部都读取到0。我STM32一上电就用PWM输出了12M的CLK,和1hz的CONV,请问他们怎么才算同步呢。还有我的DCLK是读取数据的时候通过IO输出高低电平来控制的,我也按照了时序图来控制读数据的流程,具体的读数据代码如下:

    void Read_Data(void)
    {
    static int n = 0;
    DxMIT = 1;
    while(DVALID);
    printf("ready read data\r\n");
    DxMIT = 0;
    DCLK = 0;
    while(1)
    {
    DCLK = 1;
    data[n] = DOut;
    n++;
    DCLK = 0;
    printf("%d", data[n]);
    if (n == 20)
    {
    DxMIT = 1;
    n = 0;
    printf("\r\n");
    break;
    }

    }
  • 不知道您的问题解决了没有,两信号波形的相位一致就是同步。
    数据手册FIGURE 8有TEST mode下的时序图,您可以测一下这几个信号对比一下时序是否正确。
  • 你的这句话printf("ready read data\r\n");就把时间都耗完了。读取数据就读取数据,其他的都不要做。