最近在用PGA450做超声接收计时的工作,把PGA450仅当作超声接收端,不发超声。看数据手册,超声接收会在回波数据获取完成之后才会产生中断,这样就没办法在超声信号到来时立即记下时间。求教,如何实现PGA450接收到超声信号时立即触发中断?
Zhou Fang67:
接收到回波数据和在超声信号到来时。这两个时间差得不多。所以要实现什么?
因为如果接收到超声信号,但是没有接收到数据,芯片无法判断接收到了超声信号。
siqi liu1:
回复 Zhou Fang67:
感谢您的解答,我们是想记录一个超声发射的时间点,然后记录另一个超声的接收时间点,计算时间差与声速的乘积,得到两个超声传感器之间的距离。
超声信号到来和接收到回波数据之间的时间相差大概在几个ms吧,对应的距离就相差很大了。
求教,如何才能得到两个超声传感器之间的距离?
siqi liu1:
回复 Zhou Fang67:
感谢您的解答,我们是想记录一个超声发射的时间点,然后记录另一个超声的接收时间点,计算时间差与声速的乘积,得到两个超声传感器之间的距离。
超声信号到来和接收到回波数据之间的时间相差大概在几个ms吧,对应的距离就相差很大了。
求教,如何才能得到两个超声传感器之间的距离?
Zhou Fang67:
回复 siqi liu1:
要看看参考固件中的PGA450_isrs.C文件.
原本PGA450-Q1计算的方式,是在激励超声波传感器的同时,记录下芯片内部Free running timer的时间,然后在接收到数据且当数据信号高于阈值时,再一次记录free running timer的时间。最后两个时间相减,得到时间差,用于计算距离。
类似的,如果是只做接收,可以想到的方法是,使用PGA450-Q1,通过GPIO或者其他方式检测到传感器发射,然后开始free running timer计时,然后在接收到数据后,再计时一次,两次时间相减,得到时间差。
PGA450_isrs.c文件:
FRT_T1.u8[0]=FRT_MSB; FRT_T1.u8[1]=FRT_LSB;
Thanks.