打印
[STM32F1]

STM32 AD+SPI+DAM

[复制链接]
1349|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
HEMENGQI|  楼主 | 2023-4-22 15:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用ADS1256与STM32F1用SPI通信,再用DMA将采集到的数据搬运到内存。问一下大家:

1.如果使用SPI+DMA给AD发送指令的话,发送指令是要写在ADC_DATASIZE吗,还是写什么呢?
DMA_DeInit(DMA1_Channel5);
DMA_InitStructure.DMA_PeripheralBaseAddr = 0x4000380C;
DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)ADC_Data;
DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralDST;
DMA_InitStructure.DMA_BufferSize = ADC_DATASIZE;

如果是的话,那我该如何处理单独使用SPI时发送指令时,不同时间段发送的问题,如下所示:

        CS_0();
        while(ADS1256_DRDY==0);//µ±ADS1256_DRDYΪµÍʱ²ÅÄÜд¼Ä´æÆ÷
    SPI2_ReadWriteByte(ADS1256_CMD_RREG | (regaddr & 0x0F));
       
                delay_us(10);         //min=50*(1/fCLKIN)=50*(1/7.68MHZ)=6500ns;max=whatever
       
    SPI2_ReadWriteByte(0);//дÈë¶ÁÈ¡Êý¾ÝµÄ¸öÊýn-1
       
                delay_us(20);         //min=50*(1/fCLKIN)=50*(1/7.68MHZ)=6500ns;max=whatever
       
    r=SPI2_ReadWriteByte(regaddr); //¶Á³öregaddrµØÖ·Ö¸ÏòµÄ¼Ä´æÆ÷Êý¾Ý
        CS_1();

2、因为“1”的问题,所以我想着可不可以只用SPI发送,接收用SPI+DMA。但是最近在网上找资料发现看到“STM32的SPI主机模式下,无法只使用DMA接收,而不发送。原因是没有触发SPI的DMA接收的信号。”不知道是不是真的?

3、如果“2”是真的话,各位大哥有没有解决方法呢?
还望各位大哥不吝赐教,本人小菜一枚,不胜感激!困扰好久了,谢谢了

使用特权

评论回复
沙发
香水城| | 2023-4-25 10:31 | 只看该作者
虽然对你的需求没有特别清楚,但可以肯定的是,

SPI完全可以发送基于查询或中断方式,接收使用DMA方式。

使用特权

评论回复
板凳
HEMENGQI|  楼主 | 2023-4-27 20:35 | 只看该作者
香水城 发表于 2023-4-25 10:31
虽然对你的需求没有特别清楚,但可以肯定的是,

SPI完全可以发送基于查询或中断方式,接收使用DMA方式。 ...

版主好。目前困扰我的就是:SPI的接收和发送是同步的,如果我使用SPI+DMA的方式的话,是不是还是像之前只使用SPI的方式一样直接用SPI2_ReadWriteByte来向AD发送指令呢?
如果不是的话,我应该怎么改呢?非常感谢

使用特权

评论回复
地板
香水城| | 2023-4-27 22:05 | 只看该作者
是的 如果STM32 spi是主的话,你接收就得发送。你到底是发命令 还是发哑字符,你根据情况来看。

按理是发送命令才对。

使用特权

评论回复
5
HEMENGQI|  楼主 | 2023-4-28 11:01 | 只看该作者
香水城 发表于 2023-4-27 22:05
是的 如果STM32 spi是主的话,你接收就得发送。你到底是发命令 还是发哑字符,你根据情况来看。

按理是发 ...

版主好,我是32为主,向AD发送命令(必须发送命令才能有数据返回)。可是我使用SPI2_ReadWriteByte的话,前边发送命令的时候有返回值不是不能用吗是后边DRDY跳变才开始有数据传输的呀
(不知道怎么传时序图
G:\

使用特权

评论回复
6
香水城| | 2023-4-28 11:55 | 只看该作者
HEMENGQI 发表于 2023-4-28 11:01
版主好,我是32为主,向AD发送命令(必须发送命令才能有数据返回)。可是我使用SPI2_ReadWriteByte的话, ...

呵呵
你作为主,发的时候自然也在收。 至于是不是你需要的你后期视情况来处理即可。

使用特权

评论回复
7
HEMENGQI|  楼主 | 2023-4-28 17:17 | 只看该作者
香水城 发表于 2023-4-28 11:55
呵呵
你作为主,发的时候自然也在收。 至于是不是你需要的你后期视情况来处理即可。 ...

好吧,还是很纠结

使用特权

评论回复
8
万图| | 2024-6-11 07:28 | 只看该作者

就是因为它的作用就是在电子产品设备受到雷击浪涌与ESD静电放电或者其他瞬态电压时

使用特权

评论回复
9
Uriah| | 2024-6-11 08:31 | 只看该作者

这方便一般可以使用底涂的方式来改善

使用特权

评论回复
10
帛灿灿| | 2024-6-11 10:27 | 只看该作者

正常信号一般达不到导通电压

使用特权

评论回复
11
Bblythe| | 2024-6-11 11:30 | 只看该作者

在电子电路中电容一端接电阻

使用特权

评论回复
12
周半梅| | 2024-6-11 13:26 | 只看该作者

明确出电源的性能和稳定性是否符合预期和要求

使用特权

评论回复
13
Pulitzer| | 2024-6-11 14:29 | 只看该作者

电流若是偏大就会直接导致器件烧毁

使用特权

评论回复
14
童雨竹| | 2024-6-11 16:25 | 只看该作者

确保在开关管导通,

使用特权

评论回复
15
Wordsworth| | 2024-6-11 17:28 | 只看该作者

从而达到对电子设备进行静电保护

使用特权

评论回复
16
Clyde011| | 2024-6-11 18:31 | 只看该作者

齐纳二极管的缺点是不如TVS快

使用特权

评论回复
17
公羊子丹| | 2024-6-11 19:24 | 只看该作者

这样就可以制作出我们想要的邮票孔了。

使用特权

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

本版积分规则

1

主题

6

帖子

0

粉丝