mikewalpole
发表于 2025-4-5 22:13
在传输数据之前,确保片选信号(CS)处于使能状态。
在传输完成后,释放片选信号。
ccook11
发表于 2025-4-6 08:00
减少信号线长度,避免与高频信号并行。
dffzh
发表于 2025-4-6 16:00
ccook11 发表于 2025-4-6 08:00
减少信号线长度,避免与高频信号并行。
学习了
dffzh
发表于 2025-4-6 16:01
mikewalpole 发表于 2025-4-5 22:13
在传输数据之前,确保片选信号(CS)处于使能状态。
在传输完成后,释放片选信号。 ...
是的,片选信号低电平active
bartonalfred
发表于 2025-4-8 09:30
使用GPIO模拟SPI功能可能会受到CPU速度和软件延时精度的限制,导致传输速率较低。
dffzh
发表于 2025-4-8 11:04
bartonalfred 发表于 2025-4-8 09:30
使用GPIO模拟SPI功能可能会受到CPU速度和软件延时精度的限制,导致传输速率较低。 ...
确实如此, GPIO的电平翻转速度也会影响,一般1MHZ速率以内的应用基本没问题
pixhw
发表于 2025-4-8 12:35
如果某个GPIO被错误配置为输入或输出,可能会导致通信失败。
dffzh
发表于 2025-4-8 13:10
pixhw 发表于 2025-4-8 12:35
如果某个GPIO被错误配置为输入或输出,可能会导致通信失败。
引脚驱动程序肯定得配置正确才行哦
usysm
发表于 2025-4-8 15:38
如果目标设备对时序有严格要求,建议使用硬件定时器来生成时钟信号,而不是依赖简单的延时函数。
dffzh
发表于 2025-4-8 16:03
usysm 发表于 2025-4-8 15:38
如果目标设备对时序有严格要求,建议使用硬件定时器来生成时钟信号,而不是依赖简单的延时函数。 ...
有道理,可以根据SPI从设备对时序的精度要求通过硬件定时器触发CLK信号
benjaminka
发表于 2025-4-9 19:13
如果系统中有其他高优先级任务(如中断服务程序),可能会影响GPIO模拟SPI的时序稳定性。
saservice
发表于 2025-4-9 22:15
如果不需要高速通信,适当降低时钟频率可以提高软件模拟的可靠性。
sdCAD
发表于 2025-4-10 01:16
在SPI传输期间,尽量减少中断处理,以免影响时序。
dffzh
发表于 2025-4-10 08:46
benjaminka 发表于 2025-4-9 19:13
如果系统中有其他高优先级任务(如中断服务程序),可能会影响GPIO模拟SPI的时序稳定性。 ...
应用于工业自动化EtherCAT总线产品,目前运行还比较稳定
dffzh
发表于 2025-4-10 08:47
saservice 发表于 2025-4-9 22:15
如果不需要高速通信,适当降低时钟频率可以提高软件模拟的可靠性。
是的,500KB时钟速率,CLK波形还是比较好的
mattlincoln
发表于 2025-4-10 14:11
软件模拟SPI的速度远低于硬件SPI,因为每次操作都需要通过GPIO逐位传输数据。
dffzh
发表于 2025-4-10 15:08
mattlincoln 发表于 2025-4-10 14:11
软件模拟SPI的速度远低于硬件SPI,因为每次操作都需要通过GPIO逐位传输数据。 ...
是的,通信速度上没办法比,只能在低速场景应用
kkzz
发表于 2025-4-10 15:54
默认实现了CPOL=0、CPHA=0的模式。如果目标设备要求其他模式,需要调整时钟信号的初始状态和采样点。
dffzh
发表于 2025-4-10 16:12
kkzz 发表于 2025-4-10 15:54
默认实现了CPOL=0、CPHA=0的模式。如果目标设备要求其他模式,需要调整时钟信号的初始状态和采样点。 ...
是的,按从设备的规格要求来
i1mcu
发表于 2025-4-10 17:53
根据具体的SPI设备,选择正确的CPOL和CPHA值。
CPOL=0表示空闲时钟为低电平,CPOL=1表示空闲时钟为高电平。
CPHA=0表示在时钟的第一个边沿采样数据,CPHA=1表示在时钟的第二个边沿采样数据。