您好,
我正在使用NBP8FD4ST1压力传感器和S32K146微控制器。传感器的CS_B/WAKE-UP引脚连接到微控制器的 GPIO 引脚。
逻辑分析仪的信号映射关系如下:
在通信序列中,当我将CS_B引脚拉低以请求 SPI 通信时, READY引脚如预期般置位。READY 变为高电平后,我发送SPIOPS 寄存器 READ命令 (0x00E1) 。但是,该传感器在 MISO 上始终返回0x0000 。因此,固件验证失败,随后 CS_B 引脚被拉高以终止事务。
请问您能否帮我确认一下我的 SPI 通信序列是否正确,或者我是否遗漏了任何必要的步骤,例如数据手册中描述的唤醒序列、虚拟传输或 SPIOPS 处理?
我还附上了逻辑分析仪的截图供您参考。
感谢您提前给予的支持。
此致,
普拉蒂尤莎。
Pratyusha_0-1783666219816.png
你好, Pratyusha,
请注意,NXP 的 MEMS 传感器业务(包括 NBP8FD4ST1 等压力传感器)已转让给意法半导体。自 2026 年 2 月 2 日起,这些传感器的技术支持、产品文档和开发活动将由 STM 负责。因此,很遗憾,我们无法再为 NBP8FD4ST1 提供技术支持。
我建议您直接通过STM的支持渠道或社区论坛联系他们,那里的传感器专家可以帮助您解决实施和通信方面的问题。
BRs,托马斯
@suncongjohnson谢谢你的回复。我已经将 SPI 外设配置为 16 位传输,因此我期望每次 SPI 事务都会产生 16 个 SCLK 脉冲。但是,当发出 SPIOPS READ命令时,D0 (SCLK) 线上不会产生 SCLK 信号。
const lpspi_master_config_t lpspiCom1_MasterConfig0 = {
每秒比特数= 1000000U,
.whichPcs= LPSPI_PCS0,
.pcs极性= LPSPI_ACTIVE_LOW,
.isPcs连续= true,
.bitcount= 16U,
.lpspiSrcClk= 8000000U,
.clkPhase= LPSPI_CLOCK_PHASE_1ST_EDGE,
.clkPolarity= LPSPI_SCK_ACTIVE_HIGH,
.lsbFirst= false,
.转移类型= LPSPI_USING_INTERRUPTS,
.rxDMAChannel= 255,
.txDMAChannel= 255,
。打回来= NULL,
.callbackParam= NULL,
};