dog 发表于 2022-12-30 18:33:58

关于STM32G030的内部HSI,能支持USART,115200bps吗?

STM32G030是不支持外部无源晶振的,因为要用到RS485总线,之前用的内部HSI,上115200bps,有时会通讯失败。
产品也会在低温情况下使用,担心HSI的精度不够,想换成STM32G070了。
想问一下大家有什么建议。。。

yuyu87 发表于 2022-12-30 20:08:54

没听说哪个mcu不支持无源晶振

kk2008 发表于 2022-12-30 21:11:31

可以支持,我们用来串口收发数115200没听同事说有出错的情况。

Himem 发表于 2022-12-30 21:22:48

本帖最后由 Himem 于 2022-12-30 22:45 编辑

G030支持无源晶振呀,什么封装?

而且也能用lse校准hsi

smallwood 发表于 2022-12-30 21:35:48

stm32g030用HSIusart接linux系统跑1mbps 产品暂时没发现有什么问题

kitten 发表于 2022-12-30 22:48:37

ST的HSI不错了。而且我记得还支持修正

dog 发表于 2022-12-31 09:28:06

已决定用STM32G030+有源晶振

dog 发表于 2022-12-31 09:29:54

smallwood 发表于 2022-12-30 21:35
stm32g030用HSIusart接linux系统跑1mbps 产品暂时没发现有什么问题
(引用自5楼)

不代表大批量的一致性,还有不同工作环境。

dukelec 发表于 2022-12-31 09:54:48

dog 发表于 2022-12-31 09:29
不代表大批量的一致性,还有不同工作环境。
(引用自8楼)

stm32g0 内置时钟精度能确保在 1% 误差以内,芯片支持的温度范围内都可以保证,理论上用于串口通讯没有问题,你应该查查可能是其它问题

dog 发表于 2022-12-31 17:24:40

dukelec 发表于 2022-12-31 09:54
stm32g0 内置时钟精度能确保在 1% 误差以内,芯片支持的温度范围内都可以保证,理论上用于串口通讯没有问 ...
(引用自9楼)

嗯,看你这么有信心,刚才用核心板测试了,发出115200bps的0x55,用电吹风60度吹的情况下,Bit的宽度确实没有任何变化。
应该115200一点问题也没有,甚至上M都没问题。

lb0857 发表于 2023-1-1 16:55:05

有时通讯失败
啥条件下触发,实验室可以重现故障吗?
通讯错误,硬件或者软件设置错误也会出现偶发现故障。

street 发表于 2023-1-1 17:49:54

usart2可能存在这个毛病.   最高只能57600.   usart1能跑到 115200 甚至更高.
我没仔细看手册, 也没没仔细研究 ,反正凑活用 .

另: 希望你测试后 回复一下 ,我也好知道是不是我程序的问题.

dog 发表于 2023-1-2 09:04:38

street 发表于 2023-1-1 17:49
usart2可能存在这个毛病.   最高只能57600.   usart1能跑到 115200 甚至更高.
我没仔细看手册, 也没 ...
(引用自12楼)

谁说的啊?
不可能的,我经常跑115200x4,

street 发表于 2023-1-2 09:45:25

dog 发表于 2023-1-2 09:04
谁说的啊?
不可能的,我经常跑115200x4,
(引用自13楼)

我usart2跑 freemodbus 只能到 57600.   115200 就容易卡顿.   但是 我 usart1 自由协议, 速度远超115200 没问题.

dog 发表于 2023-1-2 09:54:47

street 发表于 2023-1-2 09:45
我usart2跑 freemodbus 只能到 57600.   115200 就容易卡顿.   但是 我 usart1 自由协议, 速度远超1152 ...
(引用自14楼)

我也是用485,有时会失败,我昨天仔细测试过USART本身,应该不会有问题,
你有没有分析过什么原因?收发器的原因吗?

street 发表于 2023-1-2 12:00:30

dog 发表于 2023-1-2 09:54
我也是用485,有时会失败,我昨天仔细测试过USART本身,应该不会有问题,
你有没有分析过什么原因?收发 ...
(引用自15楼)

其他单片机115200 是没有问题的.   G030的 usart2 就不行.

dog 发表于 2023-1-2 21:11:56

street 发表于 2023-1-2 12:00
其他单片机115200 是没有问题的.   G030的 usart2 就不行.
(引用自16楼)

你 485收发器用的什么型号?

street 发表于 2023-1-2 21:22:10

dog 发表于 2023-1-2 21:11
你 485收发器用的什么型号?
(引用自17楼)

SP3485. 吧就是 smt 默认的型号.
下午测试 了 f103的开到 256000 都没有问题.

有时间 再试试 g030 的usart1看看 能跑多高的速度.

我感觉 是 usart2可能某个配置配有配好.或是他的中断 有点问题.   

dog 发表于 2023-1-2 21:28:22

street 发表于 2023-1-2 21:22
SP3485. 吧就是 smt 默认的型号.
下午测试 了 f103的开到 256000 都没有问题.

(引用自18楼)

你不用DMA的吗?
发送完后,中断,切换485方向 ?

dog 发表于 2023-1-2 21:29:13

我用的自动切换方向的,用DMA,没有中断。
但也是有少量失败,我当时以为是HSI的问题

street 发表于 2023-1-3 12:00:34

dog 发表于 2023-1-2 21:29
我用的自动切换方向的,用DMA,没有中断。
但也是有少量失败,我当时以为是HSI的问题 ...
(引用自20楼)

没用DMA 没研究过.    usart2应该是没有自动切换方向的功能.

陆小凤之北京 发表于 2023-1-4 17:06:27

不要太早关485发送使能,适当加点延时应该就能解决,库函数有时候拿寄存器状态判断,并不适用于你发送器速度慢或者有低速光耦磁藕等情况,这个情况并不好抓取。

dog 发表于 2023-1-4 18:03:16

陆小凤之北京 发表于 2023-1-4 17:06
不要太早关485发送使能,适当加点延时应该就能解决,库函数有时候拿寄存器状态判断,并不适用于你发送器速 ...
(引用自22楼)

你是用DMA 完成中断后,再开USART_RXE中断?再通过GPIO切换485方向?

陆小凤之北京 发表于 2023-1-5 13:49:11

dog 发表于 2023-1-4 18:03
你是用DMA 完成中断后,再开USART_RXE中断?再通过GPIO切换485方向?
(引用自23楼)

只有接收用中断,发送是任务调度的。通讯失败的具体原因是什么呢?CRC错误?接收长度不对?还是什么啊?

TangCS 发表于 2023-1-5 17:33:46

dog 发表于 2023-1-4 18:03
你是用DMA 完成中断后,再开USART_RXE中断?再通过GPIO切换485方向?
(引用自23楼)

DMA传输完成了并不代表数据实际传输完成了, 只是把数据传输到寄存器了

simplorer 发表于 2023-1-6 08:51:59

st 的 g030,g070,国民科技的g455,l403,华大半导体的f460,
115200的波特率都没什么问题,当然我没有用到所有的usart口,
我感觉他们不应该有啥区别吧。
我用的是dma+空闲中断的方式接收数据,发送也是dma
页: [1]
查看完整版本: 关于STM32G030的内部HSI,能支持USART,115200bps吗?