首先,我使用ESP-IDF-4.2和ESP,并在自定义板上将两个CMM4030D麦克风连接到ESP32-WROVER-E上。这些麦克风应该记录一个wav文件到一个SPI连接的SD卡.
这是无懈可击的!但是当PSRAM启用时,应该在引导时初始化(它可以),并且可以使用heap_caps_alloc()进行分配。PSRAM的频率和SPI Flash的频率一样,设置为80 The,没有任何与引脚16和17相连接的东西。
SDK配置很可能不是问题,因为我以无线共存的配置示例为基础。
因此,最后,当PSRAM启用时(启动时启动并可以使用heap_caps_alloc进行分配),录音就会很不稳定,但是当它被禁用(但仍然运行相同的代码)时,它可以正常工作.究竟是什么原因造成了这个问题?
致以亲切的问候,
迷茫的乔希姆
发布于 2021-06-13 10:14:42
我已经设法实现了一个解决这个问题的方法,这个解决方法包括在引导时禁用PSRAM的初始化。然后,可以首先使用以下函数初始化PSRAM。
static void psram_init(){
esp_spiram_init();
esp_spiram_init_cache();
esp_spiram_test();
esp_spiram_add_to_heapalloc();
}一种是通过禁用sdk配置中的初始化启动选项来防止ESP使用PSRAM分配缓冲区。当然,这会导致可用内存减少(这是不需要的),但它至少使我能够实现MVP。
您可以查看关于GitHub的问题以获得更多细节。
致以亲切的问候,
乔希姆
https://stackoverflow.com/questions/67857774
复制相似问题