F407平台I2S应用笔记

1、设声音的采样频率为44.1 kHz,即声道选择信号(帧时钟)WS的频率必须也为44.1 kHz;左/右2个声道的量化深度均为16 bit,则I2S的SCK的频率为:44.1 kHz×16×2=1.4112 MHz
如果需要传输20 bit、24 bit或32 bit的左右声道的数据,可以提高SCK的频率,由上式可以计算出需要的SCK的频率。


2、在I2S/PCM接口的ADC/DAC系统中,除了SCK和WS外,CODEC经常还需要控制器提供MCLK (Master Clock),这是由CODEC内部基于Delta-Sigma (ΔΣ)的架构设计要求使然。MCLK时钟频率一般为256*WS,具体参考特定器件手册。总共四根信号线:SCK、WS、DATA、MCLK。

3、CubeMX配置为Half Duplex Master,勾选Master Clock Output。I2S时钟配置为25MHz


4、采样率和sclk,要确定时钟频率mclk/lrck=256fs,如我们常用12.288m/48k=256fs

5、F407平台上,目前实际的测试情况来看,I2S数据最大不超过32768-1(2^15次方-1)时输出波形无失真。理论最大值应为65536-1(2^16次方-1),但此时波形失真。

6、目前使用的I2S格式一般为Philips格式,测试正常。数组大小会直接影响波形采样率以及频率。正弦波、方波、矩形波、锯齿波数据数组可以手动生成。

正弦波数组:

uint16_t DAC_SIGNAL_SIN[32] = {
16384,19580,22653,25486,27969,30006,31520,32453,
32767,32453,31520,30006,27969,25486,22653,19580,
16384,13187,10114,7281,4798,2761,1247,314,
0,314,1247,2761,4798,7281,10114,13187,
};

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用MG90S舵机,你可以使用以下代码: ```python from machine import Pin, PWM import time p2 = PWM(Pin(2)) # 创建一个PWM对象,将舵机连接到引脚2 p2.freq(50) # 设置PWM频率为50Hz # 设置舵机角度 p2.duty_u16(1638) # 设置为0度 time.sleep(1) p2.duty_u16(4915) # 设置为90度 time.sleep(1) p2.duty_u16(8192) # 设置为180度 # 逐渐改变舵机角度 for i in range(1638, 8100, 10): p2.duty_u16(i) time.sleep_ms(10) p2.duty_u16(1638) # 设置为0度 p2.deinit() # 关闭引脚上的PWM输出 ``` 这段代码使用MicroPython来控制MG90S舵机。首先,我们导入`Pin`和`PWM`模块,并创建一个PWM对象`p2`,将舵机连接到引脚2。然后,我们设置PWM频率为50Hz,这是舵机的标准频率。接下来,我们使用`duty_u16`方法来设置舵机的角度,其中1638对应0度,4915对应90度,8192对应180度。通过逐渐改变舵机的角度,我们可以实现舵机的平滑运动。最后,我们使用`deinit`方法关闭引脚上的PWM输出。 请注意,这段代码是使用MicroPython编写的,如果你使用的是其他编程语言,可能需要使用相应的库和语法来控制舵机。 #### 引用[.reference_title] - *1* [STM32F407学习笔记——MG90S舵机模块(基本控制)](https://blog.csdn.net/weixin_54121461/article/details/113999518)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [STM32CubeMX(09)MG90S舵机驱动实验](https://blog.csdn.net/qq_45138815/article/details/122002050)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [物联网开发笔记(54)- 使用Micropython开发ESP32开发板之控制MG90S舵机](https://blog.csdn.net/zhusongziye/article/details/128085911)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值