LPC5528 + NXH3670 BLE Audio System 移植 — NXH3670 通信过程

哈喽,大家好,之前也有跟大家讲解 LPC5528 + NXH3670 BLE Audio System 的移植过程,今天主要就给讲解主控芯片与 NXH3670 之间通信的具体过程,方便大家在移植的过程中更加容易去理解代码,方便对不同 MCU 平台进行移植。


1、主要通信信号线

首先介绍一下主控芯片与 NXH3670 主要的通信信号线,在主控芯片跟 NXH3670 之间主要通过 SPI 进行数据的发送,NXH3670 为从机,除了 SPI 的四根线之外,主控芯片与 NXH3670 的通信信号线还包括了 POR RESRT、SRQ、INT,这三根信号线在通信中起到至关重要的作用。

POR RESRT 主要是 NXH3670 芯片的 Reset,当该引脚为低电平时会复位 NXH3670,因此主控芯片可以通过对该引脚的控制去实现对 NXH3670 的复位控制。SRQ 和 INT 引脚则是在通信过程中两个重要的引脚,通常将主控芯片与 SRQ 相连的引脚初始化为输出,将于 INT 相连的引脚初始化为输入。下面我们来具体的了解主控芯片与 NXH3670 的具体通信过程。

2、主控芯片与 NXH3670 的 SPI 传输过程

在主控芯片与 SPI 通信的过程中,不只是主控芯片会发起 SPI 传输,同样在 NXH3670 检测到有数据挂起需要向主控芯片传输时,NXH3670 也会向主控芯片申请一次 SPI 传输。因此,根据不同的情况,SPI 的传输过程也会略有不同,下面我们就对应可能会出现的几种情况分别探讨主控芯片与 NXH3670 SPI 的传输过程。

  • 主控芯片发起 SPI 传输

下面以主控芯片向 NXH3670 发送一次事件命令为例,讲解通信的过程,当主控芯片想要发起一次命令传输,会通过 SRQ 引脚发起一次传输申请,NXH3670 收到信号后会通过 INT 引脚回应一个高电平到主控芯片,表明 NXH3670 处于清醒状态,此前如果 NXH3670 处于睡眠状态将会被唤醒,完成握手后,主控芯片需要通过 SPI 去读取 NXH3670 当前的状态,检查NxH3670是否准备好接受新的SPI数据,确认了 NXH3670 的状态后,就可以继续发送数据到NxH3670。

  • NXH3670 发起 SPI 传输

同样,当 NXH3670 内部有数据挂起时,也会向主控芯片发起一次 SPI 传输,它会先通过 INT 向主控芯片申请中断,表示有挂起的数据需要传输,检测到中断后,主控芯片通过 SRQ 引脚表示应答,并通过 SPI 读取去检索数据,只有读取完数据,INT 引脚才会置为低电平。


  • 主控芯片与 NXH3670 同时发起 SPI 传输

有的时候我们会遇到 NXH3670 与主控芯片同时向对方发起 SPI 传输的情况,当遇到这种情况的时候, SRQ 引脚和 INT 引脚是同时被拉起的,这时主机会将 INT 引脚认为是 NXH3670 对 SRQ 引脚的回应,就会继续完成从主控芯片到 NXH3670 的 SPI 数据传输,相当于 NXH3670 这一次通信传输申请被忽略了,但 NXH3670 是允许这样的操作的,稍后 NXH3670 会检查是否还有数据挂起,如果仍有数据挂起则会继续通过 INT 引脚申请通信。

有关于主控芯片与 NXH3670 之间的通信就介绍到这里,希望能对大家有所帮助,作者本人也在学习中,如果文章中出现了错误欢迎大家指正。

 

 

参考资料:
1.     NXH3670 Datasheet              —  NXH3670UK; 2019, NXP Semiconductors
2.     UM11149 application note    —  NXH3670 Gaming; 2019, NXP Semiconductors
3.     AN11953 application note    —  Boot loader; 2019, NXP Semiconductors

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★博文作者未开放评论功能