本帖最后由 Ryan3000 于 2020-7-6 14:17 编辑
各位大神:
公司的项目中分配到的任务是捕获20KHz——60KHz的未解调的红外信号;我们用的开发板是STM32L475VET6,外接TSOP98260红外接收头(该型号不含解调功能)。
实验输入红外波形如下(板子所带遥控器“下”键,为38KHz调制信号,下图为解调后的波形):
当我用普通的红外接收头(含有解调功能)接收以上波形红外信号获得的数据如下:
位:[0], 电平:[0], 脉宽:[8974], 溢出次数:[0], 记录条数:[68]
位:[1], 电平:[1], 脉宽:[4496], 溢出次数:[0], 记录条数:[68]
位:[2], 电平:[0], 脉宽:[555], 溢出次数:[0], 记录条数:[68]
位:[3], 电平:[1], 脉宽:[592], 溢出次数:[0], 记录条数:[68]
位:[4], 电平:[0], 脉宽:[529], 溢出次数:[0], 记录条数:[68]
位:[5], 电平:[1], 脉宽:[570], 溢出次数:[0], 记录条数:[68]
位:[6], 电平:[0], 脉宽:[553], 溢出次数:[0], 记录条数:[68]
位:[7], 电平:[1], 脉宽:[592], 溢出次数:[0], 记录条数:[68]
位:[8], 电平:[0], 脉宽:[529], 溢出次数:[0], 记录条数:[68]
位:[9], 电平:[1], 脉宽:[569], 溢出次数:[0], 记录条数:[68]
位:[10], 电平:[0], 脉宽:[553], 溢出次数:[0], 记录条数:[68]
位:[11], 电平:[1], 脉宽:[570], 溢出次数:[0], 记录条数:[68]
位:[12], 电平:[0], 脉宽:[552], 溢出次数:[0], 记录条数:[68]
位:[13], 电平:[1], 脉宽:[592], 溢出次数:[0], 记录条数:[68]
位:[14], 电平:[0], 脉宽:[529], 溢出次数:[0], 记录条数:[68]
位:[15], 电平:[1], 脉宽:[570], 溢出次数:[0], 记录条数:[68]
位:[16], 电平:[0], 脉宽:[552], 溢出次数:[0], 记录条数:[68]
位:[17], 电平:[1], 脉宽:[593], 溢出次数:[0], 记录条数:[68]
位:[18], 电平:[0], 脉宽:[529], 溢出次数:[0], 记录条数:[68]
位:[19], 电平:[1], 脉宽:[1671], 溢出次数:[0], 记录条数:[68]
位:[20], 电平:[0], 脉宽:[553], 溢出次数:[0], 记录条数:[68]
位:[21], 电平:[1], 脉宽:[1671], 溢出次数:[0], 记录条数:[68]
位:[22], 电平:[0], 脉宽:[553], 溢出次数:[0], 记录条数:[68]
位:[23], 电平:[1], 脉宽:[1669], 溢出次数:[0], 记录条数:[68]
位:[24], 电平:[0], 脉宽:[554], 溢出次数:[0], 记录条数:[68]
位:[25], 电平:[1], 脉宽:[1670], 溢出次数:[0], 记录条数:[68]
位:[26], 电平:[0], 脉宽:[553], 溢出次数:[0], 记录条数:[68]
位:[27], 电平:[1], 脉宽:[1669], 溢出次数:[0], 记录条数:[68]
位:[28], 电平:[0], 脉宽:[554], 溢出次数:[0], 记录条数:[68]
位:[29], 电平:[1], 脉宽:[1671], 溢出次数:[0], 记录条数:[68]
位:[30], 电平:[0], 脉宽:[553], 溢出次数:[0], 记录条数:[68]
位:[31], 电平:[1], 脉宽:[1669], 溢出次数:[0], 记录条数:[68]
位:[32], 电平:[0], 脉宽:[554], 溢出次数:[0], 记录条数:[68]
位:[33], 电平:[1], 脉宽:[1670], 溢出次数:[0], 记录条数:[68]
位:[34], 电平:[0], 脉宽:[553], 溢出次数:[0], 记录条数:[68]
位:[35], 电平:[1], 脉宽:[1670], 溢出次数:[0], 记录条数:[68]
位:[36], 电平:[0], 脉宽:[553], 溢出次数:[0], 记录条数:[68]
位:[37], 电平:[1], 脉宽:[570], 溢出次数:[0], 记录条数:[68]
位:[38], 电平:[0], 脉宽:[552], 溢出次数:[0], 记录条数:[68]
位:[39], 电平:[1], 脉宽:[1671], 溢出次数:[0], 记录条数:[68]
位:[40], 电平:[0], 脉宽:[553], 溢出次数:[0], 记录条数:[68]
位:[41], 电平:[1], 脉宽:[569], 溢出次数:[0], 记录条数:[68]
位:[42], 电平:[0], 脉宽:[553], 溢出次数:[0], 记录条数:[68]
位:[43], 电平:[1], 脉宽:[1669], 溢出次数:[0], 记录条数:[68]
位:[44], 电平:[0], 脉宽:[555], 溢出次数:[0], 记录条数:[68]
位:[45], 电平:[1], 脉宽:[570], 溢出次数:[0], 记录条数:[68]
位:[46], 电平:[0], 脉宽:[552], 溢出次数:[0], 记录条数:[68]
位:[47], 电平:[1], 脉宽:[593], 溢出次数:[0], 记录条数:[68]
位:[48], 电平:[0], 脉宽:[530], 溢出次数:[0], 记录条数:[68]
位:[49], 电平:[1], 脉宽:[592], 溢出次数:[0], 记录条数:[68]
位:[50], 电平:[0], 脉宽:[529], 溢出次数:[0], 记录条数:[68]
位:[51], 电平:[1], 脉宽:[592], 溢出次数:[0], 记录条数:[68]
位:[52], 电平:[0], 脉宽:[530], 溢出次数:[0], 记录条数:[68]
位:[53], 电平:[1], 脉宽:[1669], 溢出次数:[0], 记录条数:[68]
位:[54], 电平:[0], 脉宽:[554], 溢出次数:[0], 记录条数:[68]
位:[55], 电平:[1], 脉宽:[569], 溢出次数:[0], 记录条数:[68]
位:[56], 电平:[0], 脉宽:[554], 溢出次数:[0], 记录条数:[68]
位:[57], 电平:[1], 脉宽:[1669], 溢出次数:[0], 记录条数:[68]
位:[58], 电平:[0], 脉宽:[556], 溢出次数:[0], 记录条数:[68]
位:[59], 电平:[1], 脉宽:[591], 溢出次数:[0], 记录条数:[68]
位:[60], 电平:[0], 脉宽:[531], 溢出次数:[0], 记录条数:[68]
位:[61], 电平:[1], 脉宽:[1666], 溢出次数:[0], 记录条数:[68]
位:[62], 电平:[0], 脉宽:[557], 溢出次数:[0], 记录条数:[68]
位:[63], 电平:[1], 脉宽:[1666], 溢出次数:[0], 记录条数:[68]
位:[64], 电平:[0], 脉宽:[558], 溢出次数:[0], 记录条数:[68]
位:[65], 电平:[1], 脉宽:[1666], 溢出次数:[0], 记录条数:[68]
位:[66], 电平:[0], 脉宽:[558], 溢出次数:[0], 记录条数:[68]
可以看出,是完全捕获了红外数据,采用相同的设置参数(ETF,f(DTS),事件个数N )
然后换做TSOP98260进行捕获:发现获得的捕获数据明显不是调制信号数据,低电平的脉宽就不存在560us或者1680us附近的值,这明显不对,然后把参数做各种调整和尝试后,都不能正确捕获到38KHz的调制信号。
然后我们利用电脑的声卡和 COOLEDIT 软件读出遥控码,普通红外接收头和TSOP98260接收头的波形如下:
可以看到声卡对调制信号做了解调,但是TSOP98260的波形明显存在一定程度的失真。
如何能正确的通过TIMER对TSOP98260输入的调制信号进行捕获?
该输出的调制型号存在的失真是不是导致我们未能正确捕获的原因?期盼各位大神予以指点,不尽感激!!
|