我通过stm32F1单片机的PWM功能产生两个时钟:第一个是clk时钟,频率12MHz;第二个是CONV,我用PWM输出1000ms的积分时间方波,占空比为50%,那么DDC112工作在continue模式,根据读取数据的时序图,我从Dout读取到的数据位都是0,这个是怎么回事呢。
Amy Luo:
您好,
CONV是控制积分器的哪一侧连接到输入。在连续模式下;CONV高→A侧积分,CONV LOW→B侧积分。CONV必须与CLK同步。
您的DCLK是怎样的
VREF实测正常吗
TEST mode下正常吗
,
user6210418:
在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;}}
,
Amy Luo:
不知道您的问题解决了没有,两信号波形的相位一致就是同步。
数据手册FIGURE 8有TEST mode下的时序图,您可以测一下这几个信号对比一下时序是否正确。
,
user3736684:
你的这句话printf("ready read data\r\n");就把时间都耗完了。读取数据就读取数据,其他的都不要做。