Part Number:TM4C129ENCPDT
您好,我用CCP管脚的输入捕获功能,捕获50Hz信号的上升沿,根据两次捕获时间差计算信号周期,如果不用EPI外扩SDRAM,计算精度可以满足0.002Hz精度要求,外扩了SDRAM后,频率会发生跳变,因为SDRAM中会保存模拟量的瞬时值,频率50*16或50*64Hz,感觉是不是读取和写入SDRAM或者SDRAM刷新时占用了总线,或者临时关闭了中断,导致ccp管脚的输入捕获时间不准,导致最终计算的信号周期不准。产生跳变。
Yale Li:
我已经咨询了相关工程师,请关注下方链接:
https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1309063/tm4c129encpdt-epi-operation-sdram-affects-the-input-capture-ccp-causing-frequency-jumps
,
? ?:
感谢您的回复,可能上面我描述的问题没有突出重点,按理说输入捕获是一个硬件模块,配置的边沿到了后,硬件自动保存当前的定时器值,随后在中断或轮询中根据上次捕捉的定时器值和这次捕捉的定时器值计算两次间隔,计算信号频率。现在问题是外扩sdram后影响到了输入捕获,就是发生跳边沿时硬件自动捕获的定时器值不是跳变发生时的瞬时值了,我看上面的英文回复,提到了sdram的更新时钟比如64ms,这个是硬件决定的改不了了,我前面问题提到的50*16或50*64Hz这个只是说下我保存或者读取saram中的数据的频率,这个也有可能是其他任意频率,比如在sdram中随便定义了一些变量,程序操作变量可能是随机的,就是如果这样用的话,输入自动捕获不准了导致计算的信号频率误差变大
,
Yale Li:
已跟进