社区导航

 

搜索
查看: 2314|回复: 9
打印 上一主题 下一主题

[原创] 实验LIS25BA骨振动传感器采集音频

[复制链接]

1266

TA的帖子

1

TA的资源

五彩晶圆(初级)

Rank: 7Rank: 7Rank: 7

跳转到指定楼层
楼主
发表于 2019-8-23 18:25 | 只看该作者 |只看大图 |倒序浏览 |阅读模式

  收到的ST这个骨振动传感器带了一个FPC适配板,免了制作PCB封装的问题,方便接线测试。

  不过,因为电压支持只有 1.8V, 于是蝴蝶粉手头的 Nucleo 板子都不能直接用。要不得自己画一块带 3.3V <--> 1.8V 电平转换的板子,要不就想办法把MCU电压用成1.8V 以直接连接。

  因为传感器的信号输出是 TDM 接口,STM32 的具备 SAI (Serial Audio Interface) 的型号都可以直接支持(真的不少了,SAI也算主流配置该有的)。我实验音频采集用的是 STM32L476, 借用了一块自己设计的带USB的评估板来接收TDM信号,因为没有引出空余的I/O口,只好飞线连接。

  传感器一共需要 MCLK, BCLK, WCLK 三个时钟信号,其中 MCLK 是主时钟,内部ADC转换必须用这个时钟,它决定了采样频率。在 MCLK=12。288MHz 时,对应输出 24kHz 或 16kHz, 8kHz 采样频率。假如 MCLK 变了,采样频率也会随之变化。BCLK, WCLK 是 TDM 接口传输数据需要的,WCLK 输出采样频率,BCLK 决定码流的速率。注意,WCLK 和 BCLK 必须与 MCLK 同步,必须是 MCLK 的整数分频,且 BCLK 也必须是 WCLK 整数倍频。按照手册表格中来,WCLK 就只能取 8kHz/16kHz/24kHz 三种了,对应 MCLK/WCLK 比 1536x, 768x 和 512x

  STM32 SAI 的引脚在 TDM 模式与传感器连接关系就是:

       SAI_FS  ----  WCLK

       SAI_SCK ---- BCLK

       SAI_SD  ----  SDOUT

  至于 MCLK, 12。288MHz 时钟的产生有多种办法,只要保证与 SAI 接口的时钟同源就可以了,比如用 MCU 的 MCO 输出,用 SAI, SPI, Timer 等等硬件输出。

  TDM是对数字音频常用的I2S接口的扩展,因为 I2S 只能传输 L/R 两个通道数据,而 TDM 支持多通道。这个传感器需要 XYZ 3个通道。按照手册中典型的 8kHz/1.024MHz 这样的 WCLK/BCLK 比例,一个采样周期可以传输 128 bits 数据,等于 8 个 slot (每个数据占16 bits)。

  SDOUT 与 WCLK 波形对应是这样的:(我的示波器只有两通道,不能同时看BCLK)

  这是选择在前三个slot发送数据,SDOUT相对WCLK没有延迟。SAI 输出 TDM WCLK 高电平为16个BCLK周期(一个slot长度)。

 

  LIS25BA上电的时候是 power-down 的,TDM接口也关闭了,所以必须用 I2C 配置一下才可以用。


此内容由EEWORLD论坛网友cruelfox原创,如需转载或用于商业用途需征得作者同意并注明出处

0


1266

TA的帖子

1

TA的资源

五彩晶圆(初级)

Rank: 7Rank: 7Rank: 7

沙发
 楼主| 发表于 2019-8-23 19:00 | 只看该作者

SAI 的 TDM 配置方法:

MCU引脚分配,我用了两个SAI模块,其中一个仅仅用来产生 MCLK (原因后面讲)

  SAI1 Block A 工作在 TDM (master receive) 模式,并启用 DMA 传输数据。我的 SAI 时钟是 24.576MHz, FS频率(即WCLK频率)是 24kHz,那么要使用 SAI CR1寄存器 MCKDIV 位配置分频。

  这里并没有体现出来 FS 的频率,但是手册中有一句:In the SAI, the single ratio MCLK/FS = 256 is considered。 于是,图上的 MCLK_x 该为 256x24kHz = 6.144MHz, 需要 MCKDIV 进行4分频。也正是因为 SAI 的 MCLK/FS 比例与传感器需要的不一致,不能直接用 SAI 输出的 MCLK 给传感器,所以我才单独用了 SAI2 Block B 来提供 MCLK 输出。

  我只选择了 slot 0, slot 1两个通道的数据接收,对应到 USB audio 数据的左右声道,方便于录音。因为测试代码是在USB声卡的代码上改来的,DMA采集也保留了32-bit传输,实际有效数据只有低16位。

  这个传感器是三轴加速度计,对重力方向也是敏感的,从测试录音的直流偏移可以体现出来。

  录音的效果? 因为缺乏载具,拖着一堆飞线也很不方便,我不保证它可靠采集了“骨振动”。如果手持板子,让传感器靠在脸上,录下来的声音很微弱,浑浊。后来,我干脆用手指把传感器按在皮肤上,录了下面这一段,粗略能听出来是在说话了。附件中 mp3 是用软件处理做过加了增益的。

 

lis25ba_test.wav.mp3

193.69 KB, 阅读权限: 5, 下载次数: 13



9985

TA的帖子

14

TA的资源

版主

Rank: 6Rank: 6

测评达人

板凳
发表于 2019-8-23 21:20 | 只看该作者

没有合适的配套板子,这个传感器用起来真的非常麻烦



305

TA的帖子

0

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

4
发表于 2019-8-29 13:46 | 只看该作者

见识了,感谢分享,这种资料还是第一次接触



6

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

5
发表于 2019-8-31 14:05 | 只看该作者

学习了



1

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

6
发表于 2019-9-3 17:05 | 只看该作者

楼主是用的3.3V转1.8V,还是MCU降压到1.8V直接连接呢?



2

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

7
发表于 2019-9-24 11:38 | 只看该作者

我也是靠在脸上声音很浑浊,很微弱,但是当我直接用手将他按在皮肤上时有杂音,也没有其他干扰,不知道楼主有没有遇到这种情况,(我用的不是ST的芯片,但是M3内核的芯片)

点评

是的,我也发现了杂音,怀疑是电引起的。  详情 回复 发表于 2019-9-24 11:54


1266

TA的帖子

1

TA的资源

五彩晶圆(初级)

Rank: 7Rank: 7Rank: 7

8
 楼主| 发表于 2019-9-24 11:54 | 只看该作者
天眼123 发表于 2019-9-24 11:38 我也是靠在脸上声音很浑浊,很微弱,但是当我直接用手将他按在皮肤上时有杂音,也没有其他干扰,不知道楼主 ...

是的,我也发现了杂音,怀疑是电引起的。



2094

TA的帖子

0

TA的资源

版主

Rank: 6Rank: 6

9
发表于 2019-9-24 20:10 | 只看该作者

在自己DIY的时候,要是有那种接线柱的插板,用于连接电线,估计会好看许多,也不用焊接了



5

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

10
发表于 2019-9-30 09:23 | 只看该作者

搞个挂式耳机,把25BA的板子用胶布粘上,挂入耳就可以录音了。录的声音很沉闷是因为传感器本身带宽的问题,音色不够亮。



您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 1/3 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( )

GMT+8, 2020-4-8 17:47 , Processed in 0.302576 second(s), 20 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表
欢乐斗牛 快乐赛车计划下载 快乐赛车是属于彩票吗 玩快乐飞艇犯法吗 快乐赛车注册网址 快乐飞艇代理 快乐飞艇彩票技巧 快乐飞艇怎么样稳赚 湖北快3 快乐飞艇怎么样稳赚