自从使用该芯片以来、我们一直遇到一个问题、那就是 TI 算法无法分析波形。 就像 TI 拒绝分析这些问题一样。 您可以复位模块、重新初始化所有内容并采取许多不同的纠正措施、但在执行复位之前、TI 算法永远不会再次工作。 有时 TI 算法会以该状态启动。 我们也不认为波形重要。 我们已尝试将波形存储在代码中、并反复使用相同的波形。 有时 TI 会处理这些错误、有时会在完全相同的波形上失败。 请在下面找到简短的调试控制台日志。 它已添加注释、以显示该问题。
Reset reason: PMMSWBOR software BOR <------- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ******************************** reconfigure_meter Waiting for temperature Waiting for temperature # Debug code: USS_absTOF_status_object status; USS_message_code code = USS_getAbsTOFStatus(&gUssSWConfig, &status); printf("%d UPS(%d %f %s %0.3f) DNS(%d %f %s %0.3f) %+0.2f %d %d\r\n", code, status.UPS.indexMaxAmplitude, _IQ16toF(status.UPS.iq16Index), _stateText(status.UPS.state), data->algResults.totalTOF_UPS * 1e6, status.DNS.indexMaxAmplitude, _IQ16toF(status.DNS.iq16Index), _stateText(status.DNS.state), data->algResults.totalTOF_DNS * 1e6, data->algResults.deltaTOF * 1e12, data->algResults.messageCode, // <-- from TI's USS_Algorithms_Results signalAnalysis_getLastMessageCode()); // <-- USS_runAlgorithms() return value # Annotated output: # (MaxIndex 1stPeakIndex Mode AbsTOF) (MaxIndex 1stPeakIndex Mode AbsTOF) dTOF AlgResults.MessageCode USS_runAlgorithms() 0 UPS(0 0.000000 search 59.227) DNS(0 0.000000 search 59.227) -25.41 0 122 # ADC Delay adjusted for current temperature and body size: # gUssSWConfig.measurementConfig->startADCsamplingCount = newValue; # USS_updateSAPHConfiguration(&gUssSWConfig); # USS_initAlgorithms(&gUssSWConfig); ADC Delay SAPH Count: 345 (69.00 us) --> 348 (69.60 us, computed 69.65 us, error -51.7 ns) 0 UPS(0 0.000000 search 59.227) DNS(0 0.000000 search 59.227) -25.41 0 122 # Where we found the first peaks using our own algorithm ADC First Peaks: 32 u 32 d # TI always returns index 0 or 1 when in error. # The AbsTOF numbers are very close to the ADC delay. # TI always returns: USS_message_code_valid_results = 122 # even though the numbers are wrong. ti failed to find a first peak 0 UPS(0 1.000000 search 59.228) DNS(0 1.000000 search 59.228) -22.68 0 122 ti failed to find a first peak 0 UPS(0 1.000000 search 59.228) DNS(0 1.000000 search 59.228) -22.68 0 122 ti failed to find a first peak 0 UPS(0 1.000000 search 59.228) DNS(0 1.000000 search 59.228) -22.68 0 122 ti failed to find a first peak 0 UPS(0 1.000000 search 59.228) DNS(0 1.000000 search 59.228) -22.68 0 122 # Meter detects the TI error and eventually resets. # It can take only 1 reset or hours of resets before the TI algorithm works as seen below Reset reason: RSTIFG RST/NMI ******************************** reconfigure_meter Waiting for temperature Waiting for temperature 0 UPS(0 0.000000 search 0.000) DNS(0 0.000000 search -0.000) +0.00 11240 122 ADC Delay SAPH Count: 345 (69.00 us) --> 348 (69.60 us, computed 69.65 us, error -49.7 ns) 0 UPS(0 0.000000 search 0.000) DNS(0 0.000000 search -0.000) +0.00 11240 122 ADC First Peaks: 32 u 32 d # Annotated: # Water Temp v-- where math says the avg(U+D) AbsTOF should be v-- where TI found it (our math isn't perfect) 76.370 F | Center (+-5%) 60.47 63.65 66.83 | dTOF_Center 63.10 | AbsTof_Center 63.10 0 UPS(0 31.952118 track 63.096) DNS(0 31.949249 track 63.096) +14.27 0 122 0 UPS(0 31.946564 track 63.096) DNS(0 31.952118 track 63.096) +39.85 0 122 0 UPS(0 31.953186 track 63.096) DNS(0 31.948669 track 63.096) +13.19 0 122 0 UPS(0 31.950378 track 63.096) DNS(0 31.952484 track 63.096) +17.85 0 122
由于 TI 算法是闭源代码、我们无法对其进行调试。 我们只能抛出代码、然后查看 TI 结果是否发生变化、而不知道原因。
谢谢。