intan-可以买得到的侵入式脑机接口芯片(SPI.DDR模式)

乐活   2024-10-19 19:08   江苏  

我羡慕很多公司,但最羡慕的不是那种巨无霸的公司,而是小而美,在一个高端领域“唯我独尊”的公司,今天说的公司就是:

在侵入式脑机芯片领域可以唯一买到的芯片

不要说什么马克斯的东西牛逼,他的脑机芯片有几个买到的,有几个用到的?

NeuraLink-N1神经网络芯片设计细节

NeuraLink植入式系统解读

我的意思是,说的再厉害,更多的人用不到,当然你说什么都是你对,对对对,你说的对。

这个就是鄙人的榜样了,创始人

当然了,芯片都流片了,就买货就行,当然可以不去再开发

服务了六大洲五十个国家

国内也有很多的科研机构在用

我接触也是因为中科院的一位朋友在使用它,然后我也上车了,感觉在里面可以学到的东西有很多。

其实它主要就是两个大类,采集和刺激,然后围绕着这个给出了系统的方案。

采集

下面应该是数字组件,我也不是很懂芯片

刺激

  1. 具有双极(差分)输入的RHD2216 16 通道放大器芯片
  2. 具有单极输入和公共参考的RHD2132 32 通道放大器芯片
  3. 具有单极输入和公共参考的RHD2164 64 通道放大器芯片

封装很小

采集uV级别的心电信号

使用胸部的 Ag/AgCl 电极。放大器配置为下截止频率为 0.6 Hz,上截止频率为 100 Hz。ADC 采样率为每通道 2 kS/s。

个时间对齐的皮质动作电位,1s内对齐

先看一个芯片的数据:

  • ADC 放大器采样率高达每通道 30 kSamples/s
  • 低本底噪声:2.4 μV rms(典型值)
  • 上限截止频率可配置为 100 Hz 至 20 kHz
  • 下限截止频率可配置为 0.1 Hz 至 500 Hz
  • 集成多频率原位电极阻抗测量能力
  • 辅助 ADC 输入,用于连接其他片外传感器

首先是一个俩级放大的OP结构,第一级的放大倍数很大。可以看到是交流耦合,前级电容,后面通过一个MUX转换,非同步采集,我以为是同步捏,滤镜没有了。。。

然后还有一个温度传感器,可以看到还有一个1.25的参考,所以这个东西的范围应该就是0~3.3V,然后接的是一个16bit的ADC,去掉一个误差位,那就是15bit,后级就是一个数字模块了,SPI闪亮登场。

前级有ESD的保护级

阻抗测试

RHD2000芯片集成了一个用于生成用户指定交流电流波形的电路。这个电路可以向任意选择的电极注入特定的交流电流波形,主要用于阻抗测试等目的。

  1. 数字-模拟转换 (DAC): 芯片内部有一个8位DAC,通过SPI接口可以设置其输出电压。

  2. 低通滤波器: DAC输出的数字阶梯波形经过一个二阶10kHz低通滤波器,滤除高频噪声,得到相对平滑的模拟信号。

  3. 电流转换: 滤波后的模拟信号通过一个可选择的电容(0.1pF, 1pF, 10pF)连接到测试电极。这个电容将电压转换为电流,从而在电极上产生交流电流。

  4. 波形控制: 通过SPI接口可以设置DAC的输出电压,从而控制注入到电极的电流幅值和波形。

  • DAC输出电压范围: 0V至1.22V,步进为4.785mV。

  • 低通滤波器截止频率: 10kHz。

  • 可选择电容值: 0.1pF, 1pF, 10pF。

  • 波形控制: 可以产生近似正弦波、方波等波形。

  • 以上是参数细节

16通道的也是一样的

因为通道很多

  • LVDS模式的优势:

    • 高速传输:适合高速数据传输场景。

    • 抗干扰能力强:适用于噪声较大的环境。

    • 长距离传输:适用于长距离通信。

  • 选择模式的考虑因素:

    • 数据传输速率:高速率选择LVDS,低速率选择CMOS。

    • 抗干扰要求:对噪声敏感的场合选择LVDS。

    • 系统复杂度:LVDS实现相对复杂,CMOS更简单


因为精密信号对干扰非常敏感,这里当然不全是这个原因,主要是后端输出的信号有点大,就使用了LVDS了,这种差分信号又快干扰又小。当然为了兼顾开发,也有SPI。

  • LVDS_en:

    • 功能: 用于控制SPI接口的工作模式。

    • 高电平有效: 当LVDS_en为高电平时,SPI接口采用LVDS模式进行通信。LVDS是一种高速、低功耗的差分信号传输方式,具有抗干扰能力强等优点。

    • 低电平有效: 当LVDS_en为低电平时,SPI接口采用传统的CMOS电平信号进行通信。

  • CS+、CS-:

    • 功能: 芯片选择的输入信号,用于激活SPI器件。

    • LVDS模式: 当LVDS_en为高电平时,CS+和CS-构成一个LVDS差分对,共同作为芯片选择的输入。

    • CMOS模式: 当LVDS_en为低电平时,仅使用CS+作为标准的CMOS电平输入。

  • SCLK+、SCLK-:

    • 功能: SPI接口的串行时钟信号。

    • LVDS模式: 当LVDS_en为高电平时,SCLK+和SCLK-构成一个LVDS差分对,作为串行时钟输入。

    • CMOS模式: 当LVDS_en为低电平时,仅使用SCLK+作为标准的CMOS电平输入。

  • MOSI+、MOSI-:

    • 功能: 主机向从机发送数据的串行数据输入。

    • LVDS模式: 当LVDS_en为高电平时,MOSI+和MOSI-构成一个LVDS差分对,作为串行数据输入。

    • CMOS模式: 当LVDS_en为低电平时,仅使用MOSI+作为标准的CMOS电平输入。

  • MISO+、MISO-:

    • 功能: 从机向主机发送数据的串行数据输出。

    • LVDS模式: 当LVDS_en为高电平时,MISO+和MISO-构成一个LVDS差分对,作为串行数据输出。

    • CMOS模式: 当LVDS_en为低电平时,仅使用MISO+作为标准的CMOS电平输出。


通过控制LVDS_en引脚,可以根据不同的应用场景选择LVDS模式或CMOS模式。

LVDS模式具有更高的传输速率和抗干扰能力,适用于高速数据传输;而CMOS模式则更简单易用。


  • CPOL=0: 表示时钟的空闲状态为低电平。

  • RHD2000 chip always acts as slave: 表示该芯片在SPI通信中始终作为从机。

  • LVDS差分信号: LVDS信号通过一对差分信号线传输,通过比较两条线的电压差来恢复数据,从而提高抗噪声能力。

俩种传输

  • 电压波形:

    • 标准CMOS: 输出电压在高低电平之间切换,幅度接近电源电压。

    • LVDS: 输出电压是差分信号,即MISO+和MISO-之间存在一个固定差值(350mV)。每个信号的绝对值较低,通常在电源电压的1/2左右。

  • 电流波形:

    • 标准CMOS: 输出电流在高低电平切换时会有较大的变化,导致较高的功耗。

    • LVDS: 由于采用差分信号,输出电流相对较小且稳定,功耗较低。


这里需要注意一点是,这个SPI不是我们平常使用的SPI,而是DDR,叫双倍率模式,在一个时钟沿采样两次,比如CLK-10Mhz,现在就是20Mhz了。其实这种做法在flash,内存里面很常见。

  • 在标准SPI中,MISO数据只在SCLK的上升沿或下降沿被采样一次。

  • DDR SPI为了提高数据传输速率,在SCLK的一个周期内,MISO数据会在上升沿和下降沿各被采样一次。

连接示意图,但是MCU来连接不太好,就是不灵活

我前几个看64的还没有MCU版本,现在全系列芯片都可以使用MCU控制了。

OK,一会儿看

对于一个标准的协议来说,就是CLK一个Edge才采样一次

SPI协议详解以ADS1118为例 可以看这个学习一下。

DDR就是上下都会采样

下面这段内容,全网都没有,你能看到就有福气了。

在使用单片机(如STM32 U5或H7)实现DDR(Double Data Rate,双倍数据速率)SPI通信时,由于标准SPI外设不支持32位MISO接收,而需要采用两个SPI外设来实现这一功能的配置方法。

  • 问题: 标准SPI外设通常不支持MOSI传输16位数据,MISO接收32位数据的模式。


  • 解决方案:

    • 两个SPI外设: 分别用一个SPI外设负责16位MOSI数据的发送(TRANSMIT_SPI),另一个SPI外设负责32位MISO数据的接收(RECEIVE_SPI)。

    • 伪SCLK信号: 由于RECEIVE_SPI需要在SCLK的上升沿和下降沿都对MISO进行采样,因此需要生成一个频率是SCLK两倍的伪SCLK信号。

    • 时序同步: 伪SCLK的产生需要与真实的SCLK进行同步,确保MISO数据的采样时刻正确。


SPI1

SPI3

  1. 配置TRANSMIT_SPI:

  • 作为主设备,负责输出CS、SCLK和MOSI信号。

  • 只发送16位数据。

  • 配置RECEIVE_SPI:

    • 作为从设备,只负责接收MISO信号。

    • 接收32位数据。

    • 使用生成的伪SCLK信号作为时钟。

  • 生成伪SCLK信号:

    • 利用定时器产生一个频率为SCLK两倍的信号。

    • 调整伪SCLK的相位,使其与真实的SCLK保持同步。


    利用微控制器的定时器模块,通过PWM模式和重复计数器,生成一个频率为SCLK两倍的方波信号。通过调整定时器的参数,可以精确控制伪SCLK的相位,使其与SCLK保持同步。

    • True SCLK: 标准的SPI时钟信号。

    • Pseudo-SCLK: 由定时器生成的伪时钟信号,频率是True SCLK的两倍。

    • MOSI: 主机发送的数据,以True SCLK为时钟。

    • MISO A, MISO B: 从机接收的数据,分别在Pseudo-SCLK的奇数和偶数上升沿采样。


    U5强哇

    • U5:

      • 定时器配置恰好满足时序要求,无需额外调整。

    • H7:

      • 运行速度更快,需要引入额外的延迟,以确保伪SCLK与True SCLK的相位关系正确。

    为了速度,DMA全开

    依靠中断进行通讯

    牛的,波特率这么高

    剩下的细节就不写了。

    不过LL确实很快

    级联的就算了,FPGA来了

    LVDS的连接是这样的

    一种板子是这样的,上面的金点都镀金了

    双芯片,128位通道

    FPGA的框图,等我学会FPGA再看

    当然了一些厂家也设计了很多有趣的设计,我感觉我也可以设计。

    总之很棒,但是脑机接口也路途遥远。

    https://intantech.com/signals_RHD2000.html

    云深之无迹
    纵是相见,亦如不见,潇湘泪雨,执念何苦。
     最新文章