|
本帖最后由 eefishing 于 2019-2-25 22:35 编辑 I2S PCM over UART 我把I2S的数据转储到Dash的串行控制台,并将其记录到一个文件中。经过几个小时的等待,我终于能够编写一个小的Node.js程序,将ASCII转换成二进制BLOB大文件。将它导入Audacity中,得到了这个漂亮的波形。太糟糕了,听起来像“老鼠叫”。
这里是代码
Amazon Dash I2S bit banging 在过去的几个晚上里,我一直在试图拼凑让麦克风正常工作所必需的代码。我不太了解时钟、PLLs、DMA,甚至I2S,所以对于哪些代码应该放在哪里,这让我感到焦头烂额。 WICED SDK中的STM32F2代码库缺少一个platform_i2s.c驱动程序。我使用STM32F4的platform_i2s.c,删除了那些让我困惑的东西。在调用我的新平台I2S .c之前,我编写了一个短小的ADMP441驱动程序来设置正确的GPIO,它将在这里设置I2S块和DMA通道。 我一直在努力让DMA在完成一个麦克风数据块时生成一个中断,因此我关闭了该代码,转而专注于通过等待SPI RX中断来获取数据,并有效地轮询总线以获取数据。我只得到0或挂起进程,所以我怀疑要么是时钟/PLL设置错误,要么是麦克风没有启用。 我没有逻辑分析仪(实际上我今天在eBay上买了一个便宜的),所以我无法验证Dash外露的CLK和WS引脚上的数据是波形还是恒压。我想,一旦逻辑分析器到达邮件中,我将能够使用热空气枪来移除麦克风,并将探针插入其中,以帮助调试DMA问题。 不管怎样,今天我设法从I2S SPI端口获得了实际数据。
我不知道这是不是真实的PCM数据,但它肯定比一堆没有强。 Dash I2S microphone 我一直在努力迫使Amazon Dash的I2S麦克风使用WICED SDK生成一些IRQs,但到目前为止还没有成功。 我把芯片EN (PC1)设置到很高,可以看到它在我的DMM上保持很高。我已经通过stm32f2xx_spi_c库调用打开了I2S PLL,我在SCK (PB10)上测量了1.5V——然而参数没有范围,我希望这是一个波形,而不是恒压。 这是我的GitHub repo的一个临时补丁。大部分代码是从WICED SDK中的STM32F4xx文件夹复制和粘贴的。 GitHub repo 我在这里建立了一个GitHub存储库:http://github.com/gtalusan/redash。这有建立一个固件的指令,并部署它的亚马逊Dash与ST-Link V2。 SPI is gross. 我试图弄明白为什么我只能成功地写和擦除Dash闪存的一个扇区一次。左边是M25P16的数据表,中间是Broadcom的WICED SDK用来擦除扇区和整个芯片的SPI命令,右边是SST25VF016B的数据表。
没有成功! Amazon Dash SPI Flash
我设法使SPI闪存与微米M25P16芯片的破折号。0x202015是M25P16在请求其总线标识时返回的神奇的JEDEC数字。太棒了! GPIO mapping 我已经将platform_gpio_pins表从Cottonelle.bin映射到一些可读的源代码。在与maximus64的工作进行交叉引用之后,我们得到:
我们现在有一些SPI GPIO的潜在候选。WICED SDK对于GPIO在其他数据结构中声明和引用的方式是快速而松散的,因此我可能需要更多的字节来确定是否能够收集关于platform_spi_mapping_t和wiced_spi_device_t的更多信息。 More GPIO table digging 在这里,我在左侧对齐了一些修改后的GPIO pin声明,并将它们映射到virgin cotton .bin。我怀疑紫色下划线就是数组结束的地方。我认为GPIO_TypeDef *超出了范围。
Finding GPIO 在左边,我们有一个来自WiCED SDK 2.4.1二进制文件的示例应用程序,它在改变了一个字节之后就会发生变化,因此我们可以找到通往GPIO表的方法。 中间是示例应用程序。 在右边,一个类似的转储来自cottonele .bin,来自dekuNukem的固件转储…… 现在做一些映射…
Backing up the flash 是时候备份闪光灯了。我试图使用st-flash、OpenOCD、pystlink和st-util+gdb来获得大量的闪存,以防我想回去玩Amazon的软件。转储文件中包含了尼尔字节,因此可能存在一些读取保护。 OpenOCD的手册有一个很好的命令解锁flash: stm32f2解锁0 这将产生一个按钮的输出:
原创:George 转自:http://hackaday.io/project/9828/logs?sort=newest&page=1 |
STM32
超强工具——STM32CubeMX 你会用吗?
集结出发! STM32全国研讨会系列之一:ST智能门铃中国首秀
关于STM32启动文件的几个小问题
【银杏科技ARM+FPGA双核心应用】STM32H7系列35——USB_VCP_FS
【银杏科技ARM+FPGA双核心应用】STM32H7系列28——USB_HID
粉丝分享 | 图说CRC原理应用及STM32硬件CRC外设
STM32L151进入低功耗,并由RTC唤醒的故事
[转]stm32控制NFC模块(PN532)源码(P2P,模拟卡,读写卡等
STM32G070RB+LVGL移植
微信公众号
手机版