ST意法半导体
直播中

刘桂英

7年用户 1215经验值
私信 关注
[问答]

硬件重置时BlueNRG-MS SPI事务意外响应怎么解决?

我正在尝试遵循 Bringing up the BlueNRG and BlueNRG-MS devices - Application note (AN4494) 中指示的 BlueNRG-MS (SPI) 测试程序。
我正在使用 STEVAL-IDB005V1D 板(带有 BLUENRG-MS 芯片)和 NUCLEO-F446RE 板来读取 SPI 信号。
这是测试程序(AN4494 第 5/32 页):
由微控制器执行的 BlueNRG 硬件复位会生成一个 ACI 事件,其序列如下所述并如图 3 所示。HW 复位时的 BlueNRG SPI 事务:
  • 1. 解除硬件复位 -> OK✔️
  • 2. IRQ 变高以发出来自 BlueNRG 的事件信号(如果此信号不存在,则意味着 BlueNRG 固件由于某种原因未运行)-> OK✔️
  • 3. 外部微控制器降低 CS 以访问 BlueNRG 并读取事件 -> OK✔️
  • 4、单片机从SPI读取5个字节;它们应该是 [02,7F,00,00,00] -> OK✔️
  • 5.外部微控制器,拉高CS后,再次拉低,接入BlueNRG,读取事件->OK✔️
  • 6.微控制器从SPI读取5个字节,预计[02,7F,00,06,00],意思是要读取6个字节-> OK✔️
  • 7. 微控制器从SPI读取6个字节,需要[04, FF, 03, 01, 00, 01] -> ERROR❌️
  • 8.单片机再次拉高CS
步骤 1 到 6 正在运行。数据被正确接收。但是第 7 步不起作用。我收到 [255,255,255,255,255,255],MISO 始终保持高电平。此外,IRQ 最后并没有变低。
这是我的信号:

以下是预期信号 (AN4494):

这是我的 SPI 配置

任何的想法 ?









回帖(1)

杨颜

2023-1-6 11:18:51
你没有给 MOSI 发送任何东西吗?这可能是原因。
参考下图:
在 5 字节的 SPI 头中,MOSI CTRL 字节的第一个字节,该信息告诉从机(BlueNRG-MS)主机(MCU)将要发出写操作(0x0A)或读操作(0x0B)。
以下 4 个字节是空字节,应全为零。
在您的情况下,您需要在 CTRL 字节中发送 0x0B,以便 BlueNRG-MS 知道输出要读取的 6 字节数据。数据读取完毕,buffer 中没有数据时,IRQ 信号自动清除。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分