您好,
我们使用 CC2640R2F(BLE)通过 SPI 接口读取 NTM88。初步细节请见本帖。
https://community.nxp.com/t5/Sensors/Not-able-to-get-correct-sensor-data-from-NTM88/td-p/1453940
我们使用 Genfsk_beacons_demo_ntm88_KW38 作为参考。
当我调试"NTM88_GenFSK_Beacons" 时,TPMS ID 和传感器数据被保存在这个数组中。
/* 填充数据数组*/
gau8DataArray[u8index++] = gau8TpmsId[0];
gau8DataArray[u8index++] = gau8TpmsId[1];
gau8DataArray[u8index++] = gau8TpmsId[2];
gau8DataArray[u8index++] = gau8TpmsId[3];
gau8DataArray[u8index++] = gau8TpmsId[4];
gau8DataArray[u8index++] = gau8TpmsId[5];
gau8DataArray[u8index++] = (UINT8)(gu16CompPressure>> 8);
gau8DataArray[u8index++] = (UINT8)(gu16CompPressure);
gau8DataArray[u8index++] = (UINT8)(gu16CompAccelZ>> 8);
gau8DataArray[u8index++] = (UINT8)(gu16CompAccelZ);
gau8DataArray[u8index++] = (UINT8)(gu16CompAccelX>> 8);
gau8DataArray[u8index++] = (UINT8)(gu16CompAccelX);
gau8DataArray[u8index++] = gu8CompVolt;
gau8DataArray[u8index++] = gu8CompTemp;
通过调试,这是 NTM88 的传感器数据。
这与 CC2640R2(BLE)通过 SPI 接口接收到的数据相同。我将输出结果打印到 Tera Term 中。
为什么 NTM88 的电压和温度读数都是 1?补偿压力、acc z 和 accx 是否正确?抱歉,上面的 ACC Y 应该是 ACC X。
此外,如何将传感器的原始数据正确转换为适当的单位(psi、g、volts 和 Celsius)。
此致,
马可
您好,托马斯,
,有办法在其中写入半真系数吗?
这样我们就能从传感器读取一些真实的数值,用于开发目的(不一定要准确)。
BR,
Joey
谢谢你一步一步地教我。工作起来得心应手!感谢社区和成员为我提供的解决方案。 MGS.Marriott.com
嗨,托马斯、
我确实点击了 “擦除整个设备” 1x。我读过的用户指南中没有任何内容说不要单击 “擦除整个设备”。
此致,
马可
你好,马克尔、
SPI 通信似乎进展顺利:存储在阵列中的数据与主机 MCU 端读取的数据完全相同。
所有传感器数据均为下溢或溢出,且 TPMS ID 均为 0xFF,这表明微调部分(从 0xFD40 到 0xFDFF)已被擦除。在这种情况下,没有恢复芯片的解决方案,因为每台设备的微调系数都是唯一的(因此它们无法从一台设备复制到另一台设备)。
如果执行批量擦除,例如,使用 Flash 编程器工具单击 “擦除整个设备” 按钮(以下屏幕截图上带有红叉的按钮,摘自 CW 用户指南),则会擦除修剪部分:
微调系数只影响传感器的测量结果,其余功能仍然有效。因此,该芯片可用于通信、握手等工作。但要获得有效的传感器测量结果,还需要一个新的芯片。
有关传感器测量的更多信息,请参阅下面的应用说明:
https://www.nxp.com/webapp/Download?colCode=AN13614
顺祝商祺!
托马斯