打印
[研电赛技术支持]

GD32F407 SPI DMA问题求助

[复制链接]
748|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我打算使用的是GD32F407的芯片,和外部W25Q32通过SPI DMA进行通信,但是就连最基础的读取JEDEC ID也不行,返回的数值都为0。我拿逻辑分析仪测试过W25Q32在读取ID的时候,只有CS的电平有变化,SCK MISO MOSI均没有逻辑电平产生。我也尝试过使用普通SPI模式进行读写,是可以读取到ID号的,且FLASH引脚均有电平产生。实在是不知道问题出在哪里,求大佬们帮忙看下,是不是哪里配置出问题了?代码如附件所示

user.zip

5.15 KB

包括main和spi代码

使用特权

评论回复
沙发
FranklinUNK| | 2025-3-20 22:15 | 只看该作者
例程里面没有吗?

使用特权

评论回复
板凳
nekomiya|  楼主 | 2025-3-21 08:52 | 只看该作者
FranklinUNK 发表于 2025-3-20 22:15
例程里面没有吗?

木得

使用特权

评论回复
地板
powerantone| | 2025-3-21 11:04 | 只看该作者
可能是DMA未正确触发SPI发送。

使用特权

评论回复
5
玄德| | 2025-3-21 11:55 | 只看该作者

粗略看了下你的程序。你可能对 SPI 的机制理解有错。
SPI的收、发是同时进行的,主机发一个bit的同时也会从从机那里收一个bit,
而不是主机把几个字节说完,从机再说话。
而且,从机不能主动说话,必须由主机发问。

使用特权

评论回复
6
stormwind123| | 2025-3-21 16:00 | 只看该作者
可能是SPI外设的时钟源未配置或未使能。

使用特权

评论回复
7
stormwind123| | 2025-3-21 19:00 | 只看该作者
检查硬件连接。

使用特权

评论回复
8
xionghaoyun| | 2025-3-22 13:47 | 只看该作者
上逻辑分析仪没

使用特权

评论回复
9
nekomiya|  楼主 | 2025-3-26 10:35 | 只看该作者
各位大大,这是逻辑分析仪的波形结果(压缩包是完整的波形,金士顿的),很奇怪的是我明明设置了dma_transfer_number_config为1,但是后面还会跟一个数据位,不知道有没有影响,还有05读取status,写使能位一直没被置1
void w25q32_dma_trans(uint16_t size)
{
    spi_dma_disable(DMA0, DMA_CH7);;
   
    dma_flag_clear(DMA0, DMA_CH7, DMA_FLAG_FTF);

    dma_memory_address_config(DMA0, DMA_CH7, 0,(uint32_t)tx_buffer);
       
    dma_transfer_number_config(DMA0, DMA_CH7, size);

    spi_dma_enable(SPI2, SPI_DMA_TRANSMIT);

    dma_channel_enable(DMA0, DMA_CH7);

    while (dma_flag_get(DMA0, DMA_CH7, DMA_FLAG_FTF) == RESET);

    spi_dma_disable(SPI2, SPI_DMA_TRANSMIT);
}

void w25q32_write_enable(void) {
    uint8_t cmd = 0x06;

    tx_buffer[0] = cmd;
                tx_buffer[1] = cmd;
       
                w25q32_cs_low();
    w25q32_dma_trans(1);
                while(spi_i2s_flag_get(SPI2, SPI_FLAG_TRANS) == SET){};
    w25q32_cs_high();
}

2332167e3671c6cb46.png (43.88 KB )

2332167e3671c6cb46.png

2025-03-25_13-44-10.zip

1.07 MB

使用特权

评论回复
10
nekomiya|  楼主 | 2025-3-26 10:42 | 只看该作者
并且我有测试过用普通SPI模式是没有问题的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

4

帖子

0

粉丝